diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json index a854fef..0a95379 100644 --- a/.cursor-plugin/plugin.json +++ b/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "docker-developer-tools", "displayName": "Docker Developer Tools", - "version": "1.3.4", + "version": "1.3.5", "description": "Docker and container workflows for Cursor, Claude Code, and MCP-compatible editors - 17 skills, 10 rules, and 150 MCP tools for building, debugging, optimizing, and managing Docker containers, images, networks, and volumes. Includes a companion MCP server (docker-mcp) for live Docker CLI integration.", "author": { "name": "TMHSDigital", diff --git a/.github/workflows/drift-check.yml b/.github/workflows/drift-check.yml index 29d5abf..4e858fc 100644 --- a/.github/workflows/drift-check.yml +++ b/.github/workflows/drift-check.yml @@ -14,8 +14,8 @@ jobs: permissions: contents: read steps: - - uses: actions/checkout@v5 - - uses: TMHSDigital/Developer-Tools-Directory/.github/actions/drift-check@v1.7 + - uses: actions/checkout@v6 + - uses: TMHSDigital/Developer-Tools-Directory/.github/actions/drift-check@v1.9 with: mode: self format: gh-summary diff --git a/.github/workflows/label-sync.yml b/.github/workflows/label-sync.yml index db80206..1bf259a 100644 --- a/.github/workflows/label-sync.yml +++ b/.github/workflows/label-sync.yml @@ -13,7 +13,7 @@ jobs: name: Auto-label by path runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Get changed files id: changed diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 088ea2c..70da34d 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -35,7 +35,7 @@ jobs: path: _template sparse-checkout: site-template - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: "3.12" @@ -49,7 +49,7 @@ jobs: uses: actions/configure-pages@v6 - name: Upload artifact - uses: actions/upload-pages-artifact@v4 + uses: actions/upload-pages-artifact@v5 with: path: docs diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1cb2d9c..c754919 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -3,15 +3,6 @@ name: Release on: push: branches: [main] - paths-ignore: - - ".github/**" - - "docs/**" - - "*.md" - - "LICENSE" - - "skills/**" - - "rules/**/*.mdc" - - "AGENTS.md" - - "CLAUDE.md" permissions: contents: write @@ -26,7 +17,7 @@ jobs: runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, '[skip ci]')" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index ca895df..fa0999c 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -57,3 +57,40 @@ jobs: - name: Run structure tests run: pytest tests/ -v --tb=short + + validate-counts: + name: Validate content counts + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - name: Check content counts match README + run: | + python3 << 'PYEOF' + import os, sys + + errors = [] + + skill_count = len([ + d for d in os.listdir('skills') + if os.path.isdir(os.path.join('skills', d)) + and os.path.exists(os.path.join('skills', d, 'SKILL.md')) + ]) + rule_count = len([ + f for f in os.listdir('rules') + if f.endswith('.mdc') + ]) + + readme = open('README.md').read() + if f'{skill_count} skills' not in readme: + errors.append(f'README skill count mismatch (expected "{skill_count} skills")') + if f'{rule_count} rules' not in readme: + errors.append(f'README rule count mismatch (expected "{rule_count} rules")') + + if errors: + for e in errors: + print(f'::error::{e}', file=sys.stderr) + sys.exit(1) + + print(f'Counts verified: {skill_count} skills, {rule_count} rules') + PYEOF diff --git a/AGENTS.md b/AGENTS.md index de2657a..78554e6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,4 +1,4 @@ - + # AGENTS.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 2649627..9dd1c3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.5] - 2026-04-26 + +See [release notes](https://github.com/TMHSDigital/Docker-Developer-Tools/releases/tag/v1.3.5) for details. + ## [1.3.4] - 2026-04-25 See [release notes](https://github.com/TMHSDigital/Docker-Developer-Tools/releases/tag/v1.3.4) for details. diff --git a/CLAUDE.md b/CLAUDE.md index 9c4c7f3..425f17c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,4 +1,4 @@ - + # CLAUDE.md @@ -12,7 +12,7 @@ Docker Developer Tools integrates Docker and container workflows into AI-assiste This is a monorepo - the skills, rules, and companion MCP server live in the same repository. Docker's API is local (Docker Engine socket / CLI), so one repo is simpler for users to install and maintain. -**Version:** 1.3.4 +**Version:** 1.3.5 **License:** CC-BY-NC-ND-4.0 **Author:** TMHSDigital diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fa177a9..754ecdc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -280,6 +280,32 @@ When cutting a new version, complete every step in order before merging to `main - **Practical examples.** Code should be copy-pasteable and realistic. - **Concise descriptions.** No filler text. +## Developer Certificate of Origin and Inbound License Grant + +This project uses CC-BY-NC-ND-4.0 as its outbound license, which forbids derivatives. Every pull request is a derivative. Contributions are accepted inbound under a broader grant via the Developer Certificate of Origin (DCO), which resolves the conflict so the project can accept and redistribute contributions. + +### Required grant + +By submitting a contribution to this repository, you certify that you have the right to do so under the Developer Certificate of Origin (DCO) 1.1, and you grant TMHSDigital a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license to use, reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute your contribution under the project's current license (CC-BY-NC-ND-4.0) or any successor license chosen by the project. + +### DCO sign-off + +Every commit in a pull request must have a `Signed-off-by:` trailer matching the commit author: + +``` +Signed-off-by: Jane Developer +``` + +Signing is done at commit time: + +```bash +git commit -s -m "feat: add new skill" +``` + +The GitHub DCO App enforces this on every PR. + +For the full inbound/outbound model and rationale, see [`standards/licensing.md`](https://github.com/TMHSDigital/Developer-Tools-Directory/blob/main/standards/licensing.md) in the Developer-Tools-Directory meta-repo. + ## Code of Conduct This project follows the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you agree to uphold this code. diff --git a/README.md b/README.md index 80c6be9..0929c56 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@

