From e702ad8178ba93fbbac64eb302e55ffb25b8b5e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 Jul 2026 13:51:00 +0000 Subject: [PATCH 1/7] chore(deps): update github actions --- .github/workflows/bench-regression.yml | 4 +-- .github/workflows/ci.yml | 28 ++++++++--------- .github/workflows/codeql.yml | 6 ++-- .github/workflows/deploy-website.yml | 6 ++-- .github/workflows/docker-release.yml | 32 +++++++++---------- .github/workflows/dockerhub-readme.yml | 2 +- .github/workflows/dockerhub-release.yml | 36 +++++++++++----------- .github/workflows/live-fire.yml | 4 +-- .github/workflows/npm-publish.yml | 4 +-- .github/workflows/pr-description-check.yml | 2 +- .github/workflows/stale.yml | 2 +- 11 files changed, 63 insertions(+), 63 deletions(-) diff --git a/.github/workflows/bench-regression.yml b/.github/workflows/bench-regression.yml index ca585bf4d..95715556e 100644 --- a/.github/workflows/bench-regression.yml +++ b/.github/workflows/bench-regression.yml @@ -49,11 +49,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8806e54a9..97806520d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,9 +26,9 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm @@ -81,9 +81,9 @@ jobs: matrix: shard: [1, 2, 3, 4] steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm @@ -165,9 +165,9 @@ jobs: needs: unit runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm @@ -196,9 +196,9 @@ jobs: needs: build runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm @@ -282,9 +282,9 @@ jobs: needs: build runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm @@ -358,9 +358,9 @@ jobs: needs: build runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm @@ -385,9 +385,9 @@ jobs: audit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 5ea408ffc..a194358c9 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -24,12 +24,12 @@ jobs: contents: read steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Initialize CodeQL - uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4 + uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4 with: languages: javascript-typescript - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4 + uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4 diff --git a/.github/workflows/deploy-website.yml b/.github/workflows/deploy-website.yml index ec8227438..6124e555b 100644 --- a/.github/workflows/deploy-website.yml +++ b/.github/workflows/deploy-website.yml @@ -25,9 +25,9 @@ jobs: validate: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: npm @@ -57,7 +57,7 @@ jobs: contents: read deployments: write steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Restore validated site uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml index a418d8955..bc5ec30dd 100644 --- a/.github/workflows/docker-release.yml +++ b/.github/workflows/docker-release.yml @@ -35,9 +35,9 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: "22" @@ -68,11 +68,11 @@ jobs: packages: write steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4 - - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + - uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4 if: github.event_name != 'pull_request' with: registry: ${{ env.REGISTRY }} @@ -80,7 +80,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} # --- default variant --- - - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7 + - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 id: build-default with: context: . @@ -92,7 +92,7 @@ jobs: outputs: type=image,name=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=${{ github.event_name != 'pull_request' }} # --- slim variant (reuses cached build stage from default) --- - - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7 + - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 id: build-slim with: context: . @@ -151,13 +151,13 @@ jobs: path: /tmp/digests/default merge-multiple: true - - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + - uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + - uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6 id: meta with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} @@ -197,13 +197,13 @@ jobs: path: /tmp/digests/slim merge-multiple: true - - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + - uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + - uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6 id: meta with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} @@ -244,17 +244,17 @@ jobs: packages: write steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4 - - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + - uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + - uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6 id: web-meta with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-web @@ -263,7 +263,7 @@ jobs: type=semver,pattern={{version}} type=sha,prefix= - - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7 + - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 with: context: . file: Dockerfile.web diff --git a/.github/workflows/dockerhub-readme.yml b/.github/workflows/dockerhub-readme.yml index ac7b9a9f3..51e7038ce 100644 --- a/.github/workflows/dockerhub-readme.yml +++ b/.github/workflows/dockerhub-readme.yml @@ -37,7 +37,7 @@ jobs: readme: docker/README-comis-web.md short: "Web dashboard for the Comis security-first agent runtime" steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Sync overview to Docker Hub env: diff --git a/.github/workflows/dockerhub-release.yml b/.github/workflows/dockerhub-release.yml index 5917525d1..7bff6d22b 100644 --- a/.github/workflows/dockerhub-release.yml +++ b/.github/workflows/dockerhub-release.yml @@ -19,9 +19,9 @@ jobs: contents: read steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22.19.0 @@ -52,17 +52,17 @@ jobs: contents: read steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4 - - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + - uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} # --- default variant --- - - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7 + - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 id: build-default with: context: . @@ -73,7 +73,7 @@ jobs: outputs: type=image,name=comisai/comis,push-by-digest=true,name-canonical=true,push=true # --- slim variant (reuses cached build stage layers from default) --- - - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7 + - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 id: build-slim with: context: . @@ -125,12 +125,12 @@ jobs: path: /tmp/digests/default merge-multiple: true - - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + - uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + - uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6 id: meta with: images: comisai/comis @@ -167,12 +167,12 @@ jobs: path: /tmp/digests/slim merge-multiple: true - - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + - uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + - uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6 id: meta with: images: comisai/comis @@ -205,18 +205,18 @@ jobs: contents: read steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4 - - uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4 + - uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4 - - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 + - uses: docker/login-action@abd2ef45e78c5afb21d64d4ca52ee8550d9572c7 # v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6 + - uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6 id: web-meta with: images: comisai/comis-web @@ -225,7 +225,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} type=raw,value=latest - - uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7 + - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7 with: context: . file: Dockerfile.web @@ -246,7 +246,7 @@ jobs: contents: write steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 0 @@ -284,6 +284,6 @@ jobs: wait_for_workflow docker-release.yml "GHCR workflow" - name: Create GitHub Release - uses: softprops/action-gh-release@718ea10b132b3b2eba29c1007bb80653f286566b # v3 + uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3 with: generate_release_notes: true diff --git a/.github/workflows/live-fire.yml b/.github/workflows/live-fire.yml index 3353ba7f7..334073fc9 100644 --- a/.github/workflows/live-fire.yml +++ b/.github/workflows/live-fire.yml @@ -53,11 +53,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 cache: pnpm diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index ce4175a92..e74270840 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -26,13 +26,13 @@ jobs: id-token: write steps: - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: ref: ${{ env.RELEASE_TAG }} - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6 - - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22.19.0 cache: pnpm diff --git a/.github/workflows/pr-description-check.yml b/.github/workflows/pr-description-check.yml index 629ef8e8c..3cf50ab6c 100644 --- a/.github/workflows/pr-description-check.yml +++ b/.github/workflows/pr-description-check.yml @@ -21,7 +21,7 @@ jobs: # Checking out the fork contributor's head would let them run arbitrary # code with this workflow's write token — the textbook pwn-request attack. # sparse-checkout: only .github/scripts from the trusted base branch. - - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: ref: ${{ github.base_ref }} sparse-checkout: | diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 3b9482c21..4e7dd2455 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -13,7 +13,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@eb5cf3af3ac0a1aa4c9c45633dd1ae542a27a899 # v10 + - uses: actions/stale@1e223db275d687790206a7acac4d1a11bd6fe629 # v10 with: stale-issue-message: > This issue has been automatically marked as stale because it has not had From b663373619e10b9a3c88c329c7375a1ada16fe35 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 25 Jul 2026 13:50:51 +0000 Subject: [PATCH 2/7] chore(deps): update docker images --- Dockerfile | 4 ++-- Dockerfile.install | 4 ++-- Dockerfile.web | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index e65ca0cdf..2037454a5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,8 @@ # Global ARGs — declared before any FROM so they can be used in FROM instructions. # For reproducible builds, override with pinned digests: # docker build --build-arg COMIS_NODE_BOOKWORM_IMAGE=node:22-bookworm@sha256: ... -ARG COMIS_NODE_BOOKWORM_IMAGE="node:22-bookworm@sha256:c601a46abb4d2ab80a9dc3da208d50d1122642d53f17a101926ace71e5a9bf1c" -ARG COMIS_NODE_BOOKWORM_SLIM_IMAGE="node:22-bookworm-slim@sha256:813a7480f28fdadac1f7f5c824bcdad435b5bc1322a5968bbbdef8d058f9dff4" +ARG COMIS_NODE_BOOKWORM_IMAGE="node:22-bookworm@sha256:5647be709086c696ff32edaaf1c70cd26d1da6ab2b39c32f3c7b4c4a31957e37" +ARG COMIS_NODE_BOOKWORM_SLIM_IMAGE="node:22-bookworm-slim@sha256:6c74791e557ce11fc957704f6d4fe134a7bc8d6f5ca4403205b2966bd488f6b3" ARG COMIS_VARIANT="slim" FROM ${COMIS_NODE_BOOKWORM_IMAGE} AS build diff --git a/Dockerfile.install b/Dockerfile.install index 118053b12..beab31fb5 100644 --- a/Dockerfile.install +++ b/Dockerfile.install @@ -24,8 +24,8 @@ # -t comis-installed:dev . # Global ARGs — declared before any FROM so they can be used in FROM lines. -ARG COMIS_INSTALL_NODE_IMAGE="node:22-bookworm@sha256:c601a46abb4d2ab80a9dc3da208d50d1122642d53f17a101926ace71e5a9bf1c" -ARG COMIS_INSTALL_BASE_IMAGE="ubuntu:24.04@sha256:786a8b558f7be160c6c8c4a54f9a57274f3b4fb1491cf65146521ae77ff1dc54" +ARG COMIS_INSTALL_NODE_IMAGE="node:22-bookworm@sha256:5647be709086c696ff32edaaf1c70cd26d1da6ab2b39c32f3c7b4c4a31957e37" +ARG COMIS_INSTALL_BASE_IMAGE="ubuntu:24.04@sha256:4fbb8e6a8395de5a7550b33509421a2bafbc0aab6c06ba2cef9ebffbc7092d90" # ── Stage 1: build the comisai npm tarball ──────────────────────────────── # Same Node image as the main Dockerfile so both builders use the supported diff --git a/Dockerfile.web b/Dockerfile.web index 27a268115..9d5b453d1 100644 --- a/Dockerfile.web +++ b/Dockerfile.web @@ -1,7 +1,7 @@ # ============================================================================ # Build the SPA # ============================================================================ -FROM node:22-bookworm-slim@sha256:813a7480f28fdadac1f7f5c824bcdad435b5bc1322a5968bbbdef8d058f9dff4 AS build +FROM node:22-bookworm-slim@sha256:6c74791e557ce11fc957704f6d4fe134a7bc8d6f5ca4403205b2966bd488f6b3 AS build WORKDIR /build @@ -29,7 +29,7 @@ RUN pnpm -r --filter @comis/web... run build # ============================================================================ # Serve with Nginx # ============================================================================ -FROM nginx:alpine@sha256:54f2a904c251d5a34adf545a72d32515a15e08418dae0266e23be2e18c66fefa AS final +FROM nginx:alpine@sha256:4a73073bd557c65b759505da037898b61f1be6cbcc3c2c3aeac22d2a470c1752 AS final # Custom nginx config with SPA fallback and reverse proxy COPY docker/nginx.conf /etc/nginx/conf.d/default.conf From 38b64fed0929840c77f2b1edba63e9694c59aeb0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 26 Jul 2026 06:55:42 +0000 Subject: [PATCH 3/7] fix(deps): update patch updates --- package.json | 16 +++++++-------- packages/agent/package.json | 4 ++-- packages/channels/package.json | 6 +++--- packages/cli/package.json | 6 +++--- packages/comis/package.json | 26 ++++++++++++------------ packages/core/package.json | 2 +- packages/daemon/package.json | 4 ++-- packages/gateway/package.json | 6 +++--- packages/infra/package.json | 2 +- packages/memory/package.json | 6 +++--- packages/observability-otel/package.json | 2 +- packages/observability/package.json | 2 +- packages/orchestrator/package.json | 4 ++-- packages/scheduler/package.json | 2 +- packages/shared/package.json | 2 +- packages/skills/package.json | 14 ++++++------- packages/web/package.json | 4 ++-- 17 files changed, 54 insertions(+), 54 deletions(-) diff --git a/package.json b/package.json index 0213815be..3e5c8f125 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "author": "Moshe Anconina", "license": "Apache-2.0", "type": "module", - "packageManager": "pnpm@10.34.4", + "packageManager": "pnpm@10.34.5", "engines": { "node": ">=22.19.0" }, @@ -90,19 +90,19 @@ "@types/node": "22.20.1", "@types/semver": "7.7.1", "@types/ws": "8.18.1", - "@vitest/coverage-v8": "4.1.9", + "@vitest/coverage-v8": "4.1.10", "better-sqlite3": "12.10.0", "esbuild": "0.28.1", "eslint": "10.4.1", "eslint-plugin-security": "4.0.1", "globals": "17.6.0", "grammy": "1.43.0", - "hono": "4.12.27", - "jose": "6.2.3", + "hono": "4.12.31", + "jose": "6.2.4", "madge": "8.0.0", "node-llama-cpp": "3.18.1", "nodemailer": "9.0.3", - "p-queue": "9.3.0", + "p-queue": "9.3.3", "pino": "10.3.1", "pino-pretty": "13.1.3", "remark-frontmatter": "5.0.0", @@ -111,8 +111,8 @@ "tsx": "4.22.5", "typescript": "5.9.3", "typescript-eslint": "8.60.1", - "vitest": "4.1.9", - "ws": "8.21.0", + "vitest": "4.1.10", + "ws": "8.21.1", "yaml": "2.9.0", "zod": "4.4.3" }, @@ -142,7 +142,7 @@ "adm-zip": ">=0.6.0", "linkify-it": "5.0.2", "@hono/node-server": "2.0.11", - "sharp": "0.35.0", + "sharp": "0.35.3", "uuid": ">=14.0.0", "@anthropic-ai/sdk": ">=0.91.1", "ip-address": ">=10.1.1", diff --git a/packages/agent/package.json b/packages/agent/package.json index cccfd0129..8b34e9163 100644 --- a/packages/agent/package.json +++ b/packages/agent/package.json @@ -53,7 +53,7 @@ "chokidar": "5.0.0", "diff": "8.0.4", "open": "10.2.0", - "sharp": "0.35.0", + "sharp": "0.35.3", "zod": "4.4.3" }, "devDependencies": { @@ -64,6 +64,6 @@ "better-sqlite3": "12.10.0", "proper-lockfile": "4.1.2", "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/channels/package.json b/packages/channels/package.json index ed24e2733..377bb1ad1 100644 --- a/packages/channels/package.json +++ b/packages/channels/package.json @@ -45,14 +45,14 @@ "grammy": "1.43.0", "imapflow": "1.3.6", "irc-framework": "4.14.0", - "jose": "6.2.3", - "mailparser": "3.9.12", + "jose": "6.2.4", + "mailparser": "3.9.14", "nodemailer": "9.0.1" }, "devDependencies": { "@types/mailparser": "3.4.6", "@types/nodemailer": "6.4.24", "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/cli/package.json b/packages/cli/package.json index 9c6a1bbc7..b3c1fa11a 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -49,7 +49,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@clack/core": "1.4.2", + "@clack/core": "1.4.3", "@clack/prompts": "1.5.1", "@comis/core": "workspace:*", "@comis/daemon": "workspace:*", @@ -63,7 +63,7 @@ "commander": "14.0.3", "open": "10.2.0", "ora": "9.4.1", - "ws": "8.21.0", + "ws": "8.21.1", "yaml": "2.9.0", "zod": "4.4.3" }, @@ -71,6 +71,6 @@ "@types/better-sqlite3": "7.6.13", "@types/ws": "8.18.1", "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/comis/package.json b/packages/comis/package.json index d618b4ba6..35a03f49e 100644 --- a/packages/comis/package.json +++ b/packages/comis/package.json @@ -177,7 +177,7 @@ "@agentclientprotocol/sdk": "0.22.1", "@anthropic-ai/sdk": "0.109.0", "@aws-sdk/client-bedrock-runtime": "3.1048.0", - "@clack/core": "1.4.2", + "@clack/core": "1.4.3", "@clack/prompts": "1.5.1", "@elevenlabs/elevenlabs-js": "2.49.1", "@fal-ai/client": "1.10.1", @@ -185,7 +185,7 @@ "@grammyjs/auto-retry": "2.0.2", "@grammyjs/files": "1.2.0", "@hapi/boom": "10.0.1", - "@homebridge/ciao": "1.3.9", + "@homebridge/ciao": "1.3.10", "@hono/node-server": "1.19.15", "@hono/node-ws": "1.3.1", "@huggingface/transformers": "4.2.0", @@ -238,28 +238,28 @@ "file-uri-to-path": "1.0.0", "glob": "13.0.6", "grammy": "1.43.0", - "hono": "4.12.27", + "hono": "4.12.31", "hono-rate-limiter": "0.5.3", "http-proxy-agent": "7.0.2", "https-proxy-agent": "7.0.6", - "iconv-lite": "0.7.2", - "ignore": "7.0.5", + "iconv-lite": "0.7.3", + "ignore": "7.0.6", "imapflow": "1.3.6", - "impit": "0.14.2", + "impit": "0.14.3", "ipaddr.js": "2.4.0", "irc-framework": "4.14.0", - "jose": "6.2.3", + "jose": "6.2.4", "json-rpc-2.0": "1.7.1", - "linkedom": "0.18.12", - "lru-cache": "11.5.1", - "mailparser": "3.9.12", + "linkedom": "0.18.13", + "lru-cache": "11.5.2", + "mailparser": "3.9.14", "music-metadata": "11.12.3", "node-llama-cpp": "3.18.1", "nodemailer": "9.0.1", "open": "10.2.0", "openai": "6.39.1", "ora": "9.4.1", - "p-queue": "9.3.0", + "p-queue": "9.3.3", "partial-json": "0.1.7", "pdfjs-dist": "5.7.284", "pino": "10.3.1", @@ -269,12 +269,12 @@ "proper-lockfile": "4.1.2", "pvtsutils": "1.3.6", "reflect-metadata": "0.2.2", - "sharp": "0.35.0", + "sharp": "0.35.3", "sqlite-vec": "0.1.9", "tslib": "2.8.1", "tsyringe": "4.10.0", "undici": "8.5.0", - "ws": "8.21.0", + "ws": "8.21.1", "yaml": "2.9.0", "zod": "4.4.3" }, diff --git a/packages/core/package.json b/packages/core/package.json index 8d8787f0c..8c8ecfa49 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -42,6 +42,6 @@ "@types/proper-lockfile": "4.1.4", "safe-regex2": "5.1.1", "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/daemon/package.json b/packages/daemon/package.json index c5ee9566c..86ab938c3 100644 --- a/packages/daemon/package.json +++ b/packages/daemon/package.json @@ -53,7 +53,7 @@ "@google/genai": "1.52.0", "@modelcontextprotocol/sdk": "1.29.0", "better-sqlite3": "12.10.0", - "hono": "4.12.27", + "hono": "4.12.31", "openai": "6.39.1", "pino": "10.3.1", "pino-roll": "4.0.0", @@ -67,6 +67,6 @@ "@earendil-works/pi-coding-agent": "0.82.1", "@types/better-sqlite3": "7.6.13", "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/gateway/package.json b/packages/gateway/package.json index 9f678a716..2f549e0a3 100644 --- a/packages/gateway/package.json +++ b/packages/gateway/package.json @@ -32,13 +32,13 @@ }, "dependencies": { "@agentclientprotocol/sdk": "0.22.1", - "@homebridge/ciao": "1.3.9", + "@homebridge/ciao": "1.3.10", "@hono/node-server": "1.19.15", "@hono/node-ws": "1.3.1", "@modelcontextprotocol/sdk": "1.29.0", "@comis/core": "workspace:*", "@comis/shared": "workspace:*", - "hono": "4.12.27", + "hono": "4.12.31", "hono-rate-limiter": "0.5.3", "json-rpc-2.0": "1.7.1", "zod": "4.4.3" @@ -46,6 +46,6 @@ "devDependencies": { "@types/node": "22.20.1", "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/infra/package.json b/packages/infra/package.json index f6031b437..134682810 100644 --- a/packages/infra/package.json +++ b/packages/infra/package.json @@ -62,6 +62,6 @@ "devDependencies": { "pino-pretty": "13.1.3", "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/memory/package.json b/packages/memory/package.json index f69583bd9..fb8d7c034 100644 --- a/packages/memory/package.json +++ b/packages/memory/package.json @@ -36,16 +36,16 @@ "@comis/shared": "workspace:*", "@earendil-works/pi-ai": "0.82.1", "better-sqlite3": "12.10.0", - "lru-cache": "11.5.1", + "lru-cache": "11.5.2", "node-llama-cpp": "3.18.1", "openai": "6.39.1", - "p-queue": "9.3.0", + "p-queue": "9.3.3", "sqlite-vec": "0.1.9", "zod": "4.4.3" }, "devDependencies": { "@types/better-sqlite3": "7.6.13", "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/observability-otel/package.json b/packages/observability-otel/package.json index 5da741e5d..d213435d7 100644 --- a/packages/observability-otel/package.json +++ b/packages/observability-otel/package.json @@ -49,6 +49,6 @@ }, "devDependencies": { "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/observability/package.json b/packages/observability/package.json index e4eb3481f..b883d89a6 100644 --- a/packages/observability/package.json +++ b/packages/observability/package.json @@ -50,6 +50,6 @@ }, "devDependencies": { "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/orchestrator/package.json b/packages/orchestrator/package.json index cc5a96363..2f9a174d3 100644 --- a/packages/orchestrator/package.json +++ b/packages/orchestrator/package.json @@ -35,10 +35,10 @@ "@comis/channels": "workspace:*", "@comis/core": "workspace:*", "@comis/shared": "workspace:*", - "p-queue": "9.3.0" + "p-queue": "9.3.3" }, "devDependencies": { "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/scheduler/package.json b/packages/scheduler/package.json index 94bcacfd4..a160ed3e6 100644 --- a/packages/scheduler/package.json +++ b/packages/scheduler/package.json @@ -38,6 +38,6 @@ }, "devDependencies": { "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/shared/package.json b/packages/shared/package.json index b0ae2a0bc..a83bced26 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -32,6 +32,6 @@ }, "devDependencies": { "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/skills/package.json b/packages/skills/package.json index fca096e74..33b7f7f5f 100644 --- a/packages/skills/package.json +++ b/packages/skills/package.json @@ -58,16 +58,16 @@ "chokidar": "5.0.0", "edge-tts-universal": "1.4.0", "file-type": "21.3.4", - "iconv-lite": "0.7.2", - "ignore": "7.0.5", - "impit": "0.14.2", - "linkedom": "0.18.12", + "iconv-lite": "0.7.3", + "ignore": "7.0.6", + "impit": "0.14.3", + "linkedom": "0.18.13", "music-metadata": "11.12.3", "openai": "6.39.1", - "p-queue": "9.3.0", + "p-queue": "9.3.3", "pdfjs-dist": "5.7.284", "playwright-core": "1.60.0", - "sharp": "0.35.0", + "sharp": "0.35.3", "undici": "8.5.0", "yaml": "2.9.0", "zod": "4.4.3" @@ -78,6 +78,6 @@ "devDependencies": { "@comis/infra": "workspace:*", "typescript": "5.9.3", - "vitest": "4.1.9" + "vitest": "4.1.10" } } diff --git a/packages/web/package.json b/packages/web/package.json index 21ffb6c0e..eaf72bc35 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -36,7 +36,7 @@ "@types/dagre": "0.7.54", "happy-dom": "20.9.0", "typescript": "5.9.3", - "vite": "8.1.3", - "vitest": "4.1.9" + "vite": "8.1.5", + "vitest": "4.1.10" } } From 54480a512f1661400622a209b08cc467ab92e9fc Mon Sep 17 00:00:00 2001 From: comis-agent Date: Sun, 26 Jul 2026 11:02:30 +0300 Subject: [PATCH 4/7] chore(deps): update pnpm override typebox to 1.3.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3e5c8f125..65ccf19cb 100644 --- a/package.json +++ b/package.json @@ -119,7 +119,7 @@ "pnpm": { "overrides": { "tar": "7.5.22", - "typebox": "1.2.8", + "typebox": "1.3.6", "protobufjs": ">=8.6.6", "@protobufjs/utf8": ">=1.1.1", "undici": ">=8.5.0", From 598f84474544ead6e4d6de3540c5f755707b91b6 Mon Sep 17 00:00:00 2001 From: comis-agent Date: Sun, 26 Jul 2026 11:03:30 +0300 Subject: [PATCH 5/7] chore(deps): drop the obsolete sharp exports patch and refresh the lockfile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sharp 0.35.3 ships per-condition `types` entries in its own exports map (`./dist/index.d.mts` / `./dist/index.d.cts`), which is exactly what the local patch bolted onto 0.35.0. Keeping it would only strand `patchedDependencies` on a version no longer in the tree — pnpm fails that outright with ERR_PNPM_UNUSED_PATCH. The lockfile is regenerated here rather than carried from the bot branches: the patch-updates change moved the `overrides` block without a matching lockfile, so every frozen install died on ERR_PNPM_LOCKFILE_CONFIG_MISMATCH. --- package.json | 1 - patches/sharp@0.35.0.patch | 12 - pnpm-lock.yaml | 1026 ++++++++++++++++++++---------------- 3 files changed, 578 insertions(+), 461 deletions(-) delete mode 100644 patches/sharp@0.35.0.patch diff --git a/package.json b/package.json index 65ccf19cb..b2461d7e2 100644 --- a/package.json +++ b/package.json @@ -149,7 +149,6 @@ "qs": ">=6.15.2" }, "patchedDependencies": { - "sharp@0.35.0": "patches/sharp@0.35.0.patch", "@earendil-works/pi-ai@0.82.1": "patches/@earendil-works__pi-ai@0.82.1.patch" } } diff --git a/patches/sharp@0.35.0.patch b/patches/sharp@0.35.0.patch deleted file mode 100644 index 68484bb9d..000000000 --- a/patches/sharp@0.35.0.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/package.json b/package.json -index c77037125725a04bb62f2a89fbe9d49a082fbe2e..22ce80ea46a5a70ac87a3cc9c9a514c914262574 100644 ---- a/package.json -+++ b/package.json -@@ -123,6 +123,7 @@ - "types": "./lib/index.d.ts", - "exports": { - ".": { -+ "types": "./lib/index.d.ts", - "import": "./dist/index.mjs", - "require": "./dist/index.cjs" - } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0f87f37a..03ebc1ebb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,7 +6,7 @@ settings: overrides: tar: 7.5.22 - typebox: 1.2.8 + typebox: 1.3.6 protobufjs: '>=8.6.6' '@protobufjs/utf8': '>=1.1.1' undici: '>=8.5.0' @@ -29,7 +29,7 @@ overrides: adm-zip: '>=0.6.0' linkify-it: 5.0.2 '@hono/node-server': 2.0.11 - sharp: 0.35.0 + sharp: 0.35.3 uuid: '>=14.0.0' '@anthropic-ai/sdk': '>=0.91.1' ip-address: '>=10.1.1' @@ -39,9 +39,6 @@ patchedDependencies: '@earendil-works/pi-ai@0.82.1': hash: 0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163 path: patches/@earendil-works__pi-ai@0.82.1.patch - sharp@0.35.0: - hash: f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2 - path: patches/sharp@0.35.0.patch importers: @@ -55,10 +52,10 @@ importers: version: link:packages/core '@earendil-works/pi-agent-core': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-ai': specifier: 0.82.1 - version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@eslint/js': specifier: 10.0.1 version: 10.0.1(eslint@10.4.1(jiti@2.7.0)) @@ -84,8 +81,8 @@ importers: specifier: 8.18.1 version: 8.18.1 '@vitest/coverage-v8': - specifier: 4.1.9 - version: 4.1.9(vitest@4.1.9) + specifier: 4.1.10 + version: 4.1.10(vitest@4.1.10) better-sqlite3: specifier: 12.10.0 version: 12.10.0 @@ -108,8 +105,8 @@ importers: specifier: '>=4.12.25' version: 4.12.27 jose: - specifier: 6.2.3 - version: 6.2.3 + specifier: 6.2.4 + version: 6.2.4 madge: specifier: 8.0.0 version: 8.0.0(typescript@5.9.3) @@ -120,8 +117,8 @@ importers: specifier: '>=9.0.1' version: 9.0.3 p-queue: - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.3.3 + version: 9.3.3 pino: specifier: 10.3.1 version: 10.3.1 @@ -147,11 +144,11 @@ importers: specifier: 8.60.1 version: 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) ws: - specifier: 8.21.0 - version: 8.21.0 + specifier: 8.21.1 + version: 8.21.1 yaml: specifier: 2.9.0 version: 2.9.0 @@ -175,13 +172,13 @@ importers: version: link:../shared '@earendil-works/pi-agent-core': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-ai': specifier: 0.82.1 - version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@google/genai': specifier: 1.52.0 version: 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) @@ -195,8 +192,8 @@ importers: specifier: 10.2.0 version: 10.2.0 sharp: - specifier: 0.35.0 - version: 0.35.0(patch_hash=f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2) + specifier: 0.35.3 + version: 0.35.3(@types/node@24.13.2) zod: specifier: 4.4.3 version: 4.4.3 @@ -223,8 +220,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/channels: dependencies: @@ -254,7 +251,7 @@ importers: version: 7.16.0 '@whiskeysockets/baileys': specifier: 7.0.0-rc13 - version: 7.0.0-rc13(sharp@0.35.0(patch_hash=f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2)) + version: 7.0.0-rc13(sharp@0.35.3(@types/node@24.13.2)) discord.js: specifier: 14.26.4 version: 14.26.4 @@ -271,11 +268,11 @@ importers: specifier: 4.14.0 version: 4.14.0 jose: - specifier: 6.2.3 - version: 6.2.3 + specifier: 6.2.4 + version: 6.2.4 mailparser: - specifier: 3.9.12 - version: 3.9.12 + specifier: 3.9.14 + version: 3.9.14 nodemailer: specifier: '>=9.0.1' version: 9.0.3 @@ -290,14 +287,14 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/cli: dependencies: '@clack/core': - specifier: 1.4.2 - version: 1.4.2 + specifier: 1.4.3 + version: 1.4.3 '@clack/prompts': specifier: 1.5.1 version: 1.5.1 @@ -318,7 +315,7 @@ importers: version: link:../shared '@earendil-works/pi-ai': specifier: 0.82.1 - version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) better-sqlite3: specifier: 12.10.0 version: 12.10.0 @@ -338,8 +335,8 @@ importers: specifier: 9.4.1 version: 9.4.1 ws: - specifier: 8.21.0 - version: 8.21.0 + specifier: 8.21.1 + version: 8.21.1 yaml: specifier: 2.9.0 version: 2.9.0 @@ -357,8 +354,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/comis: dependencies: @@ -372,8 +369,8 @@ importers: specifier: 3.1048.0 version: 3.1048.0 '@clack/core': - specifier: 1.4.2 - version: 1.4.2 + specifier: 1.4.3 + version: 1.4.3 '@clack/prompts': specifier: 1.5.1 version: 1.5.1 @@ -424,13 +421,13 @@ importers: version: link:../web '@earendil-works/pi-agent-core': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-ai': specifier: 0.82.1 - version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@elevenlabs/elevenlabs-js': specifier: 2.49.1 version: 2.49.1 @@ -450,8 +447,8 @@ importers: specifier: 10.0.1 version: 10.0.1 '@homebridge/ciao': - specifier: 1.3.9 - version: 1.3.9 + specifier: 1.3.10 + version: 1.3.10 '@hono/node-server': specifier: 2.0.11 version: 2.0.11(hono@4.12.27) @@ -460,7 +457,7 @@ importers: version: 1.3.1(@hono/node-server@2.0.11(hono@4.12.27))(hono@4.12.27) '@huggingface/transformers': specifier: 4.2.0 - version: 4.2.0 + version: 4.2.0(@types/node@22.20.1) '@line/bot-sdk': specifier: 10.8.0 version: 10.8.0 @@ -544,7 +541,7 @@ importers: version: 4.7.3 '@whiskeysockets/baileys': specifier: 7.0.0-rc13 - version: 7.0.0-rc13(sharp@0.35.0(patch_hash=f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2)) + version: 7.0.0-rc13(sharp@0.35.3(@types/node@22.20.1)) '@xterm/addon-serialize': specifier: 0.14.0 version: 0.14.0 @@ -609,17 +606,17 @@ importers: specifier: 7.0.6 version: 7.0.6 iconv-lite: - specifier: 0.7.2 - version: 0.7.2 + specifier: 0.7.3 + version: 0.7.3 ignore: - specifier: 7.0.5 - version: 7.0.5 + specifier: 7.0.6 + version: 7.0.6 imapflow: specifier: 1.3.6 version: 1.3.6 impit: - specifier: 0.14.2 - version: 0.14.2 + specifier: 0.14.3 + version: 0.14.3 ipaddr.js: specifier: 2.4.0 version: 2.4.0 @@ -627,20 +624,20 @@ importers: specifier: 4.14.0 version: 4.14.0 jose: - specifier: 6.2.3 - version: 6.2.3 + specifier: 6.2.4 + version: 6.2.4 json-rpc-2.0: specifier: 1.7.1 version: 1.7.1 linkedom: - specifier: 0.18.12 - version: 0.18.12 + specifier: 0.18.13 + version: 0.18.13 lru-cache: - specifier: 11.5.1 - version: 11.5.1 + specifier: 11.5.2 + version: 11.5.2 mailparser: - specifier: 3.9.12 - version: 3.9.12 + specifier: 3.9.14 + version: 3.9.14 music-metadata: specifier: '>=11.12.3' version: 11.13.0 @@ -655,13 +652,13 @@ importers: version: 10.2.0 openai: specifier: 6.39.1 - version: 6.39.1(ws@8.21.0)(zod@4.4.3) + version: 6.39.1(ws@8.21.1)(zod@4.4.3) ora: specifier: 9.4.1 version: 9.4.1 p-queue: - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.3.3 + version: 9.3.3 partial-json: specifier: 0.1.7 version: 0.1.7 @@ -690,8 +687,8 @@ importers: specifier: 0.2.2 version: 0.2.2 sharp: - specifier: 0.35.0 - version: 0.35.0(patch_hash=f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2) + specifier: 0.35.3 + version: 0.35.3(@types/node@22.20.1) sqlite-vec: specifier: 0.1.9 version: 0.1.9 @@ -702,14 +699,14 @@ importers: specifier: 4.10.0 version: 4.10.0 typebox: - specifier: 1.2.8 - version: 1.2.8 + specifier: 1.3.6 + version: 1.3.6 undici: specifier: '>=8.5.0' version: 8.5.0 ws: - specifier: 8.21.0 - version: 8.21.0 + specifier: 8.21.1 + version: 8.21.1 yaml: specifier: 2.9.0 version: 2.9.0 @@ -732,7 +729,7 @@ importers: version: link:../shared '@earendil-works/pi-ai': specifier: 0.82.1 - version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) ipaddr.js: specifier: 2.4.0 version: 2.4.0 @@ -756,8 +753,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/daemon: dependencies: @@ -796,10 +793,10 @@ importers: version: link:../skills '@earendil-works/pi-agent-core': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-ai': specifier: 0.82.1 - version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@google/genai': specifier: 1.52.0 version: 1.52.0(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)) @@ -814,7 +811,7 @@ importers: version: 4.12.27 openai: specifier: 6.39.1 - version: 6.39.1(ws@8.21.0)(zod@4.4.3) + version: 6.39.1(ws@8.21.1)(zod@4.4.3) pino: specifier: 10.3.1 version: 10.3.1 @@ -839,7 +836,7 @@ importers: version: link:../observability-otel '@earendil-works/pi-coding-agent': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@types/better-sqlite3': specifier: 7.6.13 version: 7.6.13 @@ -847,8 +844,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/gateway: dependencies: @@ -862,8 +859,8 @@ importers: specifier: workspace:* version: link:../shared '@homebridge/ciao': - specifier: 1.3.9 - version: 1.3.9 + specifier: 1.3.10 + version: 1.3.10 '@hono/node-server': specifier: 2.0.11 version: 2.0.11(hono@4.12.27) @@ -893,8 +890,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/infra: dependencies: @@ -957,8 +954,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/memory: dependencies: @@ -973,22 +970,22 @@ importers: version: link:../shared '@earendil-works/pi-ai': specifier: 0.82.1 - version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) better-sqlite3: specifier: 12.10.0 version: 12.10.0 lru-cache: - specifier: 11.5.1 - version: 11.5.1 + specifier: 11.5.2 + version: 11.5.2 node-llama-cpp: specifier: 3.18.1 version: 3.18.1(typescript@5.9.3) openai: specifier: 6.39.1 - version: 6.39.1(ws@8.21.0)(zod@4.4.3) + version: 6.39.1(ws@8.21.1)(zod@4.4.3) p-queue: - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.3.3 + version: 9.3.3 sqlite-vec: specifier: 0.1.9 version: 0.1.9 @@ -1003,8 +1000,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/observability: dependencies: @@ -1016,10 +1013,10 @@ importers: version: link:../shared '@earendil-works/pi-agent-core': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) zod: specifier: 4.4.3 version: 4.4.3 @@ -1028,8 +1025,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/observability-otel: dependencies: @@ -1083,8 +1080,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/orchestrator: dependencies: @@ -1101,15 +1098,15 @@ importers: specifier: workspace:* version: link:../shared p-queue: - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.3.3 + version: 9.3.3 devDependencies: typescript: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/scheduler: dependencies: @@ -1130,8 +1127,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/shared: devDependencies: @@ -1139,8 +1136,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages/skills: dependencies: @@ -1158,10 +1155,10 @@ importers: version: link:../shared '@earendil-works/pi-agent-core': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-coding-agent': specifier: 0.82.1 - version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + version: 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@elevenlabs/elevenlabs-js': specifier: 2.49.1 version: 2.49.1 @@ -1170,7 +1167,7 @@ importers: version: 1.10.1 '@huggingface/transformers': specifier: 4.2.0 - version: 4.2.0 + version: 4.2.0(@types/node@24.13.2) '@modelcontextprotocol/sdk': specifier: 1.29.0 version: 1.29.0(zod@4.4.3) @@ -1199,26 +1196,26 @@ importers: specifier: 21.3.4 version: 21.3.4 iconv-lite: - specifier: 0.7.2 - version: 0.7.2 + specifier: 0.7.3 + version: 0.7.3 ignore: - specifier: 7.0.5 - version: 7.0.5 + specifier: 7.0.6 + version: 7.0.6 impit: - specifier: 0.14.2 - version: 0.14.2 + specifier: 0.14.3 + version: 0.14.3 linkedom: - specifier: 0.18.12 - version: 0.18.12 + specifier: 0.18.13 + version: 0.18.13 music-metadata: specifier: '>=11.12.3' version: 11.13.0 openai: specifier: 6.39.1 - version: 6.39.1(ws@8.21.0)(zod@4.4.3) + version: 6.39.1(ws@8.21.1)(zod@4.4.3) p-queue: - specifier: 9.3.0 - version: 9.3.0 + specifier: 9.3.3 + version: 9.3.3 pdfjs-dist: specifier: 5.7.284 version: 5.7.284 @@ -1226,11 +1223,11 @@ importers: specifier: 1.60.0 version: 1.60.0 sharp: - specifier: 0.35.0 - version: 0.35.0(patch_hash=f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2) + specifier: 0.35.3 + version: 0.35.3(@types/node@24.13.2) typebox: - specifier: 1.2.8 - version: 1.2.8 + specifier: 1.3.6 + version: 1.3.6 undici: specifier: '>=8.5.0' version: 8.5.0 @@ -1248,8 +1245,8 @@ importers: specifier: 5.9.3 version: 5.9.3 vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) optionalDependencies: node-pty: specifier: 1.1.0 @@ -1283,8 +1280,8 @@ importers: specifier: '>=7.3.2' version: 8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0) vitest: - specifier: 4.1.9 - version: 4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + specifier: 4.1.10 + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) packages: @@ -1441,8 +1438,8 @@ packages: resolution: {integrity: sha512-FILJa1gGKEFTGZAJE9RpVhrjKz3c3h4ar60dSv6cGuDqufQ84YEIS3GAGvZiN+H6yaLbbvTFNejjCC4tXpZEuw==} engines: {node: '>= 20.12.0'} - '@clack/core@1.4.2': - resolution: {integrity: sha512-0Ty/1Gfm+Kb07sXcuESjyKfwEhSy4Ns1AgeEisHb/bDY5fWme0tTeTkU14T1Gmcs17YIjB/teiDe4uaCghbYqQ==} + '@clack/core@1.4.3': + resolution: {integrity: sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==} engines: {node: '>= 20.12.0'} '@clack/prompts@1.5.1': @@ -1761,8 +1758,8 @@ packages: '@hapi/hoek@9.3.0': resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} - '@homebridge/ciao@1.3.9': - resolution: {integrity: sha512-TMy9zy173jDOpnFXDqL3BPIQn5lfcAkSsivYQatCCakoHk4fLGd7QjfAaNGYE3Ox+/ZI6Lq0e1gGcz1qdw/IbA==} + '@homebridge/ciao@1.3.10': + resolution: {integrity: sha512-ogAVdPZ9Fo3kSaULpq+acxbtbIvMtd2TDYEkqHIsqvQ9QHJnRNcjm8NQzegaBzJ3gUK1mVX07UWs2/B0NmabSw==} hasBin: true '@hono/node-server@2.0.11': @@ -1812,160 +1809,160 @@ packages: resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} - '@img/sharp-darwin-arm64@0.35.0': - resolution: {integrity: sha512-ZgaYEwaj+lx/5n4W8GmZ2IYz0PQHjN5eqRcfijWGB+2Aq7ZInZGa0qJyAn6DEtyLuWHRSrmWOqT9q3qqTBvmUQ==} + '@img/sharp-darwin-arm64@0.35.3': + resolution: {integrity: sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==} engines: {node: '>=20.9.0'} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.35.0': - resolution: {integrity: sha512-c1z9LFpKB0slQW3RchwBE8iSVzGp70TNjUUO9k4BZwwW4HH7JBGHeIy4b+kk4n/kcBASb9evKCE3/7Slmslgiw==} + '@img/sharp-darwin-x64@0.35.3': + resolution: {integrity: sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==} engines: {node: '>=20.9.0'} cpu: [x64] os: [darwin] - '@img/sharp-freebsd-wasm32@0.35.0': - resolution: {integrity: sha512-Li2KTev0H90kEtnJHkI9xQojXt1AqWmFBMXiPw5kqd1jQgP7gi5HVK/qC5Rmh/59NuAwUuPzzPITmX22NomYYQ==} + '@img/sharp-freebsd-wasm32@0.35.3': + resolution: {integrity: sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==} engines: {node: '>=20.9.0'} os: [freebsd] - '@img/sharp-libvips-darwin-arm64@1.3.0': - resolution: {integrity: sha512-EKbmBKtyTH+GPFDRw2TgK2oV6hyxxlJVIar4hoTYSNmIwipgMFdxPQqR392GmfdsPGWga0mCFN1cCKjRb9cljw==} + '@img/sharp-libvips-darwin-arm64@1.3.2': + resolution: {integrity: sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.3.0': - resolution: {integrity: sha512-Pl2OmOvrJ42adUllESxBsG54PfXLo1OYg9i3c5/5Ln/qJ0gZuTM9YMhQJPIbXqwidLRc/c2zuHt4RsrymmNv7A==} + '@img/sharp-libvips-darwin-x64@1.3.2': + resolution: {integrity: sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.3.0': - resolution: {integrity: sha512-C0SqjoFKnszqa44EQ7xoaT48nnO0lOyXEULfXMWi8krrjOPGYkeK30Okzla6ATbBYsyZ0ySinK0FVkpv3DwzfQ==} + '@img/sharp-libvips-linux-arm64@1.3.2': + resolution: {integrity: sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-arm@1.3.0': - resolution: {integrity: sha512-A8UpHoUDW4DwnXoV6+q3C1s7QLRAHtPDEjWuNZjwHMyoCNZnm0GeNN8ls9f/bsEYTRQRW96C/n34XJQHJ2fT7A==} + '@img/sharp-libvips-linux-arm@1.3.2': + resolution: {integrity: sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-ppc64@1.3.0': - resolution: {integrity: sha512-WOpkVxAjFd369iaIzEgNRreFD+gWdUMIGD5zplhNKNeqS6mm5dac3q2AFyCBmzYoAdouzZvRBgxy4z8QHZb4/A==} + '@img/sharp-libvips-linux-ppc64@1.3.2': + resolution: {integrity: sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==} cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-riscv64@1.3.0': - resolution: {integrity: sha512-DRWw0mOHusrCCuw2rqP87oLg6PGlkomVDFqw2hIwsSfwWpu4k3XLcBPaKKl6ct/GtL/cwNkgwjV/tc0Mqht3VA==} + '@img/sharp-libvips-linux-riscv64@1.3.2': + resolution: {integrity: sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==} cpu: [riscv64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-s390x@1.3.0': - resolution: {integrity: sha512-9APy+nFWhHS+kzLgWZfLcyrUd7YqnAQVa4BPOo4xkoHpdoktOAPG4cEr9+Jpl0TtqfVmcMJimNL5qNTyyOHZNA==} + '@img/sharp-libvips-linux-s390x@1.3.2': + resolution: {integrity: sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-x64@1.3.0': - resolution: {integrity: sha512-y9RNUYDe2A1UAdhLyfeOodGRszQdaEoe4nfOpp/sNVPl2CWIcUyFaDoCh4vPLPxu19803j2naLqZup2WxDXCLA==} + '@img/sharp-libvips-linux-x64@1.3.2': + resolution: {integrity: sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linuxmusl-arm64@1.3.0': - resolution: {integrity: sha512-cC1wkC0Mlucd0KSiGrLkJnB/ZqPvZCntc/Lk7ZnYO5ZSbF2euNek4Xvxafojq+wN1q/W0eprdpUIjUr/EV2PBg==} + '@img/sharp-libvips-linuxmusl-arm64@1.3.2': + resolution: {integrity: sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.3.0': - resolution: {integrity: sha512-LiYMhUZicB1QG//+RvmYZpXJO8fYRENfp+MZUCnG9aw+AKvGAy9gPaCnuwsPcBFs8EV66M0NNxj9VHcNklE8zw==} + '@img/sharp-libvips-linuxmusl-x64@1.3.2': + resolution: {integrity: sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-linux-arm64@0.35.0': - resolution: {integrity: sha512-4+4XHLNT5wDT0roYlHTEmH9lDKt0acf9Tv+3hM3iceOirkxrR404/3WjAYZ9F9CkHrxeRcGLJXbi4vluMZ9O+A==} + '@img/sharp-linux-arm64@0.35.3': + resolution: {integrity: sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==} engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-linux-arm@0.35.0': - resolution: {integrity: sha512-VVlpEWwizEFIOom0zdoeKuO5nuTswzVE5uHcBNvHzmeHUpNFajY3HFfbQ+zIH4E2kVaZ/yVxmsShW56TtEy4uA==} + '@img/sharp-linux-arm@0.35.3': + resolution: {integrity: sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==} engines: {node: '>=20.9.0'} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-linux-ppc64@0.35.0': - resolution: {integrity: sha512-N3hzbEpUTJC8pWpPVJvgzGxM+so/MAXc8O2s/53B0LL9ZGpfXpME7Wizkc5d/8fRBlBtkDjzoZGDCqqNDHqLEw==} + '@img/sharp-linux-ppc64@0.35.3': + resolution: {integrity: sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==} engines: {node: '>=20.9.0'} cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-linux-riscv64@0.35.0': - resolution: {integrity: sha512-l6vmKVPnbS0RhVMbyxP5meAARsbhCnBN4fy31qz0+3a6Rv4jEqfzDrT89y6ZPkCi0AJGnwp2En528yXo401Hpw==} + '@img/sharp-linux-riscv64@0.35.3': + resolution: {integrity: sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==} engines: {node: '>=20.9.0'} cpu: [riscv64] os: [linux] libc: [glibc] - '@img/sharp-linux-s390x@0.35.0': - resolution: {integrity: sha512-MYlMiPFiv/EKPAHnp3yNZ9AAWFsxga9c5Bkc6wkar6bqzHLlkGVJHRm0u1ei+VXnZxp3Mz9MG9ZIsI8vSOf3sQ==} + '@img/sharp-linux-s390x@0.35.3': + resolution: {integrity: sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==} engines: {node: '>=20.9.0'} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-linux-x64@0.35.0': - resolution: {integrity: sha512-TYaItB5oj1ioXjhyn2xrR208vf+YuIIcHptQWRRaBmFhvIvL9D72DXN8w75xup0KXA8UdEAhQ9Qb2S49FD/9Cw==} + '@img/sharp-linux-x64@0.35.3': + resolution: {integrity: sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==} engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.35.0': - resolution: {integrity: sha512-DSTb6ijQzqe6DdAaOBVqJ/SYf1vO8EW5bK6X6LRXufEBebf2722VCdvBUtZ3rtV0x2ApfPNDy/p7LrrjaWjiyQ==} + '@img/sharp-linuxmusl-arm64@0.35.3': + resolution: {integrity: sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==} engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-linuxmusl-x64@0.35.0': - resolution: {integrity: sha512-K7ykQ+26Rt6+4BTU80AuGgTPIYX86UxiAKT4rcXX/WNTo7k1ZxpKz+TguHnwVpCqQK3B5PK0vZ0ZBe6nz/ib1w==} + '@img/sharp-linuxmusl-x64@0.35.3': + resolution: {integrity: sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==} engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-wasm32@0.35.0': - resolution: {integrity: sha512-9woLIFORERCr+6cWu87dQ22J34EExkhc73U1kZW0c+RclQqWetoodByp4dWZ/hN8/KVmTRAx2HOnUwib8AwZdA==} + '@img/sharp-wasm32@0.35.3': + resolution: {integrity: sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==} engines: {node: '>=20.9.0'} - '@img/sharp-webcontainers-wasm32@0.35.0': - resolution: {integrity: sha512-t+kie1TOyaDM6Dho+f+y0VqIUNhYQaKCUahuZVi0E0frgdiaOaPsDxDW3wfKacUdaNBCnK/ZDBMg33ydvHj8uA==} + '@img/sharp-webcontainers-wasm32@0.35.3': + resolution: {integrity: sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==} engines: {node: '>=20.9.0'} cpu: [wasm32] - '@img/sharp-win32-arm64@0.35.0': - resolution: {integrity: sha512-M5eKxug0dabbaWgFKvPa3odNs2OpaP+81NASfGKkt4GcYXpNhSu7CaeYxWkLNV6vHmUp4hnCxnxrUyhUJhXbKA==} + '@img/sharp-win32-arm64@0.35.3': + resolution: {integrity: sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==} engines: {node: '>=20.9.0'} cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.35.0': - resolution: {integrity: sha512-z0+pZ03QCDvdVN0Ez9IX/yjWC19ikMlXrmdYMwYNLTh2BLPx3hXWPvyqWfquZ0BTO9O6GVOjIVoTcyyacMnWlQ==} + '@img/sharp-win32-ia32@0.35.3': + resolution: {integrity: sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==} engines: {node: ^20.9.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.35.0': - resolution: {integrity: sha512-feNnlz5ZHKr0MY1LPHvZQyJeBkbo4ctsn0D8FvA53VTw5TC63rfEL2UrWbkSBR19htSE7Mw78xYVwdJqoMWVHw==} + '@img/sharp-win32-x64@0.35.3': + resolution: {integrity: sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==} engines: {node: '>=20.9.0'} cpu: [x64] os: [win32] @@ -2913,20 +2910,20 @@ packages: '@ungap/structured-clone@1.3.2': resolution: {integrity: sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA==} - '@vitest/coverage-v8@4.1.9': - resolution: {integrity: sha512-G9/lgqibheLVBDRuya45EbsEXTYcWoSG+TLg7i2axuzx0Eq62eXn+aWXyaVdV5vKvFSWd6ywcX8hA7la9Pvu8g==} + '@vitest/coverage-v8@4.1.10': + resolution: {integrity: sha512-IM49HmthevbgAO4anp1hwtoT9wYe59w0LR00gr+eagHE+ZJ5lK4sLPeO0ubgoJcwLk6dehU3R24N+FbEEKDc8g==} peerDependencies: - '@vitest/browser': 4.1.9 - vitest: 4.1.9 + '@vitest/browser': 4.1.10 + vitest: 4.1.10 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.1.9': - resolution: {integrity: sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA==} + '@vitest/expect@4.1.10': + resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} - '@vitest/mocker@4.1.9': - resolution: {integrity: sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw==} + '@vitest/mocker@4.1.10': + resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==} peerDependencies: msw: ^2.4.9 vite: '>=7.3.2' @@ -2936,20 +2933,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.9': - resolution: {integrity: sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A==} + '@vitest/pretty-format@4.1.10': + resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==} - '@vitest/runner@4.1.9': - resolution: {integrity: sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg==} + '@vitest/runner@4.1.10': + resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==} - '@vitest/snapshot@4.1.9': - resolution: {integrity: sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA==} + '@vitest/snapshot@4.1.10': + resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==} - '@vitest/spy@4.1.9': - resolution: {integrity: sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA==} + '@vitest/spy@4.1.10': + resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==} - '@vitest/utils@4.1.9': - resolution: {integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==} + '@vitest/utils@4.1.10': + resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} '@vladfrangu/async_event_emitter@2.4.7': resolution: {integrity: sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g==} @@ -2977,7 +2974,7 @@ packages: audio-decode: ^2.1.3 jimp: ^1.6.1 link-preview-js: ^3.0.0 - sharp: 0.35.0 + sharp: 0.35.3 peerDependenciesMeta: audio-decode: optional: true @@ -2995,8 +2992,8 @@ packages: '@zone-eu/mailsplit@5.4.12': resolution: {integrity: sha512-w7Gy+NvjZ0MiXm8F6zfjImAqcTONKDImgWVBjDKQVFUXWuz3VFM5levNArkL2M877ajql5+bkS2pDV56injlmg==} - '@zone-eu/mailsplit@5.4.13': - resolution: {integrity: sha512-j40NeNlSAivqnKEjzZYsGP/bKWr2zwuyb8XOYsC3i0ZlfM5UnTYTa7aCRkE8rYQvVzE1dRjVYdvZ1Epi6x+h6w==} + '@zone-eu/mailsplit@5.4.14': + resolution: {integrity: sha512-rz0FQOhN3Vq1XrSeSSa9+dPcaFbBxmQPjiZm6zS9oxdVHV7rOWIAYX3yP2YAUf0qBncY8CI+NogzPCmMVrMXcw==} abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} @@ -3134,8 +3131,9 @@ packages: resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} engines: {node: '>=18'} - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boolbase@2.0.0: + resolution: {integrity: sha512-DkVaaQHymRhpYEYo9x1oo7Q7B0Y6KJUsjm3c9eTyFDby4MHLBTwZ6ZDWBel5zrYxj1WsZgC5oLpiz+93MluXeA==} + engines: {node: '>=20.19.0'} boolean@3.2.0: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} @@ -3347,12 +3345,13 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - css-select@5.2.2: - resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} + css-select@7.0.0: + resolution: {integrity: sha512-snmjEVXy+1LnwXdxhYvTMj1d9tOh4HxkA1YmoayVBeeyR2C14Pum7fcxJIm4SswYspVy866eYNwlH6xC3/VH5g==} + engines: {node: '>=20.19.0'} - css-what@6.2.2: - resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} - engines: {node: '>= 6'} + css-what@8.0.0: + resolution: {integrity: sha512-DH0Bqq3DNp5tdOReuNyAA+Ev4Y2GS5FMbZpeTLP6C4CDi0h5nL0BmUPChXw3o/qbHLDWHl49sbNqQVY7bMSDdw==} + engines: {node: '>=20.19.0'} cssom@0.5.0: resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} @@ -3504,16 +3503,32 @@ packages: dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom-serializer@3.1.1: + resolution: {integrity: sha512-4MEa38/QexBob6gFNwu+EGdWvhJ1OKuNwdYY3Y3NyeWDQfnGeDYQUDfIRzWu5B5gsv03so2Uxd28YC6zrsx3Lw==} + engines: {node: '>=20.19.0'} + domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domelementtype@3.0.0: + resolution: {integrity: sha512-umCQid3jKbDmVjx8jGaW7uUykm4DEUeyV21hPxNMo2nV955DhUThwqyOIDtreepP31hl84X7G5U9ZfsWvIB3Pg==} + engines: {node: '>=20.19.0'} + domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} + domhandler@6.0.1: + resolution: {integrity: sha512-gYzvtM72ZtxQO0T048kd6HWSbbGCNOUwcnfQ01cqIJ4X2IYKFFHZ5mKvrQETcFXxsRObZulDaKmy//R7TPtsBg==} + engines: {node: '>=20.19.0'} + domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + domutils@4.0.2: + resolution: {integrity: sha512-qI4JLRKnSzqFqr7hAlS5xQDusBCjKSEG4t4+7aNrIQMHBcsC2TGEhuyABJdYkgSewL57PNLYEiibY2iPKhKpaA==} + engines: {node: '>=20.19.0'} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -3557,6 +3572,10 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} + entities@8.0.0: + resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==} + engines: {node: '>=20.19.0'} + env-var@7.5.0: resolution: {integrity: sha512-mKZOzLRN0ETzau2W2QXefbFjo5EF4yWq28OyKb9ICdeNhHJlOE/pHHnz4hdYJ9cNZXcJHo5xN4OT4pzuSHSNvA==} engines: {node: '>=10'} @@ -4074,6 +4093,10 @@ packages: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -4085,63 +4108,67 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} + ignore@7.0.6: + resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} + engines: {node: '>= 4'} + imapflow@1.3.6: resolution: {integrity: sha512-Phjp//d2LKu3UcwhFD5q/BAOdZ7T+pW221TLmu2pZhTK2IvUj0A8rY/LyYsg8CbVUJ1/csE5t3ZZLyRWsHU/Dw==} - impit-darwin-arm64@0.14.2: - resolution: {integrity: sha512-ChvxbJj893rWAhHXJ3kkGe8Pg4lsZwQ1Dt0w/noCkNe436gm0nIQ/eBBbwIJBsY4Ev7q6fgi/QerF2trSyUXmg==} + impit-darwin-arm64@0.14.3: + resolution: {integrity: sha512-kMoQB+CR+a954pnhe4kf1O2RyJCsqGRE95jIXfgqNOiIMS5O1z0cOMzG/sohJk/nodZVSJ5VdWEV4BKhRWPFSA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - impit-darwin-x64@0.14.2: - resolution: {integrity: sha512-r1g3WkwljcRgY1V0yBCUJ0/Sy6OHLc4RUrfz3mHi2X4WvkTk7aY17K4X+baBx+tcpOfE/ME/iWAY/PesOM9JVA==} + impit-darwin-x64@0.14.3: + resolution: {integrity: sha512-ft9+kjz1pR8H5xbbf5U1EgwaaIea5iXHxBf2Q3NoinPpiV7KgyzYSr83pCSrAY6evWk+smG9shHgzhQtgbj1Rg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - impit-linux-arm64-gnu@0.14.2: - resolution: {integrity: sha512-JZJqUnEqFiktcXVgg/AIKkSv8SGu5zoQ7lf9CSvS0eEiwSlHnLUPwBiFc9/mSHDIUQkM9qlvJyGUiGqGEt9K6A==} + impit-linux-arm64-gnu@0.14.3: + resolution: {integrity: sha512-+mwta93S6Ndfpca3DDblvrqV1g8Bg6gZFOlEiJHfGJZpiUIQE+A/Pjg2e+inV+WrTtlnLsvff8lgwFvkIGnRug==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - impit-linux-arm64-musl@0.14.2: - resolution: {integrity: sha512-ZsL9JAFEZBP3tvT8h4pkcg/b/MtHP8mZSgsncD6z9+qKM/IjqiDYwQunKaAYMwGu0EEbjtaU4C1zTK6ipnvwbA==} + impit-linux-arm64-musl@0.14.3: + resolution: {integrity: sha512-wYhfH1J8laWkpSN2SAFCKx9npY4vXrk23ex+tOzTGf2xBBqIhpMUff2wa6dOFb0or6EhZHBssoRf0HK3h/htXQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - impit-linux-x64-gnu@0.14.2: - resolution: {integrity: sha512-3/keeSOCiByIfbOpmvixRXDlCdcyf112ru0fNl7AcpC1RtQz48ctsAn6R4+xEEnULO63By5VK9X0HNm1O2gUdw==} + impit-linux-x64-gnu@0.14.3: + resolution: {integrity: sha512-hAYnutJDGQO5bPvTPKBBFkHgbB7QL7QLDse8c4s21VSzC/EqGliSS3UqR5ZUUwaFdm3t8DJsXOr+gboAUwDR7w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - impit-linux-x64-musl@0.14.2: - resolution: {integrity: sha512-BiUXZhj6lQOrZmeYB4HqYiBS5XvM/clrSVyZyae/CJshELUyYOLNxnTOxabd0tWR6J9ntC7bZwDrwskWD/TePA==} + impit-linux-x64-musl@0.14.3: + resolution: {integrity: sha512-wXBeHiqCjuyqxg4u5eY4OBNVzsS4Karz/ms/0mjB8aqVZLNER1NaUTeE4J3eZCdytFaJRaAeQvKTH8HfjpPsQg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - impit-win32-arm64-msvc@0.14.2: - resolution: {integrity: sha512-GQT3ITrIbh5P6FLzoHGuBpjrP/rzZoC3T0510+yCtLdQ1qQQzEIi1iCUElpCokyL4J/D4BdCRMS3wv3TzhcM4w==} + impit-win32-arm64-msvc@0.14.3: + resolution: {integrity: sha512-XiF8MYpm4tF8TMbtsWrcEDDs6NxRNeirfiHM/AyKcr2jiN34hZwbZDM0EseD30PDwb2Pny2JWB+zTxpE1P5CZg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - impit-win32-x64-msvc@0.14.2: - resolution: {integrity: sha512-J6MpD0GzoMN9ydb2iT2oagE0Y4rbkKf8fDxrMh3/txp2sfzYDDfbcC4sySMm2b8QB4ERhB6N5YzcpGBAHbx/0w==} + impit-win32-x64-msvc@0.14.3: + resolution: {integrity: sha512-HIaLSpU5SGVx3UDH/R3ZaGMURVgyRVjmalqXj65ABxVUqfXiBo1t5ZObDPPjqvLT3klPnrya1+xF1DQ4dfT+og==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - impit@0.14.2: - resolution: {integrity: sha512-8JlirJDFdrZg7a7nV00Jn5WO8K+X1FJQSVFrChxRyzkSAFv6mmGgriXS33wbJFUxpiOGY/MJpHY8hhmLfDcJDw==} + impit@0.14.3: + resolution: {integrity: sha512-SbCLoeW0YDRox5kQoy71jtpjZE+BwjWO411OdgfbLMbNmSX79s5Y0Y2vCE7AO6zQSq9F4Fu8SJTCKnp8rXQzpg==} engines: {node: '>= 20'} imurmurhash@0.1.4: @@ -4316,8 +4343,8 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - jose@6.2.3: - resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + jose@6.2.4: + resolution: {integrity: sha512-N8acGzVsQy6M/fjFcxtysNc4Q379TcM5dM/qKkNtsHFji88yANnXTr7BLeP75iPnFwBfQzM/jg2BZ9+HZrHCZA==} joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} @@ -4391,8 +4418,8 @@ packages: libmime@5.3.8: resolution: {integrity: sha512-ZrCY+Q66mPvasAfjsQ/IgahzoBvfE1VdtGRpo1hwRB1oK3wJKxhKA3GOcd2a6j7AH5eMFccxK9fBoCpRZTf8ng==} - libmime@5.4.0: - resolution: {integrity: sha512-MAWyU2qYtCsrZ6GClgukz2jx73NQrzA6ASo9qzThuTG+A7+H3lWQuBsjoy9lls+v6q/epAeBdEMJ3T0f4b+uRw==} + libmime@5.4.1: + resolution: {integrity: sha512-0wHGhsofo9IdQPenr3BBHXuxcwMq4atFUTsZ9Ogc1OvI5h4rUdDIrBQEN9JHjCXfDMrE59LUMJWsTD82wTYk8A==} libqp@2.1.1: resolution: {integrity: sha512-0Wd+GPz1O134cP62YU2GTOPNA7Qgl09XwCqM5zpBv87ERCXdfDtyKXvV7c9U22yWJh44QZqBocFnXN11K96qow==} @@ -4480,8 +4507,8 @@ packages: resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} engines: {node: '>= 12.0.0'} - linkedom@0.18.12: - resolution: {integrity: sha512-jalJsOwIKuQJSeTvsgzPe9iJzyfVaEJiEXl+25EkKevsULHvMJzpNqwvj1jOESWdmgKDiXObyjOYwlUqG7wo1Q==} + linkedom@0.18.13: + resolution: {integrity: sha512-ES/o9qotMpzpN2MHs+Iq/JcVoOj8Fa5wiQYrTdFpvAnwXL0g66XHHUc9WUMk6nAlBtGsFQ24ne+SYnvnaQ2FSw==} engines: {node: '>=16'} peerDependencies: canvas: '>= 2' @@ -4557,6 +4584,10 @@ packages: resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} engines: {node: 20 || >=22} + lru-cache@11.5.2: + resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} + engines: {node: 20 || >=22} + madge@8.0.0: resolution: {integrity: sha512-9sSsi3TBPhmkTCIpVQF0SPiChj1L7Rq9kU2KDG1o6v2XH9cCw086MopjVCD+vuoL5v8S77DTbVopTO8OUiQpIw==} engines: {node: '>=18'} @@ -4576,8 +4607,8 @@ packages: magicast@0.5.3: resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} - mailparser@3.9.12: - resolution: {integrity: sha512-kbT4xtkKEddonhDTjjWWVFJlI5axm0S9QuIAHs1ue3IEw+fNd9o4ytPKaG7p1LOE2aKifrWLjx/omOGLHz/9RQ==} + mailparser@3.9.14: + resolution: {integrity: sha512-3QD6TRXcyXtq2NCuyA2AEjqmallQkyxYmZI9GMCIvQDCaB9Uc034WUI1x8RUBYFnk5+p7h14JEz4O/lrxQmttw==} make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} @@ -4868,8 +4899,9 @@ packages: resolution: {integrity: sha512-n+YP+NKwR5zRWa60k3GiQ6Q3B4KXCoAw40dAKeCtYn020iNN74aWK2liXIC3ZEATeGql7we3tE3t8QwhY0eskw==} engines: {node: '>=6.0.0'} - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nth-check@3.0.1: + resolution: {integrity: sha512-GX0gsdbGVCgnRgbeGaubfjpBXyYRWOOCVeYh08bSQvDZqxz5ndXs1OTfAt/h36G1xvI94YIspsI0sVFqAV9+RQ==} + engines: {node: '>=20.19.0'} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -4975,8 +5007,8 @@ packages: resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} - p-queue@9.3.0: - resolution: {integrity: sha512-7NED7xhQ74Ngp4JP/2e0VZHp7vSWfJfqeiR92jPgxsz6m0Se4P03YoTKa9dDXyZ3r6P616gUXttrB6nnHYKang==} + p-queue@9.3.3: + resolution: {integrity: sha512-NXAOdnEe5FsZJfT4oK84lE1Y5cFFdWlRuOo5tww8DyNMxyRXwn39fIkUtNLKppcPC+UYU/bXujNCUGDv01y7CA==} engines: {node: '>=20'} p-retry@4.6.2: @@ -5390,9 +5422,14 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sharp@0.35.0: - resolution: {integrity: sha512-BqvG5XbwPZ4NV0DK90d86leEECMsoa8bO0nqnKWlBDYxri4GJ7c4EDInaF6q20lTh/mATmnDIKWJFfXnoVfH5g==} + sharp@0.35.3: + resolution: {integrity: sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==} engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -5723,8 +5760,8 @@ packages: resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} engines: {node: '>= 18'} - typebox@1.2.8: - resolution: {integrity: sha512-rlsKhsd7L3082m9nxhFIB4Gl8jizLd/6YlFAWaz96hdV8+VJRjwYaYmDlT0jlTRwkb48SxCSSirqUtrg/HilNw==} + typebox@1.3.6: + resolution: {integrity: sha512-Sc8RA0NCMEFmApHNU9ZMzqcpQj46She44J8ffpLM/bdhLNUZKq7DJumcLcsFx1gRmDfQPgCgOmFFJ7rcnfWNyA==} typescript-eslint@8.60.1: resolution: {integrity: sha512-6m5hkkRAp8lKvhVpcprAIn5KkehQEh+47oHH2VGnExEh7dhNxXlg6GPAOIu6TxbVQxhebrJDvjl3020ooiWCMA==} @@ -5860,20 +5897,20 @@ packages: yaml: optional: true - vitest@4.1.9: - resolution: {integrity: sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==} + vitest@4.1.10: + resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.9 - '@vitest/browser-preview': 4.1.9 - '@vitest/browser-webdriverio': 4.1.9 - '@vitest/coverage-istanbul': 4.1.9 - '@vitest/coverage-v8': 4.1.9 - '@vitest/ui': 4.1.9 + '@vitest/browser-playwright': 4.1.10 + '@vitest/browser-preview': 4.1.10 + '@vitest/browser-webdriverio': 4.1.10 + '@vitest/coverage-istanbul': 4.1.10 + '@vitest/coverage-v8': 4.1.10 + '@vitest/ui': 4.1.10 happy-dom: '*' jsdom: '*' vite: '>=7.3.2' @@ -5958,8 +5995,8 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.21.0: - resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + ws@8.21.1: + resolution: {integrity: sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -6286,7 +6323,7 @@ snapshots: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@clack/core@1.4.2': + '@clack/core@1.4.3': dependencies: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 @@ -6356,19 +6393,19 @@ snapshots: '@vladfrangu/async_event_emitter': 2.4.7 discord-api-types: 0.38.49 tslib: 2.8.1 - ws: 8.21.0 + ws: 8.21.1 transitivePeerDependencies: - bufferutil - utf-8-validate '@discoveryjs/json-ext@1.1.0': {} - '@earendil-works/pi-agent-core@0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3)': + '@earendil-works/pi-agent-core@0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': dependencies: - '@earendil-works/pi-ai': 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + '@earendil-works/pi-ai': 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) diff: 8.0.4 ignore: 7.0.5 - typebox: 1.2.8 + typebox: 1.3.6 yaml: 2.9.0 transitivePeerDependencies: - '@modelcontextprotocol/sdk' @@ -6378,7 +6415,7 @@ snapshots: - ws - zod - '@earendil-works/pi-ai@0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3)': + '@earendil-works/pi-ai@0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': dependencies: '@anthropic-ai/sdk': 0.109.0(zod@4.4.3) '@aws-sdk/client-bedrock-runtime': 3.1048.0 @@ -6388,9 +6425,9 @@ snapshots: '@smithy/node-http-handler': 4.7.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 - openai: 6.26.0(ws@8.21.0)(zod@4.4.3) + openai: 6.26.0(ws@8.21.1)(zod@4.4.3) partial-json: 0.1.7 - typebox: 1.2.8 + typebox: 1.3.6 transitivePeerDependencies: - '@modelcontextprotocol/sdk' - bufferutil @@ -6399,10 +6436,10 @@ snapshots: - ws - zod - '@earendil-works/pi-coding-agent@0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3)': + '@earendil-works/pi-coding-agent@0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3)': dependencies: - '@earendil-works/pi-agent-core': 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) - '@earendil-works/pi-ai': 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.0)(zod@4.4.3) + '@earendil-works/pi-agent-core': 0.82.1(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) + '@earendil-works/pi-ai': 0.82.1(patch_hash=0ae006b5a6df1c715166721dd83127ffd0b675a9ee6c19c75399e33aef19a163)(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(ws@8.21.1)(zod@4.4.3) '@earendil-works/pi-tui': 0.82.1 '@silvia-odwyer/photon-node': 0.3.4 chalk: 5.6.2 @@ -6416,7 +6453,7 @@ snapshots: minimatch: 10.2.5 proper-lockfile: 4.1.2 semver: 7.8.0 - typebox: 1.2.8 + typebox: 1.3.6 undici: 8.5.0 yaml: 2.9.0 optionalDependencies: @@ -6438,7 +6475,7 @@ snapshots: dependencies: command-exists: 1.2.9 node-fetch: 2.7.0 - ws: 8.21.0 + ws: 8.21.1 transitivePeerDependencies: - bufferutil - encoding @@ -6583,7 +6620,7 @@ snapshots: google-auth-library: 10.9.0 p-retry: 4.6.2 protobufjs: 8.7.1 - ws: 8.21.0 + ws: 8.21.1 optionalDependencies: '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) transitivePeerDependencies: @@ -6616,7 +6653,7 @@ snapshots: '@hapi/hoek@9.3.0': {} - '@homebridge/ciao@1.3.9': + '@homebridge/ciao@1.3.10': dependencies: debug: 4.4.3 fast-deep-equal: 3.1.3 @@ -6633,7 +6670,7 @@ snapshots: dependencies: '@hono/node-server': 2.0.11(hono@4.12.27) hono: 4.12.27 - ws: 8.21.0 + ws: 8.21.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -6642,13 +6679,25 @@ snapshots: '@huggingface/tokenizers@0.1.3': {} - '@huggingface/transformers@4.2.0': + '@huggingface/transformers@4.2.0(@types/node@22.20.1)': dependencies: '@huggingface/jinja': 0.5.9 '@huggingface/tokenizers': 0.1.3 onnxruntime-node: 1.24.3 onnxruntime-web: 1.26.0-dev.20260416-b7804b056c - sharp: 0.35.0(patch_hash=f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2) + sharp: 0.35.3(@types/node@22.20.1) + transitivePeerDependencies: + - '@types/node' + + '@huggingface/transformers@4.2.0(@types/node@24.13.2)': + dependencies: + '@huggingface/jinja': 0.5.9 + '@huggingface/tokenizers': 0.1.3 + onnxruntime-node: 1.24.3 + onnxruntime-web: 1.26.0-dev.20260416-b7804b056c + sharp: 0.35.3(@types/node@24.13.2) + transitivePeerDependencies: + - '@types/node' '@humanfs/core@0.19.2': dependencies: @@ -6668,108 +6717,108 @@ snapshots: '@img/colour@1.1.0': {} - '@img/sharp-darwin-arm64@0.35.0': + '@img/sharp-darwin-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.3.0 + '@img/sharp-libvips-darwin-arm64': 1.3.2 optional: true - '@img/sharp-darwin-x64@0.35.0': + '@img/sharp-darwin-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.3.0 + '@img/sharp-libvips-darwin-x64': 1.3.2 optional: true - '@img/sharp-freebsd-wasm32@0.35.0': + '@img/sharp-freebsd-wasm32@0.35.3': dependencies: - '@img/sharp-wasm32': 0.35.0 + '@img/sharp-wasm32': 0.35.3 optional: true - '@img/sharp-libvips-darwin-arm64@1.3.0': + '@img/sharp-libvips-darwin-arm64@1.3.2': optional: true - '@img/sharp-libvips-darwin-x64@1.3.0': + '@img/sharp-libvips-darwin-x64@1.3.2': optional: true - '@img/sharp-libvips-linux-arm64@1.3.0': + '@img/sharp-libvips-linux-arm64@1.3.2': optional: true - '@img/sharp-libvips-linux-arm@1.3.0': + '@img/sharp-libvips-linux-arm@1.3.2': optional: true - '@img/sharp-libvips-linux-ppc64@1.3.0': + '@img/sharp-libvips-linux-ppc64@1.3.2': optional: true - '@img/sharp-libvips-linux-riscv64@1.3.0': + '@img/sharp-libvips-linux-riscv64@1.3.2': optional: true - '@img/sharp-libvips-linux-s390x@1.3.0': + '@img/sharp-libvips-linux-s390x@1.3.2': optional: true - '@img/sharp-libvips-linux-x64@1.3.0': + '@img/sharp-libvips-linux-x64@1.3.2': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.3.0': + '@img/sharp-libvips-linuxmusl-arm64@1.3.2': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.3.0': + '@img/sharp-libvips-linuxmusl-x64@1.3.2': optional: true - '@img/sharp-linux-arm64@0.35.0': + '@img/sharp-linux-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.3.0 + '@img/sharp-libvips-linux-arm64': 1.3.2 optional: true - '@img/sharp-linux-arm@0.35.0': + '@img/sharp-linux-arm@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.3.0 + '@img/sharp-libvips-linux-arm': 1.3.2 optional: true - '@img/sharp-linux-ppc64@0.35.0': + '@img/sharp-linux-ppc64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.3.0 + '@img/sharp-libvips-linux-ppc64': 1.3.2 optional: true - '@img/sharp-linux-riscv64@0.35.0': + '@img/sharp-linux-riscv64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.3.0 + '@img/sharp-libvips-linux-riscv64': 1.3.2 optional: true - '@img/sharp-linux-s390x@0.35.0': + '@img/sharp-linux-s390x@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.3.0 + '@img/sharp-libvips-linux-s390x': 1.3.2 optional: true - '@img/sharp-linux-x64@0.35.0': + '@img/sharp-linux-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.3.0 + '@img/sharp-libvips-linux-x64': 1.3.2 optional: true - '@img/sharp-linuxmusl-arm64@0.35.0': + '@img/sharp-linuxmusl-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.3.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.2 optional: true - '@img/sharp-linuxmusl-x64@0.35.0': + '@img/sharp-linuxmusl-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.3.0 + '@img/sharp-libvips-linuxmusl-x64': 1.3.2 optional: true - '@img/sharp-wasm32@0.35.0': + '@img/sharp-wasm32@0.35.3': dependencies: '@emnapi/runtime': 1.11.1 optional: true - '@img/sharp-webcontainers-wasm32@0.35.0': + '@img/sharp-webcontainers-wasm32@0.35.3': dependencies: - '@img/sharp-wasm32': 0.35.0 + '@img/sharp-wasm32': 0.35.3 optional: true - '@img/sharp-win32-arm64@0.35.0': + '@img/sharp-win32-arm64@0.35.3': optional: true - '@img/sharp-win32-ia32@0.35.0': + '@img/sharp-win32-ia32@0.35.3': optional: true - '@img/sharp-win32-x64@0.35.0': + '@img/sharp-win32-x64@0.35.3': optional: true '@isaacs/fs-minipass@4.0.1': @@ -6893,7 +6942,7 @@ snapshots: '@mistralai/mistralai@2.2.6(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/semantic-conventions': 1.41.1 - ws: 8.21.0 + ws: 8.21.1 zod: 4.4.3 zod-to-json-schema: 3.25.2(zod@4.4.3) optionalDependencies: @@ -6905,7 +6954,7 @@ snapshots: '@mistralai/mistralai@2.2.6(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/semantic-conventions': 1.41.1 - ws: 8.21.0 + ws: 8.21.1 zod: 4.4.3 zod-to-json-schema: 3.25.2(zod@4.4.3) optionalDependencies: @@ -6927,7 +6976,7 @@ snapshots: express: 5.2.1 express-rate-limit: 8.5.2(express@5.2.1) hono: 4.12.27 - jose: 6.2.3 + jose: 6.2.4 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 @@ -7431,7 +7480,7 @@ snapshots: '@types/node': 22.20.1 '@types/ws': 8.18.1 eventemitter3: 5.0.4 - ws: 8.21.0 + ws: 8.21.1 transitivePeerDependencies: - bufferutil - debug @@ -7675,7 +7724,7 @@ snapshots: '@typescript-eslint/utils': 8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.60.1 eslint: 10.4.1(jiti@2.7.0) - ignore: 7.0.5 + ignore: 7.0.6 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@5.9.3) typescript: 5.9.3 @@ -7794,10 +7843,10 @@ snapshots: '@ungap/structured-clone@1.3.2': {} - '@vitest/coverage-v8@4.1.9(vitest@4.1.9)': + '@vitest/coverage-v8@4.1.10(vitest@4.1.10)': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.1.9 + '@vitest/utils': 4.1.10 ast-v8-to-istanbul: 1.0.4 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -7806,54 +7855,54 @@ snapshots: obug: 2.1.3 std-env: 4.1.0 tinyrainbow: 3.1.0 - vitest: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + vitest: 4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) - '@vitest/expect@4.1.9': + '@vitest/expect@4.1.10': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.9 - '@vitest/utils': 4.1.9 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.9(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0))': + '@vitest/mocker@4.1.10(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.9 + '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0) - '@vitest/mocker@4.1.9(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0))': + '@vitest/mocker@4.1.10(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.1.9 + '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0) - '@vitest/pretty-format@4.1.9': + '@vitest/pretty-format@4.1.10': dependencies: tinyrainbow: 3.1.0 - '@vitest/runner@4.1.9': + '@vitest/runner@4.1.10': dependencies: - '@vitest/utils': 4.1.9 + '@vitest/utils': 4.1.10 pathe: 2.0.3 - '@vitest/snapshot@4.1.9': + '@vitest/snapshot@4.1.10': dependencies: - '@vitest/pretty-format': 4.1.9 - '@vitest/utils': 4.1.9 + '@vitest/pretty-format': 4.1.10 + '@vitest/utils': 4.1.10 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.9': {} + '@vitest/spy@4.1.10': {} - '@vitest/utils@4.1.9': + '@vitest/utils@4.1.10': dependencies: - '@vitest/pretty-format': 4.1.9 + '@vitest/pretty-format': 4.1.10 convert-source-map: 2.0.0 tinyrainbow: 3.1.0 @@ -7891,7 +7940,7 @@ snapshots: '@vue/shared@3.5.39': {} - '@whiskeysockets/baileys@7.0.0-rc13(sharp@0.35.0(patch_hash=f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2))': + '@whiskeysockets/baileys@7.0.0-rc13(sharp@0.35.3(@types/node@22.20.1))': dependencies: '@cacheable/node-cache': 1.7.6 '@hapi/boom': 9.1.4 @@ -7899,12 +7948,31 @@ snapshots: libsignal: 6.0.0 lru-cache: 11.5.1 music-metadata: 11.13.0 - p-queue: 9.3.0 + p-queue: 9.3.3 pino: 9.14.0 protobufjs: 8.7.1 - sharp: 0.35.0(patch_hash=f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2) + sharp: 0.35.3(@types/node@22.20.1) whatsapp-rust-bridge: 0.5.4 - ws: 8.21.0 + ws: 8.21.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@whiskeysockets/baileys@7.0.0-rc13(sharp@0.35.3(@types/node@24.13.2))': + dependencies: + '@cacheable/node-cache': 1.7.6 + '@hapi/boom': 9.1.4 + async-mutex: 0.5.0 + libsignal: 6.0.0 + lru-cache: 11.5.1 + music-metadata: 11.13.0 + p-queue: 9.3.3 + pino: 9.14.0 + protobufjs: 8.7.1 + sharp: 0.35.3(@types/node@24.13.2) + whatsapp-rust-bridge: 0.5.4 + ws: 8.21.1 transitivePeerDependencies: - bufferutil - supports-color @@ -7920,10 +7988,10 @@ snapshots: libmime: 5.3.8 libqp: 2.1.1 - '@zone-eu/mailsplit@5.4.13': + '@zone-eu/mailsplit@5.4.14': dependencies: libbase64: 1.3.0 - libmime: 5.4.0 + libmime: 5.4.1 libqp: 2.1.1 abort-controller@3.0.0: @@ -8058,7 +8126,7 @@ snapshots: content-type: 2.0.0 debug: 4.4.3 http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 on-finished: 2.4.1 qs: 6.15.3 raw-body: 3.0.2 @@ -8066,7 +8134,7 @@ snapshots: transitivePeerDependencies: - supports-color - boolbase@1.0.0: {} + boolbase@2.0.0: {} boolean@3.2.0: {} @@ -8255,15 +8323,15 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-select@5.2.2: + css-select@7.0.0: dependencies: - boolbase: 1.0.0 - css-what: 6.2.2 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 + boolbase: 2.0.0 + css-what: 8.0.0 + domhandler: 6.0.1 + domutils: 4.0.2 + nth-check: 3.0.1 - css-what@6.2.2: {} + css-what@8.0.0: {} cssom@0.5.0: {} @@ -8427,18 +8495,36 @@ snapshots: domhandler: 5.0.3 entities: 4.5.0 + dom-serializer@3.1.1: + dependencies: + domelementtype: 3.0.0 + domhandler: 6.0.1 + entities: 8.0.0 + domelementtype@2.3.0: {} + domelementtype@3.0.0: {} + domhandler@5.0.3: dependencies: domelementtype: 2.3.0 + domhandler@6.0.1: + dependencies: + domelementtype: 3.0.0 + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 + domutils@4.0.2: + dependencies: + dom-serializer: 3.1.1 + domelementtype: 3.0.0 + domhandler: 6.0.1 + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -8454,9 +8540,9 @@ snapshots: axios: 1.18.1 cross-fetch: 4.1.0 https-proxy-agent: 7.0.6 - isomorphic-ws: 5.0.0(ws@8.21.0) + isomorphic-ws: 5.0.0(ws@8.21.1) uuid: 14.0.1 - ws: 8.21.0 + ws: 8.21.1 xml-escape: 1.1.0 transitivePeerDependencies: - bufferutil @@ -8488,6 +8574,8 @@ snapshots: entities@7.0.1: {} + entities@8.0.0: {} + env-var@7.5.0: {} es-define-property@1.0.1: {} @@ -8991,7 +9079,7 @@ snapshots: '@types/ws': 8.18.1 entities: 7.0.1 whatwg-mimetype: 3.0.0 - ws: 8.21.0 + ws: 8.21.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -9079,7 +9167,7 @@ snapshots: hosted-git-info@9.0.3: dependencies: - lru-cache: 11.5.1 + lru-cache: 11.5.2 html-escaper@2.0.2: {} @@ -9137,12 +9225,18 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.3: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} ignore@7.0.5: {} + ignore@7.0.6: {} + imapflow@1.3.6: dependencies: '@zone-eu/mailsplit': 5.4.12 @@ -9155,40 +9249,40 @@ snapshots: pino: 10.3.1 socks: 2.8.9 - impit-darwin-arm64@0.14.2: + impit-darwin-arm64@0.14.3: optional: true - impit-darwin-x64@0.14.2: + impit-darwin-x64@0.14.3: optional: true - impit-linux-arm64-gnu@0.14.2: + impit-linux-arm64-gnu@0.14.3: optional: true - impit-linux-arm64-musl@0.14.2: + impit-linux-arm64-musl@0.14.3: optional: true - impit-linux-x64-gnu@0.14.2: + impit-linux-x64-gnu@0.14.3: optional: true - impit-linux-x64-musl@0.14.2: + impit-linux-x64-musl@0.14.3: optional: true - impit-win32-arm64-msvc@0.14.2: + impit-win32-arm64-msvc@0.14.3: optional: true - impit-win32-x64-msvc@0.14.2: + impit-win32-x64-msvc@0.14.3: optional: true - impit@0.14.2: + impit@0.14.3: optionalDependencies: - impit-darwin-arm64: 0.14.2 - impit-darwin-x64: 0.14.2 - impit-linux-arm64-gnu: 0.14.2 - impit-linux-arm64-musl: 0.14.2 - impit-linux-x64-gnu: 0.14.2 - impit-linux-x64-musl: 0.14.2 - impit-win32-arm64-msvc: 0.14.2 - impit-win32-x64-msvc: 0.14.2 + impit-darwin-arm64: 0.14.3 + impit-darwin-x64: 0.14.3 + impit-linux-arm64-gnu: 0.14.3 + impit-linux-arm64-musl: 0.14.3 + impit-linux-x64-gnu: 0.14.3 + impit-linux-x64-musl: 0.14.3 + impit-win32-arm64-msvc: 0.14.3 + impit-win32-x64-msvc: 0.14.3 imurmurhash@0.1.4: {} @@ -9336,9 +9430,9 @@ snapshots: dependencies: fast-text-encoding: 1.0.6 - isomorphic-ws@5.0.0(ws@8.21.0): + isomorphic-ws@5.0.0(ws@8.21.1): dependencies: - ws: 8.21.0 + ws: 8.21.1 istanbul-lib-coverage@3.2.2: {} @@ -9355,7 +9449,7 @@ snapshots: jiti@2.7.0: {} - jose@6.2.3: {} + jose@6.2.4: {} joycon@3.1.1: {} @@ -9440,10 +9534,10 @@ snapshots: libbase64: 1.3.0 libqp: 2.1.1 - libmime@5.4.0: + libmime@5.4.1: dependencies: encoding-japanese: 2.2.0 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 libbase64: 1.3.0 libqp: 2.1.1 @@ -9507,9 +9601,9 @@ snapshots: lightningcss-win32-arm64-msvc: 1.32.0 lightningcss-win32-x64-msvc: 1.32.0 - linkedom@0.18.12: + linkedom@0.18.13: dependencies: - css-select: 5.2.2 + css-select: 7.0.0 cssom: 0.5.0 html-escaper: 3.0.3 htmlparser2: 10.1.0 @@ -9579,6 +9673,8 @@ snapshots: lru-cache@11.5.1: {} + lru-cache@11.5.2: {} + madge@8.0.0(typescript@5.9.3): dependencies: chalk: 4.1.2 @@ -9610,14 +9706,14 @@ snapshots: '@babel/types': 7.29.7 source-map-js: 1.2.1 - mailparser@3.9.12: + mailparser@3.9.14: dependencies: - '@zone-eu/mailsplit': 5.4.13 + '@zone-eu/mailsplit': 5.4.14 encoding-japanese: 2.2.0 he: 1.2.0 html-to-text: 10.0.0 - iconv-lite: 0.7.2 - libmime: 5.4.0 + iconv-lite: 0.7.3 + libmime: 5.4.1 linkify-it: 5.0.2 nodemailer: 9.0.3 punycode.js: 2.3.1 @@ -10120,9 +10216,9 @@ snapshots: nodemailer@9.0.3: {} - nth-check@2.1.1: + nth-check@3.0.1: dependencies: - boolbase: 1.0.0 + boolbase: 2.0.0 object-assign@4.1.1: {} @@ -10176,14 +10272,14 @@ snapshots: is-inside-container: 1.0.0 wsl-utils: 0.1.0 - openai@6.26.0(ws@8.21.0)(zod@4.4.3): + openai@6.26.0(ws@8.21.1)(zod@4.4.3): optionalDependencies: - ws: 8.21.0 + ws: 8.21.1 zod: 4.4.3 - openai@6.39.1(ws@8.21.0)(zod@4.4.3): + openai@6.39.1(ws@8.21.1)(zod@4.4.3): optionalDependencies: - ws: 8.21.0 + ws: 8.21.1 zod: 4.4.3 optionator@0.9.4: @@ -10233,7 +10329,7 @@ snapshots: eventemitter3: 4.0.7 p-timeout: 3.2.0 - p-queue@9.3.0: + p-queue@9.3.3: dependencies: eventemitter3: 5.0.4 p-timeout: 7.0.1 @@ -10282,7 +10378,7 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.5.1 + lru-cache: 11.5.2 minipass: 7.1.3 path-to-regexp@8.4.2: {} @@ -10493,7 +10589,7 @@ snapshots: dependencies: bytes: 3.1.2 http-errors: 2.0.1 - iconv-lite: 0.7.2 + iconv-lite: 0.7.3 unpipe: 1.0.0 rc@1.2.8: @@ -10748,37 +10844,71 @@ snapshots: setprototypeof@1.2.0: {} - sharp@0.35.0(patch_hash=f38dd2caaf1e1797825b7e195970a91e90263c1dc98242adecb1fb8edc9bdef2): + sharp@0.35.3(@types/node@22.20.1): + dependencies: + '@img/colour': 1.1.0 + detect-libc: 2.1.2 + semver: 7.8.5 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.35.3 + '@img/sharp-darwin-x64': 0.35.3 + '@img/sharp-freebsd-wasm32': 0.35.3 + '@img/sharp-libvips-darwin-arm64': 1.3.2 + '@img/sharp-libvips-darwin-x64': 1.3.2 + '@img/sharp-libvips-linux-arm': 1.3.2 + '@img/sharp-libvips-linux-arm64': 1.3.2 + '@img/sharp-libvips-linux-ppc64': 1.3.2 + '@img/sharp-libvips-linux-riscv64': 1.3.2 + '@img/sharp-libvips-linux-s390x': 1.3.2 + '@img/sharp-libvips-linux-x64': 1.3.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.2 + '@img/sharp-libvips-linuxmusl-x64': 1.3.2 + '@img/sharp-linux-arm': 0.35.3 + '@img/sharp-linux-arm64': 0.35.3 + '@img/sharp-linux-ppc64': 0.35.3 + '@img/sharp-linux-riscv64': 0.35.3 + '@img/sharp-linux-s390x': 0.35.3 + '@img/sharp-linux-x64': 0.35.3 + '@img/sharp-linuxmusl-arm64': 0.35.3 + '@img/sharp-linuxmusl-x64': 0.35.3 + '@img/sharp-webcontainers-wasm32': 0.35.3 + '@img/sharp-win32-arm64': 0.35.3 + '@img/sharp-win32-ia32': 0.35.3 + '@img/sharp-win32-x64': 0.35.3 + '@types/node': 22.20.1 + + sharp@0.35.3(@types/node@24.13.2): dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 semver: 7.8.5 optionalDependencies: - '@img/sharp-darwin-arm64': 0.35.0 - '@img/sharp-darwin-x64': 0.35.0 - '@img/sharp-freebsd-wasm32': 0.35.0 - '@img/sharp-libvips-darwin-arm64': 1.3.0 - '@img/sharp-libvips-darwin-x64': 1.3.0 - '@img/sharp-libvips-linux-arm': 1.3.0 - '@img/sharp-libvips-linux-arm64': 1.3.0 - '@img/sharp-libvips-linux-ppc64': 1.3.0 - '@img/sharp-libvips-linux-riscv64': 1.3.0 - '@img/sharp-libvips-linux-s390x': 1.3.0 - '@img/sharp-libvips-linux-x64': 1.3.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.3.0 - '@img/sharp-libvips-linuxmusl-x64': 1.3.0 - '@img/sharp-linux-arm': 0.35.0 - '@img/sharp-linux-arm64': 0.35.0 - '@img/sharp-linux-ppc64': 0.35.0 - '@img/sharp-linux-riscv64': 0.35.0 - '@img/sharp-linux-s390x': 0.35.0 - '@img/sharp-linux-x64': 0.35.0 - '@img/sharp-linuxmusl-arm64': 0.35.0 - '@img/sharp-linuxmusl-x64': 0.35.0 - '@img/sharp-webcontainers-wasm32': 0.35.0 - '@img/sharp-win32-arm64': 0.35.0 - '@img/sharp-win32-ia32': 0.35.0 - '@img/sharp-win32-x64': 0.35.0 + '@img/sharp-darwin-arm64': 0.35.3 + '@img/sharp-darwin-x64': 0.35.3 + '@img/sharp-freebsd-wasm32': 0.35.3 + '@img/sharp-libvips-darwin-arm64': 1.3.2 + '@img/sharp-libvips-darwin-x64': 1.3.2 + '@img/sharp-libvips-linux-arm': 1.3.2 + '@img/sharp-libvips-linux-arm64': 1.3.2 + '@img/sharp-libvips-linux-ppc64': 1.3.2 + '@img/sharp-libvips-linux-riscv64': 1.3.2 + '@img/sharp-libvips-linux-s390x': 1.3.2 + '@img/sharp-libvips-linux-x64': 1.3.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.2 + '@img/sharp-libvips-linuxmusl-x64': 1.3.2 + '@img/sharp-linux-arm': 0.35.3 + '@img/sharp-linux-arm64': 0.35.3 + '@img/sharp-linux-ppc64': 0.35.3 + '@img/sharp-linux-riscv64': 0.35.3 + '@img/sharp-linux-s390x': 0.35.3 + '@img/sharp-linux-x64': 0.35.3 + '@img/sharp-linuxmusl-arm64': 0.35.3 + '@img/sharp-linuxmusl-x64': 0.35.3 + '@img/sharp-webcontainers-wasm32': 0.35.3 + '@img/sharp-win32-arm64': 0.35.3 + '@img/sharp-win32-ia32': 0.35.3 + '@img/sharp-win32-x64': 0.35.3 + '@types/node': 24.13.2 shebang-command@2.0.0: dependencies: @@ -11115,7 +11245,7 @@ snapshots: media-typer: 1.1.0 mime-types: 3.0.2 - typebox@1.2.8: {} + typebox@1.3.6: {} typescript-eslint@8.60.1(eslint@10.4.1(jiti@2.7.0))(typescript@5.9.3): dependencies: @@ -11245,15 +11375,15 @@ snapshots: tsx: 4.22.5 yaml: 2.9.0 - vitest@4.1.9(@opentelemetry/api@1.9.0)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)): + vitest@4.1.10(@opentelemetry/api@1.9.0)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.9 - '@vitest/runner': 4.1.9 - '@vitest/snapshot': 4.1.9 - '@vitest/spy': 4.1.9 - '@vitest/utils': 4.1.9 + '@vitest/expect': 4.1.10 + '@vitest/mocker': 4.1.10(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.10 + '@vitest/runner': 4.1.10 + '@vitest/snapshot': 4.1.10 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 es-module-lexer: 2.2.0 expect-type: 1.4.0 magic-string: 0.30.21 @@ -11270,20 +11400,20 @@ snapshots: optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/node': 22.20.1 - '@vitest/coverage-v8': 4.1.9(vitest@4.1.9) + '@vitest/coverage-v8': 4.1.10(vitest@4.1.10) happy-dom: 20.9.0 transitivePeerDependencies: - msw - vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)): + vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@22.20.1)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.9 - '@vitest/runner': 4.1.9 - '@vitest/snapshot': 4.1.9 - '@vitest/spy': 4.1.9 - '@vitest/utils': 4.1.9 + '@vitest/expect': 4.1.10 + '@vitest/mocker': 4.1.10(vite@8.1.2(@types/node@22.20.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.10 + '@vitest/runner': 4.1.10 + '@vitest/snapshot': 4.1.10 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 es-module-lexer: 2.2.0 expect-type: 1.4.0 magic-string: 0.30.21 @@ -11300,20 +11430,20 @@ snapshots: optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 22.20.1 - '@vitest/coverage-v8': 4.1.9(vitest@4.1.9) + '@vitest/coverage-v8': 4.1.10(vitest@4.1.10) happy-dom: 20.9.0 transitivePeerDependencies: - msw - vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.9)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)): + vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(@vitest/coverage-v8@4.1.10)(happy-dom@20.9.0)(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)): dependencies: - '@vitest/expect': 4.1.9 - '@vitest/mocker': 4.1.9(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) - '@vitest/pretty-format': 4.1.9 - '@vitest/runner': 4.1.9 - '@vitest/snapshot': 4.1.9 - '@vitest/spy': 4.1.9 - '@vitest/utils': 4.1.9 + '@vitest/expect': 4.1.10 + '@vitest/mocker': 4.1.10(vite@8.1.2(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.5)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.10 + '@vitest/runner': 4.1.10 + '@vitest/snapshot': 4.1.10 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 es-module-lexer: 2.2.0 expect-type: 1.4.0 magic-string: 0.30.21 @@ -11330,7 +11460,7 @@ snapshots: optionalDependencies: '@opentelemetry/api': 1.9.1 '@types/node': 24.13.2 - '@vitest/coverage-v8': 4.1.9(vitest@4.1.9) + '@vitest/coverage-v8': 4.1.10(vitest@4.1.10) happy-dom: 20.9.0 transitivePeerDependencies: - msw @@ -11389,7 +11519,7 @@ snapshots: wrappy@1.0.2: {} - ws@8.21.0: {} + ws@8.21.1: {} wsl-utils@0.1.0: dependencies: From 05b2e75bb9ed8b8a8096f6b173e817a368ebdf51 Mon Sep 17 00:00:00 2001 From: comis-agent Date: Sun, 26 Jul 2026 11:04:52 +0300 Subject: [PATCH 6/7] chore(deps): move the website to astro 7.1.0 and tailwind 4.3.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `check-site.mjs` pins the astro version it has audited, so the bump and the guard have to move together — otherwise the guard rejects the very release it is meant to certify ("Astro must stay on the audited release"). Note this does not clear the website's three high-severity advisories. Those sit in transitive `sharp` (<0.35.0, libvips CVEs) and `svgo` (4.0.0-4.0.1), not in astro itself, and need their own resolution pass. --- website/package-lock.json | 148 ++++++++++++++++----------------- website/package.json | 6 +- website/scripts/check-site.mjs | 2 +- 3 files changed, 78 insertions(+), 78 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 22d25b984..9daa08e52 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -10,11 +10,11 @@ "license": "Apache-2.0", "dependencies": { "@astrojs/sitemap": "3.7.3", - "astro": "7.0.9" + "astro": "7.1.0" }, "devDependencies": { - "@tailwindcss/vite": "4.3.2", - "tailwindcss": "4.3.2" + "@tailwindcss/vite": "4.3.3", + "tailwindcss": "4.3.3" } }, "node_modules/@astrojs/compiler-binding": { @@ -2207,49 +2207,49 @@ "license": "MIT" }, "node_modules/@tailwindcss/node": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.2.tgz", - "integrity": "sha512-yWP/sqEcBLaD8JuA6zNwxoYKr75qxTioYwlRwekj5Jr/I5GXnoJfjetH/psLUIv74cYTH2lBUEzBkinthoYcBg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "5.21.6", + "enhanced-resolve": "^5.24.1", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.3.2" + "tailwindcss": "4.3.3" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.2.tgz", - "integrity": "sha512-z8ZgnzX8gdNoWLBLqBPoh/sjnxkwvf9ZuWjnO0l0yIzbLa5/9S+eC5QxGZKRobVHIC3/1BoMWjHblqWjcgFgag==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", "dev": true, "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.3.2", - "@tailwindcss/oxide-darwin-arm64": "4.3.2", - "@tailwindcss/oxide-darwin-x64": "4.3.2", - "@tailwindcss/oxide-freebsd-x64": "4.3.2", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.2", - "@tailwindcss/oxide-linux-arm64-gnu": "4.3.2", - "@tailwindcss/oxide-linux-arm64-musl": "4.3.2", - "@tailwindcss/oxide-linux-x64-gnu": "4.3.2", - "@tailwindcss/oxide-linux-x64-musl": "4.3.2", - "@tailwindcss/oxide-wasm32-wasi": "4.3.2", - "@tailwindcss/oxide-win32-arm64-msvc": "4.3.2", - "@tailwindcss/oxide-win32-x64-msvc": "4.3.2" + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.2.tgz", - "integrity": "sha512-WHxqIuHpvZ5VtdX6GTl1Ik/Vp2YuN42Et+0CdeaVd/frQ9jAvGmvR8vLT+jk3e8/Q3x8kECB9+R17pgpp2BulA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", "cpu": [ "arm64" ], @@ -2264,9 +2264,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.2.tgz", - "integrity": "sha512-GZypeUY/IDJW3877KeM+O67vbXr3MBnbtEL4aYhNErv/JWZhye2vGSWWG9tB6iiqR2MqRNkY8IOUy4NdSZV26w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", "cpu": [ "arm64" ], @@ -2281,9 +2281,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.2.tgz", - "integrity": "sha512-UIIzmefR6KO1sDU7MzRqAxC8iBpft/VhkGjTjnhoS6k7Z3rQ9wEgA1ODSiyH/tcSYssulNm4Ci3hOeK1jH7ccQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", "cpu": [ "x64" ], @@ -2298,9 +2298,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.2.tgz", - "integrity": "sha512-GN+uAmcI6DNspnCDwtOAZrTz6oukJnp337qZvxqCGLd3BHBzJpO0ZbTLRvJNdztOeAmTzewewGIMPb0tk2R4WA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", "cpu": [ "x64" ], @@ -2315,9 +2315,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.2.tgz", - "integrity": "sha512-4ABn7qSbdHRwTiDiuWNegCyb5+2FJ4vKIKc3DmKrvAFw7MU1Lm11dIkTPwUaFdTzc7IsOpDbqBrlh0x6y36U/w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", "cpu": [ "arm" ], @@ -2332,9 +2332,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.2.tgz", - "integrity": "sha512-wDgEIGwoM8w8pufh9LVt1PahDgNdKXrLC2qfAnV3vAmococ9RWbxeAw4pxPttd/TsJfwjyLf90Dg1y9y8I6Emw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", "cpu": [ "arm64" ], @@ -2349,9 +2349,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.2.tgz", - "integrity": "sha512-J5Nuk0uZQIiMTJj3LEx4sAA9tMFUoXQZFv1J6An+QGYe53HKRJuFDi0rpq/tuouCZeAbOBY3kQ6g8qeD4TUjtA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", "cpu": [ "arm64" ], @@ -2366,9 +2366,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.2.tgz", - "integrity": "sha512-kqCZpSKOBEJO4mz7OqWoofBZeXTAwaVGPj0ErAj7CojmhKpWVWVOnrt9dE8odoIraZq4oj3ausM37kXi+Tow8w==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", "cpu": [ "x64" ], @@ -2383,9 +2383,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.2.tgz", - "integrity": "sha512-cixpqbh2toJDmkuCRI68nXA8ZxNmdK9Y+9v5h3MC3ZQKy/0BO8AWzlkWyRM7JAFSGBlfig4YVTPsK6MVgqz1uw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", "cpu": [ "x64" ], @@ -2400,9 +2400,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.2.tgz", - "integrity": "sha512-4ec2Z/LOmRsAgU23CS4xeJfcJlmRg94A/XrbGRCF1gyU/zdDfRLYDVsS+ynSZCmGNxQ1jQriQOKMQeQxBA3Isw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -2496,9 +2496,9 @@ "optional": true }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.2.tgz", - "integrity": "sha512-Zyr/M0+XcYZu3bZrUytc7TXvrk0ftWfl8gN2MwekNDzhqhKRUucMPSeOzM0o0wH5AWOU49BsKRrfKxI2atCPMQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", "cpu": [ "arm64" ], @@ -2513,9 +2513,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.2.tgz", - "integrity": "sha512-QI9BO7KlNZsp2GuO0jwAAj5jCDABOKXRkCk2XuKTSaNEFSdfzqswYVTtCHBNKHLsqyjFyFkqlDiwkNbTYSssMQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", "cpu": [ "x64" ], @@ -2530,15 +2530,15 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.2.tgz", - "integrity": "sha512-eHpMeX4JXfVNJDEcsouTeCBubJBTcTLigeaw/NTUW6PB5ATKKXdyonnXgTBX2VuRbjz1hjfz6C5XAhr52ImQXA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", + "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", "dev": true, "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.3.2", - "@tailwindcss/oxide": "4.3.2", - "tailwindcss": "4.3.2" + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "tailwindcss": "4.3.3" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" @@ -2685,9 +2685,9 @@ } }, "node_modules/astro": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/astro/-/astro-7.0.9.tgz", - "integrity": "sha512-WB5pA4LLQnmqjBh6EIu0z8aUV4q2/AoThgSZq57Rsp+oqqvPu7OwZ5eF+W4ku20TUTxIhiJW8dccuGvJPiW2UA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/astro/-/astro-7.1.0.tgz", + "integrity": "sha512-jXHNZXpO0HOuANLwv5uLg5WFXFmIMyDTMlokIb8sv10y8QItOFaikwrqvp6+Pe0MSqvp+aO7V1SfVriFcCEKgA==", "license": "MIT", "dependencies": { "@astrojs/compiler-rs": "^0.3.1", @@ -3127,9 +3127,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.21.6", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", - "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", + "version": "5.24.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.3.tgz", + "integrity": "sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4567,9 +4567,9 @@ } }, "node_modules/tailwindcss": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.2.tgz", - "integrity": "sha512-WtctNNSH8A9jlMIqxzuYumOHU5uGZyRv0Q5svQl+oEPy5w84YpBxdb7MdqyiSPQge5jTJ6zFQLq0PFygdccSBA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", "dev": true, "license": "MIT" }, diff --git a/website/package.json b/website/package.json index fa4d00cb4..18d71a148 100644 --- a/website/package.json +++ b/website/package.json @@ -15,10 +15,10 @@ }, "dependencies": { "@astrojs/sitemap": "3.7.3", - "astro": "7.0.9" + "astro": "7.1.0" }, "devDependencies": { - "@tailwindcss/vite": "4.3.2", - "tailwindcss": "4.3.2" + "@tailwindcss/vite": "4.3.3", + "tailwindcss": "4.3.3" } } diff --git a/website/scripts/check-site.mjs b/website/scripts/check-site.mjs index 079ef6844..0ba1645db 100644 --- a/website/scripts/check-site.mjs +++ b/website/scripts/check-site.mjs @@ -398,7 +398,7 @@ check(deploymentWorkflow.includes('"assets/comis-social-preview.png"'), "Website const packageJson = JSON.parse(await readFile(path.join(websiteDir, "package.json"), "utf8")); sameValues(Object.keys(packageJson.dependencies).sort(), ["@astrojs/sitemap", "astro"], "Website runtime dependencies"); sameValues(Object.keys(packageJson.devDependencies).sort(), ["@tailwindcss/vite", "tailwindcss"], "Website development dependencies"); -check(packageJson.dependencies.astro === "7.0.9", "Astro must stay on the audited release"); +check(packageJson.dependencies.astro === "7.1.0", "Astro must stay on the audited release"); if (failures.length > 0) { console.error(`Website validation failed with ${failures.length} issue${failures.length === 1 ? "" : "s"}:`); From 46a3baaed16121d7b8737d9b607b5759f5497277 Mon Sep 17 00:00:00 2001 From: comis-agent Date: Sun, 26 Jul 2026 11:14:56 +0300 Subject: [PATCH 7/7] test(architecture): pin the Dockerfile corepack pnpm version to packageManager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The root manifest declares the authoritative pnpm via `packageManager`, and each Dockerfile re-pins it with `corepack prepare`. Nothing moved those together, so a dependency bump left the images building `--frozen-lockfile` under a pnpm that did not write the lockfile. No deterministic gate could see it: `pnpm validate` runs the local pnpm and never reads a Dockerfile, so the drift only surfaces once the Docker Release workflow builds an image. Also widens the sharp declarations guard to assert its own stated intent. Declarations must be REACHABLE through the exports map; the assertion had pinned the flat `exports["."].types` literal that the now-deleted local patch produced. sharp 0.35.3 exposes them per condition instead, giving ESM and CJS separate declaration files, and the guard now accepts either shape and checks the files actually exist. `build:clean` passing without the patch is the ground truth that NodeNext resolution still works. The typebox snapshot is version-keyed by design and never cross-compared, so the 1.3.6 file is committed and the unreachable 1.2.8 one retired. Its bytes are identical to 1.2.8's — the parity the test exists to prove. --- Dockerfile | 4 +- Dockerfile.install | 2 +- Dockerfile.web | 2 +- .../agent/src/__tests__/architecture.test.ts | 35 +++++++- ....snap => tool-registry.typebox-1.3.6.snap} | 0 .../dockerfile-pnpm-version.test.ts | 90 +++++++++++++++++++ 6 files changed, 126 insertions(+), 7 deletions(-) rename packages/skills/src/__tests__/__snapshots__/{tool-registry.typebox-1.2.8.snap => tool-registry.typebox-1.3.6.snap} (100%) create mode 100644 test/architecture/dockerfile-pnpm-version.test.ts diff --git a/Dockerfile b/Dockerfile index 2037454a5..78d393389 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ WORKDIR /build # current at build time, producing non-reproducible builds. The pinned # version mirrors the host's `pnpm --version` output at the time of this # change. Bump together with the host pnpm version when upgrading. -RUN corepack enable && corepack prepare pnpm@10.34.4 --activate +RUN corepack enable && corepack prepare pnpm@10.34.5 --activate # Copy dependency manifests first (layer caching) COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./ @@ -245,7 +245,7 @@ ENV RUSTUP_HOME=/usr/local/rustup \ # line-~16 pin so build and runtime use identical pnpm semantics. ENV COREPACK_HOME=/usr/local/share/corepack RUN mkdir -p "$COREPACK_HOME" && chmod 777 "$COREPACK_HOME" && \ - corepack enable && corepack prepare pnpm@10.34.4 --activate + corepack enable && corepack prepare pnpm@10.34.5 --activate # Create non-root user and data directory # Node base images ship a "node" user at UID/GID 1000 — rename it to "comis" diff --git a/Dockerfile.install b/Dockerfile.install index beab31fb5..e6c81abdd 100644 --- a/Dockerfile.install +++ b/Dockerfile.install @@ -34,7 +34,7 @@ ARG COMIS_INSTALL_BASE_IMAGE="ubuntu:24.04@sha256:4fbb8e6a8395de5a7550b33509421a FROM ${COMIS_INSTALL_NODE_IMAGE} AS packer WORKDIR /build -RUN corepack enable && corepack prepare pnpm@10.34.4 --activate +RUN corepack enable && corepack prepare pnpm@10.34.5 --activate # Workspace manifests first (layer caching) COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./ diff --git a/Dockerfile.web b/Dockerfile.web index 9d5b453d1..ff2929d9c 100644 --- a/Dockerfile.web +++ b/Dockerfile.web @@ -5,7 +5,7 @@ FROM node:22-bookworm-slim@sha256:6c74791e557ce11fc957704f6d4fe134a7bc8d6f5ca440 WORKDIR /build -RUN corepack enable && corepack prepare pnpm@10.34.4 --activate +RUN corepack enable && corepack prepare pnpm@10.34.5 --activate COPY pnpm-lock.yaml pnpm-workspace.yaml package.json tsconfig.base.json ./ COPY patches/ patches/ diff --git a/packages/agent/src/__tests__/architecture.test.ts b/packages/agent/src/__tests__/architecture.test.ts index 97fca8df8..01d21c52c 100644 --- a/packages/agent/src/__tests__/architecture.test.ts +++ b/packages/agent/src/__tests__/architecture.test.ts @@ -366,20 +366,49 @@ describe("@comis/agent -- architecture invariants", () => { ).toBe(false); }); + // The invariant is that declarations are REACHABLE through sharp's exports + // map, not that they sit at any one key. Two shapes satisfy it: a single + // `types` beside the conditions, or a `types` inside each condition. sharp + // <=0.35.0 shipped neither and needed a local patch to add the flat form; + // 0.35.3 ships the per-condition form natively, which is strictly better + // because ESM and CJS get their own declaration file. Asserting either shape + // keeps the gate on the property that matters — TypeScript NodeNext must not + // fall back to scanning ancestor node_modules — instead of pinning a literal + // that turns every upstream restructuring into a false failure. it("installed sharp exposes declarations through its package exports", () => { const sharpPackagePath = resolve(PKG_ROOT, "node_modules/sharp/package.json"); const sharpPackage = JSON.parse(readFileSync(sharpPackagePath, "utf8")) as { exports?: { "."?: { types?: string; + import?: string | { types?: string }; + require?: string | { types?: string }; }; }; }; + const root = sharpPackage.exports?.["."]; + const conditionTypes = (entry: string | { types?: string } | undefined): string | undefined => + typeof entry === "object" ? entry.types : undefined; + + const declarations = root?.types + ? [root.types] + : [conditionTypes(root?.import), conditionTypes(root?.require)].filter( + (value): value is string => typeof value === "string", + ); + expect( - sharpPackage.exports?.["."]?.types, - "sharp must export its bundled declarations so TypeScript NodeNext resolution does not depend on ancestor node_modules", - ).toBe("./lib/index.d.ts"); + declarations.length > 0, + "sharp must export its bundled declarations so TypeScript NodeNext resolution does not " + + `depend on ancestor node_modules. Found exports["."] = ${JSON.stringify(root)}`, + ).toBe(true); + + for (const declaration of declarations) { + expect( + existsSync(resolve(dirname(sharpPackagePath), declaration)), + `sharp exports the declaration ${declaration} but that file is absent from the installed package`, + ).toBe(true); + } }); // --------------------------------------------------------------------------- diff --git a/packages/skills/src/__tests__/__snapshots__/tool-registry.typebox-1.2.8.snap b/packages/skills/src/__tests__/__snapshots__/tool-registry.typebox-1.3.6.snap similarity index 100% rename from packages/skills/src/__tests__/__snapshots__/tool-registry.typebox-1.2.8.snap rename to packages/skills/src/__tests__/__snapshots__/tool-registry.typebox-1.3.6.snap diff --git a/test/architecture/dockerfile-pnpm-version.test.ts b/test/architecture/dockerfile-pnpm-version.test.ts new file mode 100644 index 000000000..021c99ec3 --- /dev/null +++ b/test/architecture/dockerfile-pnpm-version.test.ts @@ -0,0 +1,90 @@ +// SPDX-License-Identifier: Apache-2.0 +/** + * Dockerfile corepack pnpm pin — the local guard for the pnpm-version drift class. + * + * The root `package.json` declares the authoritative package manager via + * `packageManager: "pnpm@"`, and every Dockerfile independently + * re-pins the same version with `corepack prepare pnpm@ --activate`. + * Those pins are hand-maintained and there is no tooling that moves them + * together: a dependency bot bumping `packageManager` leaves the Dockerfiles + * behind, so the image builds its `--frozen-lockfile` install with a different + * pnpm than the one that wrote `pnpm-lock.yaml`. + * + * `pnpm validate` cannot catch this. It runs the locally-installed pnpm against + * the local workspace and never reads a Dockerfile, so the drift is invisible to + * every deterministic gate and surfaces only when the Docker Release workflow + * builds an image — the same blind spot that let the `@comis/observability-otel` + * COPY-list drift reach CI (see `dockerfile-workspace-packages.test.ts`). + * + * This is a STATIC, cross-platform invariant (no Docker daemon, no Linux), so + * the drift is caught locally under `test:coverage` instead of in CI. + * + * @module + */ +import { describe, it, expect } from "vitest"; +import { readFileSync } from "node:fs"; +import { dirname, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +const here = dirname(fileURLToPath(import.meta.url)); +const REPO_ROOT = resolve(here, "../.."); + +/** Every Dockerfile that activates pnpm through corepack. */ +const DOCKERFILES = ["Dockerfile", "Dockerfile.install", "Dockerfile.web"] as const; + +const COREPACK_PNPM = /corepack\s+prepare\s+pnpm@(\S+?)\s+--activate/g; + +function declaredPackageManagerVersion(): string { + const manifest = JSON.parse(readFileSync(resolve(REPO_ROOT, "package.json"), "utf8")) as { + packageManager?: string; + }; + const declared = manifest.packageManager; + expect(declared, "root package.json must declare packageManager").toBeTruthy(); + const [name, version] = declared!.split("@"); + expect(name, "packageManager must be pnpm").toBe("pnpm"); + return version; +} + +describe("Dockerfile corepack pnpm pins", () => { + it("every corepack pnpm pin matches the packageManager version in root package.json", () => { + const expected = declaredPackageManagerVersion(); + const violations: string[] = []; + + for (const file of DOCKERFILES) { + const contents = readFileSync(resolve(REPO_ROOT, file), "utf8"); + const lines = contents.split("\n"); + + lines.forEach((line, index) => { + for (const match of line.matchAll(COREPACK_PNPM)) { + const pinned = match[1]; + if (pinned !== expected) { + violations.push( + `${file}:${index + 1} pins pnpm@${pinned} but package.json declares pnpm@${expected}`, + ); + } + } + }); + } + + expect( + violations, + `Dockerfile pnpm pins drifted from the declared packageManager. ` + + `An image built this way installs a frozen lockfile with a pnpm that did not write it. ` + + `Move every pin together:\n${violations.join("\n")}`, + ).toEqual([]); + }); + + it("each Dockerfile that installs dependencies actually pins pnpm through corepack", () => { + const missing = DOCKERFILES.filter((file) => { + const contents = readFileSync(resolve(REPO_ROOT, file), "utf8"); + return !/corepack\s+prepare\s+pnpm@/.test(contents); + }); + + expect( + missing, + `These Dockerfiles no longer pin pnpm via corepack, so the image would resolve ` + + `whatever pnpm the base image ships: ${missing.join(", ")}. ` + + `Either restore the pin or drop the file from DOCKERFILES in this test.`, + ).toEqual([]); + }); +});