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
-
+
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