- Version + Version Release npm License diff --git a/mcp-server/package-lock.json b/mcp-server/package-lock.json index eba5220..2225115 100644 --- a/mcp-server/package-lock.json +++ b/mcp-server/package-lock.json @@ -9,55 +9,52 @@ "version": "1.0.0", "license": "CC-BY-NC-ND-4.0", "dependencies": { - "@modelcontextprotocol/sdk": "^1.12.1", + "@modelcontextprotocol/sdk": "^1.29.0", "zod": "^4.3.6" }, "bin": { "docker-mcp": "dist/index.js" }, "devDependencies": { - "@types/node": "^25.5.0", + "@types/node": "^25.6.0", "tsx": "^4.19.4", - "typescript": "^6.0.2", - "vitest": "^4.1.2" + "typescript": "^6.0.3", + "vitest": "^4.1.4" }, "engines": { "node": ">= 20.0.0" } }, "node_modules/@emnapi/core": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz", - "integrity": "sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", + "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { - "@emnapi/wasi-threads": "1.2.0", + "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz", - "integrity": "sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", + "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz", - "integrity": "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, "license": "MIT", "optional": true, - "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -524,9 +521,9 @@ "license": "MIT" }, "node_modules/@modelcontextprotocol/sdk": { - "version": "1.28.0", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.28.0.tgz", - "integrity": "sha512-gmloF+i+flI8ouQK7MWW4mOwuMh4RePBuPFAEPC6+pdqyWOUMDOixb6qZ69owLJpz6XmyllCouc4t8YWO+E2Nw==", + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz", + "integrity": "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==", "license": "MIT", "dependencies": { "@hono/node-server": "^1.19.9", @@ -564,9 +561,9 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.2.tgz", - "integrity": "sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.3.tgz", + "integrity": "sha512-xK9sGVbJWYb08+mTJt3/YV24WxvxpXcXtP6B172paPZ+Ts69Re9dAr7lKwJoeIx8OoeuimEiRZ7umkiUVClmmQ==", "dev": true, "license": "MIT", "optional": true, @@ -583,9 +580,9 @@ } }, "node_modules/@oxc-project/types": { - "version": "0.122.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.122.0.tgz", - "integrity": "sha512-oLAl5kBpV4w69UtFZ9xqcmTi+GENWOcPF7FCrczTiBbmC0ibXxCwyvZGbO39rCVEuLGAZM84DH0pUIyyv/YJzA==", + "version": "0.124.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.124.0.tgz", + "integrity": "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==", "dev": true, "license": "MIT", "funding": { @@ -593,9 +590,9 @@ } }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-pv1y2Fv0JybcykuiiD3qBOBdz6RteYojRFY1d+b95WVuzx211CRh+ytI/+9iVyWQ6koTh5dawe4S/yRfOFjgaA==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==", "cpu": [ "arm64" ], @@ -610,9 +607,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-cFYr6zTG/3PXXF3pUO+umXxt1wkRK/0AYT8lDwuqvRC+LuKYWSAQAQZjCWDQpAH172ZV6ieYrNnFzVVcnSflAg==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==", "cpu": [ "arm64" ], @@ -627,9 +624,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.12.tgz", - "integrity": "sha512-ZCsYknnHzeXYps0lGBz8JrF37GpE9bFVefrlmDrAQhOEi4IOIlcoU1+FwHEtyXGx2VkYAvhu7dyBf75EJQffBw==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==", "cpu": [ "x64" ], @@ -644,9 +641,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.12.tgz", - "integrity": "sha512-dMLeprcVsyJsKolRXyoTH3NL6qtsT0Y2xeuEA8WQJquWFXkEC4bcu1rLZZSnZRMtAqwtrF/Ib9Ddtpa/Gkge9Q==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.15.tgz", + "integrity": "sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==", "cpu": [ "x64" ], @@ -661,9 +658,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.12.tgz", - "integrity": "sha512-YqWjAgGC/9M1lz3GR1r1rP79nMgo3mQiiA+Hfo+pvKFK1fAJ1bCi0ZQVh8noOqNacuY1qIcfyVfP6HoyBRZ85Q==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.15.tgz", + "integrity": "sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==", "cpu": [ "arm" ], @@ -678,9 +675,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-/I5AS4cIroLpslsmzXfwbe5OmWvSsrFuEw3mwvbQ1kDxJ822hFHIx+vsN/TAzNVyepI/j/GSzrtCIwQPeKCLIg==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==", "cpu": [ "arm64" ], @@ -695,9 +692,9 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.12.tgz", - "integrity": "sha512-V6/wZztnBqlx5hJQqNWwFdxIKN0m38p8Jas+VoSfgH54HSj9tKTt1dZvG6JRHcjh6D7TvrJPWFGaY9UBVOaWPw==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==", "cpu": [ "arm64" ], @@ -712,9 +709,9 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-AP3E9BpcUYliZCxa3w5Kwj9OtEVDYK6sVoUzy4vTOJsjPOgdaJZKFmN4oOlX0Wp0RPV2ETfmIra9x1xuayFB7g==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==", "cpu": [ "ppc64" ], @@ -729,9 +726,9 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-nWwpvUSPkoFmZo0kQazZYOrT7J5DGOJ/+QHHzjvNlooDZED8oH82Yg67HvehPPLAg5fUff7TfWFHQS8IV1n3og==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==", "cpu": [ "s390x" ], @@ -746,9 +743,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.12.tgz", - "integrity": "sha512-RNrafz5bcwRy+O9e6P8Z/OCAJW/A+qtBczIqVYwTs14pf4iV1/+eKEjdOUta93q2TsT/FI0XYDP3TCky38LMAg==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.15.tgz", + "integrity": "sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==", "cpu": [ "x64" ], @@ -763,9 +760,9 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.12.tgz", - "integrity": "sha512-Jpw/0iwoKWx3LJ2rc1yjFrj+T7iHZn2JDg1Yny1ma0luviFS4mhAIcd1LFNxK3EYu3DHWCps0ydXQ5i/rrJ2ig==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.15.tgz", + "integrity": "sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==", "cpu": [ "x64" ], @@ -780,9 +777,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.12.tgz", - "integrity": "sha512-vRugONE4yMfVn0+7lUKdKvN4D5YusEiPilaoO2sgUWpCvrncvWgPMzK00ZFFJuiPgLwgFNP5eSiUlv2tfc+lpA==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.15.tgz", + "integrity": "sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==", "cpu": [ "arm64" ], @@ -797,9 +794,9 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.12.tgz", - "integrity": "sha512-ykGiLr/6kkiHc0XnBfmFJuCjr5ZYKKofkx+chJWDjitX+KsJuAmrzWhwyOMSHzPhzOHOy7u9HlFoa5MoAOJ/Zg==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.15.tgz", + "integrity": "sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==", "cpu": [ "wasm32" ], @@ -807,16 +804,18 @@ "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^1.1.1" + "@emnapi/core": "1.9.2", + "@emnapi/runtime": "1.9.2", + "@napi-rs/wasm-runtime": "^1.1.3" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.12.tgz", - "integrity": "sha512-5eOND4duWkwx1AzCxadcOrNeighiLwMInEADT0YM7xeEOOFcovWZCq8dadXgcRHSf3Ulh1kFo/qvzoFiCLOL1Q==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==", "cpu": [ "arm64" ], @@ -831,9 +830,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.12.tgz", - "integrity": "sha512-PyqoipaswDLAZtot351MLhrlrh6lcZPo2LSYE+VDxbVk24LVKAGOuE4hb8xZQmrPAuEtTZW8E6D2zc5EUZX4Lw==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.15.tgz", + "integrity": "sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==", "cpu": [ "x64" ], @@ -848,9 +847,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.12.tgz", - "integrity": "sha512-HHMwmarRKvoFsJorqYlFeFRzXZqCt2ETQlEDOb9aqssrnVBB1/+xgTGtuTrIk5vzLNX1MjMtTf7W9z3tsSbrxw==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.15.tgz", + "integrity": "sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==", "dev": true, "license": "MIT" }, @@ -898,26 +897,26 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.0.tgz", - "integrity": "sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": "~7.19.0" } }, "node_modules/@vitest/expect": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.2.tgz", - "integrity": "sha512-gbu+7B0YgUJ2nkdsRJrFFW6X7NTP44WlhiclHniUhxADQJH5Szt9mZ9hWnJPJ8YwOK5zUOSSlSvyzRf0u1DSBQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.4.tgz", + "integrity": "sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.2", - "@vitest/utils": "4.1.2", + "@vitest/spy": "4.1.4", + "@vitest/utils": "4.1.4", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" }, @@ -926,13 +925,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.2.tgz", - "integrity": "sha512-Ize4iQtEALHDttPRCmN+FKqOl2vxTiNUhzobQFFt/BM1lRUTG7zRCLOykG/6Vo4E4hnUdfVLo5/eqKPukcWW7Q==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.4.tgz", + "integrity": "sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.2", + "@vitest/spy": "4.1.4", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -953,9 +952,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.2.tgz", - "integrity": "sha512-dwQga8aejqeuB+TvXCMzSQemvV9hNEtDDpgUKDzOmNQayl2OG241PSWeJwKRH3CiC+sESrmoFd49rfnq7T4RnA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.4.tgz", + "integrity": "sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==", "dev": true, "license": "MIT", "dependencies": { @@ -966,13 +965,13 @@ } }, "node_modules/@vitest/runner": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.2.tgz", - "integrity": "sha512-Gr+FQan34CdiYAwpGJmQG8PgkyFVmARK8/xSijia3eTFgVfpcpztWLuP6FttGNfPLJhaZVP/euvujeNYar36OQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.4.tgz", + "integrity": "sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.2", + "@vitest/utils": "4.1.4", "pathe": "^2.0.3" }, "funding": { @@ -980,14 +979,14 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.2.tgz", - "integrity": "sha512-g7yfUmxYS4mNxk31qbOYsSt2F4m1E02LFqO53Xpzg3zKMhLAPZAjjfyl9e6z7HrW6LvUdTwAQR3HHfLjpko16A==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.4.tgz", + "integrity": "sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.2", - "@vitest/utils": "4.1.2", + "@vitest/pretty-format": "4.1.4", + "@vitest/utils": "4.1.4", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -996,9 +995,9 @@ } }, "node_modules/@vitest/spy": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.2.tgz", - "integrity": "sha512-DU4fBnbVCJGNBwVA6xSToNXrkZNSiw59H8tcuUspVMsBDBST4nfvsPsEHDHGtWRRnqBERBQu7TrTKskmjqTXKA==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.4.tgz", + "integrity": "sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==", "dev": true, "license": "MIT", "funding": { @@ -1006,13 +1005,13 @@ } }, "node_modules/@vitest/utils": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.2.tgz", - "integrity": "sha512-xw2/TiX82lQHA06cgbqRKFb5lCAy3axQ4H4SoUFhUsg+wztiet+co86IAMDtF6Vm1hc7J6j09oh/rgDn+JdKIQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.4.tgz", + "integrity": "sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.2", + "@vitest/pretty-format": "4.1.4", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -2256,9 +2255,9 @@ } }, "node_modules/postcss": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.8.tgz", - "integrity": "sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==", + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.9.tgz", + "integrity": "sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==", "dev": true, "funding": [ { @@ -2356,14 +2355,14 @@ } }, "node_modules/rolldown": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.12.tgz", - "integrity": "sha512-yP4USLIMYrwpPHEFB5JGH1uxhcslv6/hL0OyvTuY+3qlOSJvZ7ntYnoWpehBxufkgN0cvXxppuTu5hHa/zPh+A==", + "version": "1.0.0-rc.15", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.15.tgz", + "integrity": "sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.122.0", - "@rolldown/pluginutils": "1.0.0-rc.12" + "@oxc-project/types": "=0.124.0", + "@rolldown/pluginutils": "1.0.0-rc.15" }, "bin": { "rolldown": "bin/cli.mjs" @@ -2372,21 +2371,21 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.12", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.12", - "@rolldown/binding-darwin-x64": "1.0.0-rc.12", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.12", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.12", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.12", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.12", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.12", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.12", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.12", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.12", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.12" + "@rolldown/binding-android-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.15", + "@rolldown/binding-darwin-x64": "1.0.0-rc.15", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.15", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.15", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.15", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.15", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.15", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.15", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.15", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.15" } }, "node_modules/router": { @@ -2613,14 +2612,14 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -2691,9 +2690,9 @@ } }, "node_modules/typescript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.2.tgz", - "integrity": "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -2705,9 +2704,9 @@ } }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", "dev": true, "license": "MIT" }, @@ -2730,16 +2729,16 @@ } }, "node_modules/vite": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.3.tgz", - "integrity": "sha512-B9ifbFudT1TFhfltfaIPgjo9Z3mDynBTJSUYxTjOQruf/zHH+ezCQKcoqO+h7a9Pw9Nm/OtlXAiGT1axBgwqrQ==", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.8.tgz", + "integrity": "sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==", "dev": true, "license": "MIT", "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", "postcss": "^8.5.8", - "rolldown": "1.0.0-rc.12", + "rolldown": "1.0.0-rc.15", "tinyglobby": "^0.2.15" }, "bin": { @@ -2757,7 +2756,7 @@ "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.1.0", - "esbuild": "^0.27.0", + "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", @@ -2808,19 +2807,19 @@ } }, "node_modules/vitest": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.2.tgz", - "integrity": "sha512-xjR1dMTVHlFLh98JE3i/f/WePqJsah4A0FK9cc8Ehp9Udk0AZk6ccpIZhh1qJ/yxVWRZ+Q54ocnD8TXmkhspGg==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.4.tgz", + "integrity": "sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.1.2", - "@vitest/mocker": "4.1.2", - "@vitest/pretty-format": "4.1.2", - "@vitest/runner": "4.1.2", - "@vitest/snapshot": "4.1.2", - "@vitest/spy": "4.1.2", - "@vitest/utils": "4.1.2", + "@vitest/expect": "4.1.4", + "@vitest/mocker": "4.1.4", + "@vitest/pretty-format": "4.1.4", + "@vitest/runner": "4.1.4", + "@vitest/snapshot": "4.1.4", + "@vitest/spy": "4.1.4", + "@vitest/utils": "4.1.4", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", @@ -2848,10 +2847,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.2", - "@vitest/browser-preview": "4.1.2", - "@vitest/browser-webdriverio": "4.1.2", - "@vitest/ui": "4.1.2", + "@vitest/browser-playwright": "4.1.4", + "@vitest/browser-preview": "4.1.4", + "@vitest/browser-webdriverio": "4.1.4", + "@vitest/coverage-istanbul": "4.1.4", + "@vitest/coverage-v8": "4.1.4", + "@vitest/ui": "4.1.4", "happy-dom": "*", "jsdom": "*", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -2875,6 +2876,12 @@ "@vitest/browser-webdriverio": { "optional": true }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { + "optional": true + }, "@vitest/ui": { "optional": true }, diff --git a/mcp-server/package.json b/mcp-server/package.json index 716d56e..ed3a03f 100644 --- a/mcp-server/package.json +++ b/mcp-server/package.json @@ -24,14 +24,14 @@ "prepublishOnly": "npm run build" }, "dependencies": { - "@modelcontextprotocol/sdk": "^1.12.1", + "@modelcontextprotocol/sdk": "^1.29.0", "zod": "^4.3.6" }, "devDependencies": { - "@types/node": "^25.5.0", + "@types/node": "^25.6.0", "tsx": "^4.19.4", - "typescript": "^6.0.2", - "vitest": "^4.1.2" + "typescript": "^6.0.3", + "vitest": "^4.1.4" }, "license": "CC-BY-NC-ND-4.0", "repository": { diff --git a/rules/buildx-best-practices.mdc b/rules/buildx-best-practices.mdc index 9183527..4cae814 100644 --- a/rules/buildx-best-practices.mdc +++ b/rules/buildx-best-practices.mdc @@ -7,7 +7,7 @@ globs: - "**/docker-compose*.yaml" - "**/compose*.yml" - "**/compose*.yaml" -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Buildx Best Practices diff --git a/rules/compose-scaling.mdc b/rules/compose-scaling.mdc index 3c0b02c..aeefea9 100644 --- a/rules/compose-scaling.mdc +++ b/rules/compose-scaling.mdc @@ -6,7 +6,7 @@ globs: - "**/docker-compose*.yaml" - "**/compose*.yml" - "**/compose*.yaml" -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Compose Scaling diff --git a/rules/compose-validation.mdc b/rules/compose-validation.mdc index 48d5916..62de8b1 100644 --- a/rules/compose-validation.mdc +++ b/rules/compose-validation.mdc @@ -6,7 +6,7 @@ globs: - "**/docker-compose*.yaml" - "**/compose*.yml" - "**/compose*.yaml" -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Compose Validation Rules diff --git a/rules/docker-image-pinning.mdc b/rules/docker-image-pinning.mdc index ef6cc67..15ce4ef 100644 --- a/rules/docker-image-pinning.mdc +++ b/rules/docker-image-pinning.mdc @@ -7,7 +7,7 @@ globs: - "**/docker-compose*.yaml" - "**/compose*.yml" - "**/compose*.yaml" -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Image Tag Pinning diff --git a/rules/docker-logging.mdc b/rules/docker-logging.mdc index c67a29f..c525de4 100644 --- a/rules/docker-logging.mdc +++ b/rules/docker-logging.mdc @@ -7,7 +7,7 @@ globs: - "**/docker-compose*.yaml" - "**/compose*.yml" - "**/compose*.yaml" -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Logging Validation Rules diff --git a/rules/docker-port-conflicts.mdc b/rules/docker-port-conflicts.mdc index 19fefce..4ae7dd1 100644 --- a/rules/docker-port-conflicts.mdc +++ b/rules/docker-port-conflicts.mdc @@ -7,7 +7,7 @@ globs: - "**/compose*.yml" - "**/compose*.yaml" - "**/Dockerfile*" -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Port Conflict Detection diff --git a/rules/docker-resource-limits.mdc b/rules/docker-resource-limits.mdc index 47f5488..efab046 100644 --- a/rules/docker-resource-limits.mdc +++ b/rules/docker-resource-limits.mdc @@ -8,7 +8,7 @@ globs: - "**/compose*.yaml" - "**/Dockerfile*" - "**/*docker*" -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Resource Limits diff --git a/rules/docker-secrets.mdc b/rules/docker-secrets.mdc index 240a15b..7d8d750 100644 --- a/rules/docker-secrets.mdc +++ b/rules/docker-secrets.mdc @@ -1,7 +1,7 @@ --- description: Flag hardcoded passwords, tokens, and registry credentials in Docker configurations. Suggest environment variables or Docker secrets. alwaysApply: true -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Secrets and Credential Safety diff --git a/rules/dockerfile-lint.mdc b/rules/dockerfile-lint.mdc index 505406c..062ea7c 100644 --- a/rules/dockerfile-lint.mdc +++ b/rules/dockerfile-lint.mdc @@ -3,7 +3,7 @@ description: Flag common Dockerfile antipatterns including unpinned base images, alwaysApply: false globs: - "**/Dockerfile*" -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Dockerfile Linting Rules diff --git a/rules/swarm-security.mdc b/rules/swarm-security.mdc index 0d296b6..9806424 100644 --- a/rules/swarm-security.mdc +++ b/rules/swarm-security.mdc @@ -9,7 +9,7 @@ globs: - "**/compose*.yaml" - "**/docker-stack*.yml" - "**/docker-stack*.yaml" -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Swarm Security diff --git a/skills/container-debugging/SKILL.md b/skills/container-debugging/SKILL.md index 05b4515..ce18b0a 100644 --- a/skills/container-debugging/SKILL.md +++ b/skills/container-debugging/SKILL.md @@ -1,7 +1,7 @@ --- name: container-debugging description: Debug running containers with log analysis, shell access, state inspection, and network diagnostics. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Container Debugging diff --git a/skills/docker-advanced-workflows/SKILL.md b/skills/docker-advanced-workflows/SKILL.md index 05b4c76..caccd0b 100644 --- a/skills/docker-advanced-workflows/SKILL.md +++ b/skills/docker-advanced-workflows/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-advanced-workflows description: Multi-stage pipelines, sidecar patterns, healthchecks, init containers, signal handling, and graceful shutdown. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Advanced Workflows diff --git a/skills/docker-ci-cd/SKILL.md b/skills/docker-ci-cd/SKILL.md index 78c8062..d842cb0 100644 --- a/skills/docker-ci-cd/SKILL.md +++ b/skills/docker-ci-cd/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-ci-cd description: Use Docker in CI/CD pipelines with GitHub Actions, multi-platform builds, registry push, and layer caching strategies. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker CI/CD diff --git a/skills/docker-compose-helper/SKILL.md b/skills/docker-compose-helper/SKILL.md index 2e833e2..793be7e 100644 --- a/skills/docker-compose-helper/SKILL.md +++ b/skills/docker-compose-helper/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-compose-helper description: Write, debug, and optimize docker-compose.yml files with service definitions, networking, volumes, and healthchecks. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Compose Helper diff --git a/skills/docker-context-management/SKILL.md b/skills/docker-context-management/SKILL.md index 832360c..3b4b880 100644 --- a/skills/docker-context-management/SKILL.md +++ b/skills/docker-context-management/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-context-management description: Manage Docker contexts for multi-host and remote Docker engine workflows -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Context Management diff --git a/skills/docker-development-env/SKILL.md b/skills/docker-development-env/SKILL.md index c532d21..eb5fd14 100644 --- a/skills/docker-development-env/SKILL.md +++ b/skills/docker-development-env/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-development-env description: Set up development environments with Docker including hot reload, dev containers, bind mounts, and database containers. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Development Environment diff --git a/skills/docker-image-signing/SKILL.md b/skills/docker-image-signing/SKILL.md index 52caaab..b7cf1c6 100644 --- a/skills/docker-image-signing/SKILL.md +++ b/skills/docker-image-signing/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-image-signing description: Docker Content Trust - image signing, verification, key management, and CI/CD signing pipelines -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Content Trust and Image Signing diff --git a/skills/docker-multi-platform/SKILL.md b/skills/docker-multi-platform/SKILL.md index 8cc0d49..d843b47 100644 --- a/skills/docker-multi-platform/SKILL.md +++ b/skills/docker-multi-platform/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-multi-platform description: Multi-architecture builds, buildx builder configuration, manifest lists, platform targeting, and cross-compilation patterns. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Multi-Platform Builds diff --git a/skills/docker-networking/SKILL.md b/skills/docker-networking/SKILL.md index 8b232b4..f27801b 100644 --- a/skills/docker-networking/SKILL.md +++ b/skills/docker-networking/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-networking description: Configure container networking with bridge, host, and overlay drivers, port mapping, DNS resolution, and inter-container communication. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Networking diff --git a/skills/docker-registry/SKILL.md b/skills/docker-registry/SKILL.md index 38c8a27..f9fc9f9 100644 --- a/skills/docker-registry/SKILL.md +++ b/skills/docker-registry/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-registry description: Work with container registries including Docker Hub, GHCR, ECR, and ACR for pushing, pulling, and tag management. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Registry diff --git a/skills/docker-resource-management/SKILL.md b/skills/docker-resource-management/SKILL.md index 493b67d..231876b 100644 --- a/skills/docker-resource-management/SKILL.md +++ b/skills/docker-resource-management/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-resource-management description: Configure resource limits and monitoring with CPU and memory constraints, cgroups, container stats, and OOM kill prevention. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Resource Management diff --git a/skills/docker-security/SKILL.md b/skills/docker-security/SKILL.md index 7b8038f..156be61 100644 --- a/skills/docker-security/SKILL.md +++ b/skills/docker-security/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-security description: Harden container security with rootless mode, read-only filesystems, capability management, secret handling, and image scanning. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Security diff --git a/skills/docker-swarm/SKILL.md b/skills/docker-swarm/SKILL.md index f70ba41..a4126a8 100644 --- a/skills/docker-swarm/SKILL.md +++ b/skills/docker-swarm/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-swarm description: Docker Swarm mode orchestration - cluster management, service deployment, scaling, node administration, and rolling updates -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Swarm Orchestration diff --git a/skills/docker-troubleshooting/SKILL.md b/skills/docker-troubleshooting/SKILL.md index 775aa3c..7517651 100644 --- a/skills/docker-troubleshooting/SKILL.md +++ b/skills/docker-troubleshooting/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-troubleshooting description: Diagnose and fix common Docker problems including port conflicts, permission errors, disk space, networking issues, and build failures. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Troubleshooting diff --git a/skills/docker-volumes/SKILL.md b/skills/docker-volumes/SKILL.md index 63a3300..8b4b212 100644 --- a/skills/docker-volumes/SKILL.md +++ b/skills/docker-volumes/SKILL.md @@ -1,7 +1,7 @@ --- name: docker-volumes description: Manage data persistence with named volumes, bind mounts, tmpfs mounts, volume drivers, and backup strategies. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Docker Volumes diff --git a/skills/dockerfile-best-practices/SKILL.md b/skills/dockerfile-best-practices/SKILL.md index 56cf82f..c7045aa 100644 --- a/skills/dockerfile-best-practices/SKILL.md +++ b/skills/dockerfile-best-practices/SKILL.md @@ -1,7 +1,7 @@ --- name: dockerfile-best-practices description: Write and optimize Dockerfiles with multi-stage builds, layer caching, image size reduction, and security hardening. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Dockerfile Best Practices diff --git a/skills/image-optimization/SKILL.md b/skills/image-optimization/SKILL.md index 0f23a63..0f24bf0 100644 --- a/skills/image-optimization/SKILL.md +++ b/skills/image-optimization/SKILL.md @@ -1,7 +1,7 @@ --- name: image-optimization description: Reduce Docker image size with base image selection, layer consolidation, multi-stage patterns, and distroless builds. -standards-version: 1.7.0 +standards-version: 1.9.0 --- # Image Optimization