{"_id":"@prorigo/protrak-forge","_rev":"41-cc1c576bad52864a1d50eeabc02379b6","name":"@prorigo/protrak-forge","dist-tags":{"latest":"0.8.5"},"versions":{"0.3.3":{"name":"@prorigo/protrak-forge","version":"0.3.3","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.3.3","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"ac6b2b72887df05552c4abcdd11f71ca098631f2","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.3.3.tgz","fileCount":63,"integrity":"sha512-xoAnv5t/1/crSi/chJP++f/o4Q4+Uhs7E2sX+UhharniJnPyi2C43y35Rf31gH0E/Gc2P5py0nPUIMtBsdUPkg==","signatures":[{"sig":"MEUCICZ4JwqV5qVGCYv9xeuI3ghbAgg9w1VuJdS5PxsRBE98AiEAqNESnxVPZw+GjPZp44gsOqD3NfdmSv+no7SdLvzKRpc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1295961},"gitHead":"b0308badf857be3dc26d124e4f0aeed8b4a27210","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.3.3_1778165721829_0.6450619535874207","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@prorigo/protrak-forge","version":"0.3.4","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.3.4","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"0114db932dd6352fe15240c1f84a22be0848f056","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.3.4.tgz","fileCount":62,"integrity":"sha512-nrIvQWSL8IE87iqFGFndVy9jPVVc75gjGeDVnFB7x7600SG19EewnL1esj6F9DyIuRhK9C4QkOdMZTnr1jE1YQ==","signatures":[{"sig":"MEQCICOxuJtv9ku8VWOt6QyzsVMkUEb2n/7knkDUrD5JDXjfAiAP4r9IUq2eOfpNYTqt7Xku4m40pq5T1y4RlRFaFMNeNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1303758},"gitHead":"5b49847433be03d8980c6c1ce931bccd54d77199","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.3.4_1778321914930_0.061241391231703135","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@prorigo/protrak-forge","version":"0.3.5","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.3.5","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"07554f7ae8ba3fc08b874ecd2c66bf365461832e","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.3.5.tgz","fileCount":63,"integrity":"sha512-I/wAe+An1v0+PsVfFpAgHg4vohpj6bg8x/sKuZI5aEVpKZW24R+j1+0LC4Sk6yXm0oynwzCX9sgKzzAk1e6eIA==","signatures":[{"sig":"MEYCIQCIoVR/DgNYs8HaAqmtSZyBJ8WbruoxGIHlRm/eMKFOkgIhAI9KD/bb7fZMl3wdG5hKaV7vEJNIlPYgGJKgNn5QYy0n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1322365},"gitHead":"3ae71f38f0bdf3d4c6652edc7653a85e6ac25a4b","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.3.5_1778421787547_0.9145844964383405","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@prorigo/protrak-forge","version":"0.4.0","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.4.0","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"72040d77027f70e6849283745afa003288ae509f","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.4.0.tgz","fileCount":57,"integrity":"sha512-SDgoaF37WSYqymkYYYCsC+TQUMI2xEoQxXuqasTGm87FFBqhW3c2yt5ZUBDH9fsLGGSAquunEMGBtnvaBLsBrQ==","signatures":[{"sig":"MEUCIQDJFYMCe7Iq5vLe8yaAPpl6KIYE5coUuPXgAdxoxRIkCwIgJlRpr865XcERkXpPLFDw2ZR+96VthmmGO36oMe+NbGA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1194950},"scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.4.0_1778916154635_0.1153880648819281","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@prorigo/protrak-forge","version":"0.4.1","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.4.1","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"7fe0e0c8ff754669a0fe5e1869eac2a1ba114527","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.4.1.tgz","fileCount":57,"integrity":"sha512-H15o/EIhISrzafCO19J6KHeRvbc2K0J+Dd87At+voz6uvLJLZlU/jB+2qfDgi40Ju49w81xyA0+JPz1G/V+rUg==","signatures":[{"sig":"MEQCIFnRx/WoSmOWqdr5JRhM7DRoeO8Nn6PfeCgb3GCjcE28AiA78KJH1JdyreZ+wqraNIasaqrnL9lag/qKqGmbPsK38w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1196763},"scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.4.1_1778928142758_0.1173795713641208","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@prorigo/protrak-forge","version":"0.4.2","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.4.2","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"9f4a4e2c6d2a89000f4e8df1bbe9d644e68128cd","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.4.2.tgz","fileCount":57,"integrity":"sha512-zn2DyYo8dIi3SAI+FUXNSaYzdhUk7QGWV0kqbGdH0Edd1ZYCt496ik0SAn7Eqsdas++gj9w4SbBB5TG2SqV5SQ==","signatures":[{"sig":"MEQCIGkdxzvoMsTPE+V89lv7K8ysCgkFMO4ogVyEP6QYsvQfAiBP5sSKiMp/cK5en/S07hGMq3yjtDqSB4zbkHNWq2dlVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1200830},"scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.4.2_1778995048491_0.3349650196450451","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@prorigo/protrak-forge","version":"0.5.1","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.5.1","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"b8a1b3c88bdb94ac685b2c0fef4442f709cb0038","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.5.1.tgz","fileCount":57,"integrity":"sha512-tyCxWr2QT8UsURk+asD6LwoimdU1+xdeZtClxwWIfD384PRjlSQ7+QqhdKVuMiDF/mTrFOP3iPIrNob8+oonCA==","signatures":[{"sig":"MEQCIDqTBoCA0HRlhJlslmxAtm6/VFUOGoILfiNHE6aJOX40AiBwsbVSogMqZsiVomZNR8KeVb8tMga9NjjgqtCtnG5Xog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1263257},"scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0","@prorigo/protrak-schema-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.5.1_1779090927781_0.3141042193364285","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@prorigo/protrak-forge","version":"0.5.2","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.5.2","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"9931d9f28f7f1d447ded54bb9c542f7e1ebf0c8a","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.5.2.tgz","fileCount":172,"integrity":"sha512-NHbaTtn/AIrydXs0ZFq8oThe+7iMdR/7oOfFY02sQhEtQG02DTCpAlVatlNJDb0xEm7aEDmJnE4lNaS95i/1tg==","signatures":[{"sig":"MEYCIQD34qm3sxr/3imwFDQkqITrkDkHe8uU8tAUfIkBdsMmbwIhAJAl07VEmOPJdIdiWORq9uFRyNfGkvQ3JAT4Me4SGA8b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1877918},"gitHead":"631dd66bd91785f1a7ba0cc1ba6e5789cf84de87","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0","@prorigo/protrak-schema-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.5.2_1779368093128_0.9708735236622348","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@prorigo/protrak-forge","version":"0.7.0","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.7.0","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"d9fe3cd2018e1ea644b69ae348407b28ea73afa2","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.7.0.tgz","fileCount":172,"integrity":"sha512-Ri8kk4b9wvEqNfw0f4clju33G7/Yg6xIbTaQaV+OAkDMLs1JxQqf9kXYXh3qk8GxkszMERRTZSUuRYCGyzFisw==","signatures":[{"sig":"MEYCIQCnhdlBjQLWTWcI2dgK5U50peRqE38JDUzcKtLw55YQowIhAKL0uGJJLwMh2Rs8/VC77midway33OA0YH8EKv+41sTX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1986170},"gitHead":"1dd1bc878222eeb47c3467f35b31a9cf2d53a88a","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.19.6","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0","@prorigo/protrak-schema-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.7.0_1779541346149_0.9799606004165873","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@prorigo/protrak-forge","version":"0.8.0","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.8.0","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"54c712565cf4c0680762eef174a126fd97ba5482","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.8.0.tgz","fileCount":180,"integrity":"sha512-qAKl/L3sFLHOmoSQCGfCJiOyuvMQAg4cz7rsK3OUUfO/VsTUXuBVE1O9P7UicD21QBLhVx6DE1lMkubgjd8mIw==","signatures":[{"sig":"MEQCIBpIppsqW1yqoBJqyumzhd/7LwvFVCineTJhHB2G1fFEAiB8l6ztrOzFZlElIyuOJnr0c+md8XFLe2TFa+OFBMLPcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1829315},"gitHead":"fcec94e796368d115288a951f50ddb48fcdb7f37","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0","@prorigo/protrak-schema-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.8.0_1782731228414_0.7163318021390792","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@prorigo/protrak-forge","version":"0.8.1","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.8.1","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"35ea74ac28bda9a8877d2c9ebbc86f49dd0fb254","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.8.1.tgz","fileCount":180,"integrity":"sha512-B+oLZWrAnTHPN8ftZWaaEnRmuQ/OsTgkyY8GlzfbRi7itz/7gDV5e4Nksc8NTTMzR5aT2NeOj8A6svivOpQy5Q==","signatures":[{"sig":"MEQCIFG7r1iOUNGX8pAdgc1cMBm/CzUmmFPOzqjJEV4jqvCoAiAwWycNO9aEWd13opSRyQbsF2Nrmp+wq3BSdSypSQE12g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1857916},"gitHead":"fb214ba925b203803144ab027902319ee1d8c1d4","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0","@prorigo/protrak-schema-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.8.1_1782746918505_0.32417413115263805","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@prorigo/protrak-forge","version":"0.8.2","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.8.2","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"323bffd5589b7eab6cae13d4bd7c629b239c72fb","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.8.2.tgz","fileCount":181,"integrity":"sha512-xBU9TNZkrb3cwGKHahcWCiNnnZOv9+9LwKqMjUpvTI/DALyh11Iuf2giF/ym4+zmG6EKLw83cq8W7RqdlOqUgA==","signatures":[{"sig":"MEUCIQC8JgCNj17L6igWxGlff4MD1EOPQMqlsme/1+J5VWuQlAIgFnjbdwxJNdNSuOpUCLSGV8omPQZFov99EKKQSSptLss=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1884438},"gitHead":"4df76505d6bd514801108a3e13c0f433c0d50ba7","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0","@prorigo/protrak-schema-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.8.2_1782974802160_0.6761830259631394","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@prorigo/protrak-forge","version":"0.8.3","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.8.3","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"7d841248c69b5ddb6665857beda1b66b54ab1410","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.8.3.tgz","fileCount":181,"integrity":"sha512-9LjUVdbAHPxP0s0b478NVPai8x1l55L1b1+R0JXAL8qNx/wU9HNz5thqgFG0xOhha/mHua8AyQLoMyGnR+p8FA==","signatures":[{"sig":"MEYCIQCgnWU512Z2Co/64oeB6ipVEDxCiAEHTaW44yqPCxYAIwIhAOxhD1CcbI/mpeKD0YSOssu0RuTV+TOUhfcOjpSdrlhE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1886759},"gitHead":"f5d2a4dada676eb896147cddbf6a7139ddc1e37b","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0","@prorigo/protrak-schema-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.8.3_1783017607647_0.7817274693909939","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@prorigo/protrak-forge","version":"0.8.4","keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","_id":"@prorigo/protrak-forge@0.8.4","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"bin":{"protrak-forge":"bin/protrak-forge.js"},"dist":{"shasum":"e98c9e859122b17c4ddd74cbd721320f70b41277","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.8.4.tgz","fileCount":189,"integrity":"sha512-vSqyPi3euZOQJjCFfEJb1lZU7lAs5+dx7zd9bwsJZsuPvwI9HpzO8Xf712iG7Ps5DXEVhc9FbzivqjYZDSKbkQ==","signatures":[{"sig":"MEQCIA8d6UH3Jta8cHMAjprbOmu+FQqYqBkR7/xBmNUGcgj8AiBcz21O6yOlYQ1VDp8TTus2Bc/53Vs2OvLXANPtL7ERxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1953780},"gitHead":"f7b95ffe80c2700b9cd14267176470746bc3db23","scripts":{"dev":"npm run build -- --watch","test":"vitest run","build":"npm run sync-data && node scripts/build.js","sync-data":"node scripts/sync-data.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"_npmVersion":"10.8.2","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.0","vitest":"^3.0.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","@modelcontextprotocol/sdk":"^1.11.0","@prorigo/protrak-schema-core":"*"},"_npmOperationalInternal":{"tmp":"tmp/protrak-forge_0.8.4_1784995791857_0.8257708970258928","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@prorigo/protrak-forge","version":"0.8.5","description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","bin":{"protrak-forge":"bin/protrak-forge.js"},"scripts":{"sync-data":"node scripts/sync-data.js","build":"npm run sync-data && node scripts/build.js","dev":"npm run build -- --watch","test":"vitest run","typecheck":"tsc --noEmit"},"keywords":["protrak","mcp","copilot","claude","csharp"],"author":{"name":"Prorigo"},"license":"MIT","devDependencies":{"@modelcontextprotocol/sdk":"^1.11.0","@prorigo/protrak-schema-core":"*","ajv":"^8.17.0","esbuild":"^0.25.0","minisearch":"^7.0.0","typescript":"^5.7.0","vitest":"^3.0.0"},"_id":"@prorigo/protrak-forge@0.8.5","gitHead":"465ad751917ea228afac96b313515d5924d494a1","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-kcG93XqlcQg8pvYcjdL7T+mRHmTcDJKdt3zzLYyEN0EJsLVlMjuVibk7RjQ+I3qboK6gwHri55d99VQmR34gjg==","shasum":"2c6e6eb71ad8067d35402343f4e380d0ceecc986","tarball":"https://registry.npmjs.org/@prorigo/protrak-forge/-/protrak-forge-0.8.5.tgz","fileCount":190,"unpackedSize":1994445,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDZeGWbyOtaoRthUz8QXzbbwS6i9vC/5jdGjsnaTycV/AiEAr2f987rG7DrXui3s0l91baFIJws2Up8d4KsShG3syNQ="}]},"_npmUser":{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"},"directories":{},"maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/protrak-forge_0.8.5_1786519832610_0.15646999463146205"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-11T12:43:24.861Z","modified":"2026-08-12T07:30:32.937Z","0.1.0":"2026-04-11T12:43:25.080Z","0.2.0":"2026-04-12T08:59:59.096Z","0.2.1":"2026-04-12T09:18:10.502Z","0.2.3":"2026-04-12T10:39:49.820Z","0.2.4":"2026-04-12T13:09:33.317Z","0.2.5":"2026-04-14T09:41:59.010Z","0.2.6":"2026-04-14T10:06:11.400Z","0.2.7":"2026-04-14T10:45:16.033Z","0.2.8":"2026-04-26T15:45:20.168Z","0.3.0":"2026-05-06T12:35:20.449Z","0.3.1":"2026-05-06T14:22:59.824Z","0.3.2":"2026-05-07T11:08:16.202Z","0.3.3":"2026-05-07T14:55:22.035Z","0.3.4":"2026-05-09T10:18:35.082Z","0.3.5":"2026-05-10T14:03:07.737Z","0.4.0":"2026-05-16T07:22:34.840Z","0.4.1":"2026-05-16T10:42:22.905Z","0.4.2":"2026-05-17T05:17:28.646Z","0.5.0":"2026-05-18T06:52:36.390Z","0.5.1":"2026-05-18T07:55:27.980Z","0.5.2":"2026-05-21T12:54:53.379Z","0.7.0":"2026-05-23T13:02:26.371Z","0.8.0":"2026-06-29T11:07:08.584Z","0.8.1":"2026-06-29T15:28:38.730Z","0.8.2":"2026-07-02T06:46:42.360Z","0.8.3":"2026-07-02T18:40:07.802Z","0.8.4":"2026-07-25T16:09:52.018Z","0.8.5":"2026-08-12T07:30:32.772Z"},"author":{"name":"Prorigo"},"license":"MIT","keywords":["protrak","mcp","copilot","claude","csharp"],"description":"Protrak domain context for coding agents — MCP server for GitHub Copilot, Claude, and Cursor","maintainers":[{"name":"kaustubhgk","email":"kaustubh.karandikar@prorigosoftware.com"}],"readme":"# Protrak Forge\n\nProtrak Forge is an MCP server for Protrak customization workspaces. It gives AI assistants the project context they need to help with Protrak C# programs, query definitions, and Design Studio layouts without relying on generic guesses.\n\n## What You Can Do\n\n- Generate Protrak C# programs with workspace-aware context\n- Review existing programs and validate generated code before using it\n- Explore types, available services, and existing project artifacts\n- Create or inspect query definitions used by your customization\n- Design new layouts with awareness of existing forms, widgets, and templates\n- Scaffold new entity types — Types, Lifecycles, Attributes, and RelationTypes — in one shot\n- Create notification templates using the correct Razor syntax and `@Model` variables\n- Audit the workspace for structural problems — unused attributes, missing lifecycles, duplicate names, circular promote paths\n\n## Requirements\n\n- Node.js 18 or later\n- A Protrak customization workspace\n\n## Path and Platform Notes\n\nThe examples below use macOS/Linux-style paths such as `/path/to/Your.Customization`. On Windows, use a Windows path instead. In JSON strings, escape backslashes:\n\n```json\n\"C:\\\\path\\\\to\\\\Your.Customization\"\n```\n\nIn Codex `config.toml`, you can use a TOML literal string to avoid double escaping:\n\n```toml\ncwd = 'C:\\path\\to\\Your.Customization'\n```\n\nIf a native Windows MCP client cannot launch `npx` directly, use `cmd /c` as the command wrapper. WSL users can use the macOS/Linux examples from inside the WSL environment.\n\n## Installation\n\n### VS Code with GitHub Copilot\n\nInstall the **Protrak Forge** extension from the VS Code Marketplace (publisher: **prorigo**). This is the simplest setup for VS Code and starts the MCP server automatically when you open a supported Protrak workspace.\n\n### Visual Studio 2022 (v17.14+)\n\nVisual Studio runs on Windows and can discover MCP configuration from several locations. For a team-shared solution setup, add a `.mcp.json` file to your solution folder:\n\n```json\n{\n  \"inputs\": [],\n  \"servers\": {\n    \"protrak-forge\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"--yes\", \"@prorigo/protrak-forge\"],\n      \"env\": {\n        \"PROTRAK_PROJECT_ROOT\": \"${workspaceFolder}\"\n      }\n    }\n  }\n}\n```\n\nFor a user-wide setup, put the same file at `%USERPROFILE%\\.mcp.json`. For a private solution-local setup, use `<SOLUTIONDIR>\\.vs\\mcp.json`.\n\nIf your customization project is not the solution root, replace `${workspaceFolder}` with the path to the customization folder.\n\nFor a Windows absolute path in JSON, escape backslashes:\n\n```json\n\"PROTRAK_PROJECT_ROOT\": \"C:\\\\path\\\\to\\\\Your.Customization\"\n```\n\nIf Visual Studio cannot launch `npx` directly on a native Windows machine, use the `cmd /c` wrapper:\n\n```json\n{\n  \"inputs\": [],\n  \"servers\": {\n    \"protrak-forge\": {\n      \"type\": \"stdio\",\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"--yes\", \"@prorigo/protrak-forge\"],\n      \"env\": {\n        \"PROTRAK_PROJECT_ROOT\": \"C:\\\\path\\\\to\\\\Your.Customization\"\n      }\n    }\n  }\n}\n```\n\n### Claude Code\n\nAdd this to `.claude/settings.local.json` in your Protrak customization repository:\n\n```json\n{\n  \"mcpServers\": {\n    \"protrak-forge\": {\n      \"command\": \"npx\",\n      \"args\": [\"--yes\", \"@prorigo/protrak-forge\"],\n      \"type\": \"stdio\",\n      \"cwd\": \"/path/to/Your.Customization\"\n    }\n  }\n}\n```\n\nOn native Windows, wrap `npx` with `cmd /c`:\n\n```json\n{\n  \"mcpServers\": {\n    \"protrak-forge\": {\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"--yes\", \"@prorigo/protrak-forge\"],\n      \"type\": \"stdio\",\n      \"cwd\": \"C:\\\\path\\\\to\\\\Your.Customization\"\n    }\n  }\n}\n```\n\nYou can also install globally and use the `protrak-forge` command directly:\n\n```bash\nnpm install -g @prorigo/protrak-forge\n```\n\n```json\n{\n  \"mcpServers\": {\n    \"protrak-forge\": {\n      \"command\": \"protrak-forge\",\n      \"type\": \"stdio\",\n      \"cwd\": \"/path/to/Your.Customization\"\n    }\n  }\n}\n```\n\nOn Windows, use the npm-generated `.cmd` shim:\n\n```json\n{\n  \"mcpServers\": {\n    \"protrak-forge\": {\n      \"command\": \"protrak-forge.cmd\",\n      \"type\": \"stdio\",\n      \"cwd\": \"C:\\\\path\\\\to\\\\Your.Customization\"\n    }\n  }\n}\n```\n\nOptional: if you're using the VS Code extension, run **Protrak Forge: Configure Agent Instructions** instead of the steps below — it writes all of this (plus `.mcp.json`/`.codex/config.toml`) for the tools you pick, and skips anything that already exists.\n\nOptional (no VS Code extension): if you installed the package globally, copy both the `AGENTS.md` template (the actual Protrak Forge usage guide) and the `CLAUDE.md` template (a thin pointer that imports it) into your customization repo:\n\nmacOS/Linux:\n\n```bash\ncp $(npm root -g)/@prorigo/protrak-forge/data/AGENTS.md.template /path/to/Your.Customization/AGENTS.md\ncp $(npm root -g)/@prorigo/protrak-forge/data/CLAUDE.md.template /path/to/Your.Customization/CLAUDE.md\n```\n\nWindows PowerShell:\n\n```powershell\nCopy-Item \"$(npm root -g)\\@prorigo\\protrak-forge\\data\\AGENTS.md.template\" \"C:\\path\\to\\Your.Customization\\AGENTS.md\"\nCopy-Item \"$(npm root -g)\\@prorigo\\protrak-forge\\data\\CLAUDE.md.template\" \"C:\\path\\to\\Your.Customization\\CLAUDE.md\"\n```\n\nClaude Code has no native `AGENTS.md` support, but does support `@AGENTS.md` as an import line inside `CLAUDE.md` — copying both keeps a single canonical guide instead of two copies that can drift apart.\n\n### Codex and Codex CLI\n\nCodex app, the Codex IDE extension, and Codex CLI share MCP configuration through `config.toml`. Add this to `~/.codex/config.toml` for a user-wide setup:\n\n```toml\n[mcp_servers.protrak-forge]\ncommand = \"npx\"\nargs = [\"--yes\", \"@prorigo/protrak-forge\"]\ncwd = \"/path/to/Your.Customization\"\n```\n\nYou can also scope the server to a trusted Protrak customization repository by adding the same configuration to `.codex/config.toml` in that repository.\n\nOn native Windows, if `npx` does not launch from Codex, use `cmd /c`:\n\n```toml\n[mcp_servers.protrak-forge]\ncommand = \"cmd\"\nargs = [\"/c\", \"npx\", \"--yes\", \"@prorigo/protrak-forge\"]\ncwd = 'C:\\path\\to\\Your.Customization'\n```\n\nIf you prefer the Codex CLI command, run:\n\n```bash\ncodex mcp add protrak-forge --env PROTRAK_PROJECT_ROOT=/path/to/Your.Customization -- npx --yes @prorigo/protrak-forge\n```\n\nWindows PowerShell:\n\n```powershell\ncodex mcp add protrak-forge --env PROTRAK_PROJECT_ROOT=C:\\path\\to\\Your.Customization -- cmd /c npx --yes @prorigo/protrak-forge\n```\n\nTo verify the server is configured:\n\n```bash\ncodex mcp list\n```\n\nIn the Codex terminal UI, run `/mcp` to see active MCP servers for the current session.\n\nIf you installed the package globally, you can use the `protrak-forge` command directly:\n\n```toml\n[mcp_servers.protrak-forge]\ncommand = \"protrak-forge\"\ncwd = \"/path/to/Your.Customization\"\n```\n\nWindows:\n\n```toml\n[mcp_servers.protrak-forge]\ncommand = \"protrak-forge.cmd\"\ncwd = 'C:\\path\\to\\Your.Customization'\n```\n\nOptional: if you're using the VS Code extension, run **Protrak Forge: Configure Agent Instructions** instead — it writes `AGENTS.md` and `.codex/config.toml` for you (plus any other tools you pick), and skips anything that already exists.\n\nOptional (no VS Code extension): Codex reads project guidance from `AGENTS.md`. Copy the included template so Codex consistently uses Protrak Forge instead of guessing:\n\n```bash\ncp $(npm root -g)/@prorigo/protrak-forge/data/AGENTS.md.template /path/to/Your.Customization/AGENTS.md\n```\n\n### Other MCP Clients\n\nUse the same server with any MCP-compatible client:\n\n```json\n{\n  \"mcpServers\": {\n    \"protrak-forge\": {\n      \"command\": \"npx\",\n      \"args\": [\"--yes\", \"@prorigo/protrak-forge\"],\n      \"env\": {\n        \"PROTRAK_PROJECT_ROOT\": \"/path/to/Your.Customization\"\n      }\n    }\n  }\n}\n```\n\nOn native Windows clients that cannot launch `npx` directly, use:\n\n```json\n{\n  \"mcpServers\": {\n    \"protrak-forge\": {\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"--yes\", \"@prorigo/protrak-forge\"],\n      \"env\": {\n        \"PROTRAK_PROJECT_ROOT\": \"C:\\\\path\\\\to\\\\Your.Customization\"\n      }\n    }\n  }\n}\n```\n\n## Example Prompts\n\nOnce the server is connected, you can ask your assistant things like:\n\n- \"Create a PreCreate program for Project that validates required fields.\"\n- \"Review this existing program and explain what it does.\"\n- \"Create a query definition for active projects assigned to the current user.\"\n- \"Design a dashboard layout for Diary using the existing workspace patterns.\"\n- \"Scaffold a Diary entity with an Active/Inactive lifecycle and a FarmerGatToDiary relation.\"\n- \"Create a notification template for the Invoice type that emails the manager when an invoice is promoted to Sent.\"\n- \"Create a rule named OverdueAllocation that fires when AllocationEndDate is on or before today, and attach it as background-color conditional formatting on the AllocationEndDate column of ProjectActiveAllocationsRelationWidget.\"\n- \"Set the OwnerOnly rule as the Access Policy on the Project type.\"\n- \"Make the In Use option on ResourceStatus depend on the EquipmentStatusEqualsToolUp rule.\"\n- \"Analyze this workspace for schema quality issues.\"\n- \"Which attributes in this workspace are not used by any type?\"\n\n## Workspace Detection\n\nProtrak Forge tries to detect your customization workspace automatically. If detection does not land on the right folder, set `PROTRAK_PROJECT_ROOT` explicitly in your MCP configuration.\n\n## Tool Catalog And Conventions\n\n- **Upfront catalog.** `tools/list` advertises ~11 first-class entry points (the unified `list_protrak_artifacts` / `read_protrak_artifact` / `validate_protrak_artifact` / `generate_protrak_layout` dispatchers plus the discovery, scaffolding, and program / form generation tools). Deprecated aliases, focused mutators, and niche generators are still registered and callable by name but hidden from the catalog so the agent's tool picker stays sharp.\n- **Discovery.** Call `protrak_capabilities` to enumerate every registered tool (including hidden ones) along with its domain, category, keywords, and required arguments. Set the environment variable `PROTRAK_FORGE_ALL_TOOLS=1` to expose all registered tools in `tools/list` instead.\n- **Dry-run + diff.** Every generator (single-file and paired-file) accepts `dry_run: true` — it returns the proposed file content and a unified diff against any existing target, without touching disk. Paired-file writers (`generate_protrak_program`, `generate_protrak_widget`, `generate_protrak_notification_template`) pre-flight both files before committing either, so an overwrite refusal never leaves a half-written artifact.\n- **Scaffold vs. edit.** The `generate_*` tools are create-first builders: on `overwrite:true` they rebuild the file from the fields you pass and reset everything unspecified to defaults (the response warns when an overwrite would reset an existing element). To edit an element that already exists without losing unrelated settings, use one of the two non-destructive editors instead — both cover kinds `type`, `attribute`, `lifecycle`, `relation_type`, `rule`, share the same dry-run + unified-diff write path, and invalidate the relevant cache so later reads in the session see the change:\n  - `patch_protrak_schema_element(kind, name, changes)` — a shallow top-level merge for a single-field edit (a `null` value deletes a key); leaves every other field untouched.\n  - `write_protrak_schema_element(kind, name, content, overwrite:true)` — persists the exact object you pass, for a larger edit done as a round-trip with `read_protrak_schema_element(kind, name, view='raw')`. On overwrite, `name` is required and must equal `content.name`; renaming is refused so an accidental name edit can't fork or clobber a different file.\n\n  `patch` is shallow only; to edit inside nested arrays (a type's `attributes[]`, a lifecycle's `states[]`, a picklist's `options[]`) use the round-trip or a dedicated `attach_*`/`set_*` mutator.\n- **Validator levels.** `validate_protrak_program`, `validate_protrak_widget`, and `validate_protrak_artifact` accept `level: 'all' | 'errors_only'` (default `all`). Use `errors_only` to drop warnings when you're gating an auto-fix loop or summarizing blocking issues only.\n\n## License\n\nMIT © Prorigo\n","readmeFilename":"README.md"}