{"_id":"@ngocsangairvds/vsaf","_rev":"193-3b5e69255496c33c82623eefbeb4ae6a","name":"@ngocsangairvds/vsaf","dist-tags":{"latest":"6.19.0"},"versions":{"3.0.0":{"name":"@ngocsangairvds/vsaf","version":"3.0.0","keywords":["claude","claude-code","ai","sdlc","framework","bmad","openspec"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"d70fcde6debcd6d75f924c0690a101cc2de338b1","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.0.tgz","fileCount":282,"integrity":"sha512-0gWyTtaEbznReLkne0hkDYOOcrS5LsyjNuR9OT5AXAdbd1GS3bJLC0qqsXlBHrygB7iFZGMqfuZbdxJWYmJtRg==","signatures":[{"sig":"MEUCIF1Pe1D3hBBpMezkTKEvFAneZw2nBr6EN5mU+3pqRqAUAiEAqTECW5yFJPtBNje3CuBZq69QWuPcOA8trO+48hS9sk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1530163},"engines":{"node":">=18"},"gitHead":"1567a959c1d8cf85ef50e8091022ee4bf0663c4a","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. Spec-driven development, 3-layer review, 7 integrated tools.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.0_1776657356826_0.09692614061293559","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@ngocsangairvds/vsaf","version":"3.0.1","keywords":["claude","claude-code","ai","sdlc","framework","bmad","openspec"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"78ef861028eaabdc6046930ca14892c6ed6817a4","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.1.tgz","fileCount":282,"integrity":"sha512-dY0FBfIPZBycA6RG9nsLfehIZfXkgL6/4nzAB7fAF5p5FeoVP/A7moV1PTEju6IFTdu1Mv1Lp6AmFrHrf10gBA==","signatures":[{"sig":"MEUCIBrHvOIZeEC8qA4PED3pTb6Lxlxy+BUfBcPwqZTmL7dkAiEA637CSTO6W5w3jvLOe+451CI3bNiU4CC7gC0LXjFwhjM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1531944},"engines":{"node":">=18"},"gitHead":"1567a959c1d8cf85ef50e8091022ee4bf0663c4a","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. Spec-driven development, 3-layer review, 7 integrated tools.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.1_1776659462246_0.9506744563881651","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@ngocsangairvds/vsaf","version":"3.0.2","keywords":["claude","claude-code","ai","sdlc","framework","bmad","openspec"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"b7689bb1784ca72adb47cc282820d574ff441a42","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.2.tgz","fileCount":291,"integrity":"sha512-t2+psyoLe7iq5t467FXPFDXOuKNCt9VEJKSRlA5YLlD/kzjYM2xWOq1WygKO++fDbO2Dz+Ps6ndak8zcQl092Q==","signatures":[{"sig":"MEUCIQCw2uBCgxSAykzuk33nDh4uKJzC2eyV7cJ97BHQzg8hngIgOklRzlnMTTKtP788aVrn8Kih7q6qhmyQc+FtVb0Wlyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1609658},"engines":{"node":">=18"},"gitHead":"1567a959c1d8cf85ef50e8091022ee4bf0663c4a","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. Spec-driven development, 3-layer review, 7 integrated tools.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.2_1776660939942_0.621853619494126","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@ngocsangairvds/vsaf","version":"3.0.3","keywords":["claude","claude-code","ai","sdlc","framework","bmad","openspec"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"441d2b2a5b2e18cc0907c4dd7033576bee6e4ccd","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.3.tgz","fileCount":292,"integrity":"sha512-8+VYArySvt5wvl444EkpNmjJypNOPPNKv6BdWITF0mePI2Jbhf03YcdR0mkst8SXDA0SPxmhKJETfntODScVVQ==","signatures":[{"sig":"MEYCIQDf/8ahEzflfFTtERcKC56nZAAexWjKWE4dU9HXM7FNZgIhAJP17g38VE9KfL8NI2qmfUeIOEAjyT7fu5ZAi8WjRO9w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1610022},"engines":{"node":">=18"},"gitHead":"1567a959c1d8cf85ef50e8091022ee4bf0663c4a","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. Spec-driven development, 3-layer review, 7 integrated tools.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.3_1776673142301_0.04450879420703169","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"name":"@ngocsangairvds/vsaf","version":"3.0.4","keywords":["claude","claude-code","ai","sdlc","framework","bmad","openspec"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.4","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"cf59eed3fc4ce8b06df63f170fb9da24d77c5013","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.4.tgz","fileCount":292,"integrity":"sha512-5r7sIkSDirLdGcd2nfEhOmHDe/Dfx4GrQOp+CzMvcurewkx0oG2T61a6kBtdjUnGExgowgKGHyrI3tUhDy3Ekw==","signatures":[{"sig":"MEYCIQDdJ6l//Gj9dGhDcxkxkvnMJuNHZvwCY9CtvYRjiUG8MgIhAOUjOVCwxRDDZ5p1/8bqPfljemBQ5ZELLEJoK2cLFc0F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1610524},"engines":{"node":">=18"},"gitHead":"f51b54d54cdf82cae2d1886b4acef0e26e193781","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.3.0","description":"VSAF — Agentic AI SDLC Framework. Spec-driven development, 3-layer review, 7 integrated tools.","directories":{},"_nodeVersion":"24.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.4_1776763316708_0.8386817691697694","host":"s3://npm-registry-packages-npm-production"}},"3.0.5":{"name":"@ngocsangairvds/vsaf","version":"3.0.5","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","mempalace"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.5","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"cdc2d1cf365f97c1dcac9637e6e2b891b306aaa7","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.5.tgz","fileCount":288,"integrity":"sha512-jTzDSUW6mYzxB30GEgxipAwcJGy5B/VguPFzPd1pdrozY8LKMaRsOdf4cZoYzANp8NyYysg3icqw9dsq/odNaA==","signatures":[{"sig":"MEUCIQC9Rlym4BfFIRwc0KNv8WyVD21RVOhi9xzgwvU3YRDM0gIgZZOzWP0dMiOD5St2LacwJAWJYKBeftz/MTgSHAUsncg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1579262},"engines":{"node":">=18"},"gitHead":"f51b54d54cdf82cae2d1886b4acef0e26e193781","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.3.0","description":"VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.","directories":{},"_nodeVersion":"24.1.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.5_1776766084235_0.5118699912889628","host":"s3://npm-registry-packages-npm-production"}},"3.0.6":{"name":"@ngocsangairvds/vsaf","version":"3.0.6","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","mempalace"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.6","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"66d89481990179bacbf4f182c44d20c5d8835af6","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.6.tgz","fileCount":287,"integrity":"sha512-wrXB5nbQPqUTkOxycYwaMXag1tN+OEB9hui2tA80D+/jeurBTYurGwxd1KyDs3A21WPiGyd/QfEsH0MF4udd2Q==","signatures":[{"sig":"MEUCIQDc3TrSvlySVtRHikAdSLCPQAi6mn18Og5OLIqLM8PiQAIgfmcsJ+zlkKotSjcpxDt0p+UYDL7cXWBvXjtPchEUr/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1576697},"engines":{"node":">=18"},"gitHead":"5e891559ef494b7d2be5529e535847ac56678ac8","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.6_1776823151016_0.6986146469685253","host":"s3://npm-registry-packages-npm-production"}},"3.0.7":{"name":"@ngocsangairvds/vsaf","version":"3.0.7","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","mempalace"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.7","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"f33a123f8cfc9ae6616bc49306b63f181a16d20f","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.7.tgz","fileCount":287,"integrity":"sha512-4pW26OKCkneuMsERjBcmqhks0jXCM0kCxJVJgsyzfmXATyhJnI7a6CT2mCG4kZB5uTJ0ihP54Mf1gzEtXyG+zg==","signatures":[{"sig":"MEUCIHIAg6avlvja6hw08COnVt1S+u+TnwGv6PIFG+s9Pnd/AiEAgrTgN/cc2ywEAc1GCu9BnxDsDEljluYo8ZXI4I/DP/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1577380},"engines":{"node":">=18"},"gitHead":"7b2fa1bc571f563d7f00a0147c39f52f288a2632","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.7_1776842221106_0.7299326733911105","host":"s3://npm-registry-packages-npm-production"}},"3.0.8":{"name":"@ngocsangairvds/vsaf","version":"3.0.8","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","mempalace"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.8","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"9db7d0363fceeb2ffad7f4ac0cee81842ad14f8d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.8.tgz","fileCount":287,"integrity":"sha512-G3sD3oOb1fUuYXFmucY00xhY/feyzAgiKY5vEtK5gGNqf6wz8xruHEMw6EzX3laIgcpaDdkN7vkUN5yeZHyWnw==","signatures":[{"sig":"MEYCIQDMh5bXGNg6+8Wfev8JdVfJ958uxxaFTd6Ahwopef4rLQIhAK+cw3v89JakrZ9v//OLjqTvdo6p0bA3irATV/m6LmRy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1578690},"engines":{"node":">=18"},"gitHead":"4ebdf0dffbf5205038cb8dfc4b8499f6ce533378","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.8_1776844014370_0.6320193904683797","host":"s3://npm-registry-packages-npm-production"}},"3.0.9":{"name":"@ngocsangairvds/vsaf","version":"3.0.9","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","mempalace"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.9","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"7d5ca6d0f7cbfac01064a71c3610d0dda312f76a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.9.tgz","fileCount":287,"integrity":"sha512-Aum91698us2bPsnuQ+krO4xZ9cD4G1qR5xrkwy+0PVnLnrDHbEx7Kk0Ws6XyB9FFIY08i1sKk9WoAf2XBxIHYA==","signatures":[{"sig":"MEYCIQCio02IlICItB4D60pAWhBThBM2QIyOG3OU3E15s7nE0wIhAK3v4fimrKaMOoaifk6GpOqcAkT3L1Xoss4VwA/YSm0j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1579155},"engines":{"node":">=18"},"gitHead":"4ebdf0dffbf5205038cb8dfc4b8499f6ce533378","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.9_1776848737459_0.3338386479149338","host":"s3://npm-registry-packages-npm-production"}},"3.0.10":{"name":"@ngocsangairvds/vsaf","version":"3.0.10","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","mempalace"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.10","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"f99f677f58257d62d3744ab1bbef76f01d0e5ec3","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.10.tgz","fileCount":287,"integrity":"sha512-rvSjMn239FmCc+bsqF2+VbG1IVgjFLvmta+3o/eDbam6tbdz7ccxmhtvw3bbTJf+gwY2QsaM3VnQzCd2VCLDvg==","signatures":[{"sig":"MEUCIQChBzZRFoE6VK7GRpXJtJBFkI83Ocl3btAsqYxelOOTfAIgRi76h0dV3pAH0ontM9Lx6hVPeMWViAM1tzdBXZVWWEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1582197},"engines":{"node":">=18"},"gitHead":"4ebdf0dffbf5205038cb8dfc4b8499f6ce533378","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.10_1776849018516_0.36463502053167884","host":"s3://npm-registry-packages-npm-production"}},"3.0.11":{"name":"@ngocsangairvds/vsaf","version":"3.0.11","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","mempalace"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.11","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"c7746f4e099e923b8fa7ed798d66ad9bd737aff2","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.11.tgz","fileCount":289,"integrity":"sha512-N0Cn/3nIzzCDPfap6Dmo0rQsUGUwHzF1+RDG79FNY0gdJzq1Mvws8ghyPa/JOn1WQVihVCYTOSzQkJw8/d+SuA==","signatures":[{"sig":"MEUCIBUm6pQeK/cSuh3nEF9GCWtS+Ec/EtECzx6iUuhJXXaEAiEA4CiLggzBNBSQPA/OBRRJFCpre22QTfYSZyuD1aaOJtg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1638291},"engines":{"node":">=18"},"gitHead":"037f38c4c19647d62683488b5c7238693e210060","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.11_1776850981458_0.5212414735003079","host":"s3://npm-registry-packages-npm-production"}},"3.0.12":{"name":"@ngocsangairvds/vsaf","version":"3.0.12","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","mempalace"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.0.12","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"16c13ce9bad6b9e6ca652d3141fec331a3167ae9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.0.12.tgz","fileCount":292,"integrity":"sha512-+KAtbYsXncsx/nHC3KfKEKXKqAVy2o7FmuutPaX7rW0d+io4ZDB6jd0cJxfepuNobr7tGADObH4+WZu6kIsnZA==","signatures":[{"sig":"MEQCIAZpMSCrBWeCqgaTp+yO2HvS3lF3tHbchvzT/eL5qTyLAiAzNA2bdKm0AK6GBkx/tWHfVcVdotMr6mqnmuNGV2+25g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1664233},"engines":{"node":">=18"},"gitHead":"22ffb4af0db169d2386c1c3f1f90f17a1f10bc3f","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.0.12_1776856248128_0.30953029655081266","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@ngocsangairvds/vsaf","version":"3.1.0","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","mempalace"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"fc75fbbaed0135819a92b550b6729b4792f0ff0d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.0.tgz","fileCount":296,"integrity":"sha512-wqDTnMbYchcskiKYauppi6hXNNEatd/p9kvn17C0pMmwQwSr09zL3xV17oF8qkVRBF+RNclz+tyNYFyWxSi10g==","signatures":[{"sig":"MEUCIGfkjFqy6ltd/0CnipWam08fAPqQux99yyglcm1e8GeHAiEA8JgVujHgVfiXHHkM/CUZBHNGt94YnCKcEMBh7hcNaRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1652495},"engines":{"node":">=18"},"gitHead":"899943cec7630a05ee8c627a68deda5192aece8d","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.0_1776913467827_0.7138666107962723","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@ngocsangairvds/vsaf","version":"3.1.1","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"d88ae2411b0f78570f5178f03451add73a13fd17","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.1.tgz","fileCount":296,"integrity":"sha512-eZVS1yZL0gJtoCw0xAFWd04LeVR8lATurFHu2spX6JXV5ErBvs1gC/qnIDhW/WS0eMpTWVZOPx8kT6eF3ZdJ2A==","signatures":[{"sig":"MEYCIQC5M8kDMDZVyYTHaXgNHhLgb7vBMYSY4eTHAWm69QtK9QIhAJIj8IDNtxTR1ym7n4XGf70gIzQTdjV98VBKP9M66mOe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1663522},"engines":{"node":">=18"},"gitHead":"1503650b9508d28a8b9ece73d697f9a68a6f4ca8","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.1_1776948392237_0.8668823991501236","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"@ngocsangairvds/vsaf","version":"3.1.2","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"3edd51580d35ccd96d1c01905346c75b1ade115f","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.2.tgz","fileCount":296,"integrity":"sha512-j0hkwH6LW3LnzJM8PP/yUgWl9cS9V5Gh+7/XtxA3myVh5SmqNfFu3pMGcczWV160dL5prB+I1EOt/ZQpgS01JQ==","signatures":[{"sig":"MEUCIDqIm2hefoZX5RtmxXjqazMeSCJbuhLTgcSeyTpUTmtoAiEAv/VuVlP4Dwu3ufoZ90lgeBpISnRIQr5ms3k2tUb0IL8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1664058},"engines":{"node":">=18"},"gitHead":"1ee24fc553964dd10ae3f75187e15541b8d8c076","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.2_1776997638398_0.470565713842078","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"@ngocsangairvds/vsaf","version":"3.1.3","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"65c5af8c6599c000a7e6a6b70db011c57f929cb9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.3.tgz","fileCount":296,"integrity":"sha512-LlEUDrOg8Q9iMEc+RTLhfmwZ73/BHJGcxL0LYNGAEu63ov2GABVwR/hY9mpRZ7CheNMBnoRBnv6lu8UOweuyIw==","signatures":[{"sig":"MEUCIQCK0qzyAXRm+LYcpFWCE6vQ3uYdxU/aPV82ZY8G++lfaAIgNWUIRlagMZhFok+9RnGkjGZnLHyNNeXKEi7p1BGKyD8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1664058},"engines":{"node":">=18"},"gitHead":"454c14f2340eae780448de98cfb98fd09f72a5d0","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.3_1776999358690_0.25916934447471585","host":"s3://npm-registry-packages-npm-production"}},"3.1.4":{"name":"@ngocsangairvds/vsaf","version":"3.1.4","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.4","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"5a1b2b4c2367fbeb972beec6b8af91b3ceed4d9b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.4.tgz","fileCount":296,"integrity":"sha512-xQAbk0WvAaeRfJxbTzYdlSxde+/qFZU21nONG5JSKfPgoUhFFL7Z5SkY7OOm+I8Ii9husGWe7hUEAsgUGmJgFA==","signatures":[{"sig":"MEYCIQC6gHdZPBZHcTIPwFNWzTX4lu6ERdQRlQXFbbHg+EWPBAIhALhBSKK4M9YfVvqkWQ5jhLlpPfwR4+X7IKyC9lWj3QqE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1666221},"engines":{"node":">=18"},"gitHead":"90b867770201618008ff94f8fe0ec57b72f22c0a","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.4_1777349662300_0.6571898029349097","host":"s3://npm-registry-packages-npm-production"}},"3.1.5":{"name":"@ngocsangairvds/vsaf","version":"3.1.5","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.5","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"ad12108484ec05d3c4e16a752c76b5ac13f1bbeb","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.5.tgz","fileCount":296,"integrity":"sha512-M3BvFFN2kHSfRmAVO/In1h1i7WiP6UgkybQcdwu4GWgpOzrK4qJ7OnBLLdN6N6iokMP0JOw8Kz43LeJepgxmFg==","signatures":[{"sig":"MEUCIQCwvgd8v1rxB9WaWyT63gfrV/U5PNUzkz0LwKqxBoD3/wIgCTw2ix1VMwQZBGH7TefKhdMKHcIMaroDe1Q/1adtng0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1666342},"engines":{"node":">=18"},"gitHead":"c315b2f38b51043feda5e830d89b12f26a16bc9b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.5_1777350238383_0.779257480417576","host":"s3://npm-registry-packages-npm-production"}},"3.1.6":{"name":"@ngocsangairvds/vsaf","version":"3.1.6","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.6","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"074836fbe054ff9a4eea0e210c497c839a432512","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.6.tgz","fileCount":296,"integrity":"sha512-YpQxMWgTgBU9NM8VutSoMlRndIJCaQ2l3tdAk6tR0J6D2/MsVOsXju1uNE2URt2dvK7zEohF/+rbJ0SlVWhPbA==","signatures":[{"sig":"MEQCIAGeePHOoV2YNaY5Gz1C4YKQxwMrlbqsf28mCXkIyOT8AiAe8oHLncYGRk1ShcAQa8ICf1OsUJhOwnJbieBzFJKS2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1667089},"engines":{"node":">=18"},"gitHead":"c315b2f38b51043feda5e830d89b12f26a16bc9b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.6_1777350575066_0.10075791290466962","host":"s3://npm-registry-packages-npm-production"}},"3.1.7":{"name":"@ngocsangairvds/vsaf","version":"3.1.7","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.7","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"44bb149263143febb41fdf2ffda1f753abbda221","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.7.tgz","fileCount":296,"integrity":"sha512-ZETHslASk5ztonq33XZJWs1ZDUTKmf+0Dxr4sJpQPPri4SLJrIjF0XoEFjZpafDrFtHLhmJK+5E35A0fKAXl9g==","signatures":[{"sig":"MEYCIQCz4PVgPQdYgEXO+6dTczTC8l7FA4yq6HwAKevlSNMDyAIhAPK4wBAYLlSsyi6b/OGF67WojMKtm7nQaESEWTscuP6V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1667987},"engines":{"node":">=18"},"gitHead":"c315b2f38b51043feda5e830d89b12f26a16bc9b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.7_1777351236435_0.3123551582369961","host":"s3://npm-registry-packages-npm-production"}},"3.1.8":{"name":"@ngocsangairvds/vsaf","version":"3.1.8","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.8","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"f115c23bfa756650f34eca15cac51cd17f40ad89","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.8.tgz","fileCount":296,"integrity":"sha512-cQJtBXPPCADVBKSgwccZaOqkiQUBTXfzUz+gAIbhNTuR3zQ4+Z8dxREPo7nurrxnvLtcgb/a2ClWZ57Is3G4kw==","signatures":[{"sig":"MEUCIDGDU+63kixcNbxG7HKvvvlVPXJZTLopFShRSstOHZ8NAiEAqIZqiuLt5M2DTG5SD3JcxsbiQCvln9o+pAcFTS9zGmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1668445},"engines":{"node":">=18"},"gitHead":"c315b2f38b51043feda5e830d89b12f26a16bc9b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.8_1777351568508_0.7862605645487135","host":"s3://npm-registry-packages-npm-production"}},"3.1.9":{"name":"@ngocsangairvds/vsaf","version":"3.1.9","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.9","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"fc0e719a80aa18f4ab4e8b2ad96ecaec9faacb28","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.9.tgz","fileCount":296,"integrity":"sha512-recPNcHgtrSZdeX5Uqk5wouxfiYp/8cn8+29M/iewmUuho2EDUOgsJM4FPUZ9h/H57PWnryHDKKe/ZzpTTTW5w==","signatures":[{"sig":"MEQCIHiKq5prtsSxIPHacgD3tluE1AFasdHTW0j1lebhbWFbAiADERAT4iKtiaeUuuSNGIeVQf+jP8Puy3e+46m9LJt8jA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1668331},"engines":{"node":">=18"},"gitHead":"c315b2f38b51043feda5e830d89b12f26a16bc9b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.9_1777351890749_0.2030902687461258","host":"s3://npm-registry-packages-npm-production"}},"3.1.10":{"name":"@ngocsangairvds/vsaf","version":"3.1.10","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.10","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"de3122d470b5bc98e4bfa7260809383e572aaf36","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.10.tgz","fileCount":297,"integrity":"sha512-M2Js+9gs2oE/u/cWd4Kcfob6i+s/XqTyK+2X1mFxltrZKmAooW+iFKeoP4y4HLtC2SbphA4Py+lQ2TRzjRat/Q==","signatures":[{"sig":"MEUCIGjCxOun/BGJMLZ/eNPYAaVR2aD9uWqhxrQXAqeJLX6oAiEA876tfOfvRzFhlSYjacauniQpL10Utbgg0FeQ5hHb65w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6242656},"engines":{"node":">=18"},"gitHead":"c315b2f38b51043feda5e830d89b12f26a16bc9b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.10_1777366327614_0.2160989428305602","host":"s3://npm-registry-packages-npm-production"}},"3.1.11":{"name":"@ngocsangairvds/vsaf","version":"3.1.11","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.11","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"b2f098a997fcd6c1c2409b00b34463606b14754c","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.11.tgz","fileCount":297,"integrity":"sha512-dS0pueBwrnzZqx2ONmwQjeGxgdOVM0qasjWZiRiwYUbF9jP0qkmr5ZULWeCRIEOGJUWBnxWkB8k+Lwoq7GqZrQ==","signatures":[{"sig":"MEQCIAWTrnV32Clslm/VarryTJIaiKOHJGbZOhFro5SwMBHdAiB9nQiN79+cPsNd2PWwRAQioMsJIypg6NycvpLJ8KTlvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6242530},"engines":{"node":">=18"},"gitHead":"c315b2f38b51043feda5e830d89b12f26a16bc9b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.11_1777368167166_0.7166586053238346","host":"s3://npm-registry-packages-npm-production"}},"3.1.12":{"name":"@ngocsangairvds/vsaf","version":"3.1.12","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.12","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"e86c8d67efb0255bd7de7d4803b555434830b8a9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.12.tgz","fileCount":296,"integrity":"sha512-evzyGldKD4sCpRvvosnx+J+XdapmWi9GiGHXMFn7cgbGOiFpfD7omvBRdo9LB1BHU4C9lHt8tsz7ygfLuvL/MQ==","signatures":[{"sig":"MEYCIQC5InUjKJA0rd1nbtHDwN+rO4e/9E9W5jhR3IpgPsXYzQIhAJVU1DxGHGPGTDSJW8EVD49OU44w6+6M7jvnmfBJUG4D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1669416},"engines":{"node":">=18"},"gitHead":"c315b2f38b51043feda5e830d89b12f26a16bc9b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.12_1777368557098_0.9395781847830904","host":"s3://npm-registry-packages-npm-production"}},"3.1.13":{"name":"@ngocsangairvds/vsaf","version":"3.1.13","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.13","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"b9eaead59e7f1fe5f996644c747dfaf8685f14c1","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.13.tgz","fileCount":296,"integrity":"sha512-iRn/7EhKKCOp1N9L2XYF3aT2scF2jcMqIE04Jwo/o6qddzh3hq62cqktRwjUQvz3dl+95SEdRIi2Bpz/mvy85Q==","signatures":[{"sig":"MEUCIBrcnEjHei7fDTK5Ob5w4MAOhh58HlyJU1iRp8FwUKjhAiEA5YwJXJmIiq4AhroOnVAz3NOLPBbKsQuZI8WYBBANswQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1671037},"engines":{"node":">=18"},"gitHead":"c315b2f38b51043feda5e830d89b12f26a16bc9b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.13_1777449255666_0.952648015068315","host":"s3://npm-registry-packages-npm-production"}},"3.1.14":{"name":"@ngocsangairvds/vsaf","version":"3.1.14","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.14","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"c73aa1d43a1335645129d93bfae27b485ca38c2b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.14.tgz","fileCount":294,"integrity":"sha512-TgQKO8Dow+S76tHnQ/RFtgk5KB/B0mXQskPVIZfaiSFVv1VzNfpYWU0raBay93yD5ZFIBBkJTEtsGvrJoifMgg==","signatures":[{"sig":"MEUCIQDxhhV1Q0onU6PEFDY7QM51jkxAIHdEjUMWk44q5rAJxgIgJz5Oh7++3XKYxu5/zoe44Hke5htyVLcedEQAHZA4SGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1665948},"engines":{"node":">=18"},"gitHead":"80be3c3a4e8374ec42895f451c8afb3dff1a595c","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.14_1777863487585_0.7165242490511914","host":"s3://npm-registry-packages-npm-production"}},"3.1.15":{"name":"@ngocsangairvds/vsaf","version":"3.1.15","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.15","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"7ef2c2cc2f800fc35ca05bfe832847d0fa8e3c98","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.15.tgz","fileCount":294,"integrity":"sha512-7AeQynXw6wapYYmqJ/i5Ww2oMDTgxqM8UZXgU4sEBmETpxpoNMPTZ7viTBq186u3Dbuya7ghKarBSCP3P+TETw==","signatures":[{"sig":"MEQCIH2zz0Vzjphe9WktdheGOTOPGjkhXosUI8VKlGnn4Xt9AiA6AP+jBulIwKeQZLA0zckzFVImxHdL5EXCxiFhql4GpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1665661},"engines":{"node":">=18"},"gitHead":"80be3c3a4e8374ec42895f451c8afb3dff1a595c","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.15_1777865095077_0.921044675705571","host":"s3://npm-registry-packages-npm-production"}},"3.1.16":{"name":"@ngocsangairvds/vsaf","version":"3.1.16","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.16","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"cd5b23a50aacfc3717f9a6785190f1c5a76bb2da","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.16.tgz","fileCount":294,"integrity":"sha512-opkhXlvArw1G7xoSEXGZ4Ynx/RJnaPs7/a7ayAm7WQsj8lor2jgnXznz+Vy3O/+mSyvT16UpvjliOo376fH4jQ==","signatures":[{"sig":"MEUCIQD/aC0EPdncFAms3WXDJPXck29t/JRNT9BC2/5ZxpbMMAIgAT9cxqJuceKRekinIQaL9lhx1EyXJqaTXQZ2n+DLTIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1665661},"engines":{"node":">=18"},"gitHead":"80be3c3a4e8374ec42895f451c8afb3dff1a595c","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"VSAF — Agentic AI SDLC Framework. 3 integrated tools: BMAD, GitNexus, Superpowers. 2-layer review.","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.16_1777867194411_0.3580338583647755","host":"s3://npm-registry-packages-npm-production"}},"3.1.17":{"name":"@ngocsangairvds/vsaf","version":"3.1.17","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.17","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"b8635aae85580a17e7fc2d6903b0428bf4088889","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.17.tgz","fileCount":294,"integrity":"sha512-pLEtyC+TH82RtiBKJkZBA6X+M+uYzPhJlUd0dv9m1oWK8bBIFNiFy7JFZe2rRFabXzN0f9t7wS9p8j/9IRDZCA==","signatures":[{"sig":"MEQCIFbgkjJTf47mtotGfPCY8lNzZp0TeD8TmKFXpswq1J66AiBnVUerS1sxq39a++4FrIeY4iojs1R+lpN7ceTuunpTZg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1665641},"engines":{"node":">=18"},"gitHead":"80be3c3a4e8374ec42895f451c8afb3dff1a595c","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"Fix done bmad working with claude code and gitnexus, and add superpowers to vsaf","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.17_1777868698922_0.05466968514611792","host":"s3://npm-registry-packages-npm-production"}},"3.1.18":{"name":"@ngocsangairvds/vsaf","version":"3.1.18","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.18","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"6c25dc0dfa0d714b5b58e3b723f75c2a4401f89d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.18.tgz","fileCount":295,"integrity":"sha512-XF2GEs9IEDq/Z4jsADNMA4dcCKfaT2hqPuBFRKVig+5gULazAQPHo/PJ8/fZAL5M0Q7ZDWJppkcNPUthklf2zw==","signatures":[{"sig":"MEQCIGt9GNPpBDyP/XHuTk1T9Z9MawRoY//gTbXDrY4aQ2h5AiBHFOexCMzYHgLMx7YJtE18adpbwCvgNXXF/Aad93P3aw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1672315},"engines":{"node":">=18"},"gitHead":"64dfa88da78b166fe721e9a833772fed717eba7a","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"add method for codex","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.18_1777880185615_0.10308130294172058","host":"s3://npm-registry-packages-npm-production"}},"3.1.19":{"name":"@ngocsangairvds/vsaf","version":"3.1.19","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.19","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"e6c643ab21983807d9983c58ab035f2be606f8a1","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.19.tgz","fileCount":295,"integrity":"sha512-jIP4aJRPZGfJfJ53xr3C9TtAY3vJBZuJQkkC+IUGr/fTi+lo/I+3MZx0x9ULMxE7l4GaS8BIcbdtdA9o5DfUjg==","signatures":[{"sig":"MEYCIQDcbEvKx/9tfLSQMiHYMi5+KKM9+Whz50rfzr5cIFjatwIhAIjKUbRFsahOWyglPUlfTbIeenuHEGyom3ox9DBq3jKT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1672317},"engines":{"node":">=18"},"gitHead":"64dfa88da78b166fe721e9a833772fed717eba7a","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"add method for codex","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.19_1777882690368_0.9094343206297897","host":"s3://npm-registry-packages-npm-production"}},"3.1.20":{"name":"@ngocsangairvds/vsaf","version":"3.1.20","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.20","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"8cc5dc7306f65c1c0a76656a4a6e3dcfa4558f8d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.20.tgz","fileCount":295,"integrity":"sha512-P2vpI16p7nu+HxDzloX6teCSxxd3ROtCw0SDqKx/IXq96kzu4Wyz3YwSDsAUhKM5+m4djHOzJArx+nYahy8lrQ==","signatures":[{"sig":"MEUCIGIqTaIkX9hKMtwjPbXbhBXBmMk3uT8iWzdV1B2EWxFUAiEA4+Wi/h/ibzzmwDw7xJtpPRfQ4OS0XHjSH9Sn53QzAro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1671653},"engines":{"node":">=18"},"gitHead":"834f23744a645a8b6ef99dde438a64b231e13cf6","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"fix method for codex","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.20_1777948649178_0.7026912878586242","host":"s3://npm-registry-packages-npm-production"}},"3.1.21":{"name":"@ngocsangairvds/vsaf","version":"3.1.21","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.21","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"8a906fe717e8426185808446971d5cce90ac6320","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.21.tgz","fileCount":295,"integrity":"sha512-Ac80YAU9/yusXkkDhkSoqurODaTFZmcdOcxYxtJw2hGV2gWepzH7ENnkwU6pGHQlmMMy3sakzfnIizCpMYiuYw==","signatures":[{"sig":"MEQCIBOZlx873+7k5Bpb2YVxLz91UUsqkpvPisMtAQW2qzqAAiBcvgdkRyJ48ogUElj9q1DTITYao5r6uof7kR6CzOpH0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1671874},"engines":{"node":">=18"},"gitHead":"cba94a8613eb8ebf3e9382cecf741c5d1113d97a","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"fix gitnexus with windows","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.21_1777965596950_0.09850898123130891","host":"s3://npm-registry-packages-npm-production"}},"3.1.22":{"name":"@ngocsangairvds/vsaf","version":"3.1.22","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.22","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"00cc3124e22005a093a4b0c967108a33f2577162","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.22.tgz","fileCount":295,"integrity":"sha512-86i3TSAFHn1LOfVZ4rQx0DQhZW1Kr1SR78IwjleLoje7VFTOLHDuH8h/y6zdOTvke5mysCP5pKIRSvbRuFxNVQ==","signatures":[{"sig":"MEQCIFLACI9t5/BjPdT1dUSaqYgfNMgVTJTjSjqUwgyw3CYAAiBMnp/6fnSjA8VSf1aB3Y48wS66MR7zyHvsMrM6HGy0cQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1671892},"engines":{"node":">=18"},"gitHead":"5d6c8e9f95e256ec90b716c97d5e61af7df77a73","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"fix gitnexus with windows","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.22_1777969114647_0.29714527553456116","host":"s3://npm-registry-packages-npm-production"}},"3.1.23":{"name":"@ngocsangairvds/vsaf","version":"3.1.23","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.23","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"f1a562bfc0a8c106aeb154a6a1099823a40c3d11","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.23.tgz","fileCount":295,"integrity":"sha512-vYu4Nz3t1+Uvv+rF9KeiwnZLbWWpGGTZwmf71rlCwUPyayLhpKUDirkAK8d5D9g8UIX+mWc6/VIb9ho5Mv9xVA==","signatures":[{"sig":"MEQCIE6wHAJM1QApckmb0bzV9+bLwPcr0mrSRfh/A0Ve2h5bAiB6/50kHvOw6xQt05NjoiRcXW0tkih2wXZsHkWIzXDTzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1671904},"engines":{"node":">=18"},"gitHead":"ffe475c06a8c9eb9a938af3a7b400fdb41ddb748","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"fix gitnexus with windows","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.23_1777980152356_0.1070620682953396","host":"s3://npm-registry-packages-npm-production"}},"3.1.24":{"name":"@ngocsangairvds/vsaf","version":"3.1.24","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.24","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"5b59b731b218d36ee33c099dbce81b280683ac11","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.24.tgz","fileCount":294,"integrity":"sha512-A9TD2fd6nPpvXQcnjF/ix1oXLzPrT2NhxMFn0RXBLwvq4erbMfPqxtHODeYQmeGtSqVgTcU2ZS26p94f7i9kpA==","signatures":[{"sig":"MEUCIQDQqIi6zic67Oj3DTn3+KBcW0+NsbbgrVY6XzZqNT1mZwIgCMOIOk1t+tm+mVVpr4CnH/8Usw5FDWpGl5MjE/cWjAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1671257},"engines":{"node":">=18"},"gitHead":"1cc8aa42ab10f4df15d4091fc73f6b14a537364d","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"11.12.1","description":"fix gitnexus skip git","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.24_1778124698021_0.9629950567782082","host":"s3://npm-registry-packages-npm-production"}},"3.1.25":{"name":"@ngocsangairvds/vsaf","version":"3.1.25","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.25","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"ec92f0506332e71e308216d059d5ca7817176d8b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.25.tgz","fileCount":296,"integrity":"sha512-ayOjuBH6VgOE5WGb7OFcpsU0FpQuOSonlLuK/P2GZemx6boHUXgW2k8S6rTEaWlTJlU/TJCz6jkFZR4Viq4O6Q==","signatures":[{"sig":"MEYCIQCieAccS4mo0dUPPMM9oCGmb1J+H8mmtSAANbS669dA6QIhALBoZAqZ1ZUmtncKPLKmliUmBFlxnI5vO/L9Md2jHRUC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1680728},"engines":{"node":">=18"},"gitHead":"01f9db856d9c350e76c925afa3a0791ef4b12124","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"fix gitnexus skip git","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.25_1778141505599_0.08499731723110782","host":"s3://npm-registry-packages-npm-production"}},"3.1.26":{"name":"@ngocsangairvds/vsaf","version":"3.1.26","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.26","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"afae32dee363e123fb51eccb1aca6a59c7477763","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.26.tgz","fileCount":296,"integrity":"sha512-eEyj5ASvvNWi7UgfQtyABFoXwETKIb0NlLUdfRAUfzEXe7GJ3g6GqtSKi7JWt4sAsc6WGd1yGb+h+L+5YDI8AA==","signatures":[{"sig":"MEQCICbs2FFi0Obirq4eo6emSYGCs6rUVEHynxYHjL78+H7gAiBPhh/cZ63uhOtmzkdB+RnscI9dgqxlCnypvT7Ma1k7yQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1685695},"engines":{"node":">=18"},"gitHead":"4f0e9a540aec44d6086e6ea3a996a91a93625777","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"fix confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.26_1778143119063_0.15168257648227157","host":"s3://npm-registry-packages-npm-production"}},"3.1.27":{"name":"@ngocsangairvds/vsaf","version":"3.1.27","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.1.27","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"20f38ff5c355088cb339596c2d6b9bc9881b4b2a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.1.27.tgz","fileCount":296,"integrity":"sha512-2PyX3BuEzWklXwOVjB8tuomTSlnqAePwqwoYYJ6dcbfjfF4M4pDsx2y50Ny5jhvz+F4mE/nTX+eKQeB2kZn9Iw==","signatures":[{"sig":"MEYCIQCgj9Z+RxXS5SwttQSn4qo4+YtwIMhZDU3k7oze4/WhsAIhAPyYyTPu77jL6d+aLP7qOdx0D5yPtpJjylBQI2DnIC1m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1687729},"engines":{"node":">=18"},"gitHead":"4f0e9a540aec44d6086e6ea3a996a91a93625777","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.1.27_1778144886634_0.8042342086869678","host":"s3://npm-registry-packages-npm-production"}},"3.2.1":{"name":"@ngocsangairvds/vsaf","version":"3.2.1","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"67186df22e9464f06c81654ff4e5715725a775d1","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.1.tgz","fileCount":594,"integrity":"sha512-3T+RgeTPFkFL5fGvAqqQOI76J534uwyJUkujAPXWXFZ0IIhLE7h/ixSXEMQhSk/qvh9myfS5aNASx2ng6HN8HA==","signatures":[{"sig":"MEUCIQDZIW2M6BbO/On/TtxLjg12OdQ6PE1kRq+AFZDiOJNwOQIgMOjDMd7HSnFVebgqlizL+5xyw++nf04ysxoS7WNXHN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4894157},"engines":{"node":">=18"},"gitHead":"48105eb6f6d4624105f89f154180750d6735357b","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"add vds script","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.1_1778725358055_0.9000620573112315","host":"s3://npm-registry-packages-npm-production"}},"3.2.2":{"name":"@ngocsangairvds/vsaf","version":"3.2.2","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"f7794d4a01013493aa487041d217c919fd9c0fa2","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.2.tgz","fileCount":594,"integrity":"sha512-dLHFhGy3t9lqiP/28cD6i0r3rWpOidwK0UJt8WjoRalPrwf7C1PBY4qyD3DG5443In78ApyrRGlo4gBgyQkn9g==","signatures":[{"sig":"MEUCIBqamxtSFORAoBBnmA2yqcR8rjkcFiRnRevPxkMohB7qAiEAikw9+M6yGrN6LYod3hC9INn23ja6SOH6oNt9/gYMMKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4894104},"engines":{"node":">=18"},"gitHead":"2afe29ac670b579188fa906becb99261f4a3b4fc","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"add vds script env","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.2_1778731731761_0.012250467137160381","host":"s3://npm-registry-packages-npm-production"}},"3.2.3":{"name":"@ngocsangairvds/vsaf","version":"3.2.3","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"1640a48a6c9ef2f1634223aa3cca3b11e60ebc44","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.3.tgz","fileCount":594,"integrity":"sha512-B0OE0sEothDmIeAeJUQJNzN7JJPkHpXTpFJUZ6nnNXSOnYu1NFBc5fIlzieMk0XqUNOPcGvBHBj2CQIMrmzoTg==","signatures":[{"sig":"MEYCIQDkOeMMka7Kc0s8z/rtX14W+zgn2DctozJw12NcAbvgagIhALIaOV/iHWfwZjiH1xX9hVU9CsKKIlE67wq+CPw1GYVY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4894358},"engines":{"node":">=18"},"gitHead":"cd292096e457191e4925ec7324054a721c6f0371","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"add vds script env","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.3_1778734606148_0.7814598455778996","host":"s3://npm-registry-packages-npm-production"}},"3.2.4":{"name":"@ngocsangairvds/vsaf","version":"3.2.4","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.4","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"bbf6baffa3036b7b9efbc1a5ff4726ee18eb5116","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.4.tgz","fileCount":594,"integrity":"sha512-krBlpWkoS1nFu8s5fjA4uIZrH7acP9cBXyTLp9omGukwGPyBxe6nmalCZEfq7jzy8211ige84O3BAN+m6VJvMg==","signatures":[{"sig":"MEUCIG/OYNgxbIksie0gBtPol1160Z8RiphsL/610E6txtTrAiEAqky02KWKvRqA3RusC4lGnweV47R0l8f7f1IwYntodSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4894358},"engines":{"node":">=18"},"gitHead":"cd292096e457191e4925ec7324054a721c6f0371","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"add vds script env","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.4_1778741963552_0.016750853205737215","host":"s3://npm-registry-packages-npm-production"}},"3.2.5":{"name":"@ngocsangairvds/vsaf","version":"3.2.5","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.5","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"b12292143bccf30cd9ecee46899b773222ff17a5","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.5.tgz","fileCount":594,"integrity":"sha512-9MHYUcsOIp5b8wEpqHnxBR4KET7f3nswsosQFT7FNyZTkXxR6JsLLhKOJCZR/8LF3IfFhq8njm9yeSx4wdDrGw==","signatures":[{"sig":"MEQCIEzqo4ZEYEKBzyEADo3bSGEMErxYyHHP9LCv3gFu8D8IAiB4ThiwHS5jCYtei8So1HWA+oL+quXUCVGI+fdHAvChqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4894312},"engines":{"node":">=18"},"gitHead":"12f0d3e9bf8c8dd01470b6cda695cbcf931288c4","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.5_1778742757180_0.347438811354168","host":"s3://npm-registry-packages-npm-production"}},"3.2.6":{"name":"@ngocsangairvds/vsaf","version":"3.2.6","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.6","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"124d3703b76c679f050efd5487424b39d9942660","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.6.tgz","fileCount":594,"integrity":"sha512-U8rrZmQsc8jftbVY/9dNO/6FEQ+odPXPTyzXKLNZVUU2gRdJB0NrdeR2t9ROtLmwzcVel6UKOUNAOQHhr3YqUA==","signatures":[{"sig":"MEQCIFISY9VtYWNwCTwHihJQQPIriE0LmvoNkovoqZSgTEdeAiBbfr5w/40yn/eJtrrMS51Es2erVHGti10UKTB0q+hmlg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4894607},"engines":{"node":">=18"},"gitHead":"afc00e06a639da21a21c8f2e9e2f58db4c9cf61d","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.6_1778745636920_0.11550212346357691","host":"s3://npm-registry-packages-npm-production"}},"3.2.7":{"name":"@ngocsangairvds/vsaf","version":"3.2.7","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.7","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"d6ceeae473096e5ada6fd3b6747def94bd33642a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.7.tgz","fileCount":594,"integrity":"sha512-nPr5edJN1k7JJlK92a1siaZoUoqf2qmCLEMNBVcGihOx9lLeJhsOWNMKyIM9Uj3LNj6CAy6pXr3yM8G9tUjmzw==","signatures":[{"sig":"MEUCIQDLPyMGOvinxr78hlvhY5Q9495QV967zW6RD0SVZZwbGwIgT1Fa4h+R/DoDgQN+U1pPXILTF2CmE0GU/1UdrvaAsd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4895019},"engines":{"node":">=18"},"gitHead":"436658aaac6cff3af584044043e6d68a505398eb","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.7_1778749083756_0.6838838511784096","host":"s3://npm-registry-packages-npm-production"}},"3.2.8":{"name":"@ngocsangairvds/vsaf","version":"3.2.8","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.8","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"c7e0f462c1b41db53597e649ba908ebfe243461a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.8.tgz","fileCount":594,"integrity":"sha512-/vxMhMeOJr6MPynyqCRZ7IheS0H6L9AOLooH16XqEkD56COHPK2xjynur057F8KuvHsohktot7rv7aweGI0fmQ==","signatures":[{"sig":"MEUCIBSZw5fmOUOH1QKYejrPEkqMz2iK48ZZ1f79VJk6cp5WAiEAxypqqbcE0t70/tSuUlxgXLoYmvXBQr1Du8PNwBrTeOI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4893578},"engines":{"node":">=18"},"gitHead":"57ab8d48e18ae266d49d3fc007a0baa63dc0936c","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.8_1778752760437_0.41628655921991675","host":"s3://npm-registry-packages-npm-production"}},"3.2.10":{"name":"@ngocsangairvds/vsaf","version":"3.2.10","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.10","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"f8f5069615b33a2557ff7b3e3fbb3b9e31006f29","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.10.tgz","fileCount":3538,"integrity":"sha512-iOdkHWYiztYPhmOmsj6jBWYwARG/ym0GCzpewbwxWjBiCubsUW35ZptuVxev6IM9IqDPpNF9bkS3XcUtFtsVTQ==","signatures":[{"sig":"MEYCIQDOZliVbswKiWKPbjIviHOOMLqpllyODSiu8iNs2xogYQIhALbKcFjqubcDy/BlmtBAAMaxY9dXk9/UzeIkPR07mVPl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44513054},"engines":{"node":">=18"},"gitHead":"f846112c34767ca8e5ed6ae4f725f61461513368","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.10_1778813463470_0.1519035741538024","host":"s3://npm-registry-packages-npm-production"}},"3.2.11":{"name":"@ngocsangairvds/vsaf","version":"3.2.11","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.11","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"d47b70c45d4ba19b66b35ba2166f50a96b99311a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.11.tgz","fileCount":3538,"integrity":"sha512-jZFfyOqrwVhaOWF+mkwBNSnwGffeSDu7D7vEh7fPdayiUEMJ6p69yi/hxUNSHVZdwk2xN0NwOFfJ4MHj5fsbXA==","signatures":[{"sig":"MEYCIQCl8KjUm8m9QCz+jhW+OziRvKOP2zeeeWvT87skgcHtJQIhALZKtZpA4FpHSmoz49uVMFrJJ2L16Iqp1dMijxvsgXj3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44515672},"engines":{"node":">=18"},"gitHead":"53ffc3b22aa663c57779565f7944485b39148ca4","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.11_1778819274398_0.4844136228259226","host":"s3://npm-registry-packages-npm-production"}},"3.2.12":{"name":"@ngocsangairvds/vsaf","version":"3.2.12","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.12","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"6d8ac2b0eae8aa725e7239dbbbb991363228f28f","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.12.tgz","fileCount":3538,"integrity":"sha512-jrd0thjPyE2lgI1CTEgUidIc8JFyj7YS9vF/R4dKtftV8mstcKunJeK91AO6bHQ1ohaq9vMhGEnEDYSC9lx2BQ==","signatures":[{"sig":"MEQCIBN7YDx+o1M8/icvBirJQyMoUN9uDfB278C0y9e1n6acAiA8NYBwYYenVWSnZgjgFUoNMMbswyVOLmbvWBHH8jbUKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44515821},"engines":{"node":">=18"},"gitHead":"fa0d234b7d0bd074802468b0b3ec0581f401db9e","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.12_1778830224701_0.056895365892581484","host":"s3://npm-registry-packages-npm-production"}},"3.2.13":{"name":"@ngocsangairvds/vsaf","version":"3.2.13","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.13","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"b7514172df23fb7fcee7c46efe89a8a7e9c16d43","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.13.tgz","fileCount":3547,"integrity":"sha512-TJHM0K+lRN3JAKp0MAUGPubYWa/0uncGfBOPLernOCwe+bQm/GLNF158nqkVxOND+86Su33EgHLE8laBb5SjPQ==","signatures":[{"sig":"MEQCIHwlKjwJ69vl4MbL3zMIdz/wjn8w3b18sxBa2R/9jM4YAiBeZ3Dwvm32uilEy4qH8alUrSMMEalkkDCMFG/bC3YKDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44541666},"engines":{"node":">=18"},"gitHead":"1cca867d0ada183f5cc8c340af57bcef11629ec9","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.13_1778839944130_0.7669603304954977","host":"s3://npm-registry-packages-npm-production"}},"3.2.14":{"name":"@ngocsangairvds/vsaf","version":"3.2.14","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.14","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"98c39320afae53154cc4007fac1b1154dbe890e6","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.14.tgz","fileCount":3547,"integrity":"sha512-KBSA9VCbWRqYAdphNWIFDoBEjE57tYmuX1wUB7gtc0rY/R2o32eaTJR+I2DxTadflGM0V58u6ReSWTr4/yuosg==","signatures":[{"sig":"MEQCIAtOHgrtV6sYLhggbUrQBj8IVdt+FdzsEsqL2oYQ3JEPAiAfyw7Egwd+RDrwKGkv0mjbrFXaS2ALGA0CZp8ji1XCFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44542772},"engines":{"node":">=18"},"gitHead":"a9fc6ef532848fcb136370fab495c77833b0e54c","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.14_1779094712276_0.31726370501746426","host":"s3://npm-registry-packages-npm-production"}},"3.2.15":{"name":"@ngocsangairvds/vsaf","version":"3.2.15","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.15","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"197b8b6061f448d0e163c8481a1d87b21ff4e7c9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.15.tgz","fileCount":2127,"integrity":"sha512-vm/ud5G8+IS/HGEj2TWw0UhoWE8sX5sioQgYS4YN4rR3aWzGQy2p6svhGkVV/bWYmx01F03oWzF+JrQoimAzZw==","signatures":[{"sig":"MEYCIQDTdol6n7ZW1lFT/Gl1agvaZLVQKbHaCkhKVJM8C0kjTAIhAMXQDTmY7ClWqBix/d3NI12Ja8ZLujHQAHTkYohF/XrZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18899762},"engines":{"node":">=18"},"gitHead":"d932eba0afe955fa8836a90b826331c61b7809ad","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.15_1779173446838_0.44070289460257817","host":"s3://npm-registry-packages-npm-production"}},"3.2.16":{"name":"@ngocsangairvds/vsaf","version":"3.2.16","keywords":["claude","claude-code","ai","sdlc","framework","bmad","gitnexus","superpowers"],"license":"MIT","_id":"@ngocsangairvds/vsaf@3.2.16","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"bin/vsaf.js"},"dist":{"shasum":"98b26bb991c8b52de3e3f4f0304c2157cbecbb58","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-3.2.16.tgz","fileCount":2127,"integrity":"sha512-jy4lzHTqvD2VDM5+6TepCqk+PsNFegfM3ObpvvVtSRK2sJqSldaA3qZtYDcZlF9zgdML3KGHIxdWXdVxIiVBRw==","signatures":[{"sig":"MEYCIQCnTha9LOWZF8ccluC4K93IxxBR+Jw1gMvG6TZ6X5s3ugIhAIgyuisQzMpqhU2TGkWH/dUnKy7giUT79A3XgrvdcjVY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18899951},"engines":{"node":">=18"},"gitHead":"7366cf3b107308a95d216063a03f488e20e89d47","scripts":{"test":"echo 'No tests'"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"_npmVersion":"10.9.4","description":"improve confluence format","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/vsaf_3.2.16_1779183721681_0.024067955707658628","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@ngocsangairvds/vsaf","version":"4.0.0","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"679c04d6d7bd15670c6ab7673836b8139d7b2f67","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.0.tgz","fileCount":328,"integrity":"sha512-cYlufW1DuhJXcvmCMosiXprQcDEhg/o36KgDUbKgDGSSBfzX8Iq/5U0nIj9PA8YVQ71u/nKfnnzR3ZQwlSLyMQ==","signatures":[{"sig":"MEUCIERDTiH3yyG2ocga/2uNOjty7HxT6OnvpiL1jDbmvN5YAiEAkJs/X0a34Ncvvg7Jl6Le3fuO/M4s8ByFkrJtiK6cENA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1068001},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"441c0608b7c9f7ae2348fe0180f8823b6494e0c7","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.12.1","description":"README","directories":{},"_nodeVersion":"25.9.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.0_1779246742615_0.5332894537346862","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@ngocsangairvds/vsaf","version":"4.0.1","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"e78319844f7ee707ea68b521efa35d6dadc26626","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.1.tgz","fileCount":328,"integrity":"sha512-wwdHGCfLwLfelnBIbcaNgXob67LFNEXUh3LPSiUJNakkc47G4+5XZEVGE641K9iRBLqz6DzlWNz3WME5gfEkmA==","signatures":[{"sig":"MEUCICv5hCVPJwcYnvVkbWxHWuELKqMQmWhYWIwVtAlTzQDJAiEAm9abFDSu30FObK0PNTDhWbA/HcPVszPpA6QNGEvpLrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1068001},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"441c0608b7c9f7ae2348fe0180f8823b6494e0c7","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.12.1","description":"README","directories":{},"_nodeVersion":"25.9.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.1_1779247038556_0.544214969516587","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@ngocsangairvds/vsaf","version":"4.0.2","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"f5f0fa967a3241cba642039a3455f9a4d0c0b345","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.2.tgz","fileCount":351,"integrity":"sha512-NMUtpkS6/6Dr4bTNo3M1rxPOheLcJr/rdLs4rJvso1KlIyx1f3nTEFozgH+Z6jJNOoDOtvaUOu9aajHl1sNy1g==","signatures":[{"sig":"MEYCIQDNKYEmfSQvtr9ZZ7ntXRg4rAWdX0QKLQui+uAA00u6SAIhAJyMnWBGQs6UeopvqdHbU4mHkSG4F4uMjq/KJCLjLQl8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1128377},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"2ed6c1caf7a03d6bc60c3a79eb523d4740303076","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"README","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.2_1779331779775_0.5047609897828456","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"@ngocsangairvds/vsaf","version":"4.0.3","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"bdb5686fd43537e2c753d4508f7de0b96c4b458e","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.3.tgz","fileCount":352,"integrity":"sha512-ABtBYR4yGzyZsuTOcGiBcO87myDURK9Bw0298blqvLsdJBP/cIOA8hG9kjyTJjOGwknlNhWNeieDV5+pm8JMdw==","signatures":[{"sig":"MEQCIGEr77+zO24stPhc2G0hF9HqRmV2QuWBgMAAOPuxV9RIAiBfpTKFKYJ5+ucytBJocywj5CkXRkWe7yh0p5BBY9UK9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1137125},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"00588b37456d5cde2cea3161486d8de0dd79f932","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"README","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.3_1779337165093_0.6298331951316178","host":"s3://npm-registry-packages-npm-production"}},"4.0.4":{"name":"@ngocsangairvds/vsaf","version":"4.0.4","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.4","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"512982eb4f0d04b59d0137af7ffafd6f3fefc2b0","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.4.tgz","fileCount":352,"integrity":"sha512-yH3WKc6T8b8UEDfF/WN3v2CcK1UJdnwasahEjjGPxMF6uTm1fQAZGzlHM7O1DpyTOgCSOZRFQaMnyLBSUqqN0w==","signatures":[{"sig":"MEYCIQCKO9Zscbza2fmiXjsCjKxjG3gxyTbw4BuMSooPsyPYRwIhAKPxWk12HKHlbklF0pM9ovSvDl0jeQp+3gws8gqRPy2s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1139656},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"5b834ef4f7106ba3a329f2ed2bce0ed81cad2139","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"README","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.4_1779347854589_0.2754249464444849","host":"s3://npm-registry-packages-npm-production"}},"4.0.5":{"name":"@ngocsangairvds/vsaf","version":"4.0.5","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.5","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"17b28f9cd62b475765de0b254de09e66b0d77146","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.5.tgz","fileCount":352,"integrity":"sha512-4JaOsosyys8DCL8gOSb6wwAIGZ+JtA74svMdpHINpXwZMs8mvim6yq4SuV7lC4o/1fFfmb5no/8AWrUTYJdqXQ==","signatures":[{"sig":"MEUCIQCV0cd9RchC5R7JV+HLQaWH8DM4NSGkm907pqs6ST/XhQIgDrFZg+o9zm5uDPkHVY8sk5eOQFs9hK70wKLjwVbqaDg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1140728},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"d385fcacbc29a077a204974c51f6b6b3f0f99ceb","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"README","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.5_1779348782430_0.7845742127910682","host":"s3://npm-registry-packages-npm-production"}},"4.0.6":{"name":"@ngocsangairvds/vsaf","version":"4.0.6","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.6","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"f777d7b5b34aabf01adbd2677df574c1b1a0a4ec","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.6.tgz","fileCount":352,"integrity":"sha512-4ahUABuBD7r6zb8om6wPGVy0O6qKURthSdrNo71+XS103iud900OZuTEoeB8DtAkM0WXhQn30b54LsPYgNcHzA==","signatures":[{"sig":"MEYCIQCeKKFN4rsZ+DwS6YXciFHqy6bC95qrwp48MjtxplCLvwIhAPjlzLNZlRzYGiGlVz73GvO1APD3RrK6GbvWri3AhfDH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1143906},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"06825bddccc105b094c1794c4ec364f1d1b1df2c","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"README","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.6_1779349326407_0.3707520571827527","host":"s3://npm-registry-packages-npm-production"}},"4.0.7":{"name":"@ngocsangairvds/vsaf","version":"4.0.7","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.7","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"93ca8edbc0327ca35708b77c1df61584a5df8b1f","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.7.tgz","fileCount":1387,"integrity":"sha512-SfLCsuqCUb4H799OnC1bT++vPrhlDMype9g5Lvt9y/wqwZPhW7Rktfc7GnbmV1NtZVcwTY1atpfhSfWriYTN6w==","signatures":[{"sig":"MEUCIFpc6n0NQCX0GdjdAsZ+bzb156ABx/tyvDvYpNEUFrzYAiEA/a3zid91fTrgghg0T+ofI3EqNDtbB9Cv04WLCxocovc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9795828},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"06825bddccc105b094c1794c4ec364f1d1b1df2c","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.12.1","description":"README","directories":{},"_nodeVersion":"25.9.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.7_1779349950395_0.3264929962124443","host":"s3://npm-registry-packages-npm-production"}},"4.0.8":{"name":"@ngocsangairvds/vsaf","version":"4.0.8","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.8","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"c8626be90502ed1126d83224603ce323c3abd617","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.8.tgz","fileCount":1397,"integrity":"sha512-NzEyg6BjYTJZ+4JXv93xFkX06CdqIcX5o3Cg/qh4IjGSjmhCMy0ACBwZtwZQiwt9MDDor64pe5lifnWEA3kq1A==","signatures":[{"sig":"MEUCIQD/Z2oN2t0zY9kBkL6aIIrIBp0JMkNpfK70zH/aT2N7RQIgY9WviPZZRWUvfXq38sNY8DCK8O1L1UTE98Of0Y1Paeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9845209},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"814e9ba6f3bdc8b9092ff6dd2f4149e29bcbcc50","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.12.1","description":"is it ready to use ?","directories":{},"_nodeVersion":"25.9.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.8_1779377072162_0.5016340638218628","host":"s3://npm-registry-packages-npm-production"}},"4.0.9":{"name":"@ngocsangairvds/vsaf","version":"4.0.9","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.9","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"f9c0b8edae1459f53fe9145bbe94eb2735423bab","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.9.tgz","fileCount":1397,"integrity":"sha512-hg+Z4anqfQfrBkwUF6DrL6K3+shkV8vBMsOt/GSKHmBlB3nsHm4kmFq1JxKp9Lvpt8QE+ToQVFS47wsllNDUvQ==","signatures":[{"sig":"MEYCIQCfMn2rLI8bIBs5BbgAI4kNpgpRQkO1KgS47NaTaLJV6QIhAKLrNH84/ec/cFnoDajFhZp6GMtBPQ8BuOzCtrTF9PCS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9847085},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"1e713ff41b271bedb1cf21ab90a01888cc834d6d","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"is it ready to use ?","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.9_1779419673577_0.559188126172572","host":"s3://npm-registry-packages-npm-production"}},"4.0.10":{"name":"@ngocsangairvds/vsaf","version":"4.0.10","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.10","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"208e0b9a9a1454ba837b372e8a6c6e462f37adb8","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.10.tgz","fileCount":1398,"integrity":"sha512-vJF9nRYo7SHH9kziE4VKQ8VR+TnmBFZ36DRKj5ex9dfxbfNz9zfdqTNuYz5m797jMjG6l537sxG2u2Ca3wpdJg==","signatures":[{"sig":"MEQCIHIcfMFPA/pdRatSk5RFQ5IRm60aMqinLgN6NNZQZ7cTAiBFRoyhRY8FaLE8PuCYr0ATTVN78ju8doyrXh2isJQZjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9849151},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"eb14460bc8b2aefed2b374793bf3fc2deb6a39c8","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};fs.symlinkSync(r(process.cwd(),'packages','core','dist'),t,'dir')\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"is it ready to use ?","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.10_1779424805379_0.5012523274828002","host":"s3://npm-registry-packages-npm-production"}},"4.0.11":{"name":"@ngocsangairvds/vsaf","version":"4.0.11","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.11","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b3bfb15582dc35c216419a628179bf07514241c4","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.11.tgz","fileCount":1398,"integrity":"sha512-3mSrrZWq7+/QaaR11Ddpl3BocEpVMr9TzHziRhg8BFziBRND45sbXIUle3MKgv5s3ACnACTpe9r6nEIyloCHUw==","signatures":[{"sig":"MEUCIQDmJozjvxieykrB7rLN/EMNMb2PBYASwpAbrEAb1nxpSQIgXhGy5prZ5eXD19m7vmz78DojW24foQPIvAVhDh1mrfc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9849242},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"cdec32fcb62a69b893777593dad81cbd4fb3ca1e","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const s=r(process.cwd(),'packages','core','dist');try{fs.symlinkSync(s,t,process.platform==='win32'?'junction':'dir')}catch{fs.cpSync(s,t,{recursive:true})}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"is it ready to use ?","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.11_1779425613492_0.6734087722690782","host":"s3://npm-registry-packages-npm-production"}},"4.0.12":{"name":"@ngocsangairvds/vsaf","version":"4.0.12","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.12","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"70861d69e11c5a6ce077b875eef71598e4facc9b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.12.tgz","fileCount":1398,"integrity":"sha512-4fnd0GAuVQ8OuFHdsYWjoeD2NnsWWlJPU2uK283YdbSFCyHSjrarwJItjcY+yB1QrwZ3FBfAX9Vm3OyhzieZgw==","signatures":[{"sig":"MEUCIDeSQf7iw5DXE8afru7KBPD8fJvcYhFhH/NE1jQSIXUyAiEA94G86FzFbTYiDOH1xJdzcltyHXShhPX955fQNpj9McE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9850280},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"cdec32fcb62a69b893777593dad81cbd4fb3ca1e","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const s=r(process.cwd(),'packages','core','dist');try{fs.symlinkSync(s,t,process.platform==='win32'?'junction':'dir')}catch{fs.cpSync(s,t,{recursive:true})}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"is it ready to use ?","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.12_1779434369908_0.1489026158125939","host":"s3://npm-registry-packages-npm-production"}},"4.0.14":{"name":"@ngocsangairvds/vsaf","version":"4.0.14","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.14","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"9338e6e635d212c63580dd6faaf4222ac168ff1c","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.14.tgz","fileCount":1399,"integrity":"sha512-FfnQGvf4Azd3+VjFouvcgCmUvlxQOJChAyrYjI8FGlCO0+bWJclFlEE0Q+PZusbBn3QgouQYEmJvUZnK3IS8Lw==","signatures":[{"sig":"MEUCIBslnYyRBpxW+5B3h0Mrf8tW8b6tWez+lvsYnfRb/w6mAiEAuL4iGX+klPqS8gFysiCYB9xrfZeBK9YFeyFRtMsx9XU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9850864},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"cdec32fcb62a69b893777593dad81cbd4fb3ca1e","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"is it ready to use ?","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.14_1779435462981_0.45970450332565194","host":"s3://npm-registry-packages-npm-production"}},"4.0.15":{"name":"@ngocsangairvds/vsaf","version":"4.0.15","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.15","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"98b4f33f387c8576f485ed81da1ef6d35318bf6a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.15.tgz","fileCount":1399,"integrity":"sha512-GsKKUajweV5zpT85go1J5E3rHxVcLkW17XKxGRHSb68JkCp1DvRCCLCBSI/1puj9ELBcw9QRRa+ykZtC/pjCSg==","signatures":[{"sig":"MEUCIGE9TA7r8Vc1wcNGR0PhM/fcq4NiaHlJrQp1jpCObgLLAiEAtwCVMd2SxF0HMK4rHFteJI3dN41148Fv7depXimVZQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9851204},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"cdec32fcb62a69b893777593dad81cbd4fb3ca1e","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"is it ready to use ?","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.15_1779436729887_0.14015459521470586","host":"s3://npm-registry-packages-npm-production"}},"4.0.16":{"name":"@ngocsangairvds/vsaf","version":"4.0.16","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.16","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"86f5f9f511fc246443e49f970170f338a173f3e0","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.16.tgz","fileCount":1399,"integrity":"sha512-/c8aK2CSSGMHQu8aoBA5vjAGZRhRsDpVDv6Qza5MvP/CeKAKnFmdgS8ecXG2bVhCCMSPspFpiIHcycBQCh7fSw==","signatures":[{"sig":"MEUCIH1TvRa0b1Uc1ytviMttolCO4PR5NOOXNUNK6nPx36diAiEApLo6xj2vAToG2XPPk/ruoIy5njcU9cAIq5txteEHvY0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9851904},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"cdec32fcb62a69b893777593dad81cbd4fb3ca1e","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"is it ready to use ?","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.16_1779437362046_0.5064762713025999","host":"s3://npm-registry-packages-npm-production"}},"4.0.17":{"name":"@ngocsangairvds/vsaf","version":"4.0.17","license":"MIT","_id":"@ngocsangairvds/vsaf@4.0.17","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"501fa39bc3a78987ac595658bd6f9e81bb96dbdb","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.0.17.tgz","fileCount":1399,"integrity":"sha512-6Tw/3eLDhsP0aUZNMTrlj8hN3eC251vu4TCJjVJuZkloMFIxEI1IIemfBLFCsTIXLR0XinFunl9k1AJPn5FW7w==","signatures":[{"sig":"MEQCICeVy6jT6xgSjnQBAA/OiBkqz4hhou/xW15luLi/KHE/AiAiGz3XodDWuQObbWcKxMtvGt2sNRnHCgpaAMer58zc/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9857031},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"4027867360d7e48a4951896f3ccf377f508c1922","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.0.17_1779676359239_0.8216643366155394","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@ngocsangairvds/vsaf","version":"4.1.0","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b6ace7ad58c198b14bf380143ee1327275621e75","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.0.tgz","fileCount":1415,"integrity":"sha512-wT3PGP3S8OIIXdEnWVDWMlSiOC/CNMic4+Qfqu6G/XJP0gENHqSaJnSTCgvTaX4eg0/VLAZWMlO8YOxwBi8Lkg==","signatures":[{"sig":"MEQCIFWQgBk6jpajgc+o1kqpoCiiXMnlDsyYouUphddV5LoFAiA0Z9mPW+CxJyH1LOzFqPz1XUQ4pt8ne8RfehO967Gjkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9980607},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"eed23214d68594411b7132d6d8e43849bfdac876","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.0_1779780567084_0.5762117663227999","host":"s3://npm-registry-packages-npm-production"}},"4.1.1":{"name":"@ngocsangairvds/vsaf","version":"4.1.1","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"ded8cc8f1a83d6ae9cda6d5573f9335a2a7e4ef9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.1.tgz","fileCount":1428,"integrity":"sha512-GtnhBEpGkhCZ/SWB8/w8TPj4OSC1yQyiQ0deweZR6XnGtbne3WgPysBIM/+dXS16zNb/e72JkRINCneM8+FnEQ==","signatures":[{"sig":"MEUCIBXETOg+h2+2lnNfo51DNUGBrpbkS3jCPuYObwxMZx8/AiEAjfprzsE4RBrHtZnnbVjF5ZGLsMljuFJzaMvqp4C9zGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10367009},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"f5226e5fac940573a9f39cb1dd8300fe4f347718","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.1_1779789616796_0.5872118163468703","host":"s3://npm-registry-packages-npm-production"}},"4.1.2":{"name":"@ngocsangairvds/vsaf","version":"4.1.2","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"23f90afa04996ad2872790520572dd1ff35e1844","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.2.tgz","fileCount":1433,"integrity":"sha512-/o3K7cUSk2OYbocelE4BMV6786OSXseuRr59m5dKUN489mLhkjsovqZeBEvwbfe4qo6HK9eOvMSD9FgVKMvNKA==","signatures":[{"sig":"MEYCIQCHn4rpOnjHcXr0YyXpBLvC+iJ6vr5ZGdNJNLaVuoVllAIhAOSI/Xz3nen9Epaf3Gk3uJuSb2/m+GoOx/6W7SI5MxMd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10388829},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"3f146e0ae2746b7df4599140acf29a15179be310","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.2_1779848764059_0.7042364546558892","host":"s3://npm-registry-packages-npm-production"}},"4.1.3":{"name":"@ngocsangairvds/vsaf","version":"4.1.3","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b65750abbca72cc3d80bf60db93bf158b3f41129","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.3.tgz","fileCount":1433,"integrity":"sha512-HH7RSfJJfImnFsSImX5y4SaabwfHFjQy5fW7bAqmVhwo7gnHtEUsW7lpG7Qiub3eTLNAa3X031q/wz02zgZmkw==","signatures":[{"sig":"MEUCIEL76iKZJrCmY4rELQHu5qnm4AB5KX2iNqcSoeL3QXVuAiEAixY7te+yOs3y5+Ll6ZQtEczCbtQiciZmLZmtz0j3z4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10390518},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"3f146e0ae2746b7df4599140acf29a15179be310","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.3_1779851461997_0.51793988832887","host":"s3://npm-registry-packages-npm-production"}},"4.1.4":{"name":"@ngocsangairvds/vsaf","version":"4.1.4","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.4","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"42c0b2a953a42312bb20ae728159ef8bb4af136b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.4.tgz","fileCount":1433,"integrity":"sha512-zYZkDEPn4Iy+eSH1gVffH5F5ASC8xfRidpB5mKtDe2tw+bzilicMljLb6eGrFXOPZGtanJrxBFNOlXo3xV8PSQ==","signatures":[{"sig":"MEYCIQDRsgREx4s+5TANT85N1Q1krm1QJUSJL3dZTSiahRAqtQIhALvQSfTlCq0OIZCaqOlRQMdih3P2dxAxLcuU61NwyjoI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10390966},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"3f146e0ae2746b7df4599140acf29a15179be310","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.4_1779852466085_0.9107861933894248","host":"s3://npm-registry-packages-npm-production"}},"4.1.5":{"name":"@ngocsangairvds/vsaf","version":"4.1.5","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.5","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"65669fd5a8fdc14289bc99b0e28e5d87aa3a06c2","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.5.tgz","fileCount":1433,"integrity":"sha512-4wmhIjhiRWiiVibk731VWqgSsZalm8UK0//VOmgd8oqAabPi+aV4dUAozjt6NpKTGlAav5HIQpT0cuuCjx2iOA==","signatures":[{"sig":"MEYCIQCUsJMUtNrj5Fe1TwCxhpfVuO1DY9YbLaxdx06p/AyL9wIhALACjUXf+AZoK+asoJumIC7HgtTiJggUGfRL4trKyTp5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10391025},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"fa893796a991a3c60e2770c68ca245a6fb30eae9","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.5_1779875118580_0.9836299414636329","host":"s3://npm-registry-packages-npm-production"}},"4.1.6":{"name":"@ngocsangairvds/vsaf","version":"4.1.6","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.6","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"7d1933b73650e0f6a8c815f8d4013772ce88cfb9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.6.tgz","fileCount":1433,"integrity":"sha512-IzUwVI4/wlOdSa4Gvo01OzJKu1/i/9c8foU78JcqMAM4tIZ13POLKwSx7PsMMYdre2lPu8t3B5YeNHYoce18Ag==","signatures":[{"sig":"MEUCIECbJkAPawA/lIVfZoSnYll2Iyy20eUdliSQzZsbqtY0AiEAvESDSh5AQF1ImlxFFuBlQbTXqYhX95kbFSqGHt4dSDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10392892},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"fa893796a991a3c60e2770c68ca245a6fb30eae9","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.6_1779875730408_0.5687813954591014","host":"s3://npm-registry-packages-npm-production"}},"4.1.7":{"name":"@ngocsangairvds/vsaf","version":"4.1.7","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.7","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"24670b1fa7e4179d31930d37fd75f90b9f3a8afe","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.7.tgz","fileCount":1433,"integrity":"sha512-FFUTrF2+L9lMzF16PmUUdL6v6hWHaoHs0fQUkFp4Fk25qU9grG4wj0Fpm3jzo9X4xMKBF9AyehjMsBAWr6Bc0w==","signatures":[{"sig":"MEYCIQCnvBG8qeFVLVFulKzmHFU+PwMe1PCy6GFFh/fJRwuh1wIhAMmTn41pB71Jdc8ZYe2qsL9kAjP+gNU3SK/ICBmxCp4F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10393250},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"fa893796a991a3c60e2770c68ca245a6fb30eae9","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.7_1779877579267_0.8914568486327392","host":"s3://npm-registry-packages-npm-production"}},"4.1.8":{"name":"@ngocsangairvds/vsaf","version":"4.1.8","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.8","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"1b5e72dfc04ac345296272c1b894be9e32c10f1d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.8.tgz","fileCount":1435,"integrity":"sha512-yyvMtwgv37b9D+cGH40tOSclTA2tXKrfH2oBw76v3Cx8Vlxi8F3WuP9f0ixW4aE2/YMlSku3POK2gY949ZUWOQ==","signatures":[{"sig":"MEYCIQDluoNHbC0VgbH/2Xml8efl/P0avgbZUhNuSj6fCpLEBwIhAO7wLnCZBDqvxWuQuXK0Z1dqNNLFNH/II6I0oiuAavSc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10416536},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"97c89fdcfb29750a00c287b6a3c3b11fc6736a70","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.8_1779879728558_0.551783474231377","host":"s3://npm-registry-packages-npm-production"}},"4.1.9":{"name":"@ngocsangairvds/vsaf","version":"4.1.9","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.9","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"df24c40dabe2d7c76618186969b58f289e549f22","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.9.tgz","fileCount":373,"integrity":"sha512-bhdrbONZuqGmWiWRl7XTqbXNrn7jRswbNsRjLRiwGboiEeGz3uXQWFYjq/YvdpD9gKfd0Ji6YE1gRytdVKCwhQ==","signatures":[{"sig":"MEUCIQCotIPyyG6Hd7OwB3thE834whdL4MYNLhX+Nzt32fiybAIgWY1VeOgwx5Lw9YoFlr1tbuP/YDTtZMXaGUj1TMqf13o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1662129},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"8f8120a79a880bb9a45b46a971303a64d827d809","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.9_1779881696722_0.3830031776978464","host":"s3://npm-registry-packages-npm-production"}},"4.1.10":{"name":"@ngocsangairvds/vsaf","version":"4.1.10","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.10","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"41212f9ca6199ff63597e7a5f97dfc7fc5075bd7","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.10.tgz","fileCount":1418,"integrity":"sha512-HzGK6H3qO0v05xxpbE886DjzlwwOQgX/9Pylyz58mi/A3AS57mvWqxGWv2xn+DkgJAmJsWfeF/d/XerzqIOfag==","signatures":[{"sig":"MEUCIHvIFQk/RVJXXZWhGLvqei91pTB9Yjt00wbrctd5B2PTAiEAooaRa7LAkIGNpkBWmMqaORGCGx/z++5ibCZ2XbqsqBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10336753},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"7eb5f73871054017cb22e488724d17e268a1d3fa","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.10_1779884633327_0.26338160594393356","host":"s3://npm-registry-packages-npm-production"}},"4.1.11":{"name":"@ngocsangairvds/vsaf","version":"4.1.11","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.11","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"e9cf368b6af2ccff50125a437f9e760915eb6e70","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.11.tgz","fileCount":1418,"integrity":"sha512-nVw6bnl4zXlirUfqbl9PLnpcInKRRelfS5+nS5b/cNYOekgFQeGqGIsqb7OxTppsOV7ipliarkF/ows36KLnBQ==","signatures":[{"sig":"MEYCIQCl+0mOcZBmy7ZwQ6SITyxfvTK5oiLc0Gd0+WksMR1BFAIhAPfH69oJTtHeks0o3e7Ay3wklGfSnhYr83mmPZmG+ctR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10337115},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"7eb5f73871054017cb22e488724d17e268a1d3fa","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.11_1779885241405_0.34093897972648013","host":"s3://npm-registry-packages-npm-production"}},"4.1.12":{"name":"@ngocsangairvds/vsaf","version":"4.1.12","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.12","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a4f8acdb97d49d2c0733d6a9c72d43fce4d24228","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.12.tgz","fileCount":1418,"integrity":"sha512-yaewWOqxXNBGT4fAntiQh71YF5xdywnOUxgvj3qlGcWgvMC8DmG13SR9TLqrs0cCIGO+nMAp7O6dUEulGxN7TA==","signatures":[{"sig":"MEUCIQC+hNKZNsDeO1sApiz8eoUwKAB5j3Hd0I12ocqrUDK1TwIgChlvzRdglhAAFiEQbqfyMETn4/fJHX8BHzJdlf91miM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10338298},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"7eb5f73871054017cb22e488724d17e268a1d3fa","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.12_1779885473430_0.4494241025394792","host":"s3://npm-registry-packages-npm-production"}},"4.1.14":{"name":"@ngocsangairvds/vsaf","version":"4.1.14","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.14","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"05ee16126a4ec9faf8d75b6f0260376382903d0b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.14.tgz","fileCount":1418,"integrity":"sha512-WN8D/dyWZg2Jo+AddVDjqKAiSmJlceP1Kjwdk52dxpr2d1Tsg5buL/dhmZzILB21+U8pc7yVCxHMt5DMfQFhdQ==","signatures":[{"sig":"MEUCIHB2Y5Rhs8A/wlsVzqwFeh7/dlcpIth5wQLe4GpXJFEOAiEA22dTSnwdtaBnqmnAYmLZAz8XJqx4MpWAgUhr41b4pZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10338295},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"7eb5f73871054017cb22e488724d17e268a1d3fa","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.14_1779885731515_0.9915028142837359","host":"s3://npm-registry-packages-npm-production"}},"4.1.15":{"name":"@ngocsangairvds/vsaf","version":"4.1.15","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.15","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"cb32e69da2761bdb54dd7ddefacaaccbfefae2eb","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.15.tgz","fileCount":1368,"integrity":"sha512-Pl0I0JoFS+qTcZCeFaNGTB1TGWQCJ06iPLCIcRmV61NcUUgspbwhGN9h/1alLxrSILdfcttTbppct38kBkqtZQ==","signatures":[{"sig":"MEUCIDAiVBBZhDgG31LwQoua9vS3iT0dJH64Q132nCAfMW0dAiEAheGMHAkmERt0gF4IwojOyeg8Rn8V2YabX3wrxNUSuHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10055911},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"01d8a3eb802078fa7a411ddd66b56a8e016680cd","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.15_1779937683506_0.5781425308666401","host":"s3://npm-registry-packages-npm-production"}},"4.1.16":{"name":"@ngocsangairvds/vsaf","version":"4.1.16","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.16","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"479eb83a93fbbe539c6bebe0e01b98391dfb6d84","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.16.tgz","fileCount":1368,"integrity":"sha512-56N8z+M0RaSqQzhMqcKbtogiY3FU75Sptbi6QV/dr1wZDyL3MiNNjVJvishnDLYMyMmy/1If+v2WJiz9rdERjg==","signatures":[{"sig":"MEYCIQC7pi0veQ4P/buu6Dhrwkdip9RyBTa4UPvHw4wuwLJQRAIhAJVJGLc7uoDh+GsOHJ6BpWMTdB+KcFQ75k7jUj5Hu+N2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10052659},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"c5111210ecf298b491af325ff1e7990675f7e750","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.16_1779938599631_0.8911139151423693","host":"s3://npm-registry-packages-npm-production"}},"4.1.17":{"name":"@ngocsangairvds/vsaf","version":"4.1.17","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.17","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"006c7ffe5841199307b583860b683fb25a973bbe","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.17.tgz","fileCount":1369,"integrity":"sha512-CKeXJHdXOq4ZQ3synt42T452Hbv3ByjyEjZ/+m5+f0W1ApqK46P/BThMZhO+e7rrp4SNNFTZdyrs6rY7iUqEkA==","signatures":[{"sig":"MEUCICsCn/k4PWcJSdaYLjOzpQJHr1vlq7dxqKn3nUYD3cAjAiEAjiiz06HmiXX6BrsWurPb5diNruBRVQytiurGBiak4Lc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10058786},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"0c429138021d347110f25f0ca3295ef3f3fe2172","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.17_1779938875008_0.3198048089585206","host":"s3://npm-registry-packages-npm-production"}},"4.1.18":{"name":"@ngocsangairvds/vsaf","version":"4.1.18","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.18","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"db73cda30f90d08862dd264762995bc41f9c680d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.18.tgz","fileCount":1369,"integrity":"sha512-sXq20RvQ9PyxWEQc7k/tk7HQsdJWgr58xLnpqGQbWr4rYLdOuJZ8D1O8jDCqQ7kG+PYqujYrFmLsPzWAdogRtQ==","signatures":[{"sig":"MEYCIQD7dbQMmqUem84kBkiOXsaPrKDPuwQiCoIlbsoVlY/VmgIhALEHjSDlccHPVzfVtLG28+Svso2wFv0c/xXOfIHFgiYX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10060183},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"54621da3439e4d5d4de7db9855785d2d97b9b3b1","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.18_1779939307608_0.7275527515600932","host":"s3://npm-registry-packages-npm-production"}},"4.1.19":{"name":"@ngocsangairvds/vsaf","version":"4.1.19","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.19","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a131e12d658ba42897711978f5f3cdeb0929a06a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.19.tgz","fileCount":1369,"integrity":"sha512-f2540ZkpclMd+FyhBFGbwgm74HqHPXNmxiU9RpP3RPti8UDy6MD9Pq5KJOuISapiOgoh/aNGhl00y5YHANoKCQ==","signatures":[{"sig":"MEQCIB3yklJqRSg95sfdttKRNUIuRnBACoU9pLQvikGTGa9AAiAH3evaB42jClXQ614XwW4RUN4ho54oUZYI/NabU//QRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10060106},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"64d9362b5ccf351b673b3681a1ec1ddf1877376b","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.19_1779939819297_0.290568756186953","host":"s3://npm-registry-packages-npm-production"}},"4.1.20":{"name":"@ngocsangairvds/vsaf","version":"4.1.20","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.20","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"6d0b3e56dcba5f38f45b13b3ed3029be29d7d2d3","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.20.tgz","fileCount":1369,"integrity":"sha512-VlHWtX+PX9f3hQWLKtmhKw9O17oaSZ5JrlkNktRu1QYUpKtlAguFtY3QLz4E2eOBJBEas+G9KaBqeLX8pfiCow==","signatures":[{"sig":"MEYCIQCboraawJUR3MmhQmU5V4oydG09U14wPss+g6yJ+i7ZZwIhAIIEMfL417bYu7guSadltE27lIzsTE21XCz6dVvIIEX+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10060081},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"647d783faa3099fa3353871fccea2adcd943233d","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.20_1779940625216_0.5214951651700204","host":"s3://npm-registry-packages-npm-production"}},"4.1.21":{"name":"@ngocsangairvds/vsaf","version":"4.1.21","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.21","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"0668f79d503846fe526c9849219f15a908d66d5d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.21.tgz","fileCount":1369,"integrity":"sha512-oINuYn2sqFEwWwtcUlpTHDzF22Zvnzk4YXXziFLogGwEMAgG2qFTO1gg810YvdCIlEy+J2F4Wc70CGKD2dqNvA==","signatures":[{"sig":"MEYCIQDxFHcRUjbqsMFW//1KxuUmmT5PIdvwazAtALbboYAy8AIhAOqtuMN/RyEoBWBzJ51c0EhUzeQikFivWxbJn3iUmRjd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10060086},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"647d783faa3099fa3353871fccea2adcd943233d","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.21_1779941257899_0.789982900991288","host":"s3://npm-registry-packages-npm-production"}},"4.1.22":{"name":"@ngocsangairvds/vsaf","version":"4.1.22","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.22","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"3fc1ae07cb18285bcc7d13c776e8704f6feaadda","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.22.tgz","fileCount":1369,"integrity":"sha512-G+W8abW6145WdDFizoAXb1jTs1Ps61sjO0yJeYfrmcXS+6BuKmM2j5CKwUTnPj7kD4azAAvxhKX9VnBJYIMxZw==","signatures":[{"sig":"MEYCIQClnGo1jkfGfgAglFTvxx6RGsGkmYJJyq87R74XY5QBewIhANaH0z6TtcpLIk9df8R692s3Il67ugeiutRvL2LX6f+1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10060197},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"647d783faa3099fa3353871fccea2adcd943233d","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"rm -rf packages/core/dist packages/cli/dist packages/core/tsconfig.tsbuildinfo packages/cli/tsconfig.tsbuildinfo","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.22_1779942103271_0.5122098014995784","host":"s3://npm-registry-packages-npm-production"}},"4.1.23":{"name":"@ngocsangairvds/vsaf","version":"4.1.23","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.23","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"3d838a6b7d3873734ff0b6114213829b83509089","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.23.tgz","fileCount":1369,"integrity":"sha512-w6/yMQlQVfCPhmaH+ak02HT9BLaBTG5sxRl2VMNu5h3dyQbOmlQvtHoph9HbvRBqlyZ/AZVrfMZAjxd4iKHxZQ==","signatures":[{"sig":"MEUCIQCv3JjCVECF5ZmkU7cJh3SUjydCI9MJm5pQGSZnGRV3wAIgcM9HnAi7F8sUpF/yWELHvPEsbvINYUS4v4XYbI0PLB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10063482},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"647d783faa3099fa3353871fccea2adcd943233d","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.23_1779949726449_0.9700330702922575","host":"s3://npm-registry-packages-npm-production"}},"4.1.24":{"name":"@ngocsangairvds/vsaf","version":"4.1.24","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.24","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"98c0e474316432db089a72ec5b4a1d6a962775ab","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.24.tgz","fileCount":1369,"integrity":"sha512-lwioWp2ARwqQTF7kFDj/QLWcBKBFoI85r+iyuvxyWWc+15U0XaUUTSDKmxlNR9ytmtDraFajdfeEybGIGgjP0A==","signatures":[{"sig":"MEQCIGYOfvGhe773CV19IrztBMgsOxetGH5DnC9OTLhPAhNaAiAakFnsFSzoNmw+YRsrXxUCAjSl91sxDnzXIoQcGRvCgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10071625},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"db351cd7b0bf747abb60fa88c5fef513ac4c1431","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.24_1779956567370_0.6406010608644275","host":"s3://npm-registry-packages-npm-production"}},"4.1.25":{"name":"@ngocsangairvds/vsaf","version":"4.1.25","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.25","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"92edcd677ebee26319906c8374d45efb5c78512d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.25.tgz","fileCount":1369,"integrity":"sha512-baBIMu0YTrEneENx0REDMdK5l00ZSr6KxIC8AhvOzicfOp2c3rUEso307oMwRykyz/Lm9WjnO3te62vExJLHug==","signatures":[{"sig":"MEYCIQCv7RAk7SJ9/dpyISzvzqyFUGFQtVdOwdIeJohHvfGbwwIhAJN8S2higDwK40p+/9J7Uk/W7XWUUGlmjjrKCYJx4u0A","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10075871},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"6ab99cefbb2d6fd8ab85642f7624b5a50017c7fc","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.25_1779964050001_0.2008029233882258","host":"s3://npm-registry-packages-npm-production"}},"4.1.26":{"name":"@ngocsangairvds/vsaf","version":"4.1.26","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.26","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"11b0ffa1365896ba0817bcf61951d640d5ac72ad","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.26.tgz","fileCount":1388,"integrity":"sha512-e9x2XJZ6m++hWkn0vHzS3KyjBjAC0RGN6V0nkUpmBXXT3zRpsYS/Er/7UL427O1/QOzDJOq95vhDrPHNoQpoow==","signatures":[{"sig":"MEUCIDnude7NvElLTebSIxD9ff73/JL3fS9pVIVTtaEJf5unAiEAu+7HDXO//no2yJFPHUKUuuVmj42aFiY/MS3aiRDPe8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10282316},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"cdb807b6bf015c03ab1fed2e531645e2c186bf17","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.26_1779967852160_0.8570896412034925","host":"s3://npm-registry-packages-npm-production"}},"4.1.27":{"name":"@ngocsangairvds/vsaf","version":"4.1.27","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.27","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"deb40ebdb2a36390747376adcbac217970d311f9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.27.tgz","fileCount":1388,"integrity":"sha512-uooowwbjz4vtkV7ofddCZev1wKNDRulm2z0Tn2t2SzNZnZ9/hWV5nihxvauROIDhbdjfcuJHPHc4VU+Rimtfbg==","signatures":[{"sig":"MEYCIQDxv6eOKRMBpJPAWDra2YQl5yvnlUoJAAYUkiA3abcIjgIhAMXOSNWuPuE+Gg+3tf/ERwhdg73XDKmppRaPnDkFXNSD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10282350},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"a96b94d996792e8896a47da1b94989f2e6b91095","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.27_1780016725792_0.7366218030324865","host":"s3://npm-registry-packages-npm-production"}},"4.1.28":{"name":"@ngocsangairvds/vsaf","version":"4.1.28","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.28","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"9063153300c780d8fc6557b75620c79078f12f6b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.28.tgz","fileCount":1388,"integrity":"sha512-AnqkTsGARXC1+pI6fGrfPNYoD+JfX1qINWqNWtCn4GjgIYCqHuiEWTcNU5uOsFZmSWt6Avc5jEXjGhH9Ca5glQ==","signatures":[{"sig":"MEUCIAOPwVfKcR2Ye+axaXbY+F5BhMxBQY5DP9nfBatusM02AiEA8U6ddz7b1j8VsOwVxfVGSsMFHR/zq5N8eszD6onwqpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10282247},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"499cb9af5666fa9621fc1e503ac0bb8a2c716586","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.28_1780017198282_0.0382749795145132","host":"s3://npm-registry-packages-npm-production"}},"4.1.29":{"name":"@ngocsangairvds/vsaf","version":"4.1.29","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.29","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b40d74cbd57e267a5d46bebb0b50fe4d76820df3","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.29.tgz","fileCount":1388,"integrity":"sha512-AhXaHeHGGJtofJ6HGWGgixDL8cHpnoOPQLwTBvAbjL/KuMAUYbtY/xGdilHrZO1mc4OiqJnkRd5aKRrJUIay7g==","signatures":[{"sig":"MEUCIQCELgC7fYRPkU4gRqqALd/LpCahbFBHiYZxwjxOandLtwIgCzqyY/fFOGnkrHdC9LnGue2oT3g1AQxKjMh6QM0s2dw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10282352},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"fa4f50576e9f093a054394e9c8c29d7bac1ebf3c","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.29_1780018299166_0.06703916397348597","host":"s3://npm-registry-packages-npm-production"}},"4.1.30":{"name":"@ngocsangairvds/vsaf","version":"4.1.30","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.30","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"13a1f52cc9c0d19c21a9eb4649d58068b0e74cca","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.30.tgz","fileCount":1388,"integrity":"sha512-JgAOK6axzvoszVMnGKPTOtQfnToMFNyeXf8oTFZqUbq215vQO77kEjWEPPgsRlF+t/+vrvqOjUUn3WyZqYopBw==","signatures":[{"sig":"MEQCIDPwjbXJmd40uSsI3cEY7y7hpwCqOc8bKfHhK5ytr0/+AiAjqP9islB57CUauifgaK3OuVQ2EuqVSsWZnwO2cvW6Gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10284786},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"4a5f500d68aac6da2af00286f89afe0b64457b80","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.30_1780022686601_0.4180168389186447","host":"s3://npm-registry-packages-npm-production"}},"4.1.31":{"name":"@ngocsangairvds/vsaf","version":"4.1.31","license":"MIT","_id":"@ngocsangairvds/vsaf@4.1.31","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"9b91a7649f78ebd472e2dff8e4ba3a83a4258041","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.1.31.tgz","fileCount":1388,"integrity":"sha512-2CwbCpLBN4qTv20KQUBm8dBveXP7999SWOzocH47SY5cDpl5P9xUjgmeyYSY7g2mnLmZi7v2D09+TjpL5Wm67w==","signatures":[{"sig":"MEQCICxPgvad1OdISWPk9PShpxo/NwyMRItCEWeD0fYQqoXgAiB7TfiU81tGVZXEDrMbT98pXoCWHbUHPtZ5lsy4lhi0Zw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10665111},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"4a5f500d68aac6da2af00286f89afe0b64457b80","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.1.31_1780029144989_0.5221707416655585","host":"s3://npm-registry-packages-npm-production"}},"4.2.0-preview.0":{"name":"@ngocsangairvds/vsaf","version":"4.2.0-preview.0","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.0-preview.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"4304c6a3380f3964d8d576d5cc2c463387a9f229","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.0-preview.0.tgz","fileCount":1389,"integrity":"sha512-y8HdP28G5NoTWOjgJTEpBdfHeRfPCSwgqLBk19kPApqOsEuQ/S3bV4BqGu7VI6nfMwT4Ei06RWTz5SFVcWPaAg==","signatures":[{"sig":"MEYCIQCBS+eer0ynEtpxMZuoGy79oxy9z68BC1aAxAhQyUNQ0wIhAPcmyuaWVNqWOwP8PZxDiu2MoR8azRZPzZV6eVPut9aD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10683731},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"ded853129ee7abb88598640369cf86a119a43d00","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.0-preview.0_1780306647897_0.8654034188286222","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@ngocsangairvds/vsaf","version":"4.2.0","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"1e7b312c75bd3779a99136faf05cf946c5824752","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.0.tgz","fileCount":1390,"integrity":"sha512-1ylttwcQcPeloHklW4tQYZEMyHlFe993/vwv3vxZB6KM3/QutjmzHZFB+5kELxTcj78RG4QaLIPfEy7dYLcm2Q==","signatures":[{"sig":"MEUCIQDgxJAc2LhGueG7wMwiKoIzPpjG0V4lH+ANMKjQR3NHKAIgGJDeTdNdOpRmJLiEULp0LFOt9cIjNhnDe42oKQpsXzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10700884},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"24f7ebb2dd336ead5eab11bf35667c98626e7d1e","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.0_1780372290802_0.9137469860548249","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"@ngocsangairvds/vsaf","version":"4.2.1","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a79980c707fd10bd6a82322493844d99e18f999f","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.1.tgz","fileCount":1389,"integrity":"sha512-EYfGr9m+ypUVTkae/xMPxzcWPFnrm/uG53xVfXaBICHST/4z9YLQ7jZYs+glaP5QHFx2KHr9eI3/97KWLfV0Sw==","signatures":[{"sig":"MEUCIBTmolp7FGZmMozVMqcnucBUVyxDbx1vyDM6bbfZmzBsAiEAkaWr0Ca611qX9WjZbvD1epkqeUPyc1r4sRRCDmOPDDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10691134},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"4a90904de74c45274abe43c66860ec2bcde018cf","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.1_1780373565927_0.5622996572594725","host":"s3://npm-registry-packages-npm-production"}},"4.2.2":{"name":"@ngocsangairvds/vsaf","version":"4.2.2","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"75083718c6073a2c03782bee111cef945a060fd3","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.2.tgz","fileCount":1389,"integrity":"sha512-fZ1+1Y3kPAFhMYAvnnEfn1Ki6I2qStgPlVZTKofER5CVTJ0FS5c29IW1Dn2HX5w1a/o7ov/cHzqQWWze8vpFhQ==","signatures":[{"sig":"MEYCIQCrBV/v3meS0hTneE3+GkQi/GMojsmm3Wq5K2XgMvjN4wIhAN+HVfnqfq/nxB86YFEA7GuRRWpiPc/dMp0Q2bJKnk41","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10691455},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"1de53d18a1654e68ad4dfc63e7c3a7fa31ffa830","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.2_1780376169526_0.3473885486003703","host":"s3://npm-registry-packages-npm-production"}},"4.2.3":{"name":"@ngocsangairvds/vsaf","version":"4.2.3","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"1733e17fa9a15b86fa1dc67a6f6a9cb047e8d0f2","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.3.tgz","fileCount":1389,"integrity":"sha512-iLKcbjEcOZ7NV0UNpBnY8TJjsSOiKMD0h0Ib9sNSGenva+UTY6gJkb94uIeZyDv7WwVhr4lXvV8waChWnxMjiw==","signatures":[{"sig":"MEUCIH5GDlpEciSCf7VQnLQrhydBOpO9RFQqb1nKxvvWMYWkAiEAitTwUrLwv1M++RV0btFCVWIOSyHJGDWVizvp9SjG3CA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10694456},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"ba30759a5a8d2d684fc4deedcf56283fbf5fbe7c","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.3_1780384201612_0.5999223501362112","host":"s3://npm-registry-packages-npm-production"}},"4.2.4":{"name":"@ngocsangairvds/vsaf","version":"4.2.4","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.4","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"2e286ad864d7d89f3faf6e18926d67d1aec52e06","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.4.tgz","fileCount":1389,"integrity":"sha512-EnUR+PBHW6DCWW9Dpzrda9O5OwlqFpd2rTCkiL6N7UwAPxP3VsNaPiRrpoCFKnGyMzJhqgavnXXsBfjDjhRumw==","signatures":[{"sig":"MEUCIQCeur2E191hIq6AkoOxB6EiWbFxUA13/iA77A+/bTb43QIgOaKnA6plZCj6uuX0FXGgZ8NXMe6O6lev/TCdpE0a2jA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10695200},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"732b961b96f344123ac2cfe0ba998b0a617d4d41","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.4_1780384599264_0.6292187834792882","host":"s3://npm-registry-packages-npm-production"}},"4.2.5":{"name":"@ngocsangairvds/vsaf","version":"4.2.5","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.5","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"94eeabb5a7a97d1f439c20bf07a436e6838c338f","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.5.tgz","fileCount":1389,"integrity":"sha512-7knFF6cj99hUb17BMWhep8tqjkBzvzE8IyZ8t4xtnEV7keUaTH8sah6ifVm5q//N/Pcw5fm/84ur6TxzGuYm5w==","signatures":[{"sig":"MEUCIQDHYHFdBiLBmndzAmzxYX5wXoIMbpXh4pnJoCP4pY5ShAIgGnOWCuu5PSHF9PQLgZTMJzqdLkVtXmQDs88hvNtAc6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10696159},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"1c5faf894f84872ed31aaa6b33ba310dd999a167","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.5_1780384776399_0.8420839282174313","host":"s3://npm-registry-packages-npm-production"}},"4.2.6":{"name":"@ngocsangairvds/vsaf","version":"4.2.6","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.6","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"63dea51f0d607c973592da89b7bd799b9a7eea25","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.6.tgz","fileCount":1389,"integrity":"sha512-kh9hqeN3hw8XrSy7IAbBujHuR2OOwBjmBzzni88gxANoVGszsDFQKhVyvm3r2Ia/GwGK2CIA72C1gVHDLvP5KA==","signatures":[{"sig":"MEYCIQCHlWXRa73hkWeYp0ZfccCRfgeYMVNVrM2HrbC9stQaeQIhAONUuyA1MKNfe+6QoBtsy9Cjd3VsVBhMjcgtUpKNWvMc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10696277},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"b24fd29d713fff06f64a31bc454f63fca1a637de","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.6_1780385034429_0.6439357131950743","host":"s3://npm-registry-packages-npm-production"}},"4.2.7":{"name":"@ngocsangairvds/vsaf","version":"4.2.7","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.7","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a473a204b506d6af927cd22895549870a72fdcfd","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.7.tgz","fileCount":1389,"integrity":"sha512-rVsyjJZ0ErVJewuqO2wF1Q64uFM7qX9YRHVv+W3eEAlj+5LBLyTcnUvRFlWw+NRVf3nbvYxElqvZnExMOp2KWg==","signatures":[{"sig":"MEQCIHVo+1swG69ZHlsDy1PwgHZ8Qvz7u6SKZ0+2YuG19wthAiA6hU4Fy0NjD3uS+PRFQVC1oaANxUSQdgyqRDsJixxAyw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10696648},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"9776ffb55e2f61e93f6d2ff2df44a2270fda88dd","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.7_1780386372108_0.44988907133927203","host":"s3://npm-registry-packages-npm-production"}},"4.2.8":{"name":"@ngocsangairvds/vsaf","version":"4.2.8","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.8","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b50fa0139daa0149c220b5fd8aae3c8c691ff615","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.8.tgz","fileCount":1390,"integrity":"sha512-G8rOBMfF0BfaSo9R6NLT0fVHm+Eo+Covdwj92BVjvUM+a3l5GDRIYJa+7UNk/DYbI9ePfRAhaTOzLjJ0tiaojA==","signatures":[{"sig":"MEYCIQC+84xZ9vwuu7UxUMPGBHTYeR3nhkbldO8d7JZrQZXv7AIhAIhSqbnK5+hufHt84BsRqHNNWGNUboyqThQrvii/VYcS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10728361},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"3279725f955df2893f06cc370dd7a820a16dd623","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.8_1780543898621_0.3822815881916537","host":"s3://npm-registry-packages-npm-production"}},"4.2.9":{"name":"@ngocsangairvds/vsaf","version":"4.2.9","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.9","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"5e9aeb6fa7837b0ad6097b903e07db3fae765e9d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.9.tgz","fileCount":1392,"integrity":"sha512-6qulk8DjN+ZrqSzcg8UtERh6T9vZTm3aTnEQAw8bcx3KeQ13PG2FhCnIAkgF2wvk+HW+J8VCHemsJ3ou1fAxuA==","signatures":[{"sig":"MEUCIQCdY5siodpX/8VFMay8+Mhx60x7ye+HTC/VmfkbWmNcIgIgVwhwmH29kVq5F2QnYK17Wa4POrV4/macZ8a+5xYRjCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10753357},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"a047108905cd652f0b10c5397cab741fcefed1b4","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.9_1780624486123_0.7486624865492173","host":"s3://npm-registry-packages-npm-production"}},"4.2.10":{"name":"@ngocsangairvds/vsaf","version":"4.2.10","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.10","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a1a6ff79e194967d3124373fd630a928d3ce5abb","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.10.tgz","fileCount":1390,"integrity":"sha512-LkIPibkm0wu0V81g71oZ0cgm2E59ajomYH4kmVWx8DDzg1YdEPwjr54b6rJQsyxLWl498SGS3a5vijvndlEtEA==","signatures":[{"sig":"MEUCIFfCrzk0J0xwxaaI8gj/RZOPiHgSkCaVBp14VfGhZ+0LAiEAto+FwJYkyggnkVz825QGXEZ2lIzdOd2Fco0gPI87uxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10729872},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"062aae085687a53b7501c49c8c5e124ef5edb889","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.10_1781078929593_0.41748462025692645","host":"s3://npm-registry-packages-npm-production"}},"4.2.11":{"name":"@ngocsangairvds/vsaf","version":"4.2.11","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.11","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"0866fdaca767b34e6c6c3c91c6cce3545c1f2f98","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.11.tgz","fileCount":1394,"integrity":"sha512-x0TQzCMNHqxC3FtjYH9vYQfeOYCQKZD0uekA03qt5CyKlTWVVkC15stc8f5xHLX6ASPvNCF7DD/+hgxkrW3yBg==","signatures":[{"sig":"MEUCIQCo5FhCf9mUiIW1MQi2Ter8v0XQIKeR+88yrPR2+ixv1QIgUgzG6Y6eYip+KPoU4ubq575sFA3M2DbXXsg9yv4+ls0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10735123},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"8a2b97de607de68bdd72131e09d65451b215e797","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.11_1781247213250_0.7682881198748719","host":"s3://npm-registry-packages-npm-production"}},"4.2.12":{"name":"@ngocsangairvds/vsaf","version":"4.2.12","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.12","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b22130090615396bbe2612a3ce4baf0eb8f6c795","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.12.tgz","fileCount":1394,"integrity":"sha512-ydohPK6LgkAiYgaTbMJrBwZR+hh47ZY7wdWIgrvdkgGYpf+vrTY6QYMlvh1FTHapeFTm3+7UM0+LxnwBDdN4Dg==","signatures":[{"sig":"MEQCIHd0fs1SEIqnwn8iKxlwHG7DnNYtXBVv750X+o8Jru3YAiAEf8wdPj0xP49jGxF201jFjGFPIyUVPt/WC5UitsdIRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10748810},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"df0bc21fdb8d5a2f5b01cef733366176c90ee272","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.12_1781497343680_0.4642959390855772","host":"s3://npm-registry-packages-npm-production"}},"4.2.13":{"name":"@ngocsangairvds/vsaf","version":"4.2.13","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.13","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"836d41db2910601f927a15a3e9b9a657d51b97af","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.13.tgz","fileCount":1394,"integrity":"sha512-Crwcjiu/+Tf7jXOuiCUGVjgJU2w4LTBh/c/otR1Q6K4VDuW9GXLC3/0FgcTP4lr0K5hi1D2mydvrvyTekBvFeQ==","signatures":[{"sig":"MEUCIBC5HkeeCIYeyZ2McSAYLNJGkrcMu8guCPtuLUmsz1szAiEA9m1Zm/OfHv8gaNPszc6vkDD9JYjztdAAItVpn82vy08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10750190},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"b7b16c95b2ad14fcc1f59b9f50dd66931ff1a034","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.13_1781498971357_0.3558999871051092","host":"s3://npm-registry-packages-npm-production"}},"4.2.14":{"name":"@ngocsangairvds/vsaf","version":"4.2.14","license":"MIT","_id":"@ngocsangairvds/vsaf@4.2.14","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"d0cec018388f2a248098cb004d20101a7d77e7ca","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-4.2.14.tgz","fileCount":1394,"integrity":"sha512-9dzw1UtC53NZZtd0FBfdcKJBAvNw9kUsKU3hzLNOEaLr8u6O4wiuLKYNQVSq8PpqtxXQJ2DtO3AZ1dHpLbIWUQ==","signatures":[{"sig":"MEUCIAgNv08YFVq+H8ciXvE+pWs64x9PFXZndN6fdDpWjju+AiEAzF4AEcQ0fVtIA2dAMsIF//PP0aJt3hKb3+bhltlnyBo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10750836},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"bb7b7e457bde4c344a682170b32364767c10cf4d","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_4.2.14_1781513475018_0.9581957046068998","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"@ngocsangairvds/vsaf","version":"5.0.0","license":"MIT","_id":"@ngocsangairvds/vsaf@5.0.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"5959c598504c9b6842155e79a4329fcb89ba4345","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.0.0.tgz","fileCount":1438,"integrity":"sha512-dLhpAbSsXK9nnLi6KKa3m7g52WC87WW48IRRQCrMjtUb3OqCtF5lf/uO4vXcGvKHf5US/cB87mSjuG/ONJ8brA==","signatures":[{"sig":"MEUCIQC8OFw2Qnyyhmp+2cupEU76dsA074TiLP+rkC1FEPaKpAIgZ9/RsgNpvTAkNrM3buDF2C0gAAM9GGarPr3w1jzhcpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10820198},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"4e5d37d6aa15019cc0ace05acbde291664724149","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.0.0_1782456276288_0.5400770023659691","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@ngocsangairvds/vsaf","version":"5.0.1","license":"MIT","_id":"@ngocsangairvds/vsaf@5.0.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"c8db18be0038784ca2793c37d7bac4da39660425","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.0.1.tgz","fileCount":1438,"integrity":"sha512-QI02D6W0oi9Cah6ukUwqU26r68SormAZIfB2r7zJsRGD4bUI3ywfHuYrje590q37ZQitNFiOd9pIMeeCN9AsIw==","signatures":[{"sig":"MEUCIQCwYMnYRetoELJ4Tc1tHUQmBFiFHJKwU4oVjY3XIr5HfgIgaMvrPJjjfq/3C8hYPQenvcy1rx/RyGN3y3sb0thTcJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10822728},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"0d222abcd8776da81dc5143700c04d8409b96fe7","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.0.1_1782462555741_0.3922501341058695","host":"s3://npm-registry-packages-npm-production"}},"5.0.2":{"name":"@ngocsangairvds/vsaf","version":"5.0.2","license":"MIT","_id":"@ngocsangairvds/vsaf@5.0.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b3a9df924ebc04b02399c526f6cf45bf749f220d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.0.2.tgz","fileCount":1438,"integrity":"sha512-IaXd40cPbqZmwYffkWNSfqN5c6W430WEKuYqZvfUlaVWSz6kG/lC6RjXLK0Tq+4x11LY8RndnseuLx3eHW9R/w==","signatures":[{"sig":"MEQCIGY7AkztA/nCuO+ynsOzTjOfsExPNo4nA6Grb/4af+9oAiA4tTadY5lERw5Ji00Nbao4Lz/TSt0TXTpGnHeRJDh7zQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10829937},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"1ae6540aef179b718e670ccc82e63d4722977042","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.0.2_1782781893364_0.8742861391616228","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@ngocsangairvds/vsaf","version":"5.1.0","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"7bebcba246d14aa4b3b23515bdac3f3850add8ad","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.0.tgz","fileCount":1438,"integrity":"sha512-HnVuWIZG/w1KqNsvf0U2/4sADvuisuzpzfplzaTpYifKQO+URaeSrzCsPdWXJgiUuHwlxueg4DKAPjMs6QORmg==","signatures":[{"sig":"MEQCIH2xdi5veH6sappjAL0HyoWGKIRWosH2LRdJIs5F+GT4AiAnqvE1I8wkyQgiQXktW+hgJkVBRY6Clr1qxntlaiLKzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10834119},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"fe91aa5fdf433b300c78d2d5e3fbe91ba1e7fdab","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.0_1782788063693_0.5906515141887978","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"@ngocsangairvds/vsaf","version":"5.1.1","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"781b45b3d7b0adc695b80edb621c1d5bb87b1d1f","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.1.tgz","fileCount":1438,"integrity":"sha512-W4Q+4b6ZR8aNjJHCyigNxOuhYCJ7mFxQYG489akPCBP2YBr8sQgOMFpDcYcJCuYFoW5QiHbt5IIcLao+upI7Dg==","signatures":[{"sig":"MEUCIQDi45oFP/FQYk/dmBwMkpCYCVJPVRzlAOrl1fBM8SbiuwIgTzjbG1bgURqJ7HE4yPtUHLmXfpWsQeS7Yg4D/xFN2bU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10838766},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"94141c73aeca40661ed2afb9c3771aee3242701d","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.1_1782814664216_0.6622904263377529","host":"s3://npm-registry-packages-npm-production"}},"5.1.2":{"name":"@ngocsangairvds/vsaf","version":"5.1.2","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b2b8a178b456f70e9144f04757b9efe75ba6de4a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.2.tgz","fileCount":1442,"integrity":"sha512-JQWv2Z32KBbtQWJ4Dx4Q0o2FJ163lzbUoa5mjJuj6t1vcH9GdLN/cX7v+jmAwEig366TRP+HmiPIjUQYMRcp1Q==","signatures":[{"sig":"MEQCIFFdUoAJ+XSc4GEClLtadVSk4psmjYJYiN0EaES2I9cgAiBiRHnLSk9A8nTHngtJyF+2fUxvZ6OLQUXnO0yjhj0ZHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10901039},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"a57b2279ed7ed24848323a707fc0f8c97696e34c","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"vitest","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.2_1782894641431_0.3667535810609346","host":"s3://npm-registry-packages-npm-production"}},"5.1.3":{"name":"@ngocsangairvds/vsaf","version":"5.1.3","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"4573a9007d2276f84f701cd6f208d7d77b57a787","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.3.tgz","fileCount":1478,"integrity":"sha512-9tsHMNVdsRXafV2eVvR8fcmL9qWs6KY9QYqRbidfyR8ps9lUPiwb8fo/L7+LvpjgCvYCo/fkrRDRnW7KVvqkhw==","signatures":[{"sig":"MEQCIHH8eEbf2Io3SMHLud30J7EhWS3lB9d3n81A8F1jIqi5AiAViG1AfSXlAri8TE4Pe2PQZr93DoKRWLcT7rirFy36DA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10985292},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"5a6937819016c7818929ed65dd02187672aec150","scripts":{"lint":"tsc --noEmit","test":"bun test tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.3_1782977639829_0.31070055345163294","host":"s3://npm-registry-packages-npm-production"}},"5.1.4":{"name":"@ngocsangairvds/vsaf","version":"5.1.4","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.4","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"d62eed499a8e3561bdb4cf0257add778d3a730fa","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.4.tgz","fileCount":1486,"integrity":"sha512-H1BEC2DruhX9L33XhlYnazQA+K1xpeEkzne3ktG+E0QLirxOOiReSeiVUTwVo7wbiQaNlAySmZrcdnEkaxe9Zw==","signatures":[{"sig":"MEUCIQCotn74tWoTzxyl39DQLmRGQroelJgpfRUGRELfZ7n0kgIgOZ9YE4HNPKzxkucp+poqWEUoSo/WJBATuEKdyQc82f4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11025071},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"8b09cb5329a54873b58f5a571470e99eddd45b07","scripts":{"lint":"tsc --noEmit","test":"bun test tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.4_1782987556282_0.6008900715981835","host":"s3://npm-registry-packages-npm-production"}},"5.1.5":{"name":"@ngocsangairvds/vsaf","version":"5.1.5","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.5","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"062f9ce2760034321225213b667ba37b07f1e99d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.5.tgz","fileCount":1486,"integrity":"sha512-y1Zz1YXGnfg9S2broql1myzZp9E9Wi+AgvMYFjD0JLUUMDLPXo/dAK3odm2Fnh2l6raRlYWsp3xohu+hpkRcDA==","signatures":[{"sig":"MEQCIH4POOiz6joxlpJiGYbmhwxW9wA1/uwS7MgdO3xo4ITyAiBoGXni0aidoo23UFyTivKhetAQOiftJ+WhMY9y+1YsPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11023954},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"608bca41a701872ec88f8de8444561b26dc4918d","scripts":{"lint":"tsc --noEmit","test":"bun test tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.5_1782989417872_0.1715220441615357","host":"s3://npm-registry-packages-npm-production"}},"5.1.6":{"name":"@ngocsangairvds/vsaf","version":"5.1.6","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.6","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a1af10a5b080c116bf46e687ebcb07978f7138f5","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.6.tgz","fileCount":1642,"integrity":"sha512-JzdbtInPaDjWTNLPecVizy9Yd9f2e1drrFB1jxah1DvHsNZENIoJFI2nlAkp1unV7vKktVU5u8EqgoDM3Fkpyg==","signatures":[{"sig":"MEYCIQCvlBxdZogpeIrMJo8OV5uO5LjQwYzhBvuVYjNl8a1xMAIhAMDm45s/fFrnlP48ieYxvtx76pdW7yoOP9ZksojkcqUf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11057237},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"2a3627ee902a834ecc203f8be7c5d4a1b88f6755","scripts":{"lint":"tsc --noEmit","test":"bun test tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.6_1783062129559_0.48004512059488413","host":"s3://npm-registry-packages-npm-production"}},"5.1.7":{"name":"@ngocsangairvds/vsaf","version":"5.1.7","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.7","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"da6b74796582001838ece74a8bcea9fe2e567e65","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.7.tgz","fileCount":1648,"integrity":"sha512-sVbB4sqPSZJx6X8ZkhDuniIaxB1TUnKLvjZUDBAirsSZoXh1BJx3Ju1A1qnNC2YYvVhmQ2ko6NLFmpMfDLA3/A==","signatures":[{"sig":"MEQCIFIBVR4VeRwRMXX+8aBlO48khpH+ojvUrgBTJcXeA13oAiB7IQxFBwJ7mCgfjrriEeojyUJ2ee3tOqwLp6bkF4U8Gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11189401},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"15fe849144ffb07dc5c6b24e2bc6316050e118ad","scripts":{"lint":"tsc --noEmit","test":"bun test tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"logging step","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.7_1783072567325_0.584384636163777","host":"s3://npm-registry-packages-npm-production"}},"5.1.8":{"name":"@ngocsangairvds/vsaf","version":"5.1.8","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.8","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"814294ce74ad07a170ece46478c50a6135b98645","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.8.tgz","fileCount":1651,"integrity":"sha512-WtBcNqgEQ7TSPiUEY0yKD+eA0TqbtOYc9fXWJugGXkJMMs/l6mlZtpPXlT8oDNc/LDHwO2R7xmhL15RwatUwiA==","signatures":[{"sig":"MEUCIQDZOKvUBADSkqsDPgzd7tzNWU+TBh6U0e6EmZyCYgBSswIgRvQTNxDGH4Z7MKSCCZRUw12YEeENB6zG+H4gtS1JZOQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11214875},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"f15c52b4cf8e59fef78557d2dad5fe4d233dbdd9","scripts":{"lint":"tsc --noEmit","test":"bun test tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.8_1783164708103_0.9366782363279584","host":"s3://npm-registry-packages-npm-production"}},"5.1.9":{"name":"@ngocsangairvds/vsaf","version":"5.1.9","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.9","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"fc1ebad750dd4b03050ec10db5a3ec1e37a69767","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.9.tgz","fileCount":1651,"integrity":"sha512-I00m+lZoUSffe3OEYK6iBZvmz5p3/4rGu/A/qby3bWnsVU1AbQWRSIlcbr5w/c7amCD3zkj6Z6wk/qWrRlCQ1g==","signatures":[{"sig":"MEUCIQCDMbkK1aKSzwSMJlz6K38qFerADhT5k7DWOZm1MGFuRgIgc1GnGzMUPafDSWom+RNiZD6WbFmhzTogfkLNj4Vrp/0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11215859},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"0f5287611e9a8fcd6e8986d0df4ca5cd6870a39e","scripts":{"lint":"tsc --noEmit","test":"bun test tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.9_1783172289103_0.9020317696011544","host":"s3://npm-registry-packages-npm-production"}},"5.1.10":{"name":"@ngocsangairvds/vsaf","version":"5.1.10","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.10","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"bf1237d380fa2bbcd6b9eab0fb6eb10c9c5324f9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.10.tgz","fileCount":1651,"integrity":"sha512-FjrDGckwPU9raH54kWqVwaqz2Sr1pLpdHD85vbgkQHWuOcPeVGnV0GsQLhPzT8VAQIK6iQHXxbOjm1iybChr/g==","signatures":[{"sig":"MEQCIHUkL30gq34If5LgquGAsrcTbYvaRKh4ohJUh4GPuefnAiA+b0OpwzXJNKWz9oQ+M9dFZ7Ov3GA2nw9LXGPs3OkIIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11234925},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"7e9d962522927be2f4017828675dc0208517bf0d","scripts":{"lint":"tsc --noEmit","test":"bun test tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.10_1783174540243_0.8235832410241841","host":"s3://npm-registry-packages-npm-production"}},"5.1.11":{"name":"@ngocsangairvds/vsaf","version":"5.1.11","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.11","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"5548836337f1a757f46c5e007f70b0b160f4d965","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.11.tgz","fileCount":1651,"integrity":"sha512-tVtcvZGqbR5Lhkr0Jmq9yR0ynBssqtPieNPTRmas0rKWCMgrL+8VAMoyIdOfsdXFTQy8jJ//p47/YW6qHKHiHg==","signatures":[{"sig":"MEUCIGvGjaLWfwfH+URBdup1BhRY1V/YkS3LeHyZ4V0jhFxHAiEAwuYMjY8e5ElMeuENAwdk0EZOpHnqq+MQ992+ncVEAxs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11237792},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"43e01f663d44d5c8b15a0886d386465864a50c1e","scripts":{"lint":"tsc --noEmit","test":"bun test tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.11_1783174839540_0.9939477144760032","host":"s3://npm-registry-packages-npm-production"}},"5.1.12":{"name":"@ngocsangairvds/vsaf","version":"5.1.12","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.12","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"fd9a99d14d6afdaf412a030c2a258dfe0adf1695","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.12.tgz","fileCount":1650,"integrity":"sha512-27YWszyERgrnZl6kv2g95AppUIHQmWxjYk8tsfozAXI0093ttfkC207iKYBvUXskk6j5MreujfutwC023gtMLg==","signatures":[{"sig":"MEUCIBswbzV7AlngUVvQJzHYUulwQzyN4q7faevfgBLrPa71AiEAxytESHNiF6Gh/TqKH3qiIhRu60g7QOCAck766FV76cI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11236305},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"a732bd730b501146b0a39b0a7dd347dbd49f0775","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.12_1783181912177_0.9039852968019702","host":"s3://npm-registry-packages-npm-production"}},"5.1.13":{"name":"@ngocsangairvds/vsaf","version":"5.1.13","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.13","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"caa5c132d431b8f79ba46d5c2f8fe26f0f2b0634","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.13.tgz","fileCount":1650,"integrity":"sha512-YQFVcM3Ge9HTgvLqnGJz7kd7viU6hI7QQYXllCnxp15xPMMhkw1Fn0G5s5lmBzFwTMbrz94ggC7hq/eK5ruQyg==","signatures":[{"sig":"MEQCIF/Db5g/ulTOZCQ33rvndlsJLa/Y73y6U2ijpF4HamJeAiAUcjvU8rUXnIiCdaW91Zi50hfMPrKn3/bB1dIYTrhqiQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11239000},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"50d1c87b775cd5d4f405aa2313aca39e092e72fc","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.13_1783300436236_0.36959010312559837","host":"s3://npm-registry-packages-npm-production"}},"5.1.14":{"name":"@ngocsangairvds/vsaf","version":"5.1.14","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.14","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"474e2cf39a49bea2ce3674f7a61e3bdd80902002","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.14.tgz","fileCount":1650,"integrity":"sha512-7Q1vk7Djw0JsGn7ulbrOX+aCaveE5Dv0HAqnGfvJasU8xGqlc14N8jonnSmbVlcHehZQLZyQrr1+zvr7ET3/2g==","signatures":[{"sig":"MEUCIAJgCRfmEvPWaOB6f8ggScf6VFdbxIXyLLlFMO7wUZeyAiEAwaALmEx9q3TI40nvACp//K0I+0Vu+JVaKWOLVuLfYgk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11239943},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"b42d6b8cfd89e336bc2954ea78be718596d9a7a7","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.14_1783302367756_0.2957774807619158","host":"s3://npm-registry-packages-npm-production"}},"5.1.15":{"name":"@ngocsangairvds/vsaf","version":"5.1.15","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.15","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"34914ffa2793b8c48770720b34493c876c999be2","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.15.tgz","fileCount":1662,"integrity":"sha512-XmDQOP7ssSc1wzcGUNLQ+XocbA2sDLs9rurF7Uw2jpHH6sGJZSZ/GN3Pp3mmVoa5BChEQc1s+5+1HKMiTZ6uFA==","signatures":[{"sig":"MEQCIGOi2lW5lvKb0RnO+KtU9dpuoaT3PKHmIHbFxHWyMCthAiAfRrEZFB5aYSBzKgatiSao9jz2pHazARU6K7hn4B0ijQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11291500},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"aaf978264737cd5c7d7978d6434c07a1bc875e70","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.15_1783304578083_0.05965273739734478","host":"s3://npm-registry-packages-npm-production"}},"5.1.16":{"name":"@ngocsangairvds/vsaf","version":"5.1.16","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.16","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"7a96fa949333576017b75adfcba7fa449247b7fa","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.16.tgz","fileCount":1662,"integrity":"sha512-57xa/70ljP8dG2Sdys3X6GR/2wCFCnJ+RDsW5hOon2wuslp4nzfyQo4QgDeYcqn/I9GBo9b+rw8UP0sSn/Lyyg==","signatures":[{"sig":"MEUCIQCxLiRIfDiUeGBeeivkf2lifX2A+XMgKKEzI8lKTw/yMwIgKGa+KMrZCf5bSD8tGbz+xhAOpl+XkSfLpbBkpYmaTiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11292356},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"c55c333cf52baebb979ad52e86b7979d9b46432f","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.16_1783305108035_0.27814308397335274","host":"s3://npm-registry-packages-npm-production"}},"5.1.17":{"name":"@ngocsangairvds/vsaf","version":"5.1.17","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.17","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"36d4ba90eb08d3ecbb4bfa7c9851d2bbf8cd3e36","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.17.tgz","fileCount":1662,"integrity":"sha512-gg1IBt+9B14ncWiGxAPXjwnX8c5oyBIsEXsfaQYVYEUBO+LCxuBXf2FcVLaR9W/z6k83UPu9DrCAjgm952meLw==","signatures":[{"sig":"MEUCIDHmeSIKYiT3X3Ph7SvkZCfvXl5E4Bmn76W+Jt2NwXBTAiEAlYvw518vsKAVpORNed/ELcqef53KgeZAhKqCjsckEzk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11293421},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"2dee8bc02355f9c7122b59c3ef0b6d2e7cb80e99","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.17_1783307038222_0.8355973143733582","host":"s3://npm-registry-packages-npm-production"}},"5.1.18":{"name":"@ngocsangairvds/vsaf","version":"5.1.18","license":"MIT","_id":"@ngocsangairvds/vsaf@5.1.18","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"759170982f6f849a9624f4f7baa326f2624d4412","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.1.18.tgz","fileCount":1662,"integrity":"sha512-yReQ8lhU0UX0L3dAif+yTSFly/5FwHITdJyHdF/bRA3eAmUkWGMJKqQLuVxgP4ULB0Tz7SG8AEV5bbyumUMC6A==","signatures":[{"sig":"MEUCIQCti2GA+RGSkuoroACTqMbHwoRVSFGjEOxtZwtC7D38nAIgLXEEXkigLAHmlrDFMEeRF4e3mzjjRisYmINYiCkIa+A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11293645},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"98d099e9110e75cf503b2b3a38a299de1b94e111","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.1.18_1783307609149_0.6055428759525012","host":"s3://npm-registry-packages-npm-production"}},"5.2.0":{"name":"@ngocsangairvds/vsaf","version":"5.2.0","license":"MIT","_id":"@ngocsangairvds/vsaf@5.2.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"5ad4269895b81b1d2e74de7296075eaa2a6a12db","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.2.0.tgz","fileCount":1710,"integrity":"sha512-D6VPgr4O+T6SpGHym0I4+5Ij4iKCSdSwomMGBnb7+c+Row9T0ICY4xmwkby2reFUfcEfJv3ZmvAHqLY/2bdIuw==","signatures":[{"sig":"MEYCIQCDjz+q6P6v52BDq+y6ylPggGLcT6CNVan/UQe7XxMQEwIhAPV67M+B5eOmPNOdbBnotIdI/vCIIE1oVajoyBW3kqYP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11531573},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"5c00b5a501bd1ca28258ae331feffec898e61a01","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.2.0_1783338125130_0.39572532780195213","host":"s3://npm-registry-packages-npm-production"}},"5.2.1":{"name":"@ngocsangairvds/vsaf","version":"5.2.1","license":"MIT","_id":"@ngocsangairvds/vsaf@5.2.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"09e7c9e0aa6957561b8b06217cc59a6aa8c2a0f8","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.2.1.tgz","fileCount":1710,"integrity":"sha512-LENC9kxCGY6+53nSuvGS0eY9cUf3s+X+yGm7bfU2qz36+9Ota5TD2bRtaIZvBdlbEnegf5sJ7El0JZ11DOievw==","signatures":[{"sig":"MEYCIQDQtxdbdvDHvUGW88zUWlOS1ybkjfWrcSr/V9XDSCbSzAIhAPbkTTP2SQT6tTIUhqHrTtamFW/w2ZpyhtKHC+jjN1F1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11537232},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"042f61d0268258311881b0638ca70996451283db","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.2.1_1783340121787_0.17106766259700046","host":"s3://npm-registry-packages-npm-production"}},"5.2.2":{"name":"@ngocsangairvds/vsaf","version":"5.2.2","license":"MIT","_id":"@ngocsangairvds/vsaf@5.2.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"ba5e3cc7bd35d7ec65b519e0fd41eee35426bbd9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.2.2.tgz","fileCount":1710,"integrity":"sha512-pNoj4156HQRCSnRTeR7awox7IrFATI2974+O6TfFBlkaBm+0+Wzx6h+wWt23FZlXkyHFK5LIi+Ruc10mvyt3Gw==","signatures":[{"sig":"MEUCIQDYYXYhl88MQPr3xzn7peGFvv6r5b5iuwjdKImOjewofgIgQq7IqFIhcCAliNXR8I4NoHwUW+e9qp9RwTIfKiCKULI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11537670},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"a1da19a3ba05bc2ac84e89bbdc39587db4868761","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.2.2_1783344123304_0.9461431535885525","host":"s3://npm-registry-packages-npm-production"}},"5.2.3":{"name":"@ngocsangairvds/vsaf","version":"5.2.3","license":"MIT","_id":"@ngocsangairvds/vsaf@5.2.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"13b7c01d55040bb77a107d4486551f47c606a38d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.2.3.tgz","fileCount":1710,"integrity":"sha512-42MR5FURo4gGjxE3S0XKfYYH7zh78xInXB3FObL4FlVjLANWWAqwSb8joF6et2TGVI5CLOwdeueRIksQbAN4+g==","signatures":[{"sig":"MEQCICwXNufIj9v/rfba86Mtxj8gmg4EEgVPVd8arZYlcR+oAiAI6rmAsqbxgyg+lvGVrP/ibukE8Ejn8rZ741cmCY+xIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11539145},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"9ce4ed3232d52d7740d4f9419dc786acaa41d894","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.2.3_1783354086232_0.25600265452978666","host":"s3://npm-registry-packages-npm-production"}},"5.3.0":{"name":"@ngocsangairvds/vsaf","version":"5.3.0","license":"MIT","_id":"@ngocsangairvds/vsaf@5.3.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b4275eec35e16974446b1f85f90207456884dc76","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.3.0.tgz","fileCount":1712,"integrity":"sha512-GX8dWMSmQjGQa4jo8tTj/TTZMnC+frMfaFmya68hczEmmxeQxX9AZwbM7eW+34+nJPkfWQyDVjQTHLzvhxuRkQ==","signatures":[{"sig":"MEYCIQCI4IvbLjsW53mW/hQB+QKooOKINTl77xK2XRX4q+YhhgIhAMTlLfxaEWDqORX1jcc8pobFo7Ht+C7riE0S77UGxdpK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11549313},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"e616268da2af4bdc4139732aba507c0c9ffa82ef","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.3.0_1783359433741_0.9137176894746311","host":"s3://npm-registry-packages-npm-production"}},"5.3.1":{"name":"@ngocsangairvds/vsaf","version":"5.3.1","license":"MIT","_id":"@ngocsangairvds/vsaf@5.3.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"e9b4b3313261f2a5c2fef70969c4422dac30b07a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.3.1.tgz","fileCount":1712,"integrity":"sha512-MtuuF0pi7sys1XZURzip3+g8DG0H+aElJS6+RrJueciffOXWIL7XUOQyhOB+nLSorD07xWRe1ge5puwCtZ+Ogg==","signatures":[{"sig":"MEUCIQCYwAfoqgMcxf1P3f+7HLFHZSsC1ye4ULQYqZDIINzDygIgLDT4rK5wYOslGBTeBBfVZcp6xcLtpDYIln1QVt1siLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11556312},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"1cc7a471542c2336841b004de56c20e78a351fb1","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.3.1_1783387585225_0.6656288534938946","host":"s3://npm-registry-packages-npm-production"}},"5.3.2":{"name":"@ngocsangairvds/vsaf","version":"5.3.2","license":"MIT","_id":"@ngocsangairvds/vsaf@5.3.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a1dfcd50829c4dbd0e584a68a65fdf05a202e690","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.3.2.tgz","fileCount":1712,"integrity":"sha512-Tht91A3r2HlQRDtLICiGSPXaipsQbuUtX/gzn5S3IjCF3M6SkUHgSNXbKcAnbP6DIx6RB2f9ApYgYYLqQZJmNg==","signatures":[{"sig":"MEUCIQDtzTNWBkdhVyhFsv2MqxpUk1uqrdzVm+I5mDVLaTMaZQIgO+jmpYAl1w6bjEZljgxoFTq+tbwjV23VYwohuVV7l7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11557108},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"8dffb96c041e09cf7ac666be4e98fcf5a580bb39","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.3.2_1783388071212_0.22712521563553545","host":"s3://npm-registry-packages-npm-production"}},"5.4.1":{"name":"@ngocsangairvds/vsaf","version":"5.4.1","license":"MIT","_id":"@ngocsangairvds/vsaf@5.4.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"936982af3efa1f083edaeefc6065d494196e002f","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.4.1.tgz","fileCount":1712,"integrity":"sha512-bGV58yZQox19tRxbq4xB0HFuasViJrd1Dt6NPziU2C9uQr5BjRHeTLZ2pl6WYk2/SaYmGR/+rtVWLEkdcXqmVA==","signatures":[{"sig":"MEYCIQDSoB79GcOfmuyUlvmYKpYBJnniRmj4Xm+A+RXd+ZlJoAIhAN/qGJ1bUI0CFeScQpAxTK/htJnxfCy4v4V7u3WAR4EW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11558266},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"98c894ee0dccb50bfa8be3d30a99065bb6188534","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.4.1_1783391463358_0.2796819123794687","host":"s3://npm-registry-packages-npm-production"}},"5.4.2":{"name":"@ngocsangairvds/vsaf","version":"5.4.2","license":"MIT","_id":"@ngocsangairvds/vsaf@5.4.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"668542fe909eb7ca43fa53c6858d9d06db06405b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.4.2.tgz","fileCount":1712,"integrity":"sha512-tomzEbiXez8pxyBgFUkgmDsEqFyYPw+xtWoh9AWRgpWxs86YhPNzqR63LUToIayphcqFetiq+twvfKG54CQwJw==","signatures":[{"sig":"MEUCIHxVK5nSSR5axb0sDmfRNntA+z1tWdapO7vk88+yVmxNAiEA6HQJDj9HWB2m8BsLPXPXB6wMR3lx1Ml4sjRaah+zY0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11558260},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"2c555f93188dd1dcaa5fbc777c4b4884af3daa0b","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.4.2_1783395416951_0.23489553967515953","host":"s3://npm-registry-packages-npm-production"}},"5.4.3":{"name":"@ngocsangairvds/vsaf","version":"5.4.3","license":"MIT","_id":"@ngocsangairvds/vsaf@5.4.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"f15dd8c024310e2ae4cec3cb72ef40de641421bb","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.4.3.tgz","fileCount":1712,"integrity":"sha512-tcA4eGrkW2ePpLz+Ln9aQGEgyV5uS6h9UVLkn2e2vmIkxGJV0BGRMiMOCqZRrzwDCP5HTTCovGxS5EAfbI7mQQ==","signatures":[{"sig":"MEUCIECBgXw9hjYG1Jp5EMgCZMabqOh1RXMIWy4yObePFolWAiEAptpcS/3FTWI5i3HPy76Tixiphm0eXaJzBnx3uijQ9/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11558148},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"7da1636432a669f596c72115bd800c2f769ad962","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.4.3_1783396329655_0.967561965534925","host":"s3://npm-registry-packages-npm-production"}},"5.4.4":{"name":"@ngocsangairvds/vsaf","version":"5.4.4","license":"MIT","_id":"@ngocsangairvds/vsaf@5.4.4","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"1e34729652557092c335d2edb8e4002aea8cee2c","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.4.4.tgz","fileCount":1712,"integrity":"sha512-xB0l2xSkudohjXwOt+Dw4PM9Wog8Vbvz0Gg/Whk4ih5zsPwH+2VqSK/XJjrk6jzaw0iAHdm4tLO9246HBYFOkw==","signatures":[{"sig":"MEUCIQDtduAZOO052rJNv7iJN7p5ajn9Yvhu0m5glnhgr+C/WgIgAORuY+KBsYLpLQa/U0r5nI63ofMB5u6GKxHMEbWkbcg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11560983},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"13cdadfde6cf0db9680230e4fd307bba47795023","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.4.4_1783399481294_0.5894899973619641","host":"s3://npm-registry-packages-npm-production"}},"5.4.5":{"name":"@ngocsangairvds/vsaf","version":"5.4.5","license":"MIT","_id":"@ngocsangairvds/vsaf@5.4.5","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"3e8cd0c0f01ad16b8b8bbf47e4df593a267ac18e","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.4.5.tgz","fileCount":1712,"integrity":"sha512-upYcKnBi0ETsP2OjhYWydu9LgsaWUMtwuaBhuD2y5tSQ0+oxNsG78aktBBOvwX/gAigwbOSG9PBoX/Ylr/8r/A==","signatures":[{"sig":"MEUCIQChogdcEfpjefpqHP8VIglijLXzkc/YIo7Mt7arJvcNewIgT+Hft5wA6uC4R9l0nwmLYvB0a2Cr0NWgdD8PWiCb3XA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11559988},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"91dd738cf830bca75ee524d35d0b569a9da39fe3","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.4.5_1783409614054_0.2093532010748087","host":"s3://npm-registry-packages-npm-production"}},"5.4.6":{"name":"@ngocsangairvds/vsaf","version":"5.4.6","license":"MIT","_id":"@ngocsangairvds/vsaf@5.4.6","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"b936e27bdd1d2bc5055b3c91eea90c6f91eab572","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.4.6.tgz","fileCount":1712,"integrity":"sha512-i1It+Hof90tJVLUGGvEk2HwZrC2r/ehdWiIFSJf/3zcUs7TUBybwQCfK3O2AennaK/bpjVIR4AG2jzRAaNFamQ==","signatures":[{"sig":"MEQCIGn4hBVDzAxjHzUjiw4dEqvWIOulaVGsIL4is0VdzZpVAiBs2riAFf4zhj4D1zz4R4OPPaZGJT6i7RUHeZ74qG3hmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11561619},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"063c8cffbeb5d2e4428276f41062b94158ac013f","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.4.6_1783411653748_0.8207497555906611","host":"s3://npm-registry-packages-npm-production"}},"5.4.7":{"name":"@ngocsangairvds/vsaf","version":"5.4.7","license":"MIT","_id":"@ngocsangairvds/vsaf@5.4.7","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"32f55713386ea8c81667e774a47f2f5305d055b8","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.4.7.tgz","fileCount":1718,"integrity":"sha512-ZlRIvc6zwui8zp0ILnhew0/Y98MfmIvZi3x9k4bNOo3oihNoFDkkpe8pB/dRKgkBGEIKccNLfGx6H4BNvlWYuQ==","signatures":[{"sig":"MEQCIEdKaOelhkO3Kt5dl8VMu2tYs8ZA8lnUMRPrdixAjNnhAiAIP6zD1/9YTs+BksFMkniBrnyfd5uG1rUeWl+z2pLEOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11580759},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"2df99f70090fc0de0e4316ec3d272e42bd492565","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.4.7_1783417877395_0.8667534920898432","host":"s3://npm-registry-packages-npm-production"}},"5.5.0":{"name":"@ngocsangairvds/vsaf","version":"5.5.0","license":"MIT","_id":"@ngocsangairvds/vsaf@5.5.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"9d02deae6d78c81b4fa28a5a505858c2ea7fe5e7","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.5.0.tgz","fileCount":1717,"integrity":"sha512-72sZJdzjbtcq3rhDptL+1c/aT8BMatFG6+0a1/JCutjNqSyxNbfSv/+H0T+aafp1KqkF3Ik0Yt1y4oK+oU6jDA==","signatures":[{"sig":"MEUCIGHFvZzlSsUJwBkkaaa/Izf29MmyMoDGaIpNA/rDxL1dAiEAsbIMYeJMY+FXKEKOF7rbvkt6/XvG/6E7TugR91J7f/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11608870},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"2608e53df2f988224aade2222691b010c66dcecd","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.5.0_1783509461159_0.5097906261524516","host":"s3://npm-registry-packages-npm-production"}},"5.5.1":{"name":"@ngocsangairvds/vsaf","version":"5.5.1","license":"MIT","_id":"@ngocsangairvds/vsaf@5.5.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a37bc8a84aed8145828979bbdd93a3cce07bd0f0","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.5.1.tgz","fileCount":1719,"integrity":"sha512-n9n3Qu5imRsavWcy9Rj5NRpwkUPl/PbUjOql+5gV2PFwpA/KpRIaDqS9LRzMoRGTmUuROQ9POgSDsKDqwKmE1g==","signatures":[{"sig":"MEYCIQDeLTMr0oAhmgzA3Y3A9BJNzsQB9+guKWFPZsn+AtbCFwIhAMOgcN8SjwNFA0qY2t5vKsN7B8JRFlTV6CqP9/jAWLvd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11620279},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"4a64f35effcccac823bd9199cff5b6edce7d22e3","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.5.1_1783565925418_0.6698054557303479","host":"s3://npm-registry-packages-npm-production"}},"5.5.2":{"name":"@ngocsangairvds/vsaf","version":"5.5.2","license":"MIT","_id":"@ngocsangairvds/vsaf@5.5.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"90f5d2d49b4fbabf253e960b069eacd06a44f23a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.5.2.tgz","fileCount":1719,"integrity":"sha512-iKixSbDQr/59MfB4eRDtJKW+uJyGpAV764mdPXV+aOhJ6XCo+1+60tomHVOskohQLaGD8AUYQzAkR/Rq3Oswxw==","signatures":[{"sig":"MEYCIQDQVDH462fArBmDGfVHeDJZjGZ7o/uM5YdCRVcKUcrZUAIhAO6PndMkJXGOVHhiEa0ZVy79xBiJRWHYcplVC0MqEFav","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11622091},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"1d289ff5459d21dceab8d1dd2a288ebc3eb95c8e","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.5.2_1783569113660_0.998603323785342","host":"s3://npm-registry-packages-npm-production"}},"5.6.0":{"name":"@ngocsangairvds/vsaf","version":"5.6.0","license":"MIT","_id":"@ngocsangairvds/vsaf@5.6.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"96e64e4f50a04a29f9701ac05d563ee7431275f5","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.6.0.tgz","fileCount":1720,"integrity":"sha512-Aj218bW2fJ3qmS2KcUZNhcEIskWNh+qtKic9FyU3HMMA8X+hBL6rpmV7TQmdRX0LpG1Kg/0LIQ2OgJ2nBrYpyQ==","signatures":[{"sig":"MEUCIFR1SCnqqM7QhY6Fy5nMiDbnO2NkgJK8BgJqWZpYJNNbAiEAnV1pVITLOw6sFftVcHIFKf7tEARI9/STSSeYNRLSIQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11628794},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"dbdeeb98cef69ca7f07faad22bf1d883977d88c3","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.6.0_1783591086828_0.9355126854522349","host":"s3://npm-registry-packages-npm-production"}},"5.6.1":{"name":"@ngocsangairvds/vsaf","version":"5.6.1","license":"MIT","_id":"@ngocsangairvds/vsaf@5.6.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"4ad65252d3d57c1dcf262e2705cd2dcc10729b88","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.6.1.tgz","fileCount":1720,"integrity":"sha512-0YCcFXpQO8A85Jq37zc1uCXiCKDdv71kd+g3dc+VIP+O0WlgeV45rf/ypIMLApXvT4QHrnOiYtAmNBZJOERMcQ==","signatures":[{"sig":"MEUCIEs/rUE/QZe5uQJLcrsbzzMpGl7d9B1yXW+IYLkw7cujAiEA1AgmUpZ0UqEiRD6gztqbRXnsonwbCjxmYxMM2Ndk8v4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11628790},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"5554221491943bc34abdf64c9d0c4300b6894342","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.6.1_1783593237123_0.19364713151113255","host":"s3://npm-registry-packages-npm-production"}},"5.6.2":{"name":"@ngocsangairvds/vsaf","version":"5.6.2","license":"MIT","_id":"@ngocsangairvds/vsaf@5.6.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"142948c08dd0dc9ce0c1dbc4773d3a5c5208fcf9","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.6.2.tgz","fileCount":1720,"integrity":"sha512-yiRai8eigwoEjwHSyRaz0ldlz5a646Ld1qrvYgcMHK4CYcqRly/t73R4h7sBS8rUxk8KcLgm4BJtYQi4i/y1jQ==","signatures":[{"sig":"MEUCIC9ySfvQga27alO4KlCuasorzXEypRRVaNh4UbqHCfJ2AiEApWzWjVidK1D6GVrNxEnDP6hTDbJ8Oi56ctR4S9wLuEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11631625},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"ed63d7e98eb4f33abf83d4f7eb24b9a8b19847c7","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.6.2_1783649573745_0.7372421026780693","host":"s3://npm-registry-packages-npm-production"}},"5.6.3":{"name":"@ngocsangairvds/vsaf","version":"5.6.3","license":"MIT","_id":"@ngocsangairvds/vsaf@5.6.3","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"807b5c2fdc09a5b167e7ceedc9b7ebfa8d80d76d","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.6.3.tgz","fileCount":1720,"integrity":"sha512-s7AaqIJ4Ifkfhrdc1AnMwvNLxoNS3JHmBZOrTf2PJdXIqhJvlZZCNLvEpqTEhKb3X3n8igOlqe7KMh+La46keQ==","signatures":[{"sig":"MEYCIQCAi8gtcYpMRhXtbYEGmvdLATz45PHQU8AsjjdUfZLm/gIhAJPkUmln76o/9Oo7NWrs488uDQsqd7NAZcZ9QRPzA/3+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11643018},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"a5f2233c98a3aeafb33f8ed59c88948fc98209d6","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","pretest":"npm run build -w packages/core","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.6.3_1783913587534_0.8802190835033974","host":"s3://npm-registry-packages-npm-production"}},"5.7.0":{"name":"@ngocsangairvds/vsaf","version":"5.7.0","license":"MIT","_id":"@ngocsangairvds/vsaf@5.7.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"e08a77ffd175d175a7af2552e48c05066100002e","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.7.0.tgz","fileCount":1720,"integrity":"sha512-crJFDeJhRgx6Vjs+ygIpFVhyO0tBsGCz2E2n48DNS+dkWIOovhJwAHHEB923mWQwntSsrWFN07tQGYOfA5NoKg==","signatures":[{"sig":"MEYCIQDlWB0lo5eiHtnm39f1xBcJNGEwM4d27xDuaIBdo6PyoAIhAKwZO+tXTOwEwTgnb+C50X0o8p58IAddY5wAwdYT+KxD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11654492},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"f87e6867c08e5fb076997f4469c1e84dcdfacbac","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","pretest":"npm run build -w packages/core","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.7.0_1783929070663_0.42759707657705026","host":"s3://npm-registry-packages-npm-production"}},"5.8.0":{"name":"@ngocsangairvds/vsaf","version":"5.8.0","license":"MIT","_id":"@ngocsangairvds/vsaf@5.8.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"08f25c0f4dbe15d317bf97f1ec9cb203fca66817","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.8.0.tgz","fileCount":1720,"integrity":"sha512-TREnOdnQn+Mf8mJ3f+2vypgciRNYHSolxsDwf2u4WkkdBYNpWzoLAFQfeIRWCunrFMLb/1EAw1PyISzZjBi0aA==","signatures":[{"sig":"MEUCIGvUXOpEbdTKxq8jAkCi38NH4gPbc1Oe6f+4DuHn4h6bAiEA7R7qQXr9m/q5qxmnC2uNp8izeNn4Bd0e1mvX//Qvfao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11662490},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"6c918898f88d824d6ed1eb2a3bdc3a77086fb057","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","pretest":"npm run build -w packages/core","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.8.0_1783946844667_0.19046212659365147","host":"s3://npm-registry-packages-npm-production"}},"5.9.0":{"name":"@ngocsangairvds/vsaf","version":"5.9.0","license":"MIT","_id":"@ngocsangairvds/vsaf@5.9.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"cd52bbab8c6e0825e9ba8c4016a4e41c2ec38522","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-5.9.0.tgz","fileCount":1721,"integrity":"sha512-tX5SK7oJdmMABCl0n9uXvStUrgMEOutRPfm2bukDDjXVJKP1Wb1rj+0gDBPWqExHAHLITTPEtDBW998gTMZQDQ==","signatures":[{"sig":"MEUCIQCdv136Teu/YPM/TpY1minbrEpQd6S/r76RT9PTBw/togIgDVkvKZx/+LOlok01JtNl9g3JHdVVviC43W3gYhZqmB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11666338},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"6f366849ab475175c921e657ab91874f3a08a7f7","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","pretest":"npm run build -w packages/core","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_5.9.0_1783964975748_0.13579430391571634","host":"s3://npm-registry-packages-npm-production"}},"6.0.0":{"name":"@ngocsangairvds/vsaf","version":"6.0.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.0.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a2f1f318593d38fc784d4f72d86cb3721c982b36","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.0.0.tgz","fileCount":1721,"integrity":"sha512-P6guV9HypZ4ZqxukqPnPQkv0EwjBRiYYE5LM4+XA7KUKP5efQBHe2g0lV/cMTyzRw1ssrtUX15XmZVTP0Gs3Mg==","signatures":[{"sig":"MEUCIQCJfSpROYXpzl3ICtSov+z54/1Emj204u6QepuqiYxw5wIgTBnFf7ZwnMVcJhW8HrerGAr2LzZdGeaCfhqKnP9dNMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11670277},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"b60f4c5c67c4c812d1997bee5bdf6996fd6ae9f1","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","pretest":"npm run build -w packages/core","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.0.0_1784002329676_0.27654880504340196","host":"s3://npm-registry-packages-npm-production"}},"6.0.1":{"name":"@ngocsangairvds/vsaf","version":"6.0.1","license":"MIT","_id":"@ngocsangairvds/vsaf@6.0.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"3baef4d61db432c1f28dfa02ec6c2aea0ed81b9c","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.0.1.tgz","fileCount":1721,"integrity":"sha512-Efbxs2p9oTnmx/mWEORZ7KJT8igGwrfpbh/1OzgOlQELMo9Dm5LdXGwUxVLuYyVMzvl629BRuKSmNk7if1IPfg==","signatures":[{"sig":"MEUCIEISwXpkhd8y/l+NN1a5UTkcwB0HBF+01L2vLO/8mtFCAiEA8N4TQt2bLYK8tfKqbKxHOSyOgoZnCNVp8RjsTqHgxPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11670262},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"09e9f7c9acf08d62827fb02f56be7dcf727dd547","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","pretest":"npm run build -w packages/core","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.0.1_1784003373316_0.2976467591517078","host":"s3://npm-registry-packages-npm-production"}},"6.1.0":{"name":"@ngocsangairvds/vsaf","version":"6.1.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.1.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"8d1d8b0858e1da9a68871813898041e6f3819b4a","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.1.0.tgz","fileCount":1721,"integrity":"sha512-to+0g76VAuWWI7UNiaUfUahEzU7VWO2rgt7jv8HKUENvaleYmNJJcNPXRDTNj7CeQDHI0B4FSiSSqyfs3wuMjg==","signatures":[{"sig":"MEUCIFfTp+oKQ6y58vGNVl5tckdjFvYL+sXMt9u+C6t3AJ7aAiEAwZNOkyublqm3qbzGelhMvugjlkKIqKikCzTIDrDiFRg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11679475},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"824f088c7c43fada894eeae96cb3da8ca5480146","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","pretest":"npm run build -w packages/core","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.1.0_1784009154869_0.7316933981694886","host":"s3://npm-registry-packages-npm-production"}},"6.2.0":{"name":"@ngocsangairvds/vsaf","version":"6.2.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.2.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"5994c267c5ce60db751986de747c9405ba475bad","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.2.0.tgz","fileCount":1737,"integrity":"sha512-rVUFvC3FXM740qZAVeeSQpoSpCa3Aq1VKSJwI8MsJxgy1zrwfeGhxfpEyWJ/XRw+ZcJzwgag5t5jCWGEyZ8RCA==","signatures":[{"sig":"MEYCIQDS9rp4/HNwZF4HFQrVriawSWmhl9CS+OLdkFPt4vi9/AIhAOQpH9eL1ATqlUneaOQKtJ1z0v8geGN0aA7kinEc21YT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11667015},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"bun":">=1.3.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"43e3b1e051295b1b77ccf494b51bf6d56d95e997","scripts":{"lint":"tsc --noEmit","test":"bun test --timeout 60000 tests","build":"npm run build -w packages/core && npm run build -w packages/cli && npm run build -w packages/web","clean":"node -e \"const{rmSync}=require('fs');['packages/core/dist','packages/cli/dist','packages/core/tsconfig.tsbuildinfo','packages/cli/tsconfig.tsbuildinfo'].forEach(p=>{try{rmSync(p,{recursive:true,force:true})}catch{}})\"","prepack":"node -e \"require('fs').copyFileSync('package.json','package.json.bak');const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","pretest":"npm run build -w packages/core","rebuild":"npm run clean && npm run build","postpack":"node -e \"require('fs').renameSync('package.json.bak','package.json')\"","test:watch":"bun test --timeout 60000 --watch tests","postinstall":"node scripts/postinstall.js","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"11.13.0","description":"logging step","directories":{},"_nodeVersion":"24.16.0","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","@iarna/toml":"^2.2.5","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@inquirer/checkbox":"^4.3.2","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","bun-types":"^1.3.14","@types/bun":"^1.3.14","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.2.0_1784017755409_0.6654952748626886","host":"s3://npm-registry-packages-npm-production"}},"6.3.0":{"name":"@ngocsangairvds/vsaf","version":"6.3.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.3.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"21df6c93693a3811d861067b908c90da173a3044","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.3.0.tgz","fileCount":1448,"integrity":"sha512-KIlvER2a31Bo0IqProxLOa8zap5OgIsYrcvcmMC0z9D/lWCmJU2jYd/c0jymDAiHxY19M0VZEZM86M90QJho+A==","signatures":[{"sig":"MEYCIQCIlx3gU1r0uvF4nB9XNTxhgS8humfm9ObiVgirxr4dbgIhAMpeqMQvZphZ5gzoBl6FlYEJfeniQM1FO9alcGGMdEkc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10022556},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"7e2d0889337b17e0c7bdea94f39883f897fdce92","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.3.0_1784792776172_0.9477656835001171","host":"s3://npm-registry-packages-npm-production"}},"6.4.0":{"name":"@ngocsangairvds/vsaf","version":"6.4.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.4.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"392371d4da23ecc45f231e6a774a9f10db9e3888","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.4.0.tgz","fileCount":1515,"integrity":"sha512-qDAq51rRzqlbVH79Y7Y9eKcbX70ORXVxw+WRq56KdcMK1Jvc+Tw1uncZsKnCz8MP/+ET0mYngwsmzbldMAHsaA==","signatures":[{"sig":"MEQCIEq3UEqpIQe4Li0WJek+iqY2gMsixjx/WTby8RdYiIvjAiAavwiOUJhyIz/mo4MZ4OqocUC53uLKibhCml4871LR2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10932216},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"7e2d0889337b17e0c7bdea94f39883f897fdce92","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.4.0_1784856233941_0.046163713765760894","host":"s3://npm-registry-packages-npm-production"}},"6.5.0":{"name":"@ngocsangairvds/vsaf","version":"6.5.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.5.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"bbc65740bd9af4b5a41545dc426a9be41480cd7f","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.5.0.tgz","fileCount":1552,"integrity":"sha512-3601jDYPYu87Hiq4gwZjCaYibtDNp8I1dhTgSyJWKLOtW/UZKnCN0QpqoSYIHKJDpG4YSKL+c/NPztP7C5GyIw==","signatures":[{"sig":"MEQCIG9mM/XgJx75UBecOgyKLleR4+A54wsOcx5xRlZM4CcXAiBGbZriRIF52U5qRHsyIPMP3mr+y06Z9G1G7gexNA30DA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11639241},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"92b6492586fed63d3745f218c2fcb563459f0294","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.5.0_1785817873161_0.3472871970366376","host":"s3://npm-registry-packages-npm-production"}},"6.5.1":{"name":"@ngocsangairvds/vsaf","version":"6.5.1","license":"MIT","_id":"@ngocsangairvds/vsaf@6.5.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"0db4f6d63bd5ed08ac1d89e257470d425883ab19","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.5.1.tgz","fileCount":1552,"integrity":"sha512-YPzlicSJbw9uiu0dmMQsl4nRtHl7N3usE/SLF/b4G5LqDv6RvB84WqmeaCggNGEfDFzL5ZLHPHsXMo2nsyn1qg==","signatures":[{"sig":"MEYCIQDHk28WSk6bZ9UPmQRR6ZUUC+udmId3r7UPlwSPjuFTlgIhAL7V7QyS7PiZ1TBIFz8bZFgsBOu5jgguSeuuEGMnUIVa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11641186},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"92b6492586fed63d3745f218c2fcb563459f0294","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.5.1_1785820359789_0.4061470952981763","host":"s3://npm-registry-packages-npm-production"}},"6.6.0":{"name":"@ngocsangairvds/vsaf","version":"6.6.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.6.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"c219147244462243f096a824b832db66bbcdd26c","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.6.0.tgz","fileCount":1552,"integrity":"sha512-V+uL2AdqkqSyj3dJ/+7p/Gz1Z6+G3Wa1UOc0+2p8nXM7EqFpb+UOsMthTVYSifjmGGA799if/gmeBjViLSy2Yw==","signatures":[{"sig":"MEQCIGBpxmGvfSgdSyuaAFtay/SzGnWFKFuMVwlRhUTd7oAkAiBnl0dBQkd5XveCvv6fuYQnqf/m7dBV6hPYmJHDEUMDSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11647322},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"a02fef02e74bec8d8eb4e25e22e18fed6379c8d4","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.6.0_1786004959700_0.7974780716030638","host":"s3://npm-registry-packages-npm-production"}},"6.7.0":{"name":"@ngocsangairvds/vsaf","version":"6.7.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.7.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"4a11c1ebf6f0ad9533f2643e815e60a2a8865fa4","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.7.0.tgz","fileCount":1556,"integrity":"sha512-G2uiumVLTrhiggGc4CdxFXe7uBq+dJmm+jA4KmK6zBwZmFjrH/GphTpmJCD2k9Peag3W4D9W2Pnp04XaKg4AbA==","signatures":[{"sig":"MEUCIQDVZignd72pOEyLy89dgojYNE4/2uMNcQd69PP0SbhG4QIgZYN5+yf4TJDENizDmQ+eepKxOLvdvQYVpQCB3bieif0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11658808},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"b2b3875a9bd3ad97d604b1d08c5ae340cc17e6c1","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.7.0_1786065994599_0.2752975690542805","host":"s3://npm-registry-packages-npm-production"}},"6.8.0":{"name":"@ngocsangairvds/vsaf","version":"6.8.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.8.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"cab16e2d7832326287745da6c8c26551316908e6","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.8.0.tgz","fileCount":2534,"integrity":"sha512-MRpzmHzn7CoKDGfSd1I6Dl7J0ec6sQfpFSTq5pZ8sRmTpoBE54Fnqi1UCuFpFxGdr2q+UVw86EsgkJ3VejOU6w==","signatures":[{"sig":"MEQCIGBuOuktTWrXlbR9tXlQoMX8M1fAdq4WlrruKu3FsjprAiBMY1/DsQuogQjP0yJartD1EXQRz0OhqoBdDzNN4NoOpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20426173},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"845bf09007ee2444e036084563f603bd4f736f47","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.8.0_1786526798935_0.4010604075567872","host":"s3://npm-registry-packages-npm-production"}},"6.8.1":{"name":"@ngocsangairvds/vsaf","version":"6.8.1","license":"MIT","_id":"@ngocsangairvds/vsaf@6.8.1","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"13e7268d1f5dc68e7cc774b6ff1c703e2ad2a108","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.8.1.tgz","fileCount":2567,"integrity":"sha512-8H5GjXO0yi3o9D+OyH6tCTb2jfwwGa/8xOLdU7RVVmQBdcRacAeQxsHP1lS5aK6VMD2A/vq9t0C55sTDXs/UBg==","signatures":[{"sig":"MEUCIQD5cdveeg0EmtYSPgmSibW/ZJtzptWjTUV1nA7+hKqteAIgMRQ0n4ZjtE/PNdnS5uJWctfX5WzuJZFMo30+V+IST+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20945680},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"dd427dd6755700afc352ff1e9664a1493ee1e9bd","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.8.1_1786598692855_0.07569027071579959","host":"s3://npm-registry-packages-npm-production"}},"6.8.2":{"name":"@ngocsangairvds/vsaf","version":"6.8.2","license":"MIT","_id":"@ngocsangairvds/vsaf@6.8.2","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"75ef762d81a71887eabeebad926475a2cb5cec45","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.8.2.tgz","fileCount":2589,"integrity":"sha512-ipzl3JhWFevtE1UGAo75zdA2ZudscWaB6OsUc/hvlojiX5xMkl/JQvi+GanzrdIUf3OYkPzP7ymzrv1/VTJPaA==","signatures":[{"sig":"MEUCIQCE1HOk2+28qiQmhcDsTWV58AeAjhw6CKIYiA07FSDcOgIgYAlvtdSMOGULkov34wQwmPbxA8UVnHFGW+VQyCIVsRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21233230},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"6f603fc240e7f581af58fc669c9bb343b93eafcd","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.8.2_1786702491177_0.8297299727567986","host":"s3://npm-registry-packages-npm-production"}},"6.9.0":{"name":"@ngocsangairvds/vsaf","version":"6.9.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.9.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"98b3fd4e1963a4794aa33715520e71fc0361e909","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.9.0.tgz","fileCount":3395,"integrity":"sha512-tNqQ/bmx62Sx/GOv8pfu5OxzGHeg4OhT6/tDJZNMEkZlJuMLwxHaW6zFZI7/XdMOf4CV8PFL/ZogiWGLARTSuw==","signatures":[{"sig":"MEUCIDP3XsBlx3jN9o1q/pvX6V5IjP5PZahPnOzi2NcxE7yTAiEAztMCmpbdS/s2AecCkn1FBlYT8rgK2t18f6jJLJFEg6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28671147},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"6bdc091843c69e490eefe8222fd002dd44c299bf","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.9.0_1787218096228_0.6529165247241606","host":"s3://npm-registry-packages-npm-production"}},"6.10.0":{"name":"@ngocsangairvds/vsaf","version":"6.10.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.10.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"1f1efb9580aea4207251e4a60d3da2563bd4db4b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.10.0.tgz","fileCount":3395,"integrity":"sha512-S4xnam8ifHch+R4Lg7im8PGX93OAaXfMNK7JXArG5lQ5ea1L5VTmOclyA7NNLNZBQ142ftQJ5TlWtzW7EleGpQ==","signatures":[{"sig":"MEUCIAwaAzDFDfWRmLJOXfzPrjmlLW/CiW2rHbq2c4ufLNTuAiEA/eruJGy3GGmhKN46J+idZMRYyY1dduPqNQmrhsusChg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28692162},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"856dd82b950d9a16fedfcad2cfe8e7a760f7fe68","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.10.0_1787284914696_0.07281755020886838","host":"s3://npm-registry-packages-npm-production"}},"6.11.0":{"name":"@ngocsangairvds/vsaf","version":"6.11.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.11.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"e9deed5cc0748534e6191a4ce0aa23fd674a6a1b","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.11.0.tgz","fileCount":3403,"integrity":"sha512-qm82rX2OzihgSCipaUDU0j31hH0hkpeiab2BZlArMF3vKWr10DGNwASTM+JdPxl/BAv+4uVUgiaULBtG8faIpQ==","signatures":[{"sig":"MEYCIQD7UBVND8eDZai0R8DqZBQle3QgYS/iqz1nDuYCCzBHLAIhALcXdYRjK2sEduHv6sa2kUftGxm73+54ibGdEr/CLZI9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28744486},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"719acede0111d0e8dc8aab4b4b77b629736480ca","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.11.0_1787363428770_0.8547163516818304","host":"s3://npm-registry-packages-npm-production"}},"6.12.0":{"name":"@ngocsangairvds/vsaf","version":"6.12.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.12.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"1ff7f740e5865997673cd81081439004ab0d25de","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.12.0.tgz","fileCount":3416,"integrity":"sha512-TrkYKvzFgmw/GJSUsjb4Gm0vjztLWy+9qoXddOQf+np1g+8L7cEFbaKdCLJIZ40gPRUB1lXonKEtTh8uIsyozQ==","signatures":[{"sig":"MEUCIQCDJDbgCdtoNhhPVwztbdlRM3jvTFOgwmzdOgZbFoKhcgIgClF6ebdoa55s4emHnWIrIprKaOVIvd9tm2Pa+JMLr60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28953784},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"ed54aeee5ddd80231f55be3e05e48224d43b7379","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.12.0_1787389926447_0.598836397651324","host":"s3://npm-registry-packages-npm-production"}},"6.13.0":{"name":"@ngocsangairvds/vsaf","version":"6.13.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.13.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"1f8ab500ef289ac226314f9c1066f56d5d9b0484","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.13.0.tgz","fileCount":3420,"integrity":"sha512-J0QumobXpTeGOURU2bRCMlJLyoh5/92TwdbdiSB2vKULQgsZRJs4+3hqDvBqy5hy6kQ+K1wh9R6X3N1NQlq7rQ==","signatures":[{"sig":"MEYCIQCCXXD4gj+2KizZlgVhnBz7/T1yEz4V3kyGxP0pMqLmfwIhAPHW7N5h4vnIfnmFRBuEiWAFHlm47S0+yp47jTdCrDx1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29002109},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"70cb54332d3bdd8f7086d8f396ebad691537ebbd","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.13.0_1787553322946_0.9952279083962297","host":"s3://npm-registry-packages-npm-production"}},"6.14.0":{"name":"@ngocsangairvds/vsaf","version":"6.14.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.14.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"a6727d37bd4a58fd0cd5f13b26492f257fa5e40c","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.14.0.tgz","fileCount":3420,"integrity":"sha512-btqoYNSiz2+bYK1quRrPb5Bj6J2olMKD3DXT3tdBOncr4oojuxLOMb5jMPgYV3bA37SjTRkZq/K10XmoASY5Ww==","signatures":[{"sig":"MEUCIQC4p4JtwVKVV7XnhV3SkaxpBQJiWXYB8qXnx2TGhTGzggIga7249KJYsLbcvdrcYb/SwaNOk5rG/4wiI26DkdVlwF4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29037500},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"8b406503c6da63b1dd76fbc2a5b0c09d07996f3a","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.14.0_1787568133806_0.5925142958538108","host":"s3://npm-registry-packages-npm-production"}},"6.15.0":{"name":"@ngocsangairvds/vsaf","version":"6.15.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.15.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"82bff762d134cfd6de3b1ecb974f320035e11657","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.15.0.tgz","fileCount":3444,"integrity":"sha512-CUk3EJVJWBkK+qS/58G+Vki+IyjdP+ASiRN+ceGOVggdDW4Phkg0Olp6PhQQTkkSamC0vAoVAS7qv3rohrZzGw==","signatures":[{"sig":"MEQCIEBGNSFta3v3znWBLp11uvcI9C+pBgfmzROkyykJ20WIAiBzTlpjFNjVM1MsSbVGybFHLP+aZIozAx64d+9jfR8TGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29191425},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"5c39e16f65d21275e113f9d35660ff8d48965ca8","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.15.0_1787714530295_0.47145881586267757","host":"s3://npm-registry-packages-npm-production"}},"6.16.0":{"name":"@ngocsangairvds/vsaf","version":"6.16.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.16.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"475231264c76d48b39ebd1b438aa8dc10e5d7832","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.16.0.tgz","fileCount":3444,"integrity":"sha512-lt2zXoazDZhJ+Z3r2hjwKf1UaqFB44iNUvzB7jCJDNeNGFYmOiJvekU8oTguDlD7ME0A4Fvo+5VuVGXJ9pAH1Q==","signatures":[{"sig":"MEQCIHG9hj3Byj4wOpIelKSA5V8a2aEh+Lbp9Ujdy6Qg+xWlAiBwossi6JY2rDnOvSflYy+o7bK4IgdCaFGXNMlUgotVdg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29186865},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"08f1c0a280dcb1254476473bb889d0eb40a3b698","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.16.0_1787727203437_0.7014180330300253","host":"s3://npm-registry-packages-npm-production"}},"6.17.0":{"name":"@ngocsangairvds/vsaf","version":"6.17.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.17.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"10aa2582dc8d6f6df6386b455ce55769cd2ffe7e","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.17.0.tgz","fileCount":3449,"integrity":"sha512-mqh2lNmLHWdGukyrWzw2mZZpDOhDlcUq0fH+80ospxrHg9VUoxvhGKs3AbO/x8ANrEVegfEfa2FiblU3YPwBGg==","signatures":[{"sig":"MEUCIGHa/SoC8NQleSw66nQnAeg92RU3VHNKwdE6d1jFrinrAiEAzH9iWRplwP1dy7Eg7+KijoLvd8UBI2BXMSMOLpmsh3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29212836},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"71fcb5b4fdd5ae46e603ad54c44244d770ef6795","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.17.0_1787794780519_0.8243483980608115","host":"s3://npm-registry-packages-npm-production"}},"6.18.0":{"name":"@ngocsangairvds/vsaf","version":"6.18.0","license":"MIT","_id":"@ngocsangairvds/vsaf@6.18.0","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"bin":{"vsaf":"packages/cli/dist/index.js"},"dist":{"shasum":"bab068da7addc53b6ab59148ae6454f5e3a469f2","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.18.0.tgz","fileCount":3449,"integrity":"sha512-4waaBv2gwooGl/r7lOJ5UPFG/a3E7hduhugTT8wUtsiw2/2TNew51klpKU5GdbIwz1Eg1oZ25txWhClxxHAlAA==","signatures":[{"sig":"MEUCIQCazj8+Qjr57/tX191Eai4xpxN8iJwud/3h+5wws7aMJwIgQcEqcr2w5e0SDSLJ8u27k+gxnM54BT5qTJO6DVHZjSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29216383},"main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"gitHead":"bfc83452d624b32f0baaea4013ca021d447372af","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"npm run build --workspaces","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test:watch":"vitest","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepublishOnly":"npm run build && npm test"},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.4","description":"is it ready to use ?","directories":{},"_nodeVersion":"22.21.1","dependencies":{"chalk":"^5.3.0","fastify":"^5.8.5","js-yaml":"^4.1.0","commander":"^12.1.0","gray-matter":"^4.0.3","@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@opentelemetry/api":"^1.9.1","@opentelemetry/resources":"^2.9.0","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","typescript":"^6.0.3","@types/node":"^25.7.0","vite-tsconfig-paths":"^6.1.1"},"_npmOperationalInternal":{"tmp":"tmp/vsaf_6.18.0_1787796344142_0.32159988527728833","host":"s3://npm-registry-packages-npm-production"}},"6.19.0":{"name":"@ngocsangairvds/vsaf","version":"6.19.0","description":"is it ready to use ?","main":"packages/core/dist/index.js","types":"packages/core/dist/index.d.ts","exports":{".":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"},"./core":{"types":"./packages/core/dist/index.d.ts","default":"./packages/core/dist/index.js"}},"workspaces":["packages/*"],"bin":{"vsaf":"packages/cli/dist/index.js"},"scripts":{"build":"npm run build --workspaces","postinstall":"node -e \"const fs=require('fs'),p=require('path'),r=p.resolve;const d=r(process.cwd(),'node_modules','@vsaf');fs.mkdirSync(d,{recursive:true});const t=r(d,'core'),src=r(process.cwd(),'packages','core','dist');try{fs.rmSync(t,{recursive:true,force:true})}catch{};const type=process.platform==='win32'?'junction':'dir';try{fs.symlinkSync(src,t,type)}catch(e){if(process.platform==='win32'){fs.symlinkSync(src,t,'junction')}else{throw e}}\"","prepack":"cp package.json package.json.bak && node -e \"const f='package.json',j=JSON.parse(require('fs').readFileSync(f));delete j.workspaces;require('fs').writeFileSync(f,JSON.stringify(j,null,2)+'\\n')\"","postpack":"mv package.json.bak package.json","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit","prepublishOnly":"npm run build && npm test"},"publishConfig":{"access":"public"},"engines":{"node":">=20.0.0"},"license":"MIT","dependencies":{"@fastify/cors":"^11.2.0","@fastify/static":"^9.1.3","@modelcontextprotocol/sdk":"^1.29.0","@opentelemetry/api":"^1.9.1","@opentelemetry/exporter-metrics-otlp-proto":"^0.220.0","@opentelemetry/exporter-trace-otlp-proto":"^0.220.0","@opentelemetry/resources":"^2.9.0","@opentelemetry/sdk-metrics":"^2.9.0","@opentelemetry/sdk-trace-base":"^2.9.0","@opentelemetry/semantic-conventions":"^1.41.1","chalk":"^5.3.0","commander":"^12.1.0","fastify":"^5.8.5","gray-matter":"^4.0.3","js-yaml":"^4.1.0"},"devDependencies":{"@types/node":"^25.7.0","typescript":"^6.0.3","vite-tsconfig-paths":"^6.1.1","vitest":"^4.1.6"},"_id":"@ngocsangairvds/vsaf@6.19.0","gitHead":"a0a1c52e5d5a47efca300665477d12fca06bf0cd","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-vu1T4Z7TUUBU7RhUKtOsfsKeGVOcsckJBWx3j4lBZM9s1eoYucBT+eiiLb+DtMWFa09ZTh3siKiJEnGlbYkdtQ==","shasum":"13665c4e670f45a9dcfcd57d0a6cb5196d4ea7cc","tarball":"https://registry.npmjs.org/@ngocsangairvds/vsaf/-/vsaf-6.19.0.tgz","fileCount":3457,"unpackedSize":29254870,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHpt4BGmuLTkrLjWyJSVQy4uH/tYyqWL78qg4w/311raAiEAgD6yTMf+jvkIc5pjG3sQFaKjq4G8E7Z1iPOYxg5XUC0="}]},"_npmUser":{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"},"directories":{},"maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vsaf_6.19.0_1787910330847_0.12452428372313928"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-20T03:55:56.671Z","modified":"2026-08-28T09:45:31.270Z","3.0.0":"2026-04-20T03:55:56.979Z","3.0.1":"2026-04-20T04:31:02.465Z","3.0.2":"2026-04-20T04:55:40.102Z","3.0.3":"2026-04-20T08:19:02.481Z","3.0.4":"2026-04-21T09:21:56.874Z","3.0.5":"2026-04-21T10:08:04.427Z","3.0.6":"2026-04-22T01:59:11.199Z","3.0.7":"2026-04-22T07:17:01.282Z","3.0.8":"2026-04-22T07:46:54.545Z","3.0.9":"2026-04-22T09:05:37.647Z","3.0.10":"2026-04-22T09:10:18.685Z","3.0.11":"2026-04-22T09:43:01.660Z","3.0.12":"2026-04-22T11:10:48.348Z","3.1.0":"2026-04-23T03:04:28.027Z","3.1.1":"2026-04-23T12:46:32.419Z","3.1.2":"2026-04-24T02:27:18.579Z","3.1.3":"2026-04-24T02:55:58.879Z","3.1.4":"2026-04-28T04:14:22.484Z","3.1.5":"2026-04-28T04:23:58.544Z","3.1.6":"2026-04-28T04:29:35.328Z","3.1.7":"2026-04-28T04:40:36.608Z","3.1.8":"2026-04-28T04:46:08.735Z","3.1.9":"2026-04-28T04:51:30.934Z","3.1.10":"2026-04-28T08:52:07.964Z","3.1.11":"2026-04-28T09:22:47.453Z","3.1.12":"2026-04-28T09:29:17.288Z","3.1.13":"2026-04-29T07:54:15.929Z","3.1.14":"2026-05-04T02:58:07.799Z","3.1.15":"2026-05-04T03:24:55.311Z","3.1.16":"2026-05-04T03:59:54.610Z","3.1.17":"2026-05-04T04:24:59.118Z","3.1.18":"2026-05-04T07:36:25.830Z","3.1.19":"2026-05-04T08:18:10.545Z","3.1.20":"2026-05-05T02:37:29.356Z","3.1.21":"2026-05-05T07:19:57.158Z","3.1.22":"2026-05-05T08:18:34.868Z","3.1.23":"2026-05-05T11:22:32.535Z","3.1.24":"2026-05-07T03:31:38.192Z","3.1.25":"2026-05-07T08:11:45.798Z","3.1.26":"2026-05-07T08:38:39.264Z","3.1.27":"2026-05-07T09:08:06.830Z","3.2.1":"2026-05-14T02:22:38.321Z","3.2.2":"2026-05-14T04:08:51.954Z","3.2.3":"2026-05-14T04:56:46.361Z","3.2.4":"2026-05-14T06:59:23.779Z","3.2.5":"2026-05-14T07:12:37.431Z","3.2.6":"2026-05-14T08:00:37.122Z","3.2.7":"2026-05-14T08:58:03.983Z","3.2.8":"2026-05-14T09:59:20.622Z","3.2.10":"2026-05-15T02:51:03.940Z","3.2.11":"2026-05-15T04:27:54.793Z","3.2.12":"2026-05-15T07:30:25.597Z","3.2.13":"2026-05-15T10:12:24.762Z","3.2.14":"2026-05-18T08:58:32.690Z","3.2.15":"2026-05-19T06:50:47.163Z","3.2.16":"2026-05-19T09:42:02.088Z","4.0.0":"2026-05-20T03:12:22.816Z","4.0.1":"2026-05-20T03:17:18.736Z","4.0.2":"2026-05-21T02:49:39.982Z","4.0.3":"2026-05-21T04:19:25.330Z","4.0.4":"2026-05-21T07:17:34.744Z","4.0.5":"2026-05-21T07:33:02.689Z","4.0.6":"2026-05-21T07:42:06.554Z","4.0.7":"2026-05-21T07:52:30.699Z","4.0.8":"2026-05-21T15:24:32.457Z","4.0.9":"2026-05-22T03:14:33.893Z","4.0.10":"2026-05-22T04:40:05.596Z","4.0.11":"2026-05-22T04:53:33.846Z","4.0.12":"2026-05-22T07:19:30.160Z","4.0.14":"2026-05-22T07:37:43.262Z","4.0.15":"2026-05-22T07:58:50.116Z","4.0.16":"2026-05-22T08:09:22.318Z","4.0.17":"2026-05-25T02:32:39.486Z","4.1.0":"2026-05-26T07:29:27.318Z","4.1.1":"2026-05-26T10:00:17.148Z","4.1.2":"2026-05-27T02:26:04.303Z","4.1.3":"2026-05-27T03:11:02.252Z","4.1.4":"2026-05-27T03:27:46.328Z","4.1.5":"2026-05-27T09:45:18.817Z","4.1.6":"2026-05-27T09:55:30.645Z","4.1.7":"2026-05-27T10:26:19.521Z","4.1.8":"2026-05-27T11:02:08.838Z","4.1.9":"2026-05-27T11:34:56.963Z","4.1.10":"2026-05-27T12:23:53.650Z","4.1.11":"2026-05-27T12:34:01.628Z","4.1.12":"2026-05-27T12:37:53.715Z","4.1.14":"2026-05-27T12:42:11.751Z","4.1.15":"2026-05-28T03:08:03.741Z","4.1.16":"2026-05-28T03:23:19.824Z","4.1.17":"2026-05-28T03:27:55.293Z","4.1.18":"2026-05-28T03:35:07.842Z","4.1.19":"2026-05-28T03:43:39.532Z","4.1.20":"2026-05-28T03:57:05.660Z","4.1.21":"2026-05-28T04:07:38.141Z","4.1.22":"2026-05-28T04:21:43.537Z","4.1.23":"2026-05-28T06:28:46.639Z","4.1.24":"2026-05-28T08:22:47.581Z","4.1.25":"2026-05-28T10:27:30.196Z","4.1.26":"2026-05-28T11:30:52.392Z","4.1.27":"2026-05-29T01:05:26.108Z","4.1.28":"2026-05-29T01:13:18.516Z","4.1.29":"2026-05-29T01:31:39.361Z","4.1.30":"2026-05-29T02:44:46.915Z","4.1.31":"2026-05-29T04:32:25.283Z","4.2.0-preview.0":"2026-06-01T09:37:28.099Z","4.2.0-preview.1":"2026-06-01T10:23:26.213Z","4.2.0":"2026-06-02T03:51:31.029Z","4.2.1":"2026-06-02T04:12:46.259Z","4.2.2":"2026-06-02T04:56:09.789Z","4.2.3":"2026-06-02T07:10:01.958Z","4.2.4":"2026-06-02T07:16:39.683Z","4.2.5":"2026-06-02T07:19:36.610Z","4.2.6":"2026-06-02T07:23:54.654Z","4.2.7":"2026-06-02T07:46:12.308Z","4.2.8":"2026-06-04T03:31:38.933Z","4.2.9":"2026-06-05T01:54:46.324Z","4.2.10":"2026-06-10T08:08:49.769Z","4.2.11":"2026-06-12T06:53:33.470Z","4.2.12":"2026-06-15T04:22:23.893Z","4.2.13":"2026-06-15T04:49:31.542Z","4.2.14":"2026-06-15T08:51:15.263Z","5.0.0":"2026-06-26T06:44:36.512Z","5.0.1":"2026-06-26T08:29:16.022Z","5.0.2":"2026-06-30T01:11:33.611Z","5.1.0":"2026-06-30T02:54:23.949Z","5.1.1":"2026-06-30T10:17:44.498Z","5.1.2":"2026-07-01T08:30:41.642Z","5.1.3":"2026-07-02T07:34:00.097Z","5.1.4":"2026-07-02T10:19:16.588Z","5.1.5":"2026-07-02T10:50:18.110Z","5.1.6":"2026-07-03T07:02:09.896Z","5.1.7":"2026-07-03T09:56:07.543Z","5.1.8":"2026-07-04T11:31:48.342Z","5.1.9":"2026-07-04T13:38:09.346Z","5.1.10":"2026-07-04T14:15:40.512Z","5.1.11":"2026-07-04T14:20:39.803Z","5.1.12":"2026-07-04T16:18:32.412Z","5.1.13":"2026-07-06T01:13:56.493Z","5.1.14":"2026-07-06T01:46:08.010Z","5.1.15":"2026-07-06T02:22:58.362Z","5.1.16":"2026-07-06T02:31:48.297Z","5.1.17":"2026-07-06T03:03:58.490Z","5.1.18":"2026-07-06T03:13:29.435Z","5.2.0":"2026-07-06T11:42:05.372Z","5.2.1":"2026-07-06T12:15:22.101Z","5.2.2":"2026-07-06T13:22:03.542Z","5.2.3":"2026-07-06T16:08:06.532Z","5.3.0":"2026-07-06T17:37:13.965Z","5.3.1":"2026-07-07T01:26:25.470Z","5.3.2":"2026-07-07T01:34:31.457Z","5.4.1":"2026-07-07T02:31:03.692Z","5.4.2":"2026-07-07T03:36:57.201Z","5.4.3":"2026-07-07T03:52:09.901Z","5.4.4":"2026-07-07T04:44:41.572Z","5.4.5":"2026-07-07T07:33:34.421Z","5.4.6":"2026-07-07T08:07:33.970Z","5.4.7":"2026-07-07T09:51:17.669Z","5.5.0":"2026-07-08T11:17:41.437Z","5.5.1":"2026-07-09T02:58:45.655Z","5.5.2":"2026-07-09T03:51:53.890Z","5.6.0":"2026-07-09T09:58:07.073Z","5.6.1":"2026-07-09T10:33:57.616Z","5.6.2":"2026-07-10T02:12:54.026Z","5.6.3":"2026-07-13T03:33:07.777Z","5.7.0":"2026-07-13T07:51:10.889Z","5.8.0":"2026-07-13T12:47:24.940Z","5.9.0":"2026-07-13T17:49:36.055Z","6.0.0":"2026-07-14T04:12:09.956Z","6.0.1":"2026-07-14T04:29:33.661Z","6.1.0":"2026-07-14T06:05:55.110Z","6.2.0":"2026-07-14T08:29:15.691Z","6.3.0":"2026-07-23T07:46:16.417Z","6.4.0":"2026-07-24T01:23:54.227Z","6.5.0":"2026-08-04T04:31:13.410Z","6.5.1":"2026-08-04T05:12:40.041Z","6.6.0":"2026-08-06T08:29:20.014Z","6.7.0":"2026-08-07T01:26:34.900Z","6.8.0":"2026-08-12T09:26:39.180Z","6.8.1":"2026-08-13T05:24:53.152Z","6.8.2":"2026-08-14T10:14:51.476Z","6.9.0":"2026-08-20T09:28:16.526Z","6.10.0":"2026-08-21T04:01:54.994Z","6.11.0":"2026-08-22T01:50:29.066Z","6.12.0":"2026-08-22T09:12:06.746Z","6.13.0":"2026-08-24T06:35:23.189Z","6.14.0":"2026-08-24T10:42:14.118Z","6.15.0":"2026-08-26T03:22:10.738Z","6.16.0":"2026-08-26T06:53:23.736Z","6.17.0":"2026-08-27T01:39:40.852Z","6.18.0":"2026-08-27T02:05:44.475Z","6.19.0":"2026-08-28T09:45:31.106Z"},"license":"MIT","description":"is it ready to use ?","maintainers":[{"name":"ngocsangairvds","email":"ngocsangairvds@gmail.com"}],"readme":"# VSAF\n\nDAG-based workflow engine for AI coding agents. Define multi-step workflows in YAML, execute them with AI providers, and monitor runs in realtime through a web dashboard.\n\n## What It Does\n\nVSAF orchestrates complex AI workflows as directed acyclic graphs (DAGs). Each node in a DAG can be a prompt (sent to an AI provider), a bash command, or a reusable command template. Nodes declare dependencies, conditional execution rules, and context isolation — VSAF handles the rest.\n\n```\nvsaf run fix-issue --args \"fix #42\"\n```\n\n```\nextract-issue-number ✓  1.2s\nfetch-issue          ✓  0.8s\nclassify             ✓  2.1s\ninvestigate          ●  running...\nplan                 ⊘  skipped\nbridge-artifacts     ○  pending\nimplement            ○  pending\nvalidate             ○  pending\n```\n\n## Features\n\n- **YAML workflow definitions** — declarative DAGs with prompt, bash, and command node types\n- **Dependency-based execution** — wave-based parallel scheduling, conditional branching, trigger rules\n- **Variable resolution** — reference outputs from upstream nodes (`$classify.output.issue_type`)\n- **Workspace isolation** — each run executes in an ephemeral temp directory, changes applied on success\n- **Run persistence** — run state saved to JSON after each node, supports resume on failure\n- **Provider-agnostic** — pluggable AI provider adapters (Claude Code adapter included)\n- **Web dashboard** — Angular SPA with workflow management and realtime SSE monitoring\n- **REST API** — Fastify server for programmatic access to workflows and runs\n- **MCP server** — Model Context Protocol integration for Claude Code\n- **Skill pack system** — 40 bundled skills (18 SDLC + 17 BMAD + 5 mattpocock lean)\n- **AJV validation** — JSON Schema validation for workflow definitions\n- **Cycle detection** — DAG cycle detection prevents infinite loops\n- **Error recovery** — configurable retry backoff strategies for failed nodes\n\n---\n\n## Installation\n\n### Prerequisites\n\n| Requirement | Version | Check |\n|---|---|---|\n| Node.js | >= 20.0.0 | `node -v` |\n| npm | >= 9.0.0 | `npm -v` |\n| git | any | `git --version` |\n| Claude Code CLI | latest | `claude --version` |\n| GitHub CLI (optional) | any | `gh --version` |\n\n**Claude Code CLI** is required for prompt and command nodes. **GitHub CLI** is required only for workflows that interact with GitHub (e.g., `fix-issue` uses `gh issue view`).\n\n### Option 1: Global Install (Recommended)\n\n```bash\nnpm install -g @ngocsangairvds/vsaf\nvsaf --version\n```\n\n### Option 2: Project-Local Install\n\n```bash\nnpm install -D @ngocsangairvds/vsaf\nnpx vsaf --version\n```\n\n### Option 3: Install from Source\n\n```bash\ngit clone https://github.com/YOUR_USERNAME/vsaf.git\ncd vsaf\nnpm install && npm run build\nnpm link\nvsaf --version\n```\n\n---\n\n## Quick Start\n\n```bash\n# Initialize in your project (directories only — no flow yet)\ncd /path/to/your/project\nvsaf init\n\n# Install a flow: its skills, workflows and slash commands\nvsaf install sdlc\n\n# Check environment\nvsaf doctor\n\n# List available workflows\nvsaf list\n\n# Run a workflow\nvsaf run fix-issue --args \"fix #42\"\n\n# Start the web dashboard\nvsaf serve --port 3000 --open\n```\n\n`vsaf init` creates the `.vsaf/` directory — and nothing else. Workflows, commands\nand skills arrive with `vsaf install <flow>`, which is the command that knows which\nflow you asked for:\n\n```\n.vsaf/\n├── config.yaml          ← Project configuration\n├── docs/                ← Artifact tree the phases read and write\n├── workflows/           ← Empty. Filled by `vsaf install <flow>`\n├── commands/            ← Empty. Filled by `vsaf install <flow>`\n└── storage/             ← Run state persistence (add to .gitignore)\n```\n\n---\n\n## CLI Commands\n\n| Command | Description |\n|---|---|\n| `vsaf init` | Initialize the `.vsaf/` directory and project config — installs no flow |\n| `vsaf run <workflow>` | Execute a workflow by name |\n| `vsaf run <workflow> --resume <runId>` | Resume an interrupted run |\n| `vsaf list` | List available workflows |\n| `vsaf status` | Show recent run statuses |\n| `vsaf doctor` | Check environment and dependencies |\n| `vsaf serve` | Start API server and web dashboard |\n| `vsaf mcp` | Start MCP server for Claude Code integration |\n| `vsaf install <pack>` | Install a skill pack globally (e.g. `vsaf install sdlc`) |\n| `vsaf skill` | Manage skills: `add`, `list`, `info`, `remove`, `init` |\n\n### `vsaf serve`\n\n```bash\nvsaf serve [--port 3000] [--open]\n```\n\nStarts a Fastify server exposing a REST API and the Angular dashboard.\n\n### `vsaf mcp`\n\nStarts a Model Context Protocol (MCP) server that exposes VSAF workflows and skills to Claude Code. Configure in `.mcp.json` for automatic integration.\n\n### `vsaf install`\n\n```bash\nvsaf install sdlc    # Deploy 39 skills to .claude/skills/\nvsaf install NTAPP   # Deploy the NTAPP delivery pack (55 skills, 11 workflows)\n```\n\nNTAPP has its own setup guide: [docs/install-NTAPP.md](docs/install-NTAPP.md).\n\n### `vsaf skill`\n\n```bash\nvsaf skill list              # List installed skills\nvsaf skill info <name>       # Show skill details\nvsaf skill add <path>        # Add a skill from file\nvsaf skill remove <name>     # Remove a skill\nvsaf skill init              # Scaffold a new skill template\n```\n\n---\n\n## Writing Workflows\n\n### Basic Workflow\n\nCreate `.vsaf/workflows/my-workflow.yaml`:\n\n```yaml\nname: my-workflow\ndescription: A custom workflow\n\nprovider: claude\nmodel: sonnet\n\nnodes:\n  - id: step1\n    prompt: |\n      Analyze this request: $ARGUMENTS\n      Output a summary.\n\n  - id: step2\n    bash: |\n      echo \"Step 1 output was: $step1.output\"\n    depends_on: [step1]\n\n  - id: step3\n    prompt: |\n      Based on: $step2.output\n      Generate a final report.\n    depends_on: [step2]\n```\n\nRun it:\n\n```bash\nvsaf run my-workflow --args \"analyze the auth module\"\n```\n\n### Node Types\n\n| Type | Field | Description |\n|---|---|---|\n| **prompt** | `prompt:` | Send text to the AI provider |\n| **bash** | `bash:` | Run a shell command |\n| **command** | `command:` | Execute a reusable command template from `.vsaf/commands/` |\n\n### Node Fields\n\n| Field | Required | Description |\n|---|---|---|\n| `id` | yes | Unique node identifier |\n| `description` | no | Human-readable note; documentation only |\n| `prompt` / `bash` / `command` | yes | Node content (exactly one) |\n| `depends_on` | no | List of node IDs that must complete first |\n| `when` | no | Condition expression — node skipped if false |\n| `trigger_rule` | no | `all_success` (default) or `one_success` |\n| `context` | no | `fresh` (new AI session) or `inherit` (default) |\n| `model` | no | Override the workflow-level model |\n| `allowed_tools` | no | Restrict AI tool access (empty array = no tools) |\n| `output_format` | no | JSON Schema for structured output |\n| `ledger` | no | Path to a read-only file whose tail is prepended to the prompt |\n| `fanout` | no | Run this node once per file matched by a glob |\n\n### Variables\n\n| Pattern | Description | Example |\n|---|---|---|\n| `$ARGUMENTS` | Args passed to `vsaf run --args` | `\"fix #42\"` |\n| `$node-id.output` | Text output of a completed node | `\"bug\"` |\n| `$node-id.output.field` | Field from structured output | `\"enhancement\"` |\n| `$ARTIFACTS_DIR` | Shared directory for file passing | `/tmp/vsaf-run-abc/artifacts` |\n| `${ITEM}` / `${<as>}` | Current item inside a `fanout` node | `units/a.md` |\n\n> **In a `bash` node every variable is already shell-quoted.** Writing `\"${UNIT}\"` puts a\n> literal quote inside the value — write `${UNIT}` bare. The one exception is\n> `$CONFIG.<key>`, which is left unquoted because it holds a command to run, not data.\n\n### Fanout — one node, many items\n\n`fanout` expands a single node into one sub-task per file matched by `over`. Each sub-task\nsees its own item as `${ITEM}` and under the name chosen by `as`.\n\n```yaml\nnodes:\n  - id: build-each-unit\n    fanout:\n      over: \"work/units/*\"     # glob, relative to the node's cwd\n      as: UNIT                 # ${UNIT} inside this node\n      max_concurrency: 5       # omit to run them all at once\n    prompt: |\n      Implement the unit described in ${UNIT}.\n```\n\nThe parent node completes once every sub-task has finished, and fails if any of them did.\nA glob matching nothing is not an error — the node simply completes with no work.\n\n### Ledger — carrying lessons between iterations\n\n`ledger` points at a file the engine **reads** before each run of the node, prepending its\nlast 16 KB to the prompt. It is how a later iteration learns what an earlier one found.\n\n```yaml\n  - id: implement\n    ledger: out/ledgers/slice-ledger.md\n    prompt: Implement the next slice.\n```\n\nThe engine never writes this file — another node in the workflow appends to it. A missing\nor empty file is fine and adds nothing to the prompt.\n\n### Conditional Branching\n\n```yaml\nnodes:\n  - id: classify\n    prompt: |\n      Classify this as 'bug' or 'feature': $ARGUMENTS\n    output_format:\n      type: object\n      properties:\n        type:\n          type: string\n          enum: [bug, feature]\n      required: [type]\n\n  - id: fix-bug\n    prompt: Fix this bug: $ARGUMENTS\n    depends_on: [classify]\n    when: \"$classify.output.type == 'bug'\"\n\n  - id: build-feature\n    prompt: Implement this feature: $ARGUMENTS\n    depends_on: [classify]\n    when: \"$classify.output.type == 'feature'\"\n\n  - id: finalize\n    prompt: Wrap up the work.\n    depends_on: [fix-bug, build-feature]\n    trigger_rule: one_success  # Only need one branch to succeed\n```\n\n### Using Commands (Reusable Prompts)\n\nCreate `.vsaf/commands/my-command.md`:\n\n```markdown\n---\ndescription: A reusable prompt template\nargument-hint: The task description\n---\n\nYou are an expert engineer. Your task:\n\n$ARGUMENTS\n\nPrevious analysis: $classify.output\n\nWrite your implementation to the codebase. Save notes to $ARTIFACTS_DIR/notes.md.\n```\n\nReference it in a workflow:\n\n```yaml\n  - id: implement\n    command: my-command\n    depends_on: [classify]\n    context: fresh    # Start a new AI session\n    model: opus       # Use a stronger model\n```\n\n### Structured Output\n\nForce JSON output from AI nodes:\n\n```yaml\n  - id: analyze\n    prompt: Analyze this code and rate its quality.\n    output_format:\n      type: object\n      properties:\n        score:\n          type: string\n          enum: [\"A\", \"B\", \"C\", \"D\", \"F\"]\n        issues:\n          type: string\n      required: [score, issues]\n\n  - id: report\n    prompt: |\n      The code scored: $analyze.output.score\n      Issues: $analyze.output.issues\n    depends_on: [analyze]\n```\n\n### Passing Files Between Nodes\n\nNodes can share files via `$ARTIFACTS_DIR`:\n\n```yaml\nnodes:\n  - id: investigate\n    prompt: |\n      Investigate the issue. Write findings to $ARTIFACTS_DIR/investigation.md\n\n  - id: plan\n    bash: cat $ARTIFACTS_DIR/investigation.md\n    depends_on: [investigate]\n\n  - id: implement\n    prompt: |\n      Here is the investigation: $plan.output\n      Now implement the fix.\n    depends_on: [plan]\n```\n\n### Resume Failed Runs\n\nIf a workflow fails mid-execution, resume from where it left off:\n\n```bash\nvsaf status                                     # Find the run ID\nvsaf run fix-issue --resume run-a1b2c3d4e5f6    # Skip completed nodes\n```\n\n**MCP mode:** run state lives in the engine process, so an engine restart (machine reboot, resumed Claude Code session via `claude -r`) loses in-flight runs. `vsaf_next` rehydrates them: pass `projectPath` along with the usual `runId`/`results` and the engine rebuilds the run from `.vsaf/storage/<runId>/state.json` — completed nodes are never re-executed, the reattached workspace keeps its changes, and telemetry starts a fresh trace marked `vsaf.run.resumed: true`, linked to the pre-restart trace by `vsaf.run.id`.\n\n---\n\n## SDLC Skill Pack\n\nVSAF ships with a complete SDLC skill pack — 40 skills organized into workflows for building features and fixing bugs with TDD discipline.\n\n> **Upgrading from an older version?** The `sdlc` pack's E2E track was slimmed down to 9 core skills (mobile/CI/test-planning moved to the standalone `autotest-skill` pack). See [MIGRATION.md](./MIGRATION.md) for what changed and how to clean up orphaned skills left behind by `vsaf init --force`.\n\n### Setup\n\n```bash\n# 1. Initialize VSAF in your project (directories and config)\ncd /path/to/your/project\nvsaf init\n\n# 2. Install the flow: its skills, workflows and slash commands\nvsaf install sdlc\n\n# 3. Inside Claude Code — bootstrap SDLC documentation layer\n/sdlc-init\n\n# 4. Onboard project knowledge\n/sdlc-onboard-docs    # Build docs knowledge graph (graphify)\n/sdlc-onboard-code    # Index code (GitNexus) + environment check\n```\n\n> **Steps 1 and 2 are both required, for every flow, and in this order.** `vsaf\n> init` writes `.vsaf/config.yaml`, the SessionStart hook and `.mcp.json`; `vsaf\n> install <flow>` deploys the flow's skills, workflows and slash commands, and\n> tops the config's telemetry section up with the paths that flow writes its\n> deliverables to. Skip step 1 and the install has nowhere to put the workflows\n> and says so; skip step 2 and the project has a config but no flow.\n>\n> **Installing a flow other than `sdlc`?** Name it in step 2 — `vsaf install\n> NTAPP`. `vsaf init` takes no flow name at all; the old `--pack` flag now stops\n> with a line saying which command to use instead. On a project that already has\n> a `config.yaml`, `vsaf init --force` *appends* a missing telemetry section\n> instead of leaving the file alone; existing content is never rewritten, and an\n> unparseable file is skipped with a warning.\n\nAfter setup, the project should have:\n\n```\nyour-project/\n├── .vsaf/              ← Engine config, skills, workflows, storage\n│   └── docs/              ← STATUS.md, KNOWLEDGE.md, features/\n├── .mcp.json              ← VSAF + GitNexus MCP servers\n├── CONTEXT.md             ← Shared domain language\n├── .gitnexus/             ← Code index\n└── graphify-out/          ← Docs knowledge graph\n```\n\n### Workflows\n\n#### Full Pipelines\n\n| Workflow | Command | Description |\n|---|---|---|\n| `master-sdlc` | `/vsaf master-sdlc --args \"feature description\"` | Full 9-phase feature pipeline |\n| `hotfix` | `/vsaf hotfix --args \"path/to/bug-report.md\"` | TDD-driven hotfix from bug report |\n| `onboarding` | `/vsaf onboarding` | Docs + code knowledge indexing |\n\n#### Sub-workflows (crash-safe, run independently)\n\n| Workflow | Command | Phases |\n|---|---|---|\n| `sdlc-thinking` | `/vsaf sdlc-thinking` | Discovery → PRD |\n| `sdlc-design` | `/vsaf sdlc-design` | Architecture → SRS |\n| `sdlc-testcase` | `/vsaf sdlc-testcase` | Test Design |\n| `sdlc-build` | `/vsaf sdlc-build` | Implement → Test Gate (loop 3x) |\n| `sdlc-qa` | `/vsaf sdlc-qa` | Review → Feature Complete → Ship |\n| `hotfix-tdd` | `/vsaf hotfix-tdd` | TDD RED → GREEN → Test Gate (loop 3x) |\n\n### Master-SDLC Flow (New Feature)\n\n9 phases, each produces artifacts on disk for session continuity:\n\n```\n/vsaf master-sdlc --args \"Add OAuth2 authentication to REST API\"\n```\n\n| Phase | Skill | Output | Description |\n|---|---|---|---|\n| 1 | `discovery` | `01-discovery.md` | Scan system → grill user with questions → brainstorm |\n| 2 | `prd` | `02-prd.md` | PRD via BMAD elicitation + adversarial review |\n| 3 | `architecture` | `03-adr.md` | Grill constraints → architecture design + epics |\n| 4 | `srs` | `05-srs.md` | Detailed SRS + edge cases + interface verification |\n| 5 | `test-design` | `06-testcases.md` | Test cases from SRS (tests before code — TDD) |\n| 6 | `implement` | code changes | Subagent-driven TDD implementation |\n| 6b | `test-gate` | npm test | Automated test verification (loop 3x on fail) |\n| 7 | `review` | `08-review.md` | Code review + quality gate + impact analysis |\n| 8 | `feature-complete` | KNOWLEDGE.md | Update shared knowledge before shipping |\n| 9 | `ship` | git commit + PR | Commit source code + create pull request |\n\nArtifacts saved to `.vsaf/docs/features/{feature-name}/`. Each phase checks prerequisites — if the session crashes, resume from the last completed phase.\n\n### Hotfix Flow (Bug Fix)\n\nTDD-driven: receives a bug report, analyzes, writes failing test, fixes, reviews, ships.\n\n```\n/vsaf hotfix --args \"path/to/bug-report.md\"\n```\n\n| Phase | Skill | Description |\n|---|---|---|\n| 1 | `hotfix-analyze` | Read bug report → GitNexus impact → root cause |\n| 2 | `hotfix-red` | TDD RED — write test that reproduces the bug (MUST FAIL) |\n| 3 | `hotfix-green` | TDD GREEN — minimal fix to pass the test (MUST PASS) |\n| 3b | `test-gate` | Full test suite — loop back to green on fail (max 3x) |\n| 4 | `hotfix-review` | Minimality check + test quality + impact |\n| 5 | `ship` | Git commit + PR |\n\nArtifacts saved to `.vsaf/docs/hotfixes/{bug-id}/`.\n\n### Crash Recovery\n\nLong sessions can crash (context overflow, network). Sub-workflows let you resume without restarting the full pipeline:\n\n```bash\n# Session 1: thinking phase\n/vsaf sdlc-thinking --args \"Add OAuth2\"\n# → crash during PRD → 01-discovery.md already saved\n\n# Session 2: resume just the PRD skill\n/sdlc-prd\n# → PRD completed, 02-prd.md saved\n\n# Session 3: continue with design\n/vsaf sdlc-design\n\n# Session 4: build\n/vsaf sdlc-build\n\n# Session 5: ship\n/vsaf sdlc-qa\n```\n\nEach phase reads input from files on disk — **no data is lost between sessions**.\n\n### Individual Skills\n\nEvery SDLC phase can be invoked directly as a Claude skill:\n\n```\n/sdlc-init              # Setup\n/sdlc-onboard-docs      # Index docs\n/sdlc-onboard-code      # Index code\n/sdlc-discovery         # Phase 1\n/sdlc-prd               # Phase 2\n/sdlc-architecture      # Phase 3\n/sdlc-srs               # Phase 4\n/sdlc-test-design       # Phase 5\n/sdlc-implement         # Phase 6\n/sdlc-review            # Phase 7\n/sdlc-feature-complete  # Phase 8\n/sdlc-ship              # Phase 9\n/sdlc-sdlc-health       # Health check\n/hotfix-analyze         # Hotfix Phase 1\n/hotfix-red             # Hotfix Phase 2\n/hotfix-green           # Hotfix Phase 3\n/hotfix-review          # Hotfix Phase 4\n```\n\n### SDLC Skills (18)\n\n| Skill | Purpose |\n|---|---|\n| `setup` | Install dependencies and configure environment |\n| `init` | Bootstrap .vsaf/docs/, .mcp.json, CONTEXT.md |\n| `onboard-docs` | Docs scan → graphify → CONTEXT.md |\n| `onboard-code` | GitNexus index + Claude review + env check |\n| `discovery` | Grill questions → brainstorm + GitNexus |\n| `prd` | PRD with BMAD elicitation + adversarial review |\n| `architecture` | Grill constraints → architecture + epics |\n| `srs` | SRS + edge cases + GitNexus shape_check |\n| `test-design` | Test design from SRS (TDD: tests before code) |\n| `implement` | Subagent-driven TDD + SonarQube rules |\n| `review` | Code review + quality gate + impact analysis |\n| `feature-complete` | Update CONTEXT.md, KNOWLEDGE.md, re-index |\n| `ship` | Git commit + PR via gh CLI |\n| `sdlc-health` | Health check — verify all prerequisites |\n| `hotfix-analyze` | Bug report → GitNexus + deep thinking → root cause |\n| `hotfix-red` | TDD RED — write failing test that reproduces bug |\n| `hotfix-green` | TDD GREEN — minimal fix to pass the test |\n| `hotfix-review` | Quick review — minimality + test quality |\n\n### Bundled BMAD Skills (17)\n\nUsed by discovery, prd, architecture, srs, test-design, and review phases:\n\n| Skill | Purpose |\n|---|---|\n| `bmad-advanced-elicitation` | Push LLM to reconsider and deepen analysis |\n| `bmad-brainstorming` | Facilitate interactive brainstorming |\n| `bmad-domain-research` | Conduct domain and industry research |\n| `bmad-prfaq` | Working Backwards PRFAQ challenge |\n| `bmad-create-prd` | Create a PRD from scratch |\n| `bmad-validate-prd` | Validate a PRD against standards |\n| `bmad-review-adversarial-general` | Cynical review and challenge assumptions |\n| `bmad-create-architecture` | Create architecture solution design |\n| `bmad-create-epics-and-stories` | Break requirements into epics and stories |\n| `bmad-check-implementation-readiness` | Validate PRD, UX, Architecture completeness |\n| `bmad-agent-analyst` | Strategic business analyst |\n| `bmad-review-edge-case-hunter` | Walk every branching path for edge cases |\n| `bmad-code-review` | Review code changes adversarially |\n| `bmad-party-mode` | Orchestrate group discussion simulations |\n| `bmad-qa-generate-e2e-tests` | Generate end-to-end automated tests |\n| `bmad-checkpoint-preview` | LLM-assisted human-in-the-loop checkpoint |\n| `bmad-correct-course` | Manage significant changes during epic |\n\n### Bundled Mattpocock Lean Skills (5)\n\nLean alternative for bugfix and known-domain flows:\n\n| Skill | Purpose |\n|---|---|\n| `grill-me` | Interview relentlessly to extract requirements |\n| `diagnose` | Disciplined diagnosis loop for bugs |\n| `zoom-out` | Step back and evaluate broader context |\n| `tdd` | Test-driven development with strict RED/GREEN |\n| `improve-codebase-architecture` | Find deepening opportunities in architecture |\n\n---\n\n## Configuration\n\n`.vsaf/config.yaml`:\n\n```yaml\nprovider: claude          # AI provider (only 'claude' currently)\nmodel: sonnet             # Default model: haiku, sonnet, opus\n\nisolation:\n  type: ephemeral         # Workspace strategy\n  cleanup: after_success  # after_success | after_always | never\n  exclude:                # Directories excluded from workspace copy\n    - node_modules\n    - .git\n    - dist\n    - build\n    - .vsaf/storage\n  max_workspaces: 5\n```\n\n**Cleanup policies:**\n- `after_success` — keep workspace on failure for debugging\n- `after_always` — always delete\n- `never` — never delete (fills disk)\n\nAdd to `.gitignore`:\n\n```\n.vsaf/storage/\n.vsaf/.claude-session\n```\n\n---\n\n## Telemetry (OpenTelemetry / OTLP)\n\nVSAF emits **standard OpenTelemetry** data over OTLP (http/protobuf): one trace per run (root span `vsaf:<workflow>`), one span per node execution with its **real wall-clock duration**, the [GenAI semantic-convention](https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/) attribute `gen_ai.request.model` on AI nodes, plus three run-total **metrics** (`vsaf.run.artifacts_created`, `.files_created`, `.loc_added`) keyed by `{workflow, user.id}`. Point it at any OTLP endpoint — an OTel Collector, Grafana/Tempo, SigNoz, Jaeger, or Langfuse's OTLP endpoint.\n\nTelemetry is **disabled by default** and never fails a run — export errors are swallowed silently (set `VSAF_TELEMETRY_DEBUG=1` to see them and mirror spans to the console). Force-disable with `VSAF_TELEMETRY=off`. Flush at run end is bounded (≤5s) even when the endpoint is dead.\n\n### Enable\n\nVia standard OTel environment variables (recommended — keeps secrets out of the repo):\n\n```bash\nexport OTEL_EXPORTER_OTLP_ENDPOINT=\"http://otel-collector:4318\"   # /v1/traces + /v1/metrics appended\nexport OTEL_EXPORTER_OTLP_HEADERS=\"Authorization=Bearer <token>\"  # optional auth\n```\n\n`OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` / `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` are honored verbatim (no path appended). Note: the protocol is fixed to **http/protobuf** — `OTEL_EXPORTER_OTLP_PROTOCOL` has no effect.\n\nOr in `.vsaf/config.yaml` (env vars take precedence):\n\n```yaml\ntelemetry:\n  otlp:\n    endpoint: http://otel-collector:4318\n```\n\n### Migrating from the old Langfuse config (deprecated, still works)\n\nExisting `telemetry.langfuse` configs (and `LANGFUSE_*` env vars) are **auto-mapped** to Langfuse's OTLP endpoint (`<host>/api/public/otel/v1/traces`, Basic auth, requires Langfuse ≥ v3.22 self-hosted) — traces keep flowing without any change. Two differences: metrics are not sent to Langfuse (its OTLP endpoint rejects them), and the old numeric **scores** are no longer emitted (they became OTel metrics). `vsaf doctor` prints a deprecation notice with this table:\n\n| Old (`telemetry.langfuse`) | New (`telemetry.otlp`) |\n|---|---|\n| `host: https://lf.example.com` | `endpoint: https://lf.example.com/api/public/otel` (or any collector) |\n| `public_key` + `secret_key` | `OTEL_EXPORTER_OTLP_HEADERS=\"Authorization=Basic base64(pk:sk)\"` |\n| Langfuse scores | OTel counters `vsaf.run.*` — build dashboards in your metrics backend |\n\n### Privacy note\n\nTraces carry `user.id` (from `VSAF_USER` → `git config user.name` → OS username), the run args (truncated at 4KB), and model names — all sent to whatever endpoint is configured, exactly as with the previous Langfuse SDK. Only point telemetry at infrastructure you trust.\n\n### Session grouping (MCP mode) — SessionStart hook\n\nVSAF stamps the Claude Code session id onto each trace (`session.id` on the root span) so vsaf traces and the gateway's own traces group into one session on your backend. To know the current session id, VSAF reads `.vsaf/.claude-session`, written by a SessionStart hook. **`vsaf init` adds this hook automatically** — for projects initialized before that, add it to your project's `.claude/settings.json`:\n\n```json\n{\n  \"hooks\": {\n    \"SessionStart\": [{\n      \"hooks\": [{\n        \"type\": \"command\",\n        \"command\": \"node -e \\\"let d='';process.stdin.on('data',c=>d+=c).on('end',()=>{try{const j=JSON.parse(d);require('fs').mkdirSync('.vsaf',{recursive:true});require('fs').writeFileSync('.vsaf/.claude-session',j.session_id||'')}catch{}})\\\"\"\n      }]\n    }]\n  }\n}\n```\n\n`vsaf doctor` reports telemetry status.\n\n### What you'll see on your backend (MCP mode)\n\n- **`vsaf:<workflow>` traces** — the semantic layer: one span per node execution (AI nodes named `invoke_agent <node>` with GenAI attributes; re-runs get `vsaf.attempt` 2, 3, … — the basis for rework metrics), durations, and statuses. Spans are exported as each node finishes.\n- **Session grouping** — the root span carries `session.id` (the Claude Code session) and `user.id`; Langfuse maps both natively, other backends can group by attribute.\n- **Run-total metrics** — counters `vsaf.run.{artifacts_created,files_created,loc_added}` by `{workflow, user.id}`: \"who ships the most artifacts\" dashboards live in your metrics backend (Grafana/SigNoz/…). Token and cost numbers come from the gateway's own telemetry.\n- **Output metrics per AI node** (`metadata.outputMetrics`) — files/LOC the node produced, measured by diffing git state of the project dir at node start vs end: `filesCreated`, `filesModified`, `locAdded`, `locRemoved`, `artifactsCreated` (created files under `.vsaf/docs/`), and up to 20 `createdPaths`. Requires the project to be a git repo; anything else touching the repo during the node window is attributed to that node.\n- **Dual-repo projects** — a project whose code lives in separate repos is measured across all of them, so design output and working code are both counted. The repos come from the workspace file `vsaf install` writes, or from `telemetry.artifacts.code_roots` when you name them yourself. Totals stay the sum; the split is reported as `vsaf.output.{spec,code}.*` span attributes and, once a run touches a code repo, as `{spec,code}_loc_added` / `_net_loc` / `_files_created` scores. Sum those scores rather than averaging them — a docs-only node contributes no entry instead of an explicit zero. Each repo needs at least one commit to be measurable.\n\n---\n\n## REST API\n\nAll endpoints prefixed with `/api`. Start with `vsaf serve`.\n\n| Method | Endpoint | Description |\n|---|---|---|\n| `GET` | `/api/health` | Health check |\n| `GET` | `/api/workflows` | List workflows |\n| `GET` | `/api/workflows/:name` | Workflow detail (full DAG as JSON) |\n| `POST` | `/api/runs` | Start a run → `202 { runId }` |\n| `GET` | `/api/runs` | List runs |\n| `GET` | `/api/runs/:runId` | Run detail (status + node results) |\n| `GET` | `/api/runs/:runId/events` | SSE stream (realtime events) |\n\n`POST /api/runs` returns `202 Accepted` immediately — the workflow runs async. Subscribe to SSE events for realtime progress.\n\n### SSE Events\n\n```\nevent: node:start\ndata: {\"nodeId\":\"classify\",\"timestamp\":\"...\"}\n\nevent: node:complete\ndata: {\"nodeId\":\"classify\",\"durationMs\":2100,\"output\":\"bug\"}\n\nevent: node:skip\ndata: {\"nodeId\":\"plan\",\"reason\":\"condition not met\"}\n\nevent: run:complete\ndata: {\"success\":true,\"totalMs\":45200}\n```\n\n---\n\n## Architecture\n\n```\n┌──────────────────────────────────────────────────────────┐\n│                    Browser (Angular SPA)                  │\n│   Dashboard ──── Workflow Detail ──── Run Execution      │\n│    (HTTP)           (HTTP)           (EventSource)       │\n└──────────┬───────────┬────────────────┬──────────────────┘\n           ▼           ▼                ▼\n┌──────────────────────────────────────────────────────────┐\n│                  Fastify Server (packages/cli)            │\n│   /api/health   /api/workflows/*   /api/runs/* + SSE     │\n│                              ExecutionManager             │\n│   @fastify/static ──→ Angular dist/ (SPA fallback)       │\n└──────────────────────────┬───────────────────────────────┘\n                           ▼\n┌──────────────────────────────────────────────────────────┐\n│                  Core Engine (packages/core)              │\n│   DAG Parser → DAG Executor → Node Runner                │\n│   Variable Resolver · Condition Evaluator                │\n│   Workspace Manager · Run Store · Provider Registry      │\n│   AJV Validation · Contract Checks · Cycle Detection     │\n└──────────────────────────────────────────────────────────┘\n```\n\nStrict dependency direction: **web → (HTTP) → cli → core**. Published as a single npm package `@ngocsangairvds/vsaf`.\n\n| Package | Responsibility |\n|---|---|\n| `packages/core` | Engine library: parsing, execution, providers, isolation, persistence |\n| `packages/cli` | CLI commands + Fastify API server + MCP server |\n| `packages/web` | Angular SPA dashboard (private, not published separately) |\n\n### Design Decisions\n\n| Decision | Choice | Why |\n|---|---|---|\n| DAG scheduling | Wave-based parallel scan | Simple, no topological sort, natural parallelism |\n| Workspace isolation | Copy project to temp dir | Prevents partial changes on failure, safe rollback |\n| Run persistence | JSON files, one per run | No database, human-readable, easy to debug |\n| API framework | Fastify 5 | TypeScript-first, fast, built-in `inject()` for testing |\n| Realtime | SSE (not WebSocket) | One-way sufficient, simpler protocol |\n| Frontend | Angular 19 standalone | Strong TypeScript integration, lazy-loaded routes |\n| AI adapter | Shell out to `claude` CLI | No SDK dependency, simple to test |\n| Schema validation | AJV | Industry standard JSON Schema |\n| MCP integration | Stdio-based MCP server | Native Claude Code protocol, zero network config |\n| Skill distribution | `vsaf install` → `.claude/skills/` | Project-local install, available to Claude Code |\n\n### Tech Stack\n\n| Layer | Technology |\n|---|---|\n| Language | TypeScript 6 |\n| Runtime | Node.js >= 20 |\n| Build | tsc (project references) |\n| API Server | Fastify 5 |\n| Frontend | Angular 19 + Tailwind CSS 4 |\n| Realtime | Server-Sent Events (SSE) |\n| Testing | Vitest |\n| AI Provider | Claude Code (extensible) |\n| AI Integration | Model Context Protocol (MCP) |\n| Schema Validation | AJV |\n\n---\n\n## Programmatic Usage\n\nUse `@ngocsangairvds/vsaf` as a library:\n\n```typescript\nimport { parseWorkflow, DAGExecutor, ProviderRegistry, ClaudeCodeAdapter } from '@ngocsangairvds/vsaf';\nimport { readFileSync } from 'fs';\n\n// Parse workflow\nconst yaml = readFileSync('.vsaf/workflows/fix-issue.yaml', 'utf-8');\nconst graph = parseWorkflow(yaml);\n\nconsole.log(graph.name);           // \"fix-issue\"\nconsole.log(graph.nodes.size);     // 10\n\n// Execute with provider\nconst registry = new ProviderRegistry();\nregistry.register(new ClaudeCodeAdapter());\nconst provider = registry.get('claude');\n\nconst executor = new DAGExecutor(provider, workspacePath, projectPath, graph, {\n  onNodeStart: (id) => console.log(`▶ ${id}`),\n  onNodeComplete: (id, r) => console.log(`✓ ${id} (${r.durationMs}ms)`),\n  onNodeSkip: (id, reason) => console.log(`⊘ ${id}: ${reason}`),\n  onNodeFail: (id, err) => console.error(`✗ ${id}: ${err}`),\n});\n\nconst result = await executor.execute('fix #42', artifactsPath);\n```\n\n---\n\n## Development\n\n```bash\nnpm install          # Install dependencies\nnpm test             # Run tests\nnpm run test:watch   # Watch mode\nnpm run lint         # Type check\nnpm run build        # Build all packages\n```\n\n```\nvsaf/\n├── packages/core/     ← Engine library\n├── packages/cli/      ← CLI + API server + MCP\n├── packages/web/      ← Angular dashboard\n├── skills/            ← Skill pack definitions\n├── workflows/         ← Default workflow YAML files\n├── commands/          ← Default command templates\n└── tests/             ← Vitest test suites\n```\n\n---\n\n## Troubleshooting\n\n| Problem | Solution |\n|---|---|\n| `vsaf: command not found` | `npm install -g @ngocsangairvds/vsaf` or use `npx vsaf` |\n| `claude: command not found` | Install Claude Code CLI |\n| `gh: command not found` | Install GitHub CLI: `brew install gh` or https://cli.github.com |\n| `.vsaf/ already exists` | `rm -rf .vsaf/` then `vsaf init` |\n| `Workflow not found` | Check `vsaf list`. Ensure `.vsaf/workflows/xxx.yaml` exists |\n| `Command not found` | Ensure `.vsaf/commands/xxx.md` exists with correct frontmatter |\n| Run stuck / no progress | Check `claude --print \"hello\"` works. Check network |\n| `vsaf serve` shows \"Web UI not built\" | Build Angular: `cd packages/web && npx ng build` |\n| Workspace disk full | Set `cleanup: after_always` in config.yaml or `rm -rf /tmp/vsaf-*` |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}