{"_id":"@canonical/harnesses","_rev":"30-9ab00399c473df9b7e5879737ce0d807","name":"@canonical/harnesses","dist-tags":{"latest":"0.42.0","experimental":"0.43.0-experimental.0"},"versions":{"0.18.0":{"name":"@canonical/harnesses","version":"0.18.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.18.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"416179dfb411b4258c29b7a883669ae73ec290cb","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.18.0.tgz","fileCount":54,"integrity":"sha512-WnlSEYZoP+n8EgJM3soY/nOwcdyd32LZ+DPOBNyK9b1vLHNNVQlFNDuYDXkLdGACoono5j8kC2xSeJTDKYwszg==","signatures":[{"sig":"MEYCIQCy0WyI2VZlJz+/T8rIxsrsEVtqAPG0ainDHmYv/IbqpQIhAJ13LqCZDcMXYW9EZ0bwpuzGGk+r+EtYEzOgx5/CLpLD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50419},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"e5434d05421090cb77c227ccaa6025983c9a292c","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"11.11.0","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"25.8.0","dependencies":{"@canonical/task":"^0.18.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.6","@canonical/biome-config":"^0.18.0","@canonical/webarchitect":"^0.18.0","@canonical/typescript-config":"^0.18.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.18.0_1774527783453_0.0842361827818432","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@canonical/harnesses","version":"0.20.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.20.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"1ef7c1438c70707b2b2f4395b7c72c93a51958de","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.20.0.tgz","fileCount":55,"integrity":"sha512-O5TOayd72B/m+uJGeTTRIarJkttJw9c+bnefF053nyeat11ltCE4Y/4VZhRIzSEDCLs+pwLU9/l9GZdPJaizmA==","signatures":[{"sig":"MEYCIQDpmW6NtcvkcWEV96yJUx6rvMHviKVEJdjuTTB4GKDBdAIhALZG1EJoiT6YCWli9NOpYSy8GO1n6V3FxokFItP5KRXq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58109},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"1aee634b278922f2aa1cfe2a11d3b14e64280905","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@canonical/task":"^0.20.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.6","@canonical/biome-config":"^0.20.0","@canonical/webarchitect":"^0.20.0","@canonical/typescript-config":"^0.20.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.20.0_1774535668868_0.2985388670719973","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@canonical/harnesses","version":"0.21.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.21.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"302fff44312d909b67d007b68af53cc1a338a30d","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.21.0.tgz","fileCount":55,"integrity":"sha512-aZ6VHbWdWBTLr1T/2XAr6fvebZ+1y1OcGq6/Lb+wMaeYWGkE6M9zBtDGuW6wbayxCZME+kgLeG1eQ0s7LTw4Zg==","signatures":[{"sig":"MEYCIQD9b+s/+IEBp5LyuxmyT/tHwUeIPgv/uKvqfS3ZcaRHYAIhAIOBUCAw8Cy4hHBedzLX+qZ48Sdr9NdQZzM5UqGgLpXI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58098},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"4a39c954e7bbad4903397f8371f801982034a26d","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@canonical/task":"^0.21.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.21.0","@canonical/webarchitect":"^0.21.0","@canonical/typescript-config":"^0.21.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.21.0_1775008256818_0.901803874465724","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@canonical/harnesses","version":"0.22.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.22.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"202dca585f0fdfab1056074576353edf8915455f","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.22.0.tgz","fileCount":55,"integrity":"sha512-MpN7VV1BELJFPnmln0RHYcWAZ2UnAoGXVOXRNzDTYJDhUtU0qho6RKgBg4bQBjs+a4oivWbaAKgwLdOheDG0lQ==","signatures":[{"sig":"MEYCIQDnLJKDUwcr7UUot6QoEHrJFl2UlgnrDkDV+cGARQ4ozAIhAOTsG9k6qEYMIrXNNhM1fj7A0gUjtnU04Zp3+G2awNgl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58098},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"99e187cf46d8bd7f3933705322fa4ab2d4a711e7","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@canonical/task":"^0.22.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.22.0","@canonical/webarchitect":"^0.22.0","@canonical/typescript-config":"^0.22.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.22.0_1775224857484_0.6051901919234401","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@canonical/harnesses","version":"0.23.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.23.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"6206594f2a3cdbf714e7b2103312d1540337a6d2","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.23.0.tgz","fileCount":55,"integrity":"sha512-kuV49hfP8ccYj+v+2A7GXn1Dfb9Cmgs0LLs/hcdztG3lW2zvxHajeYygCKy9uHjTt6TRV2TsmnGcGZxGLIKTYQ==","signatures":[{"sig":"MEYCIQDK2X4VyKR/InV/tsvFXJP4wE8noY706P6qS5e4T90jPwIhAO8zWYr4IwlCl1U4C6yK1hTAyLbhAs1wqCT+VdI3CBVi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58098},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"742f5396bc3f9ca01a49646ed5b67acfc9d001d2","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@canonical/task":"^0.23.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.23.0","@canonical/webarchitect":"^0.23.0","@canonical/typescript-config":"^0.23.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.23.0_1775548388566_0.6474925136891254","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@canonical/harnesses","version":"0.24.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.24.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"13b84385a6895a2b09da95ffffee347c643aa7ab","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.24.0.tgz","fileCount":55,"integrity":"sha512-eHO2f+VF5x6f6YWltkCvcVFApWnk85EHwn+Z/PKClelzRtswuoTDUkv3mONN2wmiYmxc34lextMP4sS6BwX/WQ==","signatures":[{"sig":"MEQCICOx6oQa3qqG7n5L6Zgr2Kbb28/ErJYli4T2gOZ9gTFtAiAwIlvz07TTdrK0larzt1REwJBAUOsAB93xdGG7/YuHzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58667},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"28565e3591ad80525b62bd7be6343d1f12ebf4d0","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@canonical/task":"^0.24.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.24.0","@canonical/webarchitect":"^0.24.0","@canonical/typescript-config":"^0.24.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.24.0_1776090169057_0.23674082661093143","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@canonical/harnesses","version":"0.25.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.25.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"ea214fa6e89c5937addc553109dc2d873ba0135d","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.25.0.tgz","fileCount":55,"integrity":"sha512-mdlUY5rybOZtt3ndJFYVAxzzKg47jJtd5ijIkpzWsg6CD1GBW1oa1E+ghKnSl5QaI+NdftSHzUL/3V5qbkEAFA==","signatures":[{"sig":"MEUCIQDK1PpjV7W4r2sUEcvG7/TmmfaFEc886diO9NdvZ2UqSQIgUqowBeLKcF0KmIW//zh5mFo8mk5IUrd1wXIExyIW0QM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58667},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"c6005a14c8210772ad8c589a2b473946780b6c20","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@canonical/task":"^0.25.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.25.0","@canonical/webarchitect":"^0.25.0","@canonical/typescript-config":"^0.25.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.25.0_1776414448326_0.5360658052239227","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@canonical/harnesses","version":"0.26.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.26.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"bb33320a90ee0da995b074f4f2b9c8b39810e980","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.26.0.tgz","fileCount":55,"integrity":"sha512-3RS2QOKreGXUy9p6XzX0PoauZ8O0fWd08O0+gAgdQGsgLw1UrGxLS/QNKMM0ftqibhyNY1SriX83jm3QqO5/6A==","signatures":[{"sig":"MEUCIQCG7Zg2EPg7XfX7BUdzloA/ApsXL9yVALhbCv5b+3sKewIgbLdVNsXCBE3qxlcMBuxFFX3hSziF5IYq6JDbBz48MHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58667},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"55fece1380dba8dcd3a88af443dd509d9aaaccb2","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@canonical/task":"^0.26.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.26.0","@canonical/webarchitect":"^0.26.0","@canonical/typescript-config":"^0.26.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.26.0_1777070644755_0.4054493367716321","host":"s3://npm-registry-packages-npm-production"}},"0.27.0":{"name":"@canonical/harnesses","version":"0.27.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.27.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"8bc316dc81de720941d3f19c10e58f0078e809cb","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.27.0.tgz","fileCount":55,"integrity":"sha512-05gCNbAUT2+MgL1JhWOXSEZsQKqnHnbyF6D854b7liwVneg5QuCrRf5YVh6Sm+O0UmVQnVjrcoObWW+jtLhoIw==","signatures":[{"sig":"MEYCIQCwflyDja9seFZeu+6H/2z0HrRLcqO8W8YRnVeAyUVeNQIhAI504qA2jwvZWFvoGw74mbkVjuaZShqH+Cc6B7QEsi6N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58667},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"5df5709bf7cb6f2016be2f6eba8391637e2e2a0c","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"mariadias143","email":"marianovadias@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.14.1+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@canonical/task":"^0.27.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.0","@canonical/webarchitect":"^0.27.0","@canonical/typescript-config":"^0.27.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.27.0_1777454201920_0.41636045198792493","host":"s3://npm-registry-packages-npm-production"}},"0.27.1-experimental.0":{"name":"@canonical/harnesses","version":"0.27.1-experimental.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.27.1-experimental.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"7dceb9412577f0c1649c40c38ee9f89aa9c477f4","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.27.1-experimental.0.tgz","fileCount":55,"integrity":"sha512-xHTkASAVAr+U8W3o9Tm3PjDLkIXQ1yISSEgxWwhBwZ93kAc9yxQ7/jCS/mbPjvk3WhA+piwLQc6fCvXxAjywYw==","signatures":[{"sig":"MEYCIQD7TvkTW4PYKo92nCFNnf0mDjCwwTL3BdcnmpsJz6C+MwIhAMgHUqux7s0XArKHhp0Wkk2nPx/qJAUgkFeIkN+vWeV2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.27.1-experimental.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58791},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"d3f5b9aab7bec07fce40a12b45097d28d3cf0201","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.15.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@canonical/task":"^0.27.1-experimental.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0","@canonical/typescript-config":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.27.1-experimental.0_1779386185862_0.5628881271720643","host":"s3://npm-registry-packages-npm-production"}},"0.28.0":{"name":"@canonical/harnesses","version":"0.28.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.28.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"2afef8678d2d09de0e427ed07bcf22c9cb740e4f","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.28.0.tgz","fileCount":55,"integrity":"sha512-+20itBpycPNyZQJqRMyRnKJpOVGuTQajwWJ9vzPsVJD4K3V+W9wgal6HVtF9g/K4s6+79PG4ufA7QBrjaGdKjQ==","signatures":[{"sig":"MEYCIQCTYKBSCujmrvZjvygGG6tH3FYWZzdoyuRb6OaVIGbEqgIhAP+M2+wt3h3955QoEGu56CMiNSwSGnTWVt3AwfNKp2m9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58716},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"8297d72122bcba903f7e8833cb23ccbaa164ed56","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.16.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@canonical/task":"^0.28.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.28.0","@canonical/webarchitect":"^0.28.0","@canonical/typescript-config":"^0.28.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.28.0_1781617492437_0.6142400637566403","host":"s3://npm-registry-packages-npm-production"}},"0.29.0-experimental.0":{"name":"@canonical/harnesses","version":"0.29.0-experimental.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.29.0-experimental.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"mariadias143","email":"marianovadias@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"98a83e18666e2420c7dab100fbedff37915a173c","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.29.0-experimental.0.tgz","fileCount":55,"integrity":"sha512-NMP4/KpB6QBJQmZ1hzQGLQRqn7+J7r+ctQwCU9Q9UR52B7vafemg0ANXvwwd4C3EH30VT+aF+0MUvyjZwNYxWQ==","signatures":[{"sig":"MEYCIQCNxcobbkpRLlGG8mA6yElGchHm4O0h/5BB/MUk49UeowIhANfGgjLe2MeQX6YgVzrMcjd5QflSKOYq+dJkC8dFcpJv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.29.0-experimental.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58761},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"eda67fea634a79b9f77910d3106219efc9b30136","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.16.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@canonical/task":"^0.29.0-experimental.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.28.0","@canonical/webarchitect":"^0.29.0-experimental.0","@canonical/typescript-config":"^0.28.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.29.0-experimental.0_1782338253856_0.9860082969396695","host":"s3://npm-registry-packages-npm-production"}},"0.29.0":{"name":"@canonical/harnesses","version":"0.29.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.29.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"3b50a21b1d507e2d5ed8410ce1d1a8d53265c28d","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.29.0.tgz","fileCount":55,"integrity":"sha512-tGavAYyd3pa3Wdso0S+xcl4QOmpbS6Lc9bKphCwkBnO6kgfihS/sc0T0Kx3Mvae7QRj1yT48i7sN6R+DA3yNDg==","signatures":[{"sig":"MEUCIDvUOrmkOsYSMmFN+xhoBeoFF+aqOEN7BO6uhQk7Xyq/AiEAziduTr9+z+oIA55HkmWNLiBKkq0qGubsUUMcQGDc/qU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58716},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"535302c1e1e5dd8fa9bc2da4144de57ec4e63005","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@canonical/task":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.29.0","@canonical/webarchitect":"^0.29.0","@canonical/typescript-config":"^0.29.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.29.0_1783071066491_0.39160722741538945","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@canonical/harnesses","version":"0.30.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.30.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"d44e416caa259160f2169a5e5dceda9cf405b644","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.30.0.tgz","fileCount":59,"integrity":"sha512-ZkcEYeq9fHU21urar7LuAMCiQ0H1Ep02HTpheCWj2/nB4C1TH8NXyCF9DF4jmsd45lYC7JB9yVGWmybkLmgF2A==","signatures":[{"sig":"MEYCIQC4/Pv5dXb8f7s7ql/3DXpAlApu07149DLx8qJJGzNZsQIhAP8dXBEvstT3Rd1loNYx4kbltMnODKB7VB3OipJhVJ6a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68632},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"40fe86ac955473536ac14f074812a9821f5b65c0","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@canonical/task":"^0.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.30.0","@canonical/webarchitect":"^0.30.0","@canonical/typescript-config":"^0.30.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.30.0_1783988110301_0.7164341300701778","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@canonical/harnesses","version":"0.31.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.31.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"19e2f480d3562132536ca9081e5a8693531344b7","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.31.0.tgz","fileCount":59,"integrity":"sha512-1SsxaWQc5O/u+RX1qsKfuLwpjySkqHFqOixkUZtJGbygYZNWMbXJzQYV1t//yX08viDulMfJQF9a4bHOJEq8Fw==","signatures":[{"sig":"MEUCIQCS6Fjjj61G0a+8hIXWMu7pftYiJMEaGi8uQrYcNWshTAIgNTQIjplK8xU0o0dmWzkwNzwCEeNvvbV5XcPfVMXbsoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68632},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"d4a67ebe42e62b8cf3de77f42f537309ca88d672","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@canonical/task":"^0.31.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.31.0","@canonical/webarchitect":"^0.31.0","@canonical/typescript-config":"^0.31.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.31.0_1784323747811_0.7748111743559447","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@canonical/harnesses","version":"0.32.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.32.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"e36f54c0b013e55b1b98b950cb2c5bd1b45becd2","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.32.0.tgz","fileCount":59,"integrity":"sha512-lpdDeFPNIrfh/RgbnYGn51HF8ugHcc+U3XAC0OOzZDHKjl3ticZZSJvbjwdRW2cKQgp+6htlyQcjsBmk+6N7GQ==","signatures":[{"sig":"MEYCIQCk4ok/GfZkgLlKFeOBtsYicQXpPbxwcMir/2wZD8cRNgIhAMbATHeBAmuUmN4+d4sPdy+tqURmZbQJiRQjdAfnRmCD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":68632},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"5b279d8150e3988c68c6c2a741046bcd425624ca","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@canonical/task":"^0.32.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.32.0","@canonical/webarchitect":"^0.32.0","@canonical/typescript-config":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.32.0_1784542941487_0.5807967846833171","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@canonical/harnesses","version":"0.33.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.33.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"f90b58b0bffe917dc5c600d4379498638ac5fe42","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.33.0.tgz","fileCount":71,"integrity":"sha512-6tgyJrQomJDVynQMEQWxrs2DEFQ2LbwHXGIBP5dtPdAOU2vvTNQAlDeLabCfe/OzkkO8hm8+uusxiZ+87V/Yqw==","signatures":[{"sig":"MEQCICMn8k1dXC4YCgTWuTerHeh23qhdwS2F7P4OWOgjTvVcAiBIRq3upQadWnDZWaJD29JlC6dhaZQE7Ql8oqWMtP7qOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130721},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"fca2bc4440fff2d511fc8db6686f9b19222fdbc7","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@canonical/task":"^0.33.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.33.0","@canonical/webarchitect":"^0.33.0","@canonical/typescript-config":"^0.33.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.33.0_1784914678812_0.646414318235603","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@canonical/harnesses","version":"0.34.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.34.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"2380f2191fee74f0d8280f08aef51e9c75ec7f63","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.34.0.tgz","fileCount":71,"integrity":"sha512-8ayScJRXd2JkM3cCNgC2fQNWk3vVJBgFCHUkFk43rKTOgNMM/FDClwreA/xd8GeSYubmLLWiF7D3nulYKedSLA==","signatures":[{"sig":"MEYCIQDJGgUaJvCpJTMYQMeQq/DSn4nkFjqf3Xy/Umt9Mvd4xgIhAP1KUikojpx/3HA2mOiUzaXjmT0bg7r8TcouV6Pqy3aN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130721},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"e8d25fecbe6e70edfc4cb300bad65f691dbbd26e","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@canonical/task":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^24.12.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.34.0","@canonical/webarchitect":"^0.34.0","@canonical/typescript-config":"^0.34.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.34.0_1787317083892_0.9324727448868575","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@canonical/harnesses","version":"0.35.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.35.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"0c29336468198329955f3ea9435be4f5c8c2a165","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.35.0.tgz","fileCount":83,"integrity":"sha512-UC7uDkYHfZY2NCEyzxIpoZ/8JJEAp8r5vJ5/pGMiTKrFg7K/1WSTUpFUEYx4/BT1n7RpKJVIDl5vu9ZRY1J+8g==","signatures":[{"sig":"MEUCIQCVcfKg1aaaSg0kNZ+3tRgQsFa9srEHGxYbzHF1fDykRQIgL9HH02eQ8xdMzn3r9b25SkOms0RE+zteofAMZ2hw0U4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":179776},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"5198c5399ef657959272c0e35924391573d81146","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@canonical/task":"^0.35.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.35.0","@canonical/webarchitect":"^0.35.0","@canonical/typescript-config":"^0.35.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.35.0_1787877256188_0.16505188283654726","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@canonical/harnesses","version":"0.36.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.36.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"3d2dd8e6704ca438fb3acf00e60627bc0999e92c","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.36.0.tgz","fileCount":83,"integrity":"sha512-iDngSatTYT/TXmKuhFsf9GkQpM1tQJYM5fVceGE8zrCbPfk3ceZsZZIlt1zCUg4GbuGNPurvgvmHFyAXVQVbIg==","signatures":[{"sig":"MEUCIQCzSb8tSGE/K6JmpluWuZdHf7lJshbkMz6HuutK8DanFwIgQ3YYPW4OWMpFZS6nJVsLBtAwganikTy9X3Fx/UQBW8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":193039},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"78eb47ac10104e914eeacd331795e14b832703d4","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@canonical/task":"^0.36.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.36.0","@canonical/webarchitect":"^0.36.0","@canonical/typescript-config":"^0.36.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.36.0_1788012112147_0.8655715557300157","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@canonical/harnesses","version":"0.37.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.37.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"59ddd4433e9f206e7c4cefbffa9bac2f785636e7","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.37.0.tgz","fileCount":83,"integrity":"sha512-T3xa3xg8fHuwceL+h4nV37lDatIk+1dS33IzhVw64yETKnsM1kqM7AvGLR9AMTuSIPc5nnEDVlmvTMKu1MASkw==","signatures":[{"sig":"MEUCIQCiYFk/wwbhwVLH74pjwlypuuigxGA9YmdHsR20FKYKoQIgR40KxCYzru937jpJgUIFBMmr2otBhSesYRhx7IgFUJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":193039},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"ac8383bdb4be1bcd6fa6c4960a1e3d78c0279688","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.19.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"@canonical/task":"^0.37.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.4.9","@canonical/biome-config":"^0.37.0","@canonical/webarchitect":"^0.37.0","@canonical/typescript-config":"^0.37.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.37.0_1788345308430_0.0825285089166028","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@canonical/harnesses","version":"0.38.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.38.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"7c33b1f963013d8cfeb44cdd1c32533d1790404a","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.38.0.tgz","fileCount":87,"integrity":"sha512-DLobJG3YotioXFDX8T52AerZevP+PuE30eyBg+RAGv55feGi1MpcseJIEqfXy8coTlc3Y3c7H2YOqLcpjor8yA==","signatures":[{"sig":"MEUCIQDgpQCPKV2sGWudbIjInCBOltAxhmzmWgiNRPY0lC/8oAIgHHrvZNBviB2RI1fZu5p7Vg0M3mTKbC9MTCPyLlriih0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242073},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"4d10a68a9b299af6fe3d1d7d053e54ca128944ad","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@canonical/task":"^0.38.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.5.13","@canonical/biome-config":"^0.38.0","@canonical/webarchitect":"^0.38.0","@canonical/typescript-config":"^0.38.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.38.0_1789572959425_0.912718644022372","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@canonical/harnesses","version":"0.40.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.40.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"8a8934a367da970922ed30564dcea2c3831aba75","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.40.0.tgz","fileCount":87,"integrity":"sha512-X5uZuexzDff+rrJeNTNDiR2CLjb3t5/4bfUVciqLjoNWCJ6tBP9a9Y8n8/ACI30wpEG+DB8CoT9Q78Ebd8mScA==","signatures":[{"sig":"MEUCIQCsyZb7PT7AL0t+zY2SVNzlHsl8w90OWU9Yg+a2zRLmJgIgeZMM/y6rFy9O14KBCDEb7prKPmz+/MpMXSjYT5AhBU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFkx1GZp0hW8DKCqjobvcp0A8VfUBF7JCPBbKsCXSHPyAiA5QPfdOCCg7ewnNh/w7wqTE7KfK8SbHxxycB1tSi+UWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242073},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"9136b71518260c5f33e7619da087198c931e4c13","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@canonical/task":"^0.40.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^5.9.3","@types/node":"^26.0.0","@biomejs/biome":"2.5.13","@canonical/biome-config":"^0.40.0","@canonical/webarchitect":"^0.40.0","@canonical/typescript-config":"^0.40.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.40.0_1789941898874_0.9778631094249586","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@canonical/harnesses","version":"0.42.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/harnesses@0.42.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"801e98dade90657d44cfd35f546a88aa4475758a","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.42.0.tgz","fileCount":87,"integrity":"sha512-7UcY64JLD7YwI7LDnbTGkfsOxDGZAjNHCrYz5GvPTI5lhB65h8sViZNpxi0j6LodVJRWr+M89ViA7BEooscMjQ==","signatures":[{"sig":"MEUCIG9q3tpExZ/QfWkjVKteCHH2LfmYB7ZGACjj4evAMFQ0AiEAqcVY450Ts9e5iwycMwqvgZWw9nWouRrAfLQSuZs/WyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIElLI0Yt7UJ+CxDAUzgXazOdhIhB46Fnh4kyj0eVOP3JAiEAhJ2Ic4FTn0Qn/IjRWkGtZo0znAV9N7UlEZ0DiSQGA5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241660},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"75c2b17029ba899be3fa645be28290ac6fcb83a9","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b8356ff2-959e-42db-861d-e2a476af1c27"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@canonical/task":"^0.42.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.14","@canonical/biome-config":"^0.42.0","@canonical/webarchitect":"^0.42.0","@canonical/typescript-config":"^0.42.0"},"_npmOperationalInternal":{"tmp":"tmp/harnesses_0.42.0_1790560909702_0.14776923720044066","host":"s3://npm-registry-packages-npm-production"}},"0.43.0-experimental.0":{"_id":"@canonical/harnesses@0.43.0-experimental.0","bugs":{"url":"https://github.com/canonical/pragma-core/issues"},"dist":{"shasum":"4e8deeecbdd6b85e94397c67cd1e39dad67d2d6a","tarball":"https://registry.npmjs.org/@canonical/harnesses/-/harnesses-0.43.0-experimental.0.tgz","fileCount":87,"integrity":"sha512-Ra+9a+2MQFvWdIjNDH2ss/S81vwSCoEJ2bf+KfWfyrAfoV9V676EmUAGVJsRwRDlnKDTnIqXD4oOrvwu2DN1kw==","signatures":[{"sig":"MEUCICkMyE6KUfEPegupGSX9Fk84PqRd2VFtF3s79zI5jQMPAiEAy0tEU4rMmpU4qsUtAkE7UWSOXtUuTiytwhvnmPdvMyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE2imKXp89pJroyehzr8zTAbOMuNp3Yk9rKP1cgJgPQaAiBKS7PFYGYD/sX1UJCIF7ieqvVV3s3cuXVG/TE3hMCcJA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fharnesses@0.43.0-experimental.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241750},"name":"@canonical/harnesses","type":"module","types":"dist/types/index.d.ts","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"5c1b1bdbb95844fac6211f1fe6ba10c29238d6ee","license":"LGPL-3.0","scripts":{"test":"bun run test:vitest","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"tsc -p tsconfig.build.json","check:fix":"bun run check:biome:fix && bun run check:ts","check:biome":"biome check","test:vitest":"vitest run --coverage","check:biome:fix":"biome check --write","test:vitest:watch":"vitest","check:webarchitect":"webarchitect library"},"version":"0.43.0-experimental.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"05faf9de-ece8-4f5b-8a82-42e99259c8e8"}},"homepage":"https://github.com/canonical/pragma-core#readme","repository":{"url":"git+https://github.com/canonical/pragma-core.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","directories":{},"maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"_nodeVersion":"24.21.0","dependencies":{"@canonical/task":"^0.43.0-experimental.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^4.0.18","@types/bun":"^1.3.10","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.14","@canonical/biome-config":"^0.43.0-experimental.0","@canonical/webarchitect":"^0.43.0-experimental.0","@canonical/typescript-config":"^0.43.0-experimental.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/harnesses_0.43.0-experimental.0_1790649847353_0.9049948442399565"}}},"time":{"created":"2026-03-26T12:23:03.372Z","modified":"2026-09-29T02:44:07.825Z","0.18.0":"2026-03-26T12:23:03.594Z","0.20.0":"2026-03-26T14:34:29.012Z","0.21.0":"2026-04-01T01:50:56.945Z","0.22.0":"2026-04-03T14:00:57.627Z","0.23.0":"2026-04-07T07:53:08.702Z","0.24.0":"2026-04-13T14:22:49.221Z","0.25.0":"2026-04-17T08:27:28.477Z","0.26.0":"2026-04-24T22:44:04.879Z","0.27.0":"2026-04-29T09:16:42.083Z","0.27.1-experimental.0":"2026-05-21T17:56:26.067Z","0.28.0":"2026-06-16T13:44:52.583Z","0.29.0-experimental.0":"2026-06-24T21:57:34.007Z","0.29.0":"2026-07-03T09:31:06.626Z","0.30.0":"2026-07-14T00:15:10.452Z","0.31.0":"2026-07-17T21:29:07.957Z","0.32.0":"2026-07-20T10:22:21.632Z","0.33.0":"2026-07-24T17:37:58.966Z","0.34.0":"2026-08-21T12:58:04.035Z","0.35.0":"2026-08-28T00:34:16.348Z","0.36.0":"2026-08-29T14:01:52.307Z","0.37.0":"2026-09-02T10:35:08.572Z","0.38.0":"2026-09-16T15:35:59.593Z","0.40.0":"2026-09-20T22:04:58.962Z","0.42.0":"2026-09-28T02:01:49.782Z","0.43.0-experimental.0":"2026-09-29T02:44:07.462Z"},"bugs":{"url":"https://github.com/canonical/pragma/issues"},"author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","homepage":"https://github.com/canonical/pragma#readme","repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"description":"AI harness detection, MCP config read/write for Claude Code, Cursor, Windsurf, Cline, Roo Code.","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"readme":"","readmeFilename":""}