{"_id":"@clubmatto/ai-kit","_rev":"9-c4fee49eadb711e248c36399c6507c18","name":"@clubmatto/ai-kit","dist-tags":{"latest":"0.0.11"},"versions":{"0.0.1":{"name":"@clubmatto/ai-kit","version":"0.0.1","keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"license":"MIT","_id":"@clubmatto/ai-kit@0.0.1","maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"homepage":"https://github.com/clubmatto/vetrina#readme","bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"bin":{"ai-kit":"dist/src/index.js"},"dist":{"shasum":"8ac6fe7889243437eeb446f7756e7a45cc47e340","tarball":"https://registry.npmjs.org/@clubmatto/ai-kit/-/ai-kit-0.0.1.tgz","fileCount":70,"integrity":"sha512-aODSpAo2LkbEz8MH8k9LKm5pWUW5LLWegL7URxWom/LwX6przKzYObOFfbpcnqvmd2LVoy7b+TGxe8seycvvSA==","signatures":[{"sig":"MEQCIExCXnrxXphK6YgAJWb7/DTLLO6DMkbrVcL7435Ra619AiBMingWVd06ADJ+1ulMFZFe9jZWk5ByS4Ok7zxbMvDQ0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163486},"knip":{"ignore":["src/skills/**/scripts/*.js"]},"gitHead":"9d57e17210acf5c37fe5cf8ed89e39d1770f8be8","scripts":{"ci":"npm run typecheck && npm run lint && npm run test && npm run test:integration","dev":"tsx src/index.ts","lint":"eslint . && knip","test":"vitest run --exclude 'tests/integration/**'","build":"tsc","format":"prettier --write .","release":"release-it","dev:link":"npm run build && npm link","typecheck":"tsc --noEmit","test:watch":"vitest","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test:integration":"npm run build && vitest run tests/integration","fetch-playwright-skills":"tsx scripts/fetch-playwright-skills.ts v0.1.1"},"_npmUser":{"name":"lucapette","email":"ciao@lucapette.me"},"release-it":{"git":{"tagName":"v${version}","commitMessage":"chore: release v${version}"},"npm":{"publish":true},"plugins":{"@release-it/keep-a-changelog":{}},"version":{"bump":false}},"repository":{"url":"git+https://github.com/clubmatto/vetrina.git","type":"git"},"_npmVersion":"11.11.1","description":"The AI configuration CLI from Club Matto","directories":{},"_nodeVersion":"25.8.2","dependencies":{"commander":"^14.0.3","gradient-string":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","knip":"^5.85.0","eslint":"^10.0.1","vitest":"^4.0.18","prettier":"^3.4.2","@eslint/js":"^10.0.1","release-it":"^19.2.4","typescript":"^5.9.3","@types/node":"^25.3.0","typescript-eslint":"^8.56.0","@release-it/keep-a-changelog":"^7.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ai-kit_0.0.1_1774968147565_0.8448894869868819","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@clubmatto/ai-kit","version":"0.0.4","keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"license":"MIT","_id":"@clubmatto/ai-kit@0.0.4","maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"homepage":"https://github.com/clubmatto/vetrina/tree/main/ai-kit","bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"bin":{"ai-kit":"dist/src/index.js"},"dist":{"shasum":"fb19c4a1d38a1851818604c47fc56c61fb0d8bbc","tarball":"https://registry.npmjs.org/@clubmatto/ai-kit/-/ai-kit-0.0.4.tgz","fileCount":41,"integrity":"sha512-ClitwCmTzN+uqshz2w+rYuh52lCWuHocwanVY5yAgRYAR9iwygtAlm3kWcV9r309xvErTxQj8grR5wJioKfL3g==","signatures":[{"sig":"MEUCIClPiOSqMr88wzs0ydzhZLPwnKBUdpxzY2fBn5+zWTh4AiEAt7q/jGL0JgWt9NGhKFfIsa327E89nHeGX5wqzHclyYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clubmatto%2fai-kit@0.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106146},"knip":{"ignore":["src/skills/**/scripts/*.js"]},"gitHead":"64f9116d617f5d287712146f0ba02c15b4b7d763","scripts":{"ci":"npm run typecheck && npm run lint && npm run test && npm run test:integration","dev":"tsx src/index.ts","lint":"eslint . && knip","test":"vitest run --config vitest.config.mts --exclude 'tests/integration/**'","build":"tsc","format":"prettier --write .","dev:link":"npm run build && npm link","typecheck":"tsc --noEmit","test:watch":"vitest","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test:integration":"npm run build && vitest run --config vitest.config.mts tests/integration","fetch-playwright-skills":"tsx scripts/fetch-playwright-skills.ts v0.1.1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6fdc18ff-f08a-4bc4-b9dc-073896d624d0"}},"repository":{"url":"git+https://github.com/clubmatto/vetrina.git","type":"git"},"_npmVersion":"11.12.1","description":"The AI configuration CLI from Club Matto","directories":{},"_nodeVersion":"24.14.1","dependencies":{"commander":"^14.0.3","gradient-string":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","knip":"^5.85.0","eslint":"^10.0.1","vitest":"^4.0.18","prettier":"^3.4.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.3.0","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-kit_0.0.4_1776347020190_0.45284447809360073","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@clubmatto/ai-kit","version":"0.0.5","keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"license":"MIT","_id":"@clubmatto/ai-kit@0.0.5","maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"homepage":"https://github.com/clubmatto/vetrina/tree/main/ai-kit","bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"bin":{"ai-kit":"dist/src/index.js"},"dist":{"shasum":"e1b6c64ea30211acd0e4c2bcca4164c9867c0b20","tarball":"https://registry.npmjs.org/@clubmatto/ai-kit/-/ai-kit-0.0.5.tgz","fileCount":41,"integrity":"sha512-PErC49OJ1YkwDBAnXot+fWzF/g+y7vmk3AdC0uh8mRGBjbiEyKhfafbUYHCsUSnpGXjXGwuyEBs0JmoKSTFuDg==","signatures":[{"sig":"MEUCIDCQ3Mw2KahKcuOAjPVkxKc1nFVqRa/zwHN/g/U9lRbgAiEAoT8Z2DqtXZ3AZICHPfOux3kR+TcZ06u+VtsE1vJGRJA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clubmatto%2fai-kit@0.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106332},"knip":{"ignore":["src/skills/**/scripts/*.js"]},"gitHead":"a800b88e869c24250125f2b52f80cd53fb782899","scripts":{"ci":"npm run typecheck && npm run lint && npm run test && npm run test:integration","dev":"tsx src/index.ts","lint":"eslint . && knip","test":"vitest run --config vitest.config.mts --exclude 'tests/integration/**'","build":"tsc","format":"prettier --write .","dev:link":"npm run build && npm link","typecheck":"tsc --noEmit","test:watch":"vitest","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test:integration":"npm run build && vitest run --config vitest.config.mts tests/integration","fetch-playwright-skills":"tsx scripts/fetch-playwright-skills.ts v0.1.1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6fdc18ff-f08a-4bc4-b9dc-073896d624d0"}},"repository":{"url":"git+https://github.com/clubmatto/vetrina.git","type":"git"},"_npmVersion":"11.12.1","description":"The AI configuration CLI from Club Matto","directories":{},"_nodeVersion":"24.14.1","dependencies":{"commander":"^14.0.3","gradient-string":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","knip":"^5.85.0","eslint":"^10.0.1","vitest":"^4.0.18","prettier":"^3.4.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.3.0","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-kit_0.0.5_1776756648107_0.3931542571007116","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@clubmatto/ai-kit","version":"0.0.6","keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"license":"MIT","_id":"@clubmatto/ai-kit@0.0.6","maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"homepage":"https://github.com/clubmatto/vetrina/tree/main/ai-kit","bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"bin":{"ai-kit":"dist/src/index.js"},"dist":{"shasum":"190e52898ba296c5d8cb2bca30e2dfdac2d37d90","tarball":"https://registry.npmjs.org/@clubmatto/ai-kit/-/ai-kit-0.0.6.tgz","fileCount":33,"integrity":"sha512-AL97pSAtzLrWE7ukodd41ozUT0SYN97VKlb7PQUkRhy7T3fTcJsiqllg9I/Iu7ufF+cWQlxJmxKJPbK+YBBGtA==","signatures":[{"sig":"MEQCIAOhjf3Jk6bqL3GLVdVvvWhoNgnRbPD3Vz7mRpT3QZTeAiBJqoBCbbOKVuK9nTuAkFh2s/LrfVTGTrwkJIQegEuBPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clubmatto%2fai-kit@0.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95103},"knip":{"ignore":["src/skills/**/scripts/*.js"]},"gitHead":"e97ab069b4e350a45068b863c46e8ca6f00457cf","scripts":{"ci":"npm run typecheck && npm run lint && npm run test && npm run test:integration","dev":"tsx src/index.ts","lint":"eslint . && knip","test":"vitest run --config vitest.config.mts --exclude 'tests/integration/**'","build":"tsc","format":"prettier --write .","dev:link":"npm run build && npm link","typecheck":"tsc --noEmit","test:watch":"vitest","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test:integration":"npm run build && vitest run --config vitest.config.mts tests/integration","fetch-playwright-skills":"tsx scripts/fetch-playwright-skills.ts v0.1.1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6fdc18ff-f08a-4bc4-b9dc-073896d624d0"}},"repository":{"url":"git+https://github.com/clubmatto/vetrina.git","type":"git"},"_npmVersion":"11.12.1","description":"The AI configuration CLI from Club Matto","directories":{},"_nodeVersion":"24.14.1","dependencies":{"commander":"^14.0.3","gradient-string":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","knip":"^5.85.0","eslint":"^10.0.1","vitest":"^4.0.18","prettier":"^3.4.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.3.0","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-kit_0.0.6_1776801302073_0.8735047748105507","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@clubmatto/ai-kit","version":"0.0.7","keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"license":"MIT","_id":"@clubmatto/ai-kit@0.0.7","maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"homepage":"https://github.com/clubmatto/vetrina/tree/main/ai-kit","bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"bin":{"ai-kit":"dist/src/index.js"},"dist":{"shasum":"3495b141e14749277a18a74e58b570be784963d8","tarball":"https://registry.npmjs.org/@clubmatto/ai-kit/-/ai-kit-0.0.7.tgz","fileCount":37,"integrity":"sha512-g64HJd8chtMdJWCJS2HQNhcgidIV9+uisJNezcT/qqUerxhGowBPKrsMd9WxUUfB05Sim8IVRgyiuWnpNAwMFw==","signatures":[{"sig":"MEYCIQDsOjFozbxywZgEagI9KKT0r0Tl53x14yeNbnyioKed2AIhANVhwjtLKUKC3HJDXWnxfKqQECZ/1BZ95sOGdbtgcWwa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clubmatto%2fai-kit@0.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87387},"knip":{"ignore":["src/skills/**/scripts/*.js"]},"gitHead":"4fbfa52ec7bc1e36492f04bb11ee9846d503a7f2","scripts":{"ci":"npm run prettier:check && npm run typecheck && npm run lint && npm run test && npm run test:integration","dev":"tsx src/index.ts","lint":"eslint . && knip","test":"vitest run --config vitest.config.mts --exclude 'tests/integration/**'","build":"tsc","format":"prettier --write .","dev:link":"npm run build && npm link","typecheck":"tsc --noEmit","test:watch":"vitest","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test:integration":"npm run build && vitest run --config vitest.config.mts tests/integration","fetch-playwright-skills":"tsx scripts/fetch-playwright-skills.ts v0.1.1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6fdc18ff-f08a-4bc4-b9dc-073896d624d0"}},"repository":{"url":"git+https://github.com/clubmatto/vetrina.git","type":"git"},"_npmVersion":"11.13.0","description":"The AI configuration CLI from Club Matto","directories":{},"_nodeVersion":"24.14.1","dependencies":{"commander":"^14.0.3","gradient-string":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","knip":"^5.85.0","eslint":"^10.0.1","vitest":"^4.0.18","prettier":"^3.4.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.3.0","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-kit_0.0.7_1777451277225_0.7545784167779113","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@clubmatto/ai-kit","version":"0.0.8","keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"license":"MIT","_id":"@clubmatto/ai-kit@0.0.8","maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"homepage":"https://github.com/clubmatto/vetrina/tree/main/ai-kit","bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"bin":{"ai-kit":"dist/src/index.js"},"dist":{"shasum":"b29852bab0e5875c03184dc878cd103d29c3eb55","tarball":"https://registry.npmjs.org/@clubmatto/ai-kit/-/ai-kit-0.0.8.tgz","fileCount":38,"integrity":"sha512-bFyKn4dZJmJXmRkdXhOPq5HCqU0IpFuJTngnXkHCoyriKktrVIj1FChPwfAWpkb5IgHIIWT70vP6LignJDrndw==","signatures":[{"sig":"MEUCIAn6EV+7qCyuvBcQpLTcepG8Hib3eyRP66AM8okb/DiBAiEApdo/85lKqzN+NnIzzsYnfHQwzq8jp+VxyxtNMC7zHoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clubmatto%2fai-kit@0.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92382},"knip":{"ignore":["src/skills/**/scripts/*.js"]},"gitHead":"842e70e4c44e23bbfdef6416cff93d3c73f576ec","scripts":{"ci":"npm run prettier:check && npm run typecheck && npm run lint && npm run test && npm run test:integration","dev":"tsx src/index.ts","lint":"eslint . && knip","test":"vitest run --config vitest.config.mts --exclude 'tests/integration/**'","build":"tsc","format":"prettier --write .","dev:link":"npm run build && npm link","typecheck":"tsc --noEmit","test:watch":"vitest","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test:integration":"npm run build && vitest run --config vitest.config.mts tests/integration","fetch-playwright-skills":"tsx scripts/fetch-playwright-skills.ts v0.1.1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6fdc18ff-f08a-4bc4-b9dc-073896d624d0"}},"repository":{"url":"git+https://github.com/clubmatto/vetrina.git","type":"git"},"_npmVersion":"11.14.1","description":"The AI configuration CLI from Club Matto","directories":{},"_nodeVersion":"24.14.1","dependencies":{"fdir":"6.5.0","commander":"^14.0.3","gradient-string":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","knip":"^5.85.0","eslint":"^10.0.1","vitest":"^4.0.18","prettier":"^3.4.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.3.0","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-kit_0.0.8_1778775636367_0.13151387794425928","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@clubmatto/ai-kit","version":"0.0.9","keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"license":"MIT","_id":"@clubmatto/ai-kit@0.0.9","maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"homepage":"https://github.com/clubmatto/vetrina/tree/main/ai-kit","bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"bin":{"ai-kit":"dist/src/index.js"},"dist":{"shasum":"666f653be483f84d44bca95709a062ed9c862d9e","tarball":"https://registry.npmjs.org/@clubmatto/ai-kit/-/ai-kit-0.0.9.tgz","fileCount":38,"integrity":"sha512-UklkuCNO+JuSik9CahsyPLPH85obZtKgKqEMto4CVVlgMF3sSKj2bUx2X+Y6suF5BqEAkxZsYjZCV5EAbeM6lw==","signatures":[{"sig":"MEUCIA0vDbFvgwfpqjI1dXXacUXWkLBdoBrOxA+I5VTdONDzAiEAjiUyJO0b7WxYpJIoozvFOHcQV3Gjw0h1BOxMXoJAvwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clubmatto%2fai-kit@0.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93509},"knip":{"ignore":["src/skills/**/scripts/*.js"]},"gitHead":"de3096946a981960c285ba175a18ccecbb3af008","scripts":{"ci":"npm run prettier:check && npm run typecheck && npm run lint && npm run test && npm run test:integration","dev":"tsx src/index.ts","lint":"eslint . && knip","test":"vitest run --config vitest.config.mts --exclude 'tests/integration/**'","build":"tsc","format":"prettier --write .","dev:link":"npm run build && npm link","typecheck":"tsc --noEmit","test:watch":"vitest","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test:integration":"npm run build && vitest run --config vitest.config.mts tests/integration","fetch-playwright-skills":"tsx scripts/fetch-playwright-skills.ts v0.1.1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6fdc18ff-f08a-4bc4-b9dc-073896d624d0"}},"repository":{"url":"git+https://github.com/clubmatto/vetrina.git","type":"git"},"_npmVersion":"11.16.0","description":"The AI configuration CLI from Club Matto","directories":{},"_nodeVersion":"24.16.0","dependencies":{"fdir":"6.5.0","commander":"^14.0.3","gradient-string":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","knip":"^5.85.0","eslint":"^10.0.1","vitest":"^4.0.18","prettier":"^3.4.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.3.0","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-kit_0.0.9_1780564180274_0.5647658715903094","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@clubmatto/ai-kit","version":"0.0.10","keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"license":"MIT","_id":"@clubmatto/ai-kit@0.0.10","maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"homepage":"https://github.com/clubmatto/vetrina/tree/main/ai-kit","bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"bin":{"ai-kit":"dist/src/index.js"},"dist":{"shasum":"156d0c24d352605219a7681169f9f852c77ae428","tarball":"https://registry.npmjs.org/@clubmatto/ai-kit/-/ai-kit-0.0.10.tgz","fileCount":37,"integrity":"sha512-XrlHWXpOyyDB3r2K3rPvyj0+g4VQiyz1bgKORULNxRzVAC8fV0Rdhcm7aM7y/YV9yXD3HgHmgLqjFU7pehibPA==","signatures":[{"sig":"MEYCIQCeuJPkrUUoDw/R6LPWhLfU9bPJIEchEYIwsWpUcCyx5wIhALoYVetuHCJ6FGqx55WalPNFk9OUXF3RbAyFX7puJY73","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clubmatto%2fai-kit@0.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99113},"gitHead":"0880a4a0ca7bc3c463ad9cc67bd303a8beeaece3","scripts":{"ci":"npm run prettier:check && npm run typecheck && npm run lint && npm run test && npm run test:integration","dev":"tsx src/index.ts","lint":"eslint . && knip","test":"vitest run --config vitest.config.mts --exclude 'tests/integration/**'","build":"tsc","format":"prettier --write .","dev:link":"npm run build && npm link","typecheck":"tsc --noEmit","test:watch":"vitest","prettier:check":"prettier --check .","prettier:write":"prettier --write .","test:integration":"npm run build && vitest run --config vitest.config.mts tests/integration","fetch-playwright-skills":"tsx scripts/fetch-playwright-skills.ts v0.1.1"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6fdc18ff-f08a-4bc4-b9dc-073896d624d0"}},"repository":{"url":"git+https://github.com/clubmatto/vetrina.git","type":"git"},"_npmVersion":"12.0.1","description":"The AI configuration CLI from Club Matto","directories":{},"_nodeVersion":"24.18.0","dependencies":{"fdir":"6.5.0","commander":"^14.0.3","gradient-string":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"latest","knip":"^5.85.0","eslint":"^10.0.1","vitest":"^4.0.18","prettier":"^3.4.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^25.3.0","typescript-eslint":"^8.56.0"},"_npmOperationalInternal":{"tmp":"tmp/ai-kit_0.0.10_1785227725188_0.9016143857635492","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@clubmatto/ai-kit","version":"0.0.11","description":"The AI configuration CLI from Club Matto","repository":{"type":"git","url":"git+https://github.com/clubmatto/vetrina.git"},"bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"homepage":"https://github.com/clubmatto/vetrina/tree/main/ai-kit","bin":{"ai-kit":"dist/src/index.js"},"scripts":{"build":"tsc","dev":"tsx src/index.ts","dev:link":"npm run build && npm link","fetch-playwright-skills":"tsx scripts/fetch-playwright-skills.ts v0.1.1","test":"vitest run --config vitest.config.mts --exclude 'tests/integration/**'","test:integration":"npm run build && vitest run --config vitest.config.mts tests/integration","test:watch":"vitest","typecheck":"tsc --noEmit","prettier:write":"prettier --write .","prettier:check":"prettier --check .","format":"prettier --write .","lint":"eslint . && knip","ci":"npm run prettier:check && npm run typecheck && npm run lint && npm run test && npm run test:integration"},"dependencies":{"commander":"^14.0.3","fdir":"6.5.0","gradient-string":"^2.0.0"},"devDependencies":{"@eslint/js":"^10.0.1","@types/node":"^25.3.0","eslint":"^10.0.1","knip":"^5.85.0","prettier":"^3.4.2","tsx":"latest","typescript":"^5.9.3","typescript-eslint":"^8.56.0","vitest":"^4.0.18"},"keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"license":"MIT","gitHead":"428dd1a6ca9a47fa756f1c1c2885f5e3ae143c52","_id":"@clubmatto/ai-kit@0.0.11","_nodeVersion":"24.19.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-d/fl7BieVuOc6Nzag32soXL40ONI+BmKcxNWY+oml5o+3AtcSM4YsYQPCBdAbLQMDFdUPKqSWamBQ+lQsa2u8Q==","shasum":"0e0ea7fcfa56ce762b133987735c8ba87f8ad19e","tarball":"https://registry.npmjs.org/@clubmatto/ai-kit/-/ai-kit-0.0.11.tgz","fileCount":38,"unpackedSize":105574,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@clubmatto%2fai-kit@0.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDfd1vmM/qFXyLLt1OlXS23CraHiE7TnAfqWsocFWVJ3AiA8owJp298AjlPHfYt9dLdJP67XN91mDb1PZnQdlYmOkA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6fdc18ff-f08a-4bc4-b9dc-073896d624d0"}},"directories":{},"maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-kit_0.0.11_1788251611633_0.1032020622465959"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-31T14:42:27.423Z","modified":"2026-09-01T08:33:32.122Z","0.0.1":"2026-03-31T14:42:27.754Z","0.0.4":"2026-04-16T13:43:40.349Z","0.0.5":"2026-04-21T07:30:48.235Z","0.0.6":"2026-04-21T19:55:02.205Z","0.0.7":"2026-04-29T08:27:57.400Z","0.0.8":"2026-05-14T16:20:36.514Z","0.0.9":"2026-06-04T09:09:40.420Z","0.0.10":"2026-07-28T08:35:25.320Z","0.0.11":"2026-09-01T08:33:31.757Z"},"bugs":{"url":"https://github.com/clubmatto/vetrina/issues"},"license":"MIT","homepage":"https://github.com/clubmatto/vetrina/tree/main/ai-kit","keywords":["ai","opencode","ai-configuration","club-matto","prompt-management","cli"],"repository":{"type":"git","url":"git+https://github.com/clubmatto/vetrina.git"},"description":"The AI configuration CLI from Club Matto","maintainers":[{"name":"lucapette","email":"ciao@lucapette.me"}],"readme":"# ai-kit\n\n[![CI](https://github.com/clubmatto/vetrina/actions/workflows/ai-kit-ci.yml/badge.svg)](https://github.com/clubmatto/vetrina/actions/workflows/ai-kit-ci.yml)\n[![npm version](https://img.shields.io/npm/v/@clubmatto/ai-kit)](https://www.npmjs.com/package/@clubmatto/ai-kit)\n[![License: MIT](https://img.shields.io/npm/l/@clubmatto%2Fai-kit)](/LICENSE)\n\nThe AI configuration CLI from Club Matto. Sync rules, skills, and commands to\npower up your AI coding workflow.\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"../assets/vhs/ai-kit/basic-dark.gif\">\n  <img alt=\"AI Kit basic usage\" src=\"../assets/vhs/ai-kit/basic-light.gif\">\n</picture>\n\n## Table of Contents\n\n- [Install](#install)\n- [Quick Start](#quick-start)\n- [Usage](#usage)\n- [Options Reference](#options-reference)\n- [Language Detection](#language-detection)\n- [What's Installed](#whats-installed)\n- [Commands Reference](#commands-reference)\n- [Local Development](#local-development)\n- [Release](#release)\n- [License](#license)\n\n## Install\n\n```bash\nnpm install -g @clubmatto/ai-kit\n```\n\nRequires Node.js 18+.\n\n## Quick Start\n\n```bash\n# Sync AI configuration to your project\nai-kit sync\n```\n\nThat's it. AI Kit detects your project's languages and installs the right\nrules, skills, and commands automatically.\n\n```bash\n# See what changed\nai-kit sync\n\n# Example output:\n#   ai-kit v0.0.9  The AI configuration CLI\n#   from Club Matto\n#\n#     Syncing AI rules, skills, and commands to your project...\n#\n#     → Installing TypeScript rules\n#       ✓ .agents/rules/typescript.md\n#       ✓ .agents/rules/react.md\n#     → Installing Go rules\n#       ✓ .agents/rules/go.md\n#\n#     ✓ Done!\n#     +5 added\n```\n\n## Usage\n\n```bash\n# Initialize or update AI configuration\nai-kit sync\n\n# Skip installing opencode.json\nai-kit sync --skip-opencode\n\n# Language detection & filtering\nai-kit sync --all-rules              # Install all language rules\nai-kit sync --languages=go,kotlin    # Install specific language rules\nai-kit sync --monorepo               # Force monorepo AGENTS.md template\nai-kit sync --single-repo            # Force single-repo AGENTS.md template\n```\n\n### Detected Languages\n\n| Language                | Detection File                                             |\n| ----------------------- | ---------------------------------------------------------- |\n| TypeScript / JavaScript | `package.json`, `.ts` / `.js` files                        |\n| Go                      | `go.mod`, `.go` files                                      |\n| Kotlin                  | `build.gradle`, `build.gradle.kts`, `pom.xml`, `.kt` files |\n| Spring Boot             | `application.properties` / `.yml` + Kotlin / Java files    |\n| Generic                 | Fallback when nothing matches                              |\n\nMultiple languages trigger monorepo mode (all rules + monorepo AGENTS.md).\nSingle language triggers single-repo mode (language-specific AGENTS.md).\n\n## Options Reference\n\n| Option                | Description                                        |\n| --------------------- | -------------------------------------------------- |\n| `--skip-opencode`     | Skip installing `opencode.json` to project root    |\n| `--all-rules`         | Install all language rules regardless of detection |\n| `--languages=<langs>` | Comma-separated language list (e.g. `go,kotlin`)   |\n| `--monorepo`          | Force monorepo AGENTS.md template                  |\n| `--single-repo`       | Force single-repo AGENTS.md template               |\n\n## Language Detection\n\nAI Kit scans your project directory for language signatures:\n\n- **TypeScript / JavaScript**: Looks for `package.json` or `.ts` / `.js` files\n- **Go**: Looks for `go.mod` or `.go` files\n- **Kotlin**: Looks for `build.gradle`, `build.gradle.kts`, `pom.xml` or `.kt`\n  files\n- **Spring Boot**: Looks for `application.properties` / `.yml` plus Kotlin /\n  Java files\n\nIf no languages are detected, AI Kit installs all available rules (monorepo\nmode).\n\n### Rule Files\n\nEach detected language gets its own rule file. Rules are self-contained\nmarkdown files under `.agents/rules/`.\n\n### Ordered Setup\n\nWhen multiple languages are detected, the setup follows a deterministic order:\nrules for each language are installed in the order they were detected. The\nAGENTS.md template adapts to monorepo or single-repo mode automatically.\n\n## What's Installed\n\n| Location          | Description                                 |\n| ----------------- | ------------------------------------------- |\n| `.agents/rules/`  | Language / framework rules (auto-detected)  |\n| `.agents/skills/` | Reusable AI capabilities                    |\n| `opencode.json`   | Opencode configuration (optional)           |\n| `AGENTS.md`       | Agent instructions (monorepo / single-repo) |\n\n### File Details\n\n**Language Rules** (`.agents/rules/`):\n\n| Rule File        | Description                                |\n| ---------------- | ------------------------------------------ |\n| `typescript.md`  | TypeScript conventions, project structure  |\n| `go.md`          | Go conventions, project structure          |\n| `kotlin.md`      | Kotlin conventions, project structure      |\n| `spring-boot.md` | Spring Boot conventions, project structure |\n\n**General Rules** (always installed):\n\n| Rule File      | Description                                      |\n| -------------- | ------------------------------------------------ |\n| `plan-mode.md` | Plan mode: concise plans, no time estimates      |\n| `unsure.md`    | When instructions are ambiguous, ask for clarity |\n| `writing.md`   | Writing style: progressive disclosure, no dashes |\n\nNew rules are added over time. Run `ai-kit sync --all-rules` to install\neverything available.\n\n**Skills** (`.agents/skills/`):\n\n| Skill File       | Description                                       |\n| ---------------- | ------------------------------------------------- |\n| `playwright-cli` | Playwright CLI integration for browser automation |\n\n**Commands** (configured in `opencode.json`):\n\n| Command     | Description                           |\n| ----------- | ------------------------------------- |\n| `commit`    | Generate conventional commit messages |\n| `pr-review` | Review pull requests                  |\n| `synth`     | Synthesize technical decisions        |\n\n## Commands Reference\n\n| Command       | Description                           |\n| ------------- | ------------------------------------- |\n| `ai-kit sync` | Initialize or update AI configuration |\n\n## Local Development\n\n```bash\n# Build the CLI\nnpm run build\n\n# Link for local testing\nnpm link\n\n# Test in any directory\nai-kit sync\n```\n\n### Project Structure\n\n```\nai-kit/\n├── src/\n│   ├── index.ts              # CLI entry point (commander setup)\n│   ├── cmd/\n│   │   └── sync.ts           # sync command implementation\n│   ├── commands/             # Agent command definitions\n│   │   ├── commit.md\n│   │   ├── interview.md\n│   │   └── synth.md\n│   ├── detection/            # Language detection\n│   │   ├── detect.ts\n│   │   └── language-detectors.ts\n│   ├── rules/                # Language rule files\n│   │   ├── go.md\n│   │   ├── typescript.md\n│   │   ├── kotlin.md\n│   │   └── spring-boot.md\n│   ├── skills/               # Skill files\n│   │   └── playwright-cli/\n│   ├── agents/               # AGENTS.md templates\n│   ├── logger.ts\n│   ├── manifest.ts\n│   ├── output.ts\n│   ├── plan.ts\n│   ├── reader.ts\n│   └── template.ts\n├── package.json\n└── tsconfig.json\n```\n\n### Adding a Rule\n\n1. Add a markdown file to `src/rules/<language>.md`\n2. Add a corresponding detector in `src/detection/language-detectors.ts`\n3. The rule becomes available via `ai-kit sync` for matching projects\n\n### Adding a Command\n\n1. Add a markdown file to `src/commands/<name>.md`\n2. Run `ai-kit sync` — commands are automatically wired into `opencode.json`\n\n## Release\n\n```bash\n# Bump version in package.json first\ngit add ai-kit/package.json\ngit commit -m \"release: bump version to <version>\"\n\n# Create git tag and push both (tag triggers automated release)\ngit tag -a ai-kit/v<version> -m \"v<version>\"\ngit push origin main --follow-tags\n```\n\n## License\n\nMIT — see [LICENSE](/LICENSE) for details.\n","readmeFilename":"README.md"}