{"_id":"@alessandroraffa/tangyr","_rev":"50-16e9fa13975458a822232debabaeb240","name":"@alessandroraffa/tangyr","dist-tags":{"latest":"10.0.0"},"versions":{"0.0.1":{"name":"@alessandroraffa/tangyr","version":"0.0.1","keywords":["agent-coding","software-engineering","ai-agents","llm"],"author":{"name":"Alessandro Raffa"},"license":"SEE LICENSE IN LICENSE","_id":"@alessandroraffa/tangyr@0.0.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/araffa/tangyr","bugs":{"url":"https://github.com/araffa/tangyr/issues"},"bin":{"tangyr":"bin/tangyr.js"},"dist":{"shasum":"4a61dbb0392f334c8aa442f27846da42ac74b658","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.0.1.tgz","fileCount":3,"integrity":"sha512-NtqaTTKyylm/ZX9LVpDEaQXAPbKsubnTrArSDQlNOM8cvbjy/MoZe/YE46DEZPOe1GyHk9st5EkXZvaU0hHIfw==","signatures":[{"sig":"MEQCIDVw8gzkFUONnSMCHeo9Qk+5QgYEfV4lfcYmzVpyUdK2AiAC5hVbjsOACIAa0fQ55ywH0I+IiE3zeiFbM7+nYHA4+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":775},"_npmUser":{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"},"repository":{"url":"git+https://github.com/araffa/tangyr.git","type":"git"},"_npmVersion":"10.9.2","description":"A Software Engineering Discipline for Agent Coding","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.0.1_1776031674161_0.04094611117022651","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@alessandroraffa/tangyr","version":"0.0.2","keywords":["agent-coding","software-engineering","ai-agents","llm"],"author":{"name":"Alessandro Raffa"},"license":"SEE LICENSE IN LICENSE","_id":"@alessandroraffa/tangyr@0.0.2","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr","bugs":{"url":"https://github.com/alessandroraffa/tangyr/issues"},"bin":{"tangyr":"bin/tangyr.js"},"dist":{"shasum":"acace732bc99b6b0b65dc219081eddbeff4dce6e","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.0.2.tgz","fileCount":3,"integrity":"sha512-Vz3ZflPQAMPKxUTdoD6Y7ekocUiH5HUgEu+NAFfdIwbgc7Yb2XyyVCY/fvAUIWNsYzA/AbsQz+c0Als7jvU5qA==","signatures":[{"sig":"MEUCIEQgpOs1WygkSVM9utLF9INDjsOUJI573JrytTpmTIL4AiEA7CadXmrAHnp1uGVhbRZGKrpiUlvzook3PyyVOxuQpM8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":819},"_npmUser":{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr.git","type":"git"},"_npmVersion":"10.9.2","description":"A Software Engineering Discipline for Agent Coding","directories":{},"_nodeVersion":"22.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.0.2_1776031769038_0.40049840930516734","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@alessandroraffa/tangyr","version":"0.9.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.9.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"28275a93b65325d9604de6a84ac14a96f738fd15","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.9.0.tgz","fileCount":13,"integrity":"sha512-z8C7EUysKfxvDcVa688ZDxs7q1kj4CkCWaDm4h5e2/PPs1TgZeOPzNIjVdEAAwbksYvwIhDWlpxafMAYj0exDQ==","signatures":[{"sig":"MEYCIQCy87X5FN3keWB2ssEweLHL9Sbh6BS4vjGhnSNUgpNtZQIhANW0pdcg1rPc5CtBXYSlAnA2RZH/GZIeufrdwi3QOY9Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1043078},"type":"module","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"npm run build","test:watch":"vitest","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"10.9.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"22.16.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.9.0_1782574713397_0.5629964252026849","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@alessandroraffa/tangyr","version":"0.10.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.10.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"fd5c2dd67fb682abc34bd341dde3401acae5ad63","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.10.0.tgz","fileCount":13,"integrity":"sha512-QpvxRZlytu1+BSXGBryUvAyNb0Fi5b7ioUk3osMeX6iMICB37dpNKEL8NDh5kfTI5acDDvE1IFQZn6rnDz/jGA==","signatures":[{"sig":"MEYCIQCEViHYLvLY2D2UwvI3JOSOj49LDyH6AUUCrgqDDW5JyQIhAIO+Q4TGMKiE1bAZ8b5GHDaF48bKKQok01RD5kvK6NDI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1057945},"type":"module","gitHead":"139e8ee4b670672fea2b9fbfb900b1aecd040105","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"npm run build","test:watch":"vitest","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.17.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.10.0_1782684748950_0.43515517083795396","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@alessandroraffa/tangyr","version":"0.10.1","license":"MIT","_id":"@alessandroraffa/tangyr@0.10.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"e6ee7c898fef3077b80ce2127c4e1d7bba827e7c","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.10.1.tgz","fileCount":13,"integrity":"sha512-GbjjzbhON20olGnd/967NRBcYkRIYIUZaqa3EjojuhmMHQ13IVRWHNjeq5j2JfCsojH1WoEX/xhbufxSQtw+lQ==","signatures":[{"sig":"MEQCIBsvIzd4sloxY3HH9gXzDMRI+y+/5/hR13SZpdY9Eo+5AiAmliYpdRBP04vEpQU5MWdxyS4SfSGwCNJ1u5Elr7mP3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1058079},"type":"module","gitHead":"4978c75cbf1b8c23b2162a1b1d2a85f06cf5e7b8","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"npm run build","test:watch":"vitest","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.17.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.10.1_1782687035447_0.24597186753140265","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@alessandroraffa/tangyr","version":"0.11.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.11.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"6ce1f5323419c1406a5bd976ba567f53f7d813fe","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.11.0.tgz","fileCount":13,"integrity":"sha512-qLx2buOD3mvpSbNEhDHEdkjR3On9UdKWsmEgoWY9uGAvGaL5qGPXNm3PHIsyQ90T5Sv9c8xiMpb053+pglUWcQ==","signatures":[{"sig":"MEYCIQCMDOuILPYsWEQdcofFHe30xcRHzt/i8Lbya98sMRYkTQIhAOB7wIkB1DWEyue3L6NhDF3XosE2J9GuVi2eDoM+M2mr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1059043},"type":"module","gitHead":"08c1b0b9f7e2545b882c0fed6f67975872cdcafe","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"npm run build","test:watch":"vitest","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"11.17.0","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.17.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.11.0_1782688940153_0.6887494540310408","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@alessandroraffa/tangyr","version":"0.11.1","license":"MIT","_id":"@alessandroraffa/tangyr@0.11.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"fbf4910cf6bd2508c6a5707fee3f97e902657df8","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.11.1.tgz","fileCount":13,"integrity":"sha512-hNhQ39wRUxqL9yxlmsrsfACZ6L+WSmAOcvWVUa5kEzIwvdIrX0K1hNbKG4nlLDsGzQ2TqwdFvfy3zAM37BMj3Q==","signatures":[{"sig":"MEQCIA5FfA2+iuDIb+/y9vhkQGumfLtxDJmlU1oMcY3c7ZTYAiBkkBmkszu5rQUcOYJVJsskVpur7QxvOx2uWxmk3318Sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1063558},"type":"module","gitHead":"e7224d296427c8d5aad6caea1e308eccec362791","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"npm run build","test:watch":"vitest","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.1","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.18.0","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.11.1_1784375250304_0.8866697455979062","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@alessandroraffa/tangyr","version":"0.12.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.12.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"e14f07ec782680f23915357810341e772e11052f","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.12.0.tgz","fileCount":13,"integrity":"sha512-7AU4p24lFlGUBGGma0/8V+7Gk8nsUyGiiyH4/x8er+vL9sYCWqRsLHUw7arz8ezNjOU4DQXioWaVIWMZHuZdkw==","signatures":[{"sig":"MEUCIHba2//nmiK3noe2MVxSGHfMOL4FBNNeGvRAr0R/cj5cAiEAuJ0oHoF6SLp+CE8jvQP63vQyFHyJ4oO2FeghH7oDnqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1080055},"type":"module","engines":{"node":">=22"},"gitHead":"96a8b3e4dda7a68a78f8f0cc6e6b85b3b074dfa1","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"npm run build","test:watch":"vitest","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.1","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.12.0_1785223395934_0.11882093930595983","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@alessandroraffa/tangyr","version":"0.13.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.13.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"e5fd0bdee14f5cb19b8d291743241e0485bc837b","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.13.0.tgz","fileCount":13,"integrity":"sha512-CaJYAPOvQMa4xSl9QT6sRf1tYDwSpZI10v/HqL9xjP9pkSQISer4iJC9ccmEtHtGWj7cAKhQKYLde6dkgdCF7A==","signatures":[{"sig":"MEUCIC/iFQ58Qxa2d8b2NHCG/lTKN3otyIY1AtcALr+HE3c9AiEAyAnCQcu7icTV1vRdfNYMoRsD4+ZXi7PS2SdMr2oiMtM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1142543},"type":"module","engines":{"node":">=22"},"gitHead":"af75aec2822b18aaf9c55beb044e1b589fc86765","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.13.0_1787671044211_0.8785354025635497","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@alessandroraffa/tangyr","version":"0.14.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.14.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"041c92f09aa887bd96db9e325788695091bd17b9","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.14.0.tgz","fileCount":13,"integrity":"sha512-0xLU2KSYA1AY3EJkoEorAlkjgwkKxXvNp47UH23E9iiThFQND97qwNo4ObUsnrbpXKQKSP6NB5psc/SieuW7HA==","signatures":[{"sig":"MEUCIQC+iN3yeyS59RYcYU/0L/FGF+QXIv4/ozXZN4bkRtwdnAIgSUFLI88h0Z9RaTCxXKsZ9gKCRnRqHuLrxshrJuf4CSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1142543},"type":"module","engines":{"node":">=22"},"gitHead":"742c867af5ba702344815666a740eb2022225b59","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.14.0_1787838080720_0.7553897144770674","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"@alessandroraffa/tangyr","version":"0.14.1","license":"MIT","_id":"@alessandroraffa/tangyr@0.14.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"1168206572394dd94640c9c7d4d8e3f7aa7df49e","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.14.1.tgz","fileCount":13,"integrity":"sha512-CfWdVh4CUI5bL3HkB2K1pZT3aRzBGdjLPSSkBWsdwL8SHXO1il0o/+imF+UJpP/dQcNLR2KJdEyKX2vsKZ/HiA==","signatures":[{"sig":"MEYCIQDHXkBu+vR2C83eq7CLere3O3qe+1d+kBULylPhEus9/QIhAPasooJ6mGVKYDNOPS9s0c/o/ail4Iml+LVLYPUoYXpQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1147481},"type":"module","engines":{"node":">=22"},"gitHead":"57d1ca9318baad9db997e7369ba6a4e8b2180d59","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.14.1_1787928386535_0.68860789936549","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@alessandroraffa/tangyr","version":"0.15.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.15.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"94c9031eba19b05db039819f506492ac4184b3df","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.15.0.tgz","fileCount":13,"integrity":"sha512-BIfD9snArop5BRVq+yOmUgDTy7r/wpYJpDHrmHg+GTIbxEDeWimL13/MkcaUuKVpRImFazKyghHOjJWGFN9EJQ==","signatures":[{"sig":"MEUCIGw4Yo0F0odKYpaQ2oSIQfJf4gi/nM8LmBX2YffUrt5jAiEAkrPzwv4biybT564wqIFtXaf9kWY+7YE7YxHSlFm0yXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1158283},"type":"module","engines":{"node":">=22"},"gitHead":"1873388a65e51019752144c1de379902caac66da","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.15.0_1788241086817_0.5898636129286738","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@alessandroraffa/tangyr","version":"0.16.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.16.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"0070c863c332186e2621973463b308f5a0ea5b7f","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.16.0.tgz","fileCount":13,"integrity":"sha512-uO/j6odvLx9NQmxsGE6w7hx0mSXxXgo09ppUlBoisKc7cCAWPABzShbXDk7Wn6ik/XlmoQgLjgNcBK972lxaEg==","signatures":[{"sig":"MEUCIQCwO/qjCj21vhbLVzIKBH8FxEY5MDjzwIjmV1jPEEYRNQIgeQz4CQwClP29TZQ967NrPNcIaGs4A7qgpL7vrw7qXkg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1151251},"type":"module","engines":{"node":">=22"},"gitHead":"c052b0bd4f4ebd883e22f421c7f12bcdbfb43f7a","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.16.0_1788303164837_0.7216142396824665","host":"s3://npm-registry-packages-npm-production"}},"0.16.1":{"name":"@alessandroraffa/tangyr","version":"0.16.1","license":"MIT","_id":"@alessandroraffa/tangyr@0.16.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"9a899431e315ec9ca492c892c26dea3cdd3df89f","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.16.1.tgz","fileCount":13,"integrity":"sha512-4x5wejZehzgenOUFDIJunQwMIPsH60O+QKjAgNxCbscKX+GL6q552/vlTFOymqnBDv8o3PqV1PadmOfa7ugP5w==","signatures":[{"sig":"MEUCIFSLkfunk0KT6oys9ErVmaT/R1kdB68Dru5HLH2/xAlhAiEAnuJmuvBTxAu3YwD9lp2Exy34lK7w8t07BjLQD0tWX7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1173375},"type":"module","engines":{"node":">=22"},"gitHead":"fa4cf010053219608d635f9ca486f0f3538329b4","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.16.1_1788307939366_0.6843946242113481","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@alessandroraffa/tangyr","version":"0.17.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.17.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"b18efe260716842c7fdf7895404c6aa37d4af62d","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.17.0.tgz","fileCount":13,"integrity":"sha512-M8swI/FIwc61phPe5nvPm7xbfrtOFhfOUnIgZmZYSoOHi3/DZm17lEomwbCTCty2TMQ9gnQxGeeBBfRAaBXYKQ==","signatures":[{"sig":"MEYCIQCOwEmTOGY03jWVk31c7IKZXJumP9RYUIOpoQFtyk7cNgIhAL9RhQRhj8bCVxnmxZnXwYmJGClFNPC9Mi3/aaU6ulaD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1173375},"type":"module","engines":{"node":">=22"},"gitHead":"5fc5ef5f6de74d310bc55c3e513f9da0d63c316d","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.17.0_1788431116089_0.43727878879056714","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@alessandroraffa/tangyr","version":"0.17.1","license":"MIT","_id":"@alessandroraffa/tangyr@0.17.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"f11465d72bfc242110dd80390faa9531e2debedc","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.17.1.tgz","fileCount":13,"integrity":"sha512-VSdnsx6tAn2yhsTvICxIlvKcUh18I9u4WSgV79xwRNbizpdbeXUD9uYU+M64q4muaf6r1yIPE0V5kfOQW97eDg==","signatures":[{"sig":"MEUCID9nkxKwxOMSARS06ck9ng/jcLjzEQa5mrqm3qcMOsaRAiEAx9wOEFXhbVf3z4K5aS/BNVh/BtcvkUMfD4F19NJyKIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1173940},"type":"module","engines":{"node":">=22"},"gitHead":"bbfd8fb9ff27bad2c4f0fc9c5d7247c318743b86","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.17.1_1788469995569_0.9852667618264432","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@alessandroraffa/tangyr","version":"0.18.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.18.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"6fe836e413daa29abd35a233803f38ac5f380e5c","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.18.0.tgz","fileCount":13,"integrity":"sha512-ZBj3OXzmqcusJDUY9jsGetp9UpUk8dabnA8iEL8RtBrFSr1b8HwbzkeBsj+VDKlAGfS17CJ+5DE3L7n+lvQh9g==","signatures":[{"sig":"MEYCIQCX0pSLQUZOqjxK+54XH/SOdxBRrnrud7VxQWCMjRwSLQIhAIPVzINUE1MvBsY2hcCcfG6+X5Sehk/uB4MNqD0jabj2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1173940},"type":"module","engines":{"node":">=22"},"gitHead":"6780507ccebd0f1749de99305e8724e68abdf9a3","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.18.0_1788488678361_0.47822356581430103","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@alessandroraffa/tangyr","version":"0.19.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.19.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"b668a9d162eb7ed125791ffc3654fa2110253087","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.19.0.tgz","fileCount":13,"integrity":"sha512-99iFS/0NFG8+DX0f9MfFHxz7DiMVSzbXvMmeay0iKG13AN8N5AqY26vPznZ520b5A78gNc4o1xy4CgEOG6eZow==","signatures":[{"sig":"MEQCIBeh3rRZ37ij7fLQTTWLd+aiM7KBUaPcDM9qOxfcNw/rAiBulmvfg2bRGH4Rz6gAAJISSVgDG62qSYCp0IhjQqVfYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1175510},"type":"module","engines":{"node":">=22"},"gitHead":"c6d9bb9a49ac0e42e0842fff3696b49ce05403b7","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.19.0_1788490517318_0.5782256909624892","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@alessandroraffa/tangyr","version":"0.20.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.20.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"c793d4e12a4804f92e3bd167549b7bb09e6112fb","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.20.0.tgz","fileCount":13,"integrity":"sha512-X/HgfjnoQVuw9BxhNcuukagQUjbbQqM3fymzb1BoI1986X6aepnOT6qGts4+RTxziBueSo1HysKTYc6LAD+nLA==","signatures":[{"sig":"MEUCIQDFXKhkU9B0sIFpoAeMlUZhbKnejS/6pvFnODPHmd6J4gIgUKwfUlMjZRXVoulsIuMezZxujMNdp+nWTS76j38frMU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1198591},"type":"module","engines":{"node":">=22"},"gitHead":"f46cae253b78936adb539f12eb6676efc8bd60d9","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.20.0_1788496139284_0.7122767943544681","host":"s3://npm-registry-packages-npm-production"}},"0.20.1":{"name":"@alessandroraffa/tangyr","version":"0.20.1","license":"MIT","_id":"@alessandroraffa/tangyr@0.20.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"c114c0b71115cb9d193faedb4c7648cc83b1676b","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.20.1.tgz","fileCount":13,"integrity":"sha512-260qxYe9Cn8UDrJRkFgir6vz1/5Jly5amPFxz+Z2KoBSarF8f5c1mDVfB4dcdnOzsxAJZt0DrlnT5UZP4HBZPg==","signatures":[{"sig":"MEUCIQC34+bHqopjKkTxTt2ENJtwfHRtsUDwlwc7/2cIYIdvJwIgS3ShMQ8Y/Mp74UKKHhDdvgxtuOKeslbfSPEL5NR0plE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1198591},"type":"module","engines":{"node":">=22"},"gitHead":"a5b4a7574274a68af1dcea012cae8a1e340e7c8a","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.20.1_1788511046599_0.3877278008139533","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@alessandroraffa/tangyr","version":"0.21.0","license":"MIT","_id":"@alessandroraffa/tangyr@0.21.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"c9ecbfd223f07984d184a95f462c7a0a60a17a34","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.21.0.tgz","fileCount":13,"integrity":"sha512-4i6BWrVMAO3sgRteW1wNc4YsqZEuyCk/wmqMt+mxtOLR4y4WmIz+IgKnOuhZaIDmBuu4sKSuI72iqzoinPLJUA==","signatures":[{"sig":"MEUCIBnF+YVnGvqpemvHvDhcgvL0jok43/K3HC8j2FopZKXfAiEA3XI3Vjh+goIjxGpG/+DHf2drbjtjcIuI4TXQDIPMSb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1206319},"type":"module","engines":{"node":">=22"},"gitHead":"953a78177660bcccbb4453d2b9a23c32c52b7750","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.21.0_1788517127092_0.5936393860474067","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"@alessandroraffa/tangyr","version":"0.21.1","license":"MIT","_id":"@alessandroraffa/tangyr@0.21.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"1cb26fba95e98ab70adfbdbba193670984ebb2c6","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.21.1.tgz","fileCount":13,"integrity":"sha512-XWEZkJlZQ9zI9MjD6JcW5lE2CvOxiij0efUHe8qVKXcuyod5IK0jOMg8hfp4hdj7Scy6vSUUiy0P8x71texOdA==","signatures":[{"sig":"MEUCIEWctfYJc7518bde6AIj/XMhEhopoVgu4vqch/M8x+x0AiEA/VDatY2q3g/v8Xulv8LmHjA8D/c7/IyNW258NzgaeQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1208909},"type":"module","engines":{"node":">=22"},"gitHead":"213c13940a30780f76d6b6eebc4890a878abc547","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.21.1_1788701924195_0.7172797132077673","host":"s3://npm-registry-packages-npm-production"}},"0.21.2":{"name":"@alessandroraffa/tangyr","version":"0.21.2","license":"MIT","_id":"@alessandroraffa/tangyr@0.21.2","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"74dada3d661006d4318d5abafa64ab75291db688","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.21.2.tgz","fileCount":13,"integrity":"sha512-LCx3iMPNgv6Zs30TD6YFsbfa2ZDg86BvStMBc/IR4s2JzDBL1B7+xoBdtCgL1upu9G8TBccsBW7T2B8IizCIsw==","signatures":[{"sig":"MEYCIQDlx7S7GSjxRQQcYbHgxJboNkLuiQI97gcDylsMBgH1MwIhALKmzduW+cjhr8zIpGMGzQ3UhnceoJRruOYg7rXbIMxi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1208268},"type":"module","engines":{"node":">=22"},"gitHead":"242c790e296fbb6adc14dd55aac001ce9c79e9aa","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.21.2_1788702178964_0.3573917362591472","host":"s3://npm-registry-packages-npm-production"}},"0.21.3":{"name":"@alessandroraffa/tangyr","version":"0.21.3","license":"MIT","_id":"@alessandroraffa/tangyr@0.21.3","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"af6136ebf92f0efbe1aba3951101f57e7bc5c8a3","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.21.3.tgz","fileCount":13,"integrity":"sha512-eGtPms3C+ZgwgCabzGXPGIUUXK+t4i6UEjYFdbDM1Vin8x/A8M+/mlv0K/SS8E159Ky8J2WevC/E+zLdDBHnOQ==","signatures":[{"sig":"MEQCIGdszs2RiUnW+jTFhFMYbQfcEOAUjSNAmHlA+AMIcsoiAiAHPlV88V2rNXwchbK2G1+DGnjTHyKmGj2rRcHlN4DPdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1209350},"type":"module","engines":{"node":">=22"},"gitHead":"fe2cbac8e0c8b9f9010615f435d34e605a3b1106","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.21.3_1788748485713_0.701693775168027","host":"s3://npm-registry-packages-npm-production"}},"0.21.4":{"name":"@alessandroraffa/tangyr","version":"0.21.4","license":"MIT","_id":"@alessandroraffa/tangyr@0.21.4","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"b4c4fcebdc73052ddc78e0153905aa5edcadfd4c","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.21.4.tgz","fileCount":13,"integrity":"sha512-4I0Pz5gXrw+FVS1OSbTLKAuchul/Adf65O1yH6CEMPFvlx6UOtyWdLwup0OPWG10POkam5xGOnuEqkDdXh95HA==","signatures":[{"sig":"MEYCIQCTXahOv2ks45e+ahq4vO1NDc6kUAgy8BhYyLuX6QLcEAIhAIcOUltYRTfdMYSpMAVzA0GQLwyfYUp6Muctze0QnmUQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1211716},"type":"module","engines":{"node":">=22"},"gitHead":"82239f17187ec3f3fc04ad49839ec566d5f155a4","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.21.4_1788748705444_0.3046876413591333","host":"s3://npm-registry-packages-npm-production"}},"0.21.5":{"name":"@alessandroraffa/tangyr","version":"0.21.5","license":"MIT","_id":"@alessandroraffa/tangyr@0.21.5","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"d09c2d1eaa8e8a0f7247ce20e1a97f89a77db10e","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.21.5.tgz","fileCount":13,"integrity":"sha512-tDSvijeTAbApuZlwHVf4OdYprakmlhMbmK+QmaBfoRJHtPZg5Ku/gYJD3gH1oDXrqgsOI8WLWKam3QR4NYRFTw==","signatures":[{"sig":"MEYCIQDcOC/m9b65FGWk9Q5dnETDzmRAD4XRwqY7ChC6Qy0zVAIhANmjtl58UPkElfWk+5jzIyX23oJBfxIm/WTr56fWdhaT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1212563},"type":"module","engines":{"node":">=22"},"gitHead":"98b447328c971c2ed3ee4fd66859df0b9fb002f9","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.21.5_1788774521110_0.7589991305955481","host":"s3://npm-registry-packages-npm-production"}},"0.21.6":{"name":"@alessandroraffa/tangyr","version":"0.21.6","license":"MIT","_id":"@alessandroraffa/tangyr@0.21.6","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"85b75d4d85075b82ecabaa501f4060c0a2b1c1f1","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-0.21.6.tgz","fileCount":13,"integrity":"sha512-hpNmPCf5kUd+BsG1Aig5GSbDgpWe17vtnHehfADo3ADpDZI8kt6spXiEDT/z8NJgnYrJxuWFhLYna9l8vwDr8w==","signatures":[{"sig":"MEUCIQCp/tag82pGHCna6xHNTpku6iUh3EgsbfCutyUH2C5lQAIgAwyTIOYtYyQ0HY+bsixR3sut93sWB4Awai53u+i6s5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1254903},"type":"module","engines":{"node":">=22"},"gitHead":"31caaf451b61ad278d17142f4d30125b28c478ef","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_0.21.6_1788804788662_0.024160912371854693","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@alessandroraffa/tangyr","version":"1.0.0","license":"MIT","_id":"@alessandroraffa/tangyr@1.0.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"810ca0148c13cb608e105c68275badb429739d20","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-1.0.0.tgz","fileCount":13,"integrity":"sha512-BGlIre2C8LGc4KZKtYcVCJ8dW+8p5wl6em1rFAlq8DiLcSQOo45QtnwJ3//Lh+hqf5NHiVVaNOJxOHH6vTPGPA==","signatures":[{"sig":"MEQCICWYkf8Q62lMEAq8p6Ec0jWCvhlckH4d0zzPyjbkSWVTAiAzZ9pN0ZTXP3MuBNHywpesebpDPte5E94//6OvbFXnQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1291602},"type":"module","engines":{"node":">=22"},"gitHead":"f1a225d8495a6d99596b97567173dcc8bab6b3ad","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_1.0.0_1788939815016_0.7189050587693251","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alessandroraffa/tangyr","version":"1.0.1","license":"MIT","_id":"@alessandroraffa/tangyr@1.0.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"6b379761251e749fee64e9dff97a46cdc56641da","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-1.0.1.tgz","fileCount":13,"integrity":"sha512-4Z1DJRKdQLIoUSj5TV7JYeMxNc1dOwcT8sfCjbjJkoxiBInYpRBfoHF1Qn1ll+cyfL1EJgwcPrtjbQFaT6okZQ==","signatures":[{"sig":"MEUCIHW0UuCq/KsOs88Ek/ytExHr/eoPPh6HvRt5h28JlWgqAiEAlC5oUGQcb8uLZ31WmSyO529jSgfRaPcSub9p5BrYST4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1292865},"type":"module","engines":{"node":">=22"},"gitHead":"0bea084949753dce56f366b25adaefd4b67a15b8","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_1.0.1_1788942464149_0.43017719210305727","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alessandroraffa/tangyr","version":"1.0.2","license":"MIT","_id":"@alessandroraffa/tangyr@1.0.2","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"05e912b814a192ef729308913fd2c7645f70932e","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-1.0.2.tgz","fileCount":13,"integrity":"sha512-MeHHlh9vUaZ43w+JjccKQrorkI3pHyp6VeOA8NNhx3zDRE4C2lzkp84Za1qfBMvdl3eSz3YQ92C8YyLLjIbsxQ==","signatures":[{"sig":"MEUCIQCwm9S8U1+5ZEGupHQIGXrwfCMmjgHIKAJc4qSVLeGpQwIgWAELLERvbaEyUHQ/LtxgdJOUg6Z0fxry8/3J6ZVz9ag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1296627},"type":"module","engines":{"node":">=22"},"gitHead":"4fe2868858f3de84d7bdd9d6a202ce9a8d801d27","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_1.0.2_1788948393137_0.9099357447012784","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alessandroraffa/tangyr","version":"1.0.3","license":"MIT","_id":"@alessandroraffa/tangyr@1.0.3","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"468aeff37cf16eecf0d787a368a1125aa9029d6c","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-1.0.3.tgz","fileCount":13,"integrity":"sha512-9/te6/wbo/0dyqb1bn9Yg71tJytmB/5PtccHog6kKTJVfZLDEXTUBc7NbQKNH/3cWzCQJTHpuFtlIFCy8UCzdQ==","signatures":[{"sig":"MEYCIQCXwm8jlXlRPY8wb2+YnqHeME4k6gY7S+hEjvthTlx7mAIhAPFR/Na1gJX7JR6Jo+nx66ef99c+AXDsPSMV3SYuaUWO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1296699},"type":"module","engines":{"node":">=22"},"gitHead":"af0422cb5cf7b4bd74893751aabb0f3a2b91ff73","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_1.0.3_1788950424376_0.8775027362607759","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alessandroraffa/tangyr","version":"1.0.4","license":"MIT","_id":"@alessandroraffa/tangyr@1.0.4","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"2b7d51b5829c1eb296a2049e030d8820fc52116c","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-1.0.4.tgz","fileCount":13,"integrity":"sha512-moIf7zEbf3bMUXoI2w3N/QH3T4yHTNOxnEAAD9kw6Y5q951rzqN7ax79gTA3dLtJp3JAABqEsNF0nPC3TztHJg==","signatures":[{"sig":"MEUCIQDkeAMXVKR+ITO7G44U1ZCdyCz+rewwr9W1DdqMvrUZSAIgJ33y9BPhRaF3EvKtfaeiZgMY2v/HbV195Jf/whzI2wY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIES5fXBRKBtFJ8nD+qmlKjmmhjbuTwVBx01I5zB3rW+VAiBxa9bBLPYVp4Vfik4KGhLLvijX0hCcNcRWt9CZwaxhKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1296949},"type":"module","engines":{"node":">=22"},"gitHead":"0c84dbdfca7a8930896fb495ad12263ad98f11cf","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_1.0.4_1789090360157_0.8595635726237418","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@alessandroraffa/tangyr","version":"2.0.0","license":"MIT","_id":"@alessandroraffa/tangyr@2.0.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"1661fa0fdbdb8a02ad8e4d7438f8f9debcddd1c8","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-2.0.0.tgz","fileCount":13,"integrity":"sha512-gbv2HnwZB+uAivXqQh8vmhRwh+AoIr/gFGL4JXSQHKpg5x9gUHesdPCGcyxsL8HevK5k9Y7FvDxdTa+3YKSBFg==","signatures":[{"sig":"MEUCIQDWbEgsrqmXVNTR0MYCTh2CD7tNyZ5dB0YLHHm98AyCjwIgQM5D4Nj0QLs/2efhHgr7rMO0RUBe3jc4x/bT0h4hu5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCx5AGKqAWML50OQ/i7fzeajkLsQTODF2kOisJHXYAL9wIhAP+SG7QREYYUyhnkWmoypsQQy+MVIHIuvFOrM/DNhcLU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1297658},"type":"module","engines":{"node":">=22"},"gitHead":"80ee0a4c4ff92e70bc412eb9b757c8a119f02a4b","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_2.0.0_1789110751518_0.9773565375442081","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@alessandroraffa/tangyr","version":"3.0.0","license":"MIT","_id":"@alessandroraffa/tangyr@3.0.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"0e71eb1accb5dc5d5b83dcf341d47ec4f317ef3f","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-3.0.0.tgz","fileCount":13,"integrity":"sha512-mUvQxJkh5qIRUs9DtkiSv/VJo0XHKAm8IB+L6HywkS3XQynJ2wYmskxh6KGVNJrSGz86XgzvknmoNXoBsucEUw==","signatures":[{"sig":"MEUCIQDHUgFYaoRylQLxDY/aSxSMtFfsPNIzcfVb2d0mchCWdwIgQMIW8iejK7B4deug4OAzicIwVy3/oS5r5NP8QvSJk5I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEJRLm78I/Ay+42buXO/QqPBreCifEiWasrbA6WCirelAiBoOSPl/hj3YaxLWgvAz3XlPCpcUDFcrDgLGEtN9dIU0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1299657},"type":"module","engines":{"node":">=22"},"gitHead":"9959d7c06da2e4b2d14d12c09ec47583ee53e51f","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_3.0.0_1789116772013_0.38430190984340107","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@alessandroraffa/tangyr","version":"3.0.1","license":"MIT","_id":"@alessandroraffa/tangyr@3.0.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"8da7ca02830b9dc9d9eb72972d5a30c8c4b1b016","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-3.0.1.tgz","fileCount":13,"integrity":"sha512-jHBQ6H935oEyLSaN41wXkCc/2S8HseZyi27N9mgxur/DkVzYDSsFfEKrYMQqzG83e4O9E3ewVJv889FaE3PR3Q==","signatures":[{"sig":"MEQCIAQ9IWuPWSK9t+OGhoW7wCGWlu5RxnghLG4EqxMJKAsMAiBGsCHipjLpL/YPvl/RpymvztWhq2UQui8uu9RbhFzm2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEGtuLyo0S04gycsBiiT1mDA7NCZAr07unNn4dHiZhBxAiA8/EVY7i+VI6GIkWotczjw4ZlGuJs7B6VlJOwk2cJ/1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1302571},"type":"module","engines":{"node":">=22"},"gitHead":"5c05ab27cb3e6eb02b7aed0648563579c10b23ae","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_3.0.1_1789133224767_0.14677455578781684","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@alessandroraffa/tangyr","version":"3.0.2","license":"MIT","_id":"@alessandroraffa/tangyr@3.0.2","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"0960ef0d5f7f4f26b310f0838305dee90230dd42","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-3.0.2.tgz","fileCount":13,"integrity":"sha512-hdOOTsLOY18C5awtN0HMlNVVe23Q1UVFYk/gsCwaRItIOPsCZGlwXiBTEANHCEZMhvp7ZVVqMQUWKAWgSj8J6g==","signatures":[{"sig":"MEYCIQD/bjHcRphYBdqKC/NVLWGui/Lbxhg+HmL+I/Ey+oXFsgIhAOga45OhDJbT7/UewdoBEIgKbinUfngxzu6VtXKsJCSP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDdjyMwKG0AUhFswIg0rMSXmcxTFTaGHqKnH02g+PtVnQIhAM1JCChbngW1k3ZOSnsMgt5VGCBete+opn7CIY50aN1s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1304633},"type":"module","engines":{"node":">=22"},"gitHead":"fbb737ae802be017c7aca8d635fef42f8dd3c5e7","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_3.0.2_1789134947921_0.3329540284252559","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@alessandroraffa/tangyr","version":"3.0.3","license":"MIT","_id":"@alessandroraffa/tangyr@3.0.3","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"240fe65d45631e9e41b4c4c4bdcde7906ddd9df3","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-3.0.3.tgz","fileCount":13,"integrity":"sha512-mFOBbZXHyaMgYmcbXbL7ENAzH9KfJaA+XJ8EHEUwoApws0YlbzslcdsWe24YGMvO+erjNARsHTz44VDWk8Zw7Q==","signatures":[{"sig":"MEQCID3OX77uXPyAWVaRnQJj/f3p+FcVaztKLsh6+wE02/krAiB+sZZ5JlkMR55CqFqYEKQ+InOcrE1OnlKSfz6dvbRtzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDZ/333KbsGhgOsftQcqXXMeKNlLziWawIUJP79DEG4WwIgDCE3UGNuMkl5Sz7HBzrT9BncX1KugX/n/CCVecOWSas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1306166},"type":"module","engines":{"node":">=22"},"gitHead":"ec87176743e56d1d6845f82ab17bb66f350fbed8","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_3.0.3_1789155410353_0.8760541768482883","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"name":"@alessandroraffa/tangyr","version":"3.0.4","license":"MIT","_id":"@alessandroraffa/tangyr@3.0.4","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"ebdc143886b9e8942eebe4c71d4f208fc62b3944","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-3.0.4.tgz","fileCount":13,"integrity":"sha512-iMUgV/R+zKhEgoQAn4MPvjbRdA7ebnfpQgXzd86x2xCfS8h3LW+eeqWIN88ZX3p9t2W2Qx7iJhxEmFLkCJR4fw==","signatures":[{"sig":"MEUCIB5LTruEnkBryH8bFsYu0KAINKBL8juqEDTn9B9JwC80AiEAjXgNM9Jvds9/F3B6m/hHmfocuZZ7TYGlQk5M40xD2ZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEgJc1Vu+PkT7Y0Xudt8sz5/1M3RSXSRQML6WjKdmiADAiEAvMrrKArNaBxOI9FlJtGlcOQ7xTZYILjh3cYDsYgTUN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1306009},"type":"module","engines":{"node":">=22"},"gitHead":"85760b5a1f7824085045e1bbc5d063888931886d","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_3.0.4_1789166901709_0.2585902183756057","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@alessandroraffa/tangyr","version":"4.0.0","license":"MIT","_id":"@alessandroraffa/tangyr@4.0.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"e9aa0bc310013b3f6096946c7ecfee672e6855a7","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-4.0.0.tgz","fileCount":13,"integrity":"sha512-py/HZAMEgeAhPd8yhRdiwjY3KZ2hIuf9yhgHlcZe8nbKDwDGG0keePLj8Zam63hxOL1UZ2uB/nhOb2cumJCy2g==","signatures":[{"sig":"MEUCIDqd8dGnzUFDZzKOD2TP/LSbcpzHftgsloVCkjactImSAiEAuX65CKjY5IOT+DY+YQHt404Xq9gFLBXAHel7kt9tu6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDOAuB/WYKUc0+OBMvqjosLfdbmh2vtrsValM9+N9qdigIhANwcyezr3BlVaGZaAmPj7z7VyiTJmjf++3s0CglEQQJ2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1304701},"type":"module","engines":{"node":">=22"},"gitHead":"eac8c9eabb765ecafb2695ae701ccebd9416a455","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_4.0.0_1789465398433_0.3833792468096724","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@alessandroraffa/tangyr","version":"4.1.0","license":"MIT","_id":"@alessandroraffa/tangyr@4.1.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"a79fad71c6de7974e27b6caab6b078e5d8f00d86","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-4.1.0.tgz","fileCount":13,"integrity":"sha512-UCxQa5Ya39Ml7S0wSQpwl8WnB3wHprVJ19ZFj+bRN5MG62Vx6Nl319wR8CmaF1lzNiZjdKQ1YsMKTR/IABrJqg==","signatures":[{"sig":"MEUCIBnU1cWnpGw6aoYqS0UAKBHW5J/0AzJIvnlaJ3wvJG3dAiEAt12rMh3RRoRzcTwuV/8Suc2koR8Y0dzsq4aUbe6MMUc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICO8IJWVfGMpbplN7bdqLxVq/kx5DbiNofkRP42k3fIqAiBGGJFLIp9lfHj6LIeqrmMGJySLFxe/FsJhbfa4+yJVRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1308808},"type":"module","engines":{"node":">=22"},"gitHead":"4b915af9a91756ed2e01686f4cfd4ae0f9a4b4c6","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_4.1.0_1789517644710_0.6872305398054068","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@alessandroraffa/tangyr","version":"4.2.0","license":"MIT","_id":"@alessandroraffa/tangyr@4.2.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"a14d7d70e27054231f92a45648d70e32384b0dd7","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-4.2.0.tgz","fileCount":13,"integrity":"sha512-ScpvDcqOrSVT2oB9ICOTAnD1/qfqVXErzZrd9/lG+rBEh5Ss/UXy1Eb4/dGAcsDSwFsP+f5Apt/h7s1hhiiSsA==","signatures":[{"sig":"MEUCIA95VKEzvGTNmeeaRp+/y0t/7Cg04ZCopPykFLKFW3NyAiEAg0oBEAfCqHdNNSJd6MWahGU6ZWhVNes85CBfV71quLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEYaQO98+CdQOF+6H2OOVNN8mS7mCG5U3X1zoVj5DjrhAiEA58P26A+Cu+hH/sRjVS2CqI74eRmUnKedzKKSQvll6ys=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1318650},"type":"module","engines":{"node":">=22"},"gitHead":"50f7793301f34ad934c5308a52a82658ccc71742","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_4.2.0_1789520643328_0.8985718239512464","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@alessandroraffa/tangyr","version":"5.0.0","license":"MIT","_id":"@alessandroraffa/tangyr@5.0.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"2c4ed9ecb018f505b2644d03a73b2da737311d9f","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-5.0.0.tgz","fileCount":13,"integrity":"sha512-EPf3CvS+/uUaIV9ZHqql2fs00UVI8L61wQtk4FmFN3OgPlCCIaMQXEyNdF+o7fl1S79rHlDXTLMHLfXTnNpjMA==","signatures":[{"sig":"MEQCIF4M3crxXfcfLNukmwHY2Muopf7LVb/QvU/3rwynMWKrAiADXP8qOyA+tuMq2YW/YnVG2UNiRWGka6WPZeapt6qB1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDdWkelakH3NHF8jbK8565OFXORIQGN3SNBUogX8VGdNwIgK5gZHIVMf7LK9uv5XiBcwYdqn8a3bkoKxYhhknG+Jgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1322545},"type":"module","engines":{"node":">=22"},"gitHead":"2f035bacbca065fdf3ee62fe088d418275de20b5","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_5.0.0_1789541378579_0.36290515408289026","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@alessandroraffa/tangyr","version":"5.0.1","license":"MIT","_id":"@alessandroraffa/tangyr@5.0.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"bacd99e7556d664f405eaa9fadb9b9fdbe315cdc","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-5.0.1.tgz","fileCount":13,"integrity":"sha512-lhfg+xXpInAMW0KeMUMRCtE4+hxJ7FSQrN6q7/GLNdZ2C6ZoolLmFADVCyJxUZ2N+eqrS46yYfkWw9/M3M1JVQ==","signatures":[{"sig":"MEQCIAfJbDdxY+uB2v03LFEQM2hPpr+b9HQ8wb3mtW7rFjqBAiAiu+oXVIOzXtiJ8hQ1fhtOAfjYys4CaADbCP6tnSSq6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAHz/xBMB5RJ0uvD263Yk20aaoll13/JLc7E7JBpgvx9AiBJj1BeDq6Vuihztzs28ZN3ZX1og4dyEFoTk0XmX/fRQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1322047},"type":"module","engines":{"node":">=22"},"gitHead":"533f5a68e604061950da7b3a5358ba612f8c7003","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_5.0.1_1789554183045_0.630251333736034","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@alessandroraffa/tangyr","version":"6.0.0","license":"MIT","_id":"@alessandroraffa/tangyr@6.0.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"833c4d05ebb3a444cfbdacf346b2d2f2cf744744","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-6.0.0.tgz","fileCount":13,"integrity":"sha512-xLNYYlA1cQG7pmBXXRSJjQ177MxmWDN/53UZHi3TJ3doQwqwrWL1MCTmiKg/RPqwQLQ/U9kdStc2UZWeAE1qRA==","signatures":[{"sig":"MEUCIQCvpFkXKIcTjn4yW+am0DvOOoKlDEQss9Mh475Cow1LSgIgdbj3uxqLtcB7Bv4Dr/bTfiyXUXnoHZcEvo8ZzpoeypI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFg/Ic8Gxd4HYBl1XHg6OFoLzdrmVNvz83FKC/p88+G1AiEAi/r7636UDQycAj1ZzHzt3OksMBM0ARFi/Fl8VfU49v8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1336372},"type":"module","engines":{"node":">=22"},"gitHead":"5ef917f08c4cb00319ed66166dc3f1b3cbdfca4f","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^3.0.0","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_6.0.0_1789556449964_0.06695599669096497","host":"s3://npm-registry-packages-npm-production"}},"6.0.1":{"name":"@alessandroraffa/tangyr","version":"6.0.1","license":"MIT","_id":"@alessandroraffa/tangyr@6.0.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"763a129ca0195b9eb325b2c910e749dce1f527ca","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-6.0.1.tgz","fileCount":13,"integrity":"sha512-nZa44n9n2+IKI5z+2S4hE/gIF/CK38CHvGk/5KbUkh8ocGsCBW1yif8ScBcJVrz4xgGFFdTG857ubFZZE0e5hQ==","signatures":[{"sig":"MEYCIQCCT6jdLPO/0ovb6jGH3ZP1KIprNBDxWUdUU7edRNylWQIhAJzU7UPvQD5sWO25LJveuXgkjPq5ewBNevIl2/dy1usF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHEkRsQA5LWHO8jQmdYBoe3EaU9XMrFvDdtFK6Ej9BrFAiBVtOM125mkcU5cJsiMRtjxZWk3DSN9DIKhJejeHiY4vA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1340877},"type":"module","engines":{"node":">=22"},"gitHead":"35f9f98874db8d7c6400b58258a186e238e91a37","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^5.0.1","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_6.0.1_1789565976660_0.6676027338785018","host":"s3://npm-registry-packages-npm-production"}},"7.0.0":{"name":"@alessandroraffa/tangyr","version":"7.0.0","license":"MIT","_id":"@alessandroraffa/tangyr@7.0.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"624a4a49a6ecab5df461c5e1df57866a00f3490e","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-7.0.0.tgz","fileCount":13,"integrity":"sha512-CS7lJntBy4m5osEnn4rIbuTLXkZQ+DLB9NCypoxNZ5prVqVD0g1GdtrpWrRxeTNydnxfOj2W81zVJqdqiFi+IQ==","signatures":[{"sig":"MEUCIQD0GXTTudrozUQkLbF0r+W9o3Dea2NgiC/xIpsfHYwkSAIgeWkvZxHshQ3GqwbgAv9UCU1/DD+WVKM795esrN5uzqs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAavtI0hsnySyt2y3K2V0FwF7maqTjFVKpkg5AAhNY19AiEArUht2K7/2QY3wvD2+cWPgka2MeRNxBJBe+tFxs7xccg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1345760},"type":"module","engines":{"node":">=22"},"gitHead":"b7c032cabc876d566806d0d21116eddaed270572","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^5.0.1","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_7.0.0_1789736441170_0.08124310296446913","host":"s3://npm-registry-packages-npm-production"}},"7.0.1":{"name":"@alessandroraffa/tangyr","version":"7.0.1","license":"MIT","_id":"@alessandroraffa/tangyr@7.0.1","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"2ee68284544bb6e29c9abcbdf962fc1986101b31","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-7.0.1.tgz","fileCount":13,"integrity":"sha512-3xWpqn1+6tiftruhLoXZdLMs+tr6Bq2DLFJVDm07pJh2zmU07yXoDEtqBulQNmV3j7PkW4H9FPudzdxGQSuKfA==","signatures":[{"sig":"MEYCIQC6vWm/69NZXw0W0j/jRr/2OU1duWuk6FOp/xBG06P1kAIhAI0HXtNmlhk/VjTF9taS5nf5Z6tZmnjzEFcizT0PWKUP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCttBWmvo1HUcIWoX/OkDcPBQu9BpbTvhM+khZD28lFkAIgW8BmzusjVyd3Ud8ZQvzJgN1oeafiTZi3Vwrq+KVRUEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1348442},"type":"module","engines":{"node":">=22"},"gitHead":"6b0c8146f20002e0ccbfa498f36033f781d8b44a","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^5.0.1","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_7.0.1_1789740167079_0.9691465289277514","host":"s3://npm-registry-packages-npm-production"}},"8.0.0":{"name":"@alessandroraffa/tangyr","version":"8.0.0","license":"MIT","_id":"@alessandroraffa/tangyr@8.0.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"c35cb9a36be6f10f93f45a804e88df03396f05f3","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-8.0.0.tgz","fileCount":13,"integrity":"sha512-gEIsxAIzKGhYCuNAWlY9hs4rmWySzINWJLpNiGlD/DbWK6YLkGi8BimiRqCWZ0umWUccrz5GIMDNB2BYDwhG3Q==","signatures":[{"sig":"MEUCIQDYohj/O120wHfVQMHrmUyLdqHTAKmjjkCYichuyCUvigIgT5+Qd4v30+y6k1TaB+HEs5WVqTapDkFPHVXm+WlGx1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFxugIk3G82NGxJsYQS5W00MLxR5SKR0dOcc1RJP9Xk5AiBu+7zOkuWIuODv0FFMGVVxPb8PH8K2l+377PlKRjXcwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1362960},"type":"module","engines":{"node":">=22"},"gitHead":"27531e9fd7abe38212aec4cd0a66a928411d5501","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^5.0.1","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_8.0.0_1789747468069_0.07088655839532931","host":"s3://npm-registry-packages-npm-production"}},"9.0.0":{"name":"@alessandroraffa/tangyr","version":"9.0.0","license":"MIT","_id":"@alessandroraffa/tangyr@9.0.0","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"bin":{"tangyr":"dist/index.js"},"dist":{"shasum":"8e2c8a06d1c562112b88aed51ae5935b80406aa1","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-9.0.0.tgz","fileCount":13,"integrity":"sha512-2iGHNF5JXlJB9xPbzP9WfJgXe7Nq03sW4WEIo9neZYAseVrV9zDHn8T2zFNwMmfPz5JrTni3BZpvN9h03NNDIg==","signatures":[{"sig":"MEQCIAUHjmjsf7xW+SxHHkx44SLIjFUp65V6mlNkxJBE4sG/AiAz/Z1AdmMClRpax53C6QCZV1ThAAXzQckcmlFpTxQbiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFflbDENJAXSFwm602V1DMbFEbsgubLix52fYv0f5puYAiBrwdY6eVMGxHCWERhfZ6AwaDMw/y73sdCFWdUsXc9pYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1362364},"type":"module","engines":{"node":">=22"},"gitHead":"1fcf0a58c4d037994bdbdb5c8f6e2bd719909ff3","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^5.0.1","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"tmp":"tmp/tangyr_9.0.0_1789761314005_0.7048664708555659","host":"s3://npm-registry-packages-npm-production"}},"10.0.0":{"_id":"@alessandroraffa/tangyr@10.0.0","bin":{"tangyr":"dist/index.js"},"bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"dist":{"shasum":"2170e1698fbe2cb043f35116611706196ea51e22","tarball":"https://registry.npmjs.org/@alessandroraffa/tangyr/-/tangyr-10.0.0.tgz","fileCount":13,"integrity":"sha512-MZF4a//g0mgYexw95vhEPB1Gb4hNgXNDC8fNgzk6lFVOO1cdQh72bFAPaasz12XxLFrg6lOmPvOCCrY0572lYg==","signatures":[{"sig":"MEUCIGPb8UKGJh4HuohIr6NdAITXbwNquU17TF1yg1JO3MvLAiEAovDqa+CYBlGzEW1LSpx56fmD3EPEzOqeMfLGN6DtWzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD75Xjo+CsUfpPJYfe34mHWGHMSzGA+gRILi6orSYHP6AIgeWoMfrZAmbcqFEwLI8Ypgc/dRv/8sqozpkO0o7ZBdQ4="}],"unpackedSize":1369670},"name":"@alessandroraffa/tangyr","type":"module","engines":{"node":">=22"},"gitHead":"141b3e7d24dcf5e39621c3f96d15922f3b0cae81","license":"MIT","scripts":{"test":"vitest run","build":"tsup","tangyr":"tsx src/index.ts","prepack":"tsx scripts/assert-release-keys.ts && npm run build","test:watch":"vitest","assert:pack":"node scripts/assert-pack-contents.mjs","setup-global":"tsx setup-global.ts","install-hooks":"tsx install-hooks.ts"},"version":"10.0.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b3f27062-bb66-4bfe-95f3-174d30f37e63"}},"homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","overrides":{"esbuild":"^0.28.1"},"repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"_npmVersion":"12.0.2","description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","directories":{},"maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","glob":"^13.0.6","tsup":"^8.5.1","yaml":"^2.8.3","chalk":"^5.6.2","execa":"^9.0.0","memfs":"^4.0.0","vitest":"^5.0.1","commander":"^14.0.3","typescript":"^5.0.0","@iarna/toml":"^2.2.5","@types/node":"^22.20.1","@inquirer/prompts":"^8.4.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tangyr_10.0.0_1789801401686_0.18130143436366875"}}},"time":{"created":"2026-04-12T22:07:54.058Z","modified":"2026-09-19T07:03:21.944Z","0.0.1":"2026-04-12T22:07:54.280Z","0.0.2":"2026-04-12T22:09:29.219Z","0.9.0":"2026-06-27T15:38:33.562Z","0.10.0":"2026-06-28T22:12:29.097Z","0.10.1":"2026-06-28T22:50:35.591Z","0.11.0":"2026-06-28T23:22:20.312Z","0.11.1":"2026-07-18T11:47:30.467Z","0.12.0":"2026-07-28T07:23:16.091Z","0.13.0":"2026-08-25T15:17:24.358Z","0.14.0":"2026-08-27T13:41:20.875Z","0.14.1":"2026-08-28T14:46:26.708Z","0.15.0":"2026-09-01T05:38:07.014Z","0.16.0":"2026-09-01T22:52:45.038Z","0.16.1":"2026-09-02T00:12:19.551Z","0.17.0":"2026-09-03T10:25:16.243Z","0.17.1":"2026-09-03T21:13:15.734Z","0.18.0":"2026-09-04T02:24:38.540Z","0.19.0":"2026-09-04T02:55:17.465Z","0.20.0":"2026-09-04T04:28:59.461Z","0.20.1":"2026-09-04T08:37:26.986Z","0.21.0":"2026-09-04T10:18:47.243Z","0.21.1":"2026-09-06T13:38:44.360Z","0.21.2":"2026-09-06T13:42:59.157Z","0.21.3":"2026-09-07T02:34:45.876Z","0.21.4":"2026-09-07T02:38:25.656Z","0.21.5":"2026-09-07T09:48:41.267Z","0.21.6":"2026-09-07T18:13:08.793Z","1.0.0":"2026-09-09T07:43:35.195Z","1.0.1":"2026-09-09T08:27:44.314Z","1.0.2":"2026-09-09T10:06:33.311Z","1.0.3":"2026-09-09T10:40:24.549Z","1.0.4":"2026-09-11T01:32:40.287Z","2.0.0":"2026-09-11T07:12:31.599Z","3.0.0":"2026-09-11T08:52:52.111Z","3.0.1":"2026-09-11T13:27:04.878Z","3.0.2":"2026-09-11T13:55:48.019Z","3.0.3":"2026-09-11T19:36:50.451Z","3.0.4":"2026-09-11T22:48:21.923Z","4.0.0":"2026-09-15T09:43:18.528Z","4.1.0":"2026-09-16T00:14:04.814Z","4.2.0":"2026-09-16T01:04:03.467Z","5.0.0":"2026-09-16T06:49:38.678Z","5.0.1":"2026-09-16T10:23:03.149Z","6.0.0":"2026-09-16T11:00:50.101Z","6.0.1":"2026-09-16T13:39:36.740Z","7.0.0":"2026-09-18T13:00:41.258Z","7.0.1":"2026-09-18T14:02:47.178Z","8.0.0":"2026-09-18T16:04:28.188Z","9.0.0":"2026-09-18T19:55:14.127Z","10.0.0":"2026-09-19T07:03:21.776Z"},"bugs":{"url":"https://github.com/alessandroraffa/tangyr-cli/issues"},"license":"MIT","homepage":"https://github.com/alessandroraffa/tangyr-cli#readme","repository":{"url":"git+https://github.com/alessandroraffa/tangyr-cli.git","type":"git"},"description":"CLI for the Tangyr discipline — install and manage operating kits for AI coding tools","maintainers":[{"name":"alessandroraffa","email":"contact@alessandroraffa.eu"}],"readme":"# @alessandroraffa/tangyr\n\nCLI for the Tangyr discipline — install and manage operating kits for AI coding tools.\n\nAn operating kit is a self-contained package of agents, skills, commands, rules, and templates that implements the Tangyr discipline for a specific AI coding context. The CLI places kit artifacts into the environments consumed by supported tools.\n\n## Requirements\n\nNode.js `>=22`. Running `tangyr` on an older Node.js version prints a clear error to stderr and exits without attempting to run any command.\n\n## Install / run\n\n```sh\nnpx @alessandroraffa/tangyr <command>\n```\n\nOr install globally:\n\n```sh\nnpm install -g @alessandroraffa/tangyr\ntangyr <command>\n```\n\n## Commands\n\n### Kit management\n\n| Command                            | Description                                                                                                             |\n| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |\n| `tangyr install --kit <name>`      | Install a kit resolved from configured search paths (`kitSearchPaths`/`kit` in `tangyr.config.yaml`)                    |\n| `tangyr install --kit-path <path>` | Install a kit from an explicit kit root path                                                                            |\n| `tangyr uninstall`                 | Remove Tangyr from the target scope                                                                                     |\n| `tangyr sync`                      | Synchronize installed kit to the latest version                                                                         |\n| `tangyr verify`                    | Check installation integrity against the manifest                                                                       |\n| `tangyr cleanup`                   | Remove managed artifacts; delegates to uninstall if manifest exists                                                     |\n| `tangyr assess`                    | Pre-installation conflict analysis: what is there, what `onConflict` will do to it, and whether install will be refused |\n| `tangyr list`                      | Display kits discovered in configured search paths and any installed manifests                                          |\n\n### Environment\n\n| Command         | Description                                        |\n| --------------- | -------------------------------------------------- |\n| `tangyr detect` | Detect supported AI tool runtimes                  |\n| `tangyr status` | Show managed artifact status per tool              |\n| `tangyr doctor` | Run environment diagnostics with optional auto-fix |\n| `tangyr probe`  | Probe configured platform paths                    |\n\n### Configuration\n\n| Command           | Description                                           |\n| ----------------- | ----------------------------------------------------- |\n| `tangyr init`     | Create a tangyr.config.yaml interactively             |\n| `tangyr config`   | Display or edit Tangyr configuration                  |\n| `tangyr validate` | Validate the kit against kitFormat 1 conformity rules |\n\n### Command options\n\nOptions declared on individual commands in addition to the [global flags](#global-flags) below. `--offline`, `--refresh`, and `install`/`sync`'s narrow `--json` are documented in [Remote kit source](#remote-kit-source); `--scope` in [Scope](#scope).\n\n| Command                                                  | Option                   | Description                                                                                                                                                                                                                  |\n| -------------------------------------------------------- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `install`, `sync`                                        | `--loss-report <path>`   | Write an **extra copy** of this run's semantic loss report to `<path>`. The report itself is scope state and is rewritten at `<scope>/loss.json` by every `install` and `sync` regardless, whether or not the run exits `3`. |\n| `install`                                                | `--replace`              | Install this kit over a different one already in this scope: the installed kit is uninstalled first, which restores what it displaced. Without it, a change of kit is refused rather than performed as an update             |\n| `install`, `sync`                                        | `--ignore-errors`        | Suppress exit code `3` when the loss report contains `error`-severity entries                                                                                                                                                |\n| `install`, `sync`                                        | `--kit <name>`           | Kit to install/synchronize: `<name>` for a local source, `<name>@<version>` for a remote one                                                                                                                                 |\n| `install`, `uninstall`, `assess`                         | `--tools <list>`         | Comma-separated list of target tools                                                                                                                                                                                         |\n| `sync`, `status`, `verify`, `doctor`, `cleanup`, `probe` | `--target <tool>`        | Limit the command to a single target                                                                                                                                                                                         |\n| `probe`                                                  | `--scope <scope>`        | Which scope's slots to probe. Declared on every scope-aware command; `probe` read one without offering the flag until 7.0.0                                                                                                  |\n| `sync`                                                   | `--component <name>`     | Limit sync to one component type: `instructions`, `agents`, `skills`, `commands`, `rules`, `hooks`, `mcp`, `settings`, `output-styles`, `lsp`                                                                                |\n| `sync`                                                   | `--force`                | Rewrite managed artifacts even when provenance matches                                                                                                                                                                       |\n| `doctor`                                                 | `--fix`                  | Apply safe automated fixes                                                                                                                                                                                                   |\n| `cleanup`                                                | `--all`                  | Include all enabled targets                                                                                                                                                                                                  |\n| `config`                                                 | `--edit`                 | Interactively edit mutable config fields                                                                                                                                                                                     |\n| `auth login`                                             | `--skip-validation`      | Store the credential without contacting the configured origin                                                                                                                                                                |\n| `kit update`                                             | `--kit <name>@<version>` | Remote kit reference to re-fetch into the cache                                                                                                                                                                              |\n| `cache clear`                                            | `[target]`               | Positional: kit name or `<name>@<version>`; omit to clear the whole cache                                                                                                                                                    |\n| `assess`, `detect`, `list`, `probe`, `validate`          | `--json`                 | Replace the command's output with JSON                                                                                                                                                                                       |\n\n### Authentication\n\n| Command              | Description                                                     |\n| -------------------- | --------------------------------------------------------------- |\n| `tangyr auth login`  | Store a client ID/secret credential pair, validating by default |\n| `tangyr auth status` | Show current credential validation state                        |\n| `tangyr auth logout` | Remove the stored credential                                    |\n\nResolved environment-first (`TANGYR_ACCESS_CLIENT_ID`/`TANGYR_ACCESS_CLIENT_SECRET`), then from the stored file, then interactively.\n\n**Downgrading.** The credential file (`~/.tangyr/credentials.json`) uses the client ID/secret pair format. To revert to a CLI predating this format, delete that file and run `tangyr auth login` again on the older version — the older CLI's single-key reader rejects, rather than misreads, the newer pair-format file, so no silent corruption occurs in either direction.\n\n### Remote kit source\n\nA kit can be installed from a signed remote origin instead of a local\ndirectory. The subsections below cover configuration, the cache layout,\noffline/refresh/freshness behavior, and the maintenance commands; see\n[Exit codes](#exit-codes) below for the codes a remote\n`install`/`sync`/`kit update` can reach.\n\n**In brief.** Once installed, `install`/`sync` resolve a warm cache entry\nwith no network call for 24 hours after the last successful\nauthorization check (`--refresh` forces a re-fetch and re-verify;\n`--offline` forces cache-only resolution and fails if nothing is\ncached). `tangyr kit update` refreshes the cache without running the\ninstall/sync pipeline; `tangyr cache clear` removes cached kits. See\n[Offline, refresh, and authorization freshness](#offline-refresh-and-authorization-freshness)\nand [Maintenance commands](#maintenance-commands) below for the full\nbehavior, and [Authentication](#authentication) above for the\ncredential-store downgrade path.\n\n#### Quickstart\n\n```bash\n# 1. Authenticate — stores a validated credential pair.\nexport TANGYR_ACCESS_CLIENT_ID=... TANGYR_ACCESS_CLIENT_SECRET=...\ntangyr auth login\n\n# 2. Point the config at the remote origin (tangyr.config.yaml).\n#    source:\n#      type: remote\n#      url: https://kits.example.com\n\n# 3. Install by name. A bare name resolves through the channel pointer;\n#    pin a version instead when you want an exact, immutable one.\ntangyr install --kit acme-kit\ntangyr install --kit acme-kit@1.4.0\n```\n\n`sync --kit acme-kit@1.4.0` follows the same form. Both commands fetch,\nverify the publisher signature and per-file content hashes, materialize\ninto the local cache, and hand the result to the unchanged local install\npipeline.\n\n#### Remote source configuration\n\nSet the source scheme in `tangyr.config.yaml`. All three keys are optional and additive — a config that omits them behaves exactly as before.\n\n```yaml\nsource:\n  type: remote # \"local\" (default) or \"remote\"\n  url: https://kits.example.com # required when type is remote\n  channel: stable # channel a versionless --kit resolves through; default \"stable\"\n```\n\n`type` defaults to `local` when absent. When it is `remote`, the local `source.*` path keys are ignored at resolution; they are retained rather than stripped, so switching back to `local` needs no restoration. A `type` that is neither `local` nor `remote` is rejected at load rather than silently treated as local, and `type: remote` with no `url` is rejected as well.\n\nA remote kit is referenced on both commands either by name and explicit version, or by name alone:\n\n```bash\ntangyr install --kit acme-kit@1.4.0   # exact, immutable\ntangyr install --kit acme-kit         # resolves through the channel pointer\ntangyr sync --kit acme-kit@1.4.0\n```\n\nAn explicit `<name>@<version>` is immutable and never consults a channel. A bare `<name>` resolves through the signed channel pointer named by `source.channel`, defaulting to `stable`; `source.channel` must be lowercase alphanumeric with hyphens, 1-32 characters, and is rejected at config load rather than mid-resolution. Passing a bare URL as `--kit` is rejected with a message pointing at `source.url`.\n\nA channel pointer is served `no-store` and is never cached, because \"the newest version as of some earlier run\" is not what a channel means. Two paths therefore answer from the last version this machine saw, and both say so: `--offline`, which has no other option and exits `8` if the channel has never been resolved here, and a genuine network failure, which falls back and reports the run as degraded. A pointer that is rolled back, expired, or signed for another channel does **not** fall back — it fails with exit `7`, because proceeding on a remembered version would convert a detected downgrade into a silent one.\n\n| Variable           | Default            | Purpose                                                               |\n| ------------------ | ------------------ | --------------------------------------------------------------------- |\n| `TANGYR_CACHE_DIR` | `~/.tangyr/cache/` | Root of the local materialized-kit cache. A leading `~/` is expanded. |\n\n#### Cache layout\n\nA materialized kit is published under the cache root at\n`<cacheRoot>/<name>/<version>/`. The presence of a `.tangyr-complete` marker\nfile inside that directory is what makes the entry complete; an entry\nwithout one is a partial write from an interrupted materialization and is\nnever read. A `.staging/` sibling directory under the cache root holds\nin-progress materializations before they are published — it is not itself\na cache entry, and is safe to remove between runs. A cache entry also\ncarries `.tangyr-bundle.json`, the signed bundle (manifest, files,\nsignature) that produced it, written immediately before the completion\nmarker and read back on a warm-cache use to re-verify the publisher\nsignature without a network fetch; a bundle that declares a file at either\nreserved filename is rejected before any write.\n\nPublishing is atomic: a materialization is verified and written into a\nunique temporary directory under `.staging/`, then made visible with a\nsingle directory rename into `<name>/<version>/`, with the completion\nmarker written last. Two concurrent materializations of the same\n`<name>@<version>` stage independently and cannot corrupt each other or\nexpose a half-written kit.\n\nA warm, currently-valid entry that is also freshness-fresh (within the\n24-hour authorization-freshness window from the last successful check for\nthat origin) resolves fully offline, with no network call at all. Beyond\nthe window, the next `install`/`sync` performs a lightweight authorization\nre-check against the origin.\nA definitive denial fails closed with no cache fallback; a genuine network\nfailure during that re-check falls back to the warm cache with a warning\nand, under `--json`, a `{\"degraded\":true}` signal. See\n[Offline, refresh, and authorization freshness](#offline-refresh-and-authorization-freshness)\nbelow.\n\nThe cache root also carries a `.tangyr-freshness.json` file, recording, per\nconfigured origin, the timestamp of the last successful authorization\ncheck — used by the cache-first freshness gate. This file is not itself a\ncache entry: it is excluded from\n`tangyr cache clear`.\n\n#### Limits and file modes\n\nA materialized bundle is bounded on two axes: the total decompressed payload\nmay not exceed **50 MiB**, and no single file inside it may exceed **5 MiB**.\nThe total ceiling is enforced while the response is streamed — the request\nis aborted the moment the running total would cross it, before the payload\nis buffered — so an oversized or maliciously compressed response is cut off\nmid-transfer rather than fully downloaded first. The per-file ceiling is\nchecked after each file is decoded and hashed.\n\nMaterialized files are written at `0600` inside directories created at\n`0700`. No symbolic or hard links are ever created by the materialization\npipeline, and a pre-existing symbolic link at a write target is refused\nrather than followed.\n\n**Credential-precedence trap**: setting exactly one of\n`TANGYR_ACCESS_CLIENT_ID` / `TANGYR_ACCESS_CLIENT_SECRET` fails every remote\n`install` and `sync` with exit `5` — even when a valid stored credential\nfrom `tangyr auth login` exists. A leftover shell export, a half-applied\n`.env`, or an inherited CI variable is enough to trigger it, because the\npartial environment is treated as a misconfiguration and never falls\nthrough to the stored credential. The fix: unset the stray variable, or set\nboth.\n\n#### CI and non-interactive operation\n\n`install`/`sync` on a remote source resolve the credential from\n`TANGYR_ACCESS_CLIENT_ID`/`TANGYR_ACCESS_CLIENT_SECRET` or the stored\ncredential file only — this path never prompts, with or without the\nglobal `--non-interactive` flag, so a CI pipeline supplying both\nenvironment variables never hits a prompt on the credential-resolution\nstep. `auth login` additionally supports `--non-interactive` explicitly:\nunder it, a credential that cannot be resolved fails closed naming both\nenvironment variables rather than prompting. The cache root is stable\nand documented (`~/.tangyr/cache/` by default,\n`TANGYR_CACHE_DIR`-overridable — see\n[Remote source configuration](#remote-source-configuration)\nabove), so a CI pipeline can restore it between runs to keep a warm\ncache. A fully non-interactive run with environment credentials against\nthe documented cache path is exercised end to end by\n`tests/integration/remote-first-run.test.ts`; a real spawned CLI process\nreaching a real (fixture) origin non-interactively, with zero prompts,\nis additionally exercised by the exit-`5` and exit-`7` cases in\n`tests/e2e/cli.test.ts`. A full non-interactive _success_ through a real\nspawned process against a real signed production origin is not yet\nprovable — it requires a real, live, signed origin, which does not\nexist yet (plan Decision 9's origin-provisioning track).\n\n#### Offline, refresh, and authorization freshness\n\nThe cache root's `.tangyr-freshness.json` file (Activity 1) records, per\nconfigured origin, the timestamp of the last successful authorization\ncheck. A warm, currently-valid entry resolves fully offline — no network\ncall at all — for **24 hours** from that timestamp. Beyond the window, the\nnext `install`/`sync` performs a lightweight re-check against the origin\nbefore resolving.\n\n`--offline` forces cache-only resolution: it never fetches and never\nmutates. A complete, valid entry resolves immediately; a missing or\nunusable entry exits `8` (Offline cache miss) naming the `tangyr kit\nupdate` remediation. `--refresh` forces a re-fetch, re-verify, and replace,\nbypassing the freshness gate entirely — it always reaches the origin.\n`--offline` and `--refresh` are mutually exclusive; passing both exits `1`.\n\nOn a network failure during the lightweight re-check (not a definitive\ndenial), resolution falls back to the warm cache with a warning printed to\nstderr, since the check could not confirm freshness.\nUnder `--json`, this same condition also emits a `{\"degraded\":true,\"kit\":\n\"<name>@<version>\"}` line to stderr. Neither `install` nor `sync` has a\nfull JSON output mode yet: `--json` is scoped to exactly this one signal\nand is a no-op when resolution was not degraded — the rest of the\ncommand's human-readable output is unchanged either way.\n\n**Migrating a pre-existing cache entry.** A cache entry materialized before\nthis StepLedger (no `.tangyr-bundle.json`) is not corrupt — it is a\nlegitimate entry in an earlier format. It is treated as an offline cache\nmiss (exit `8`) specifically under `--offline`, because there is nothing to\nre-verify signature freshness against without a network attempt. Running\n`tangyr kit update --kit <name>@<version>`, or any `install`/`sync` without\n`--offline`, while online, upgrades it to the current format.\n\n#### Maintenance commands\n\n`tangyr kit update --kit <name>@<version>` is install-free: it re-fetches\nand re-verifies the named kit into the cache — replacing whatever is\nalready there, regardless of the current cache state (missing, stale,\nwarm-and-fresh, or a pre-existing legacy-format entry) — without running\nthe install or sync pipeline. It does not affect the authorization-freshness\nwindow: it makes no call to the lightweight authorization probe and neither\nreads nor writes `.tangyr-freshness.json`, since a full re-fetch and\nre-verify is a strictly stronger refresh than a freshness check. A later\n`install`/`sync` still evaluates its own freshness window independently of\nany `tangyr kit update` that ran before it.\n\n`tangyr cache clear [target]` removes cached kits from the local cache,\nin one of three forms, each a distinct blast radius:\n\n```bash\ntangyr cache clear                    # every cached kit, every version\ntangyr cache clear acme-kit           # every version of acme-kit only\ntangyr cache clear acme-kit@1.4.0     # exactly that one cache entry\n```\n\nNo `target` is the widest and only destructive form: it removes every\n`<cacheRoot>/<name>` directory. A bare `<name>` removes every version of\nthat one kit as a single directory. A `<name>@<version>` removes exactly\none cache entry, the narrowest of the three. None of the three forms ever\nremoves the cache root's `.staging/` directory or its\n`.tangyr-freshness.json` file — both are reserved cache-root filenames,\nexcluded by name from every form, not only from the no-argument\nenumeration.\n\nThe command is idempotent: running it again with the same argument, once\nits targets are already gone, reports \"nothing to remove\" and exits `0`\nrather than throwing or silently reporting a false positive. Without\n`--yes`, it prompts for confirmation, naming the targets it is about to\nremove rather than a bare count; `--dry-run` previews the targets without\nremoving anything; `--yes` skips the prompt.\n\n`cache clear`'s `[target]` is this codebase's first use of Commander's\n`.argument()` for a command's own positional value — distinct from every\n`.option()` flag on this or any other command. It is the established\npattern for a future command that needs exactly one optional positional\nvalue: `.argument(\"[name]\", \"<description>\")`, with named flags still\ndeclared via `.option()`. Commander delivers the positional argument's\nvalue as the `.action()` callback's first parameter, ahead of any options\nobject — the reverse of every option-only command's callback signature.\n\n## The kit's instructions file\n\nOne resolution, used by `install`, `sync`, every adapter and `verify` alike:\n\n1. `source.instructions` in `tangyr.config.yaml`, when set to something other than the `./AGENTS.md` default. An explicit declaration naming a file the kit does not carry is an error, reported before anything is written.\n2. `entrypoint` in `tangyr-kit.yaml`.\n3. `ORIENTATION.md`, then `AGENTS.md`, then the legacy `CLAUDE.md` (which installs, with a notice naming the rename).\n\nA kit whose entrypoint is `ORIENTATION.md` therefore needs no `source.instructions`, and `verify` recognises it.\n\n## Configuration file\n\n`tangyr.config.yaml` declares `schema: 1`. A key this schema does not define is rejected, naming the key it was probably meant to be — an unrecognized key is never read, so whatever it was meant to set stays at its default, and `target:` for `targets:` silently reduced an install to one tool. Prefix a key with `x-` to keep it as an annotation.\n\nIn `tangyr-kit.yaml`, `discipline` is optional: declare it to opt into the corpus-version check, omit it for a kit that is not derived from the shared corpus.\n\n## Conflict policy\n\nBefore writing, each destination is classified and resolved according to `onConflict` in `tangyr.config.yaml`: `ask` (default; prompts, and resolves to **skip** when there is no one to ask), `skip`, `backup`, or `overwrite`.\n\n`--yes` supplies the confirmation a non-interactive run needs; it does **not** override the posture. Under `--yes`, `skip` leaves conflicting destinations unchanged and says which, `overwrite` replaces without a backup, `ask` leaves the destination alone and names the postures that replace, and `backup` copies the existing file — or the existing directory, recursively — into `.tangyr/backups/<timestamp>/` and records it in the manifest so `uninstall` can put it back. A symlink is backed up as a symlink and restored as one: its target is untouched either way, but the link itself is the operator's artifact — often the one committed with the project — so replacing it without a record left nothing to put back.\n\nOne decision is taken per destination, not per target, so a file several targets write — `AGENTS.md` is claimed by four — is backed up once.\n\n## Accepted loss\n\nSome losses are structural: OpenCode expresses hooks only as plugin code, Cline has no committable persona file. A kit with hooks installed for OpenCode therefore exits `3` on every run, however correct the kit is.\n\n`acceptedLoss` names those, so that a genuinely new error entry is still loud:\n\n```yaml\nacceptedLoss:\n  - opencode/hook-as-plugin # <target>/<entry-type>\n  - cline/* # every error entry for one target\n  - persona-not-representable # this entry type on any target\n```\n\n`--ignore-errors` remains the blunt instrument: it suppresses the exit code for every error entry, including ones nobody has looked at yet.\n\nNot every error entry is structural. `rule-not-delivered` (below) reports a rule that did not reach a target on this run, which is usually fixable — by giving the target an instructions path of its own, or by not enabling it. Accept it when you have decided to live with it, not to quiet it.\n\n## What did not arrive\n\nA kit's artifacts reach a target through that target's own surfaces: a file in its agents directory, a prompt, a workflow, a skill folder, a section in the instructions document it reads. The surfaces differ per target, and some targets have none for a given category.\n\nAfter every target has written, the run measures what is actually on disk and says so — one line per target, the counts first, and whatever did **not** arrive named beneath:\n\n```text\nWhat reached each target (measured on disk):\n  claude-code  agents 1/1  commands 1/1  rules 1/1  skills 1/1  hooks 1/1\n  copilot      agents 1/1  commands 1/1  rules 1/1  skills 1/1  hooks 1/1\n  codex        agents 1/1  commands 1/1  rules 0/1  skills 1/1  hooks 1/1\n               rules missing: git-safety\n                 folded into AGENTS.md, which cline wrote last\n  cline        agents 0/1  commands 1/1  rules 1/1  skills 1/1  hooks 0/1\n               agents missing: reviewer\n                 cline has no agents surface in this scope\n```\n\nMeasured on the files, not on what the compilers intended: the two have disagreed, and the files are what the target reads. Nothing is printed when everything arrived; `--verbose` shows the block either way.\n\nThe same fact reaches the loss report — `<scope>/loss.json`, rewritten by every `install` and `sync`, plus any `--loss-report <path>` copy — as a `rule-not-delivered`, `agent-not-delivered`, `command-not-delivered`, `skill-not-delivered` or `hook-not-delivered` entry, one per artifact per target, at `error` severity — so a run that loses part of the kit exits `3` rather than reporting success. A category the target has no surface for at all is left to the structural entry that already says so (`persona-not-representable`, `hook-as-plugin`), rather than repeated once per artifact.\n\n## The loss report\n\n`.tangyr/loss.json` (project scope) or `~/.tangyr/loss.json` (global) is written by every `install` and `sync`, and removed by `uninstall` with the manifest. It holds one entry per target and component that could not be translated natively, each with its closed-vocabulary type, its severity and a human-readable detail, under a `generatedAt` timestamp.\n\nIt used to be written only when `--loss-report <path>` was passed, which nobody passes twice: a project found theirs five days stale, naming a component renamed since, while the kit had grown from two components to thirty-four. A report that is only ever a photograph of one run does not belong in a directory that looks like state.\n\n## Exit codes\n\nThe full exit-code taxonomy, in numeric order. Every code below `5`\npredates the remote-source work and is shared by every command; codes\n`5`-`9` are specific to a remote `install`/`sync`/`kit update` (see\n[Remote kit source](#remote-kit-source) above for the pipeline that\nreaches them).\n\n| Exit code | Meaning                            | Reached when                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |\n| --------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `0`       | Success                            | The command completed with no fatal error. A `sync`/`install` whose loss report contains only `info`/`warning`-severity entries also exits `0`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |\n| `1`       | General failure                    | The generic, catch-all failure code for any error not mapped to a more specific code below — including a CLI usage error such as an unrecognized command, a malformed `--kit <name>@<version>` reference, or `--offline` and `--refresh` passed together; an `install` or `sync` that would put a different kit over the one this scope holds also exits here rather than installing both (see `--replace`); a corrupt or legacy-format installation manifest (`ManifestCorruptError`, `ManifestLegacyError`, `src/core/manifest.ts`) also falls through to this code, since `handleFatalError` carries no dedicated branch for either. |\n| `2`       | Conflict                           | A conflict that no posture resolves. Reached when `install` finds an instructions entrypoint Tangyr did not write — `AGENTS.md`, `CLAUDE.md`, `.opencode/AGENTS.md`, `.cursor/rules/AGENTS.md`, `.github/copilot-instructions.md`, whichever file an enabled target reads — and refuses, writing nothing, under every `onConflict` posture. `INSTALL_FOREIGN_INSTRUCTIONS` goes to stderr as JSON; `assess` and `--dry-run` predict it. Move the file aside, or fold what it says into the kit, then install again. `ConflictError` (`src/core/exit.ts`) also routes here and is thrown by no current code path.                        |\n| `3`       | Completed with error-severity loss | An `install`/`sync` run completes but its loss report contains at least one `error`-severity entry, distinct from the generic failure code `1`. `--ignore-errors` on `install`/`sync` forces a zero exit for authors who accept the loss.                                                                                                                                                                                                                                                                                                                                                                                               |\n| `4`       | Target not detected                | Reserved for a configured target tool whose runtime cannot be detected (`TargetNotDetectedError`, `src/core/exit.ts`); declared and routed the same way as exit `2`, and likewise not thrown by any current production code path.                                                                                                                                                                                                                                                                                                                                                                                                       |\n| `5`       | Authentication required            | The resolved credential is missing, partially configured (see the credential-precedence trap above), or rejected by the origin (`401`/`403`) — at login, at a cold fetch, or at the post-freshness-window re-check.                                                                                                                                                                                                                                                                                                                                                                                                                     |\n| `6`       | Remote unavailable                 | A transient fetch failure exhausts the bounded retry (3 attempts, 250 ms then 1000 ms backoff) with no warm cache to fall back to, or a warm-cache freshness re-check fails the same way with no usable fallback path.                                                                                                                                                                                                                                                                                                                                                                                                                  |\n| `7`       | Integrity failure                  | The signed bundle fails signature verification (including an unknown or out-of-window signing-key identifier), identity binding, a per-file content-hash check, a size ceiling, or path sanitization; or the channel pointer for a versionless `--kit <name>` cannot be resolved, is not signed by a pinned key, or names a version older than the one already seen.                                                                                                                                                                                                                                                                    |\n| `8`       | Offline cache miss                 | `--offline` with no complete, valid cache entry for the requested reference.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |\n| `9`       | Incompatible version               | The running CLI is older than the bundle's declared minimum-compatible version, or the origin rejects this CLI's contract version.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |\n| `10`      | Configuration missing              | No `tangyr.config.yaml` is found (`ConfigNotFoundError`, `src/core/config.ts`) for a command that requires one.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |\n| `130`     | User interrupt                     | The process received `SIGINT` (Ctrl-C) during a command.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |\n\n## Global flags\n\n| Flag                         | Description                                                                                           |\n| ---------------------------- | ----------------------------------------------------------------------------------------------------- |\n| `--config <path>`            | Use an explicit configuration file                                                                    |\n| `--kit-path <path>`          | Use an explicit operating kit root                                                                    |\n| `--project-root <path>`      | Directory a project-scope operation writes into (see [Scope](#scope))                                 |\n| `--dry-run`                  | Report actions without modifying files                                                                |\n| `--yes`                      | Skip confirmation prompts                                                                             |\n| `--non-interactive`          | Never prompt; fail closed when a required input is missing (`auth login`)                             |\n| `--verbose`                  | Detailed output                                                                                       |\n| `--quiet`                    | Errors only                                                                                           |\n| `--no-color`                 | Disable colors                                                                                        |\n| `--claude-config-dir <path>` | Claude Code global root directory (repeatable). Overrides `claudeCodeGlobalPaths` in the config file. |\n\n## Supported tools\n\n- **Claude Code** — instructions (`AGENTS.md` plus the `CLAUDE.md` shim), agents, skills, commands, rules, output styles, hooks, settings, and MCP, placed in scope-resolved Claude Code paths (fanned out across every configured global root — see [Multiple Claude Code global roots](#multiple-claude-code-global-roots))\n- **GitHub Copilot** — instructions (`AGENTS.md` plus the always-read `.github/copilot-instructions.md` mirror; project scope only, since Copilot has no global instructions slot), agents, prompts (compiled from commands), rules (`.github/instructions/<name>.instructions.md`, each carrying the rule's path scope as an `applyTo` glob; project scope only, since that is a repository path with no user-level equivalent), skills, hooks (`~/.copilot/hooks` or `.github/hooks`), and MCP. Hook matchers are rewritten to Copilot's own lowercase tool names (`bash`, `view`, `create`, `edit`, `grep`) — an untranslated `Bash` matcher never fires\n- **OpenAI Codex** — `AGENTS.md`, agent TOML files, rules (`.rules` files for `exec-policy`, appended to the instructions file as guidance otherwise), skills and commands (both as skill directories at Codex's documented skills path — `~/.agents/skills` globally, `.agents/skills` inside a repository — because Codex deprecated its custom prompts in favour of skills), hooks (`hooks.json` plus the shared `~/.agents/hooks` script bridge; macOS and Linux only), and MCP in `config.toml`\n- **OpenCode** — instructions (`~/.config/opencode/AGENTS.md` globally; `.opencode/AGENTS.md` inside a project, declared in the `instructions` field of `opencode.json`, because the project-root `AGENTS.md` is written by four other targets in turn and only the last writer's content survives), agents, commands, skills (OpenCode-local plus the shared `~/.agents/skills` link), and `opencode.json` (MCP, permissions, custom provider), in XDG config paths. Hooks are **not** delivered: OpenCode exposes hooks only as plugin code, so a declared hook event is dropped and recorded as a `hook-as-plugin` loss\n- **Cursor** — instructions, subagents, `.mdc` rules, commands, skills (Cursor-local plus shared), `hooks.json` plus the shared hook-script bridge (matchers rewritten to Cursor's tool names — `Shell`, `Read`, `Write`, `Grep`), `mcp.json`, and `permissions.json`\n- **Cline** — instructions (`AGENTS.md`, project scope only), rules, workflows (compiled from commands), skills, and MCP. Agents and hooks are **not** delivered: Cline has no committable persona file (`persona-not-representable`) and exposes hooks only as `@cline/sdk` plugin code (`hook-as-plugin`); both are recorded as losses rather than silently skipped\n\n## Quick start\n\n```sh\n# Initialize a configuration in your project\nnpx @alessandroraffa/tangyr init\n\n# Install a kit by path (preview with --dry-run first)\nnpx @alessandroraffa/tangyr install --kit-path ./path/to/operating-kit --dry-run\nnpx @alessandroraffa/tangyr install --kit-path ./path/to/operating-kit\n\n# Check installation status, then sync after a kit update\nnpx @alessandroraffa/tangyr status\nnpx @alessandroraffa/tangyr sync\n```\n\n## Scope\n\nEvery write command accepts `--scope global` or `--scope project`. The CLI flag overrides `config.scope` for that invocation.\n\n| Scope     | Manifest location         | Claude Code artifacts               |\n| --------- | ------------------------- | ----------------------------------- |\n| `global`  | `~/.tangyr/manifest.json` | `~/.claude/`                        |\n| `project` | `.tangyr/manifest.json`   | repo root (`AGENTS.md`, `.claude/`) |\n\n### Which directory is the project\n\nA project-scope operation resolves its root in this order:\n\n1. `--project-root <path>`, when given.\n2. The directory of the `tangyr.config.yaml` this run **discovered** — one found in the working directory or an ancestor. That file sits at the project root by construction, and `kitPath` is already resolved against it.\n3. The working directory, when the config was named explicitly with `-c`. An explicit path may name a shared or CI config outside the tree and says nothing about where the project is.\n4. The nearest enclosing directory carrying `tangyr.config.yaml` or `.tangyr/`, for the commands that run without a config at all; failing that, the working directory.\n\nRunning from a subdirectory therefore installs at the project root rather than in the subdirectory. Deliberately only Tangyr's own markers are searched in step 4: a `package.json` or `.git` above the working directory says where some project starts, not that this installation belongs there.\n\n## Multiple Claude Code global roots\n\nIf you maintain more than one Claude Code account (e.g. `~/.claude` and `~/.claude-work`), you can keep them identical with a single sync operation.\n\n**Via config** (`tangyr.config.yaml`):\n\n```yaml\nclaudeCodeGlobalPaths:\n  - ~/.claude\n  - ~/.claude-work\n```\n\n**Via environment variable** (`TANGYR_CLAUDE_CONFIG_DIRS`):\n\nA colon-separated list of Claude Code global root directories. Entries support `~/` expansion. This layer is designed for machine-specific configuration that must not be committed to a shared kit config.\n\n```sh\nexport TANGYR_CLAUDE_CONFIG_DIRS=\"~/.claude:~/.claude-work\"\ntangyr sync\n```\n\nAuto-sync use case: if a kit-change hook or automation runs `tangyr sync`, exporting `TANGYR_CLAUDE_CONFIG_DIRS` in the shell environment keeps multiple Claude configs in sync automatically — without putting machine-specific paths in a shared `tangyr.config.yaml`.\n\n**Via CLI flag** (repeatable):\n\n```sh\ntangyr sync --claude-config-dir ~/.claude --claude-config-dir ~/.claude-work\n```\n\nPrecedence: `--claude-config-dir` flag > `TANGYR_CLAUDE_CONFIG_DIRS` env > `claudeCodeGlobalPaths` in config > default `~/.claude`.\n\nPer-root artifacts (instructions, agents, skills, commands, rules, output-styles, hooks settings) are written under each root. Shared artifacts (`~/.claude.json` for MCP, `~/.agents/hooks` for hooks) are resolved from the platform default and written once regardless of how many roots are configured.\n\nThe manifest records the full set of roots written so that `verify` and `uninstall` operate on all of them.\n\n## Documentation\n\n| Document                                                                           | For                                                                                                                                                              |\n| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [Operating Tangyr in a project](docs/guides/operating-tangyr-in-a-project.md)      | Running the CLI in a repository you did not set up: what it copies, rewrites and deletes, how to read a run, and how to tell a defect from a target that changed |\n| [Authoring a project-local kit](docs/guides/authoring-a-project-local-kit.md)      | Writing a kit and installing it into a repository                                                                                                                |\n| [Installing a private kit](docs/guides/kit-consumer-onboarding.md)                 | Consuming a kit from a signed remote origin                                                                                                                      |\n| [Functional specification](docs/specifications/tangyr-cli-functional-spec-v1.0.md) | What the tool must do: the canonical taxonomy, the per-target contracts, the loss and conflict models                                                            |\n| [Maintaining this CLI](docs/maintaining-the-cli.md)                                | Working on the tool itself: the decisions the code cannot explain, and the traps that have already cost something                                                |\n| [Mapping declarations](mappings/README.md)                                         | The declarative translation inputs under `mappings/`                                                                                                             |\n\nThe dated records under `docs/stepledgers/`, `docs/plans/`, `docs/reports/`, `docs/initiatives/` and `docs/archive/` describe work as it was done and are not maintained against the current behaviour.\n","readmeFilename":"README.md"}