{"_id":"@cadre-dev/cadre","_rev":"8-9096ae44c3ad55e6b307eb1afb4774a6","name":"@cadre-dev/cadre","dist-tags":{"latest":"0.3.1"},"versions":{"0.1.0":{"name":"@cadre-dev/cadre","version":"0.1.0","author":{"name":"Jacob Freck"},"license":"MIT","_id":"@cadre-dev/cadre@0.1.0","maintainers":[{"name":"jafreck","email":"jafreck@outlook.com"}],"homepage":"https://github.com/jafreck/CADRE#readme","bugs":{"url":"https://github.com/jafreck/CADRE/issues"},"bin":{"cadre":"dist/index.js"},"dist":{"shasum":"9a7046b4fae589394a1bde52c2d626152316ab7d","tarball":"https://registry.npmjs.org/@cadre-dev/cadre/-/cadre-0.1.0.tgz","fileCount":1533,"integrity":"sha512-yiQwbay3ZOtPOa5qoacUPYLBjU+FSbg6+zBDx3Wk1NT1u8dZ6G7vDZd+IPUasH/Iiu0krN0u0YTKoICu4aVzyA==","signatures":[{"sig":"MEYCIQDIVs6dWa+nIt1Avig0st2mmLEv4bOIda0AYDA3m6Rm0gIhAM+8HbPLldTc5Gey2x0U+t/0nOoeB3/5ULPgl9fh4EWQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5795642},"type":"module","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"npm run build --workspaces --if-present && tsc","test:e2e":"CADRE_E2E=1 vitest run tests/e2e-*.test.ts","test:run":"vitest run","postbuild":"mkdir -p dist/agents && rm -rf dist/agents/templates && cp -r src/agents/templates dist/agents/templates","test:watch":"vitest"},"_npmUser":{"name":"jafreck","email":"jafreck@outlook.com"},"repository":{"url":"git+https://github.com/jafreck/CADRE.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.9.0","description":"Coordinated Agent Development Runtime Engine","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ora":"^9","zod":"^3.25","chalk":"^5","p-limit":"^7","p-queue":"^9","date-fns":"^4","commander":"^14","simple-git":"^3.32","@octokit/rest":"^22","@inquirer/prompts":"^8","zod-to-json-schema":"^3.25","@cadre-dev/framework":"*","@modelcontextprotocol/sdk":"^1.27","@cadre-dev/runtime-provider-kata":"*","@cadre-dev/runtime-provider-docker":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","vitest":"^2","typescript":"^5.9","@types/node":"^25","@vitest/coverage-v8":"^2"},"bundleDependencies":["@cadre-dev/framework","@cadre-dev/runtime-provider-docker","@cadre-dev/runtime-provider-kata"],"_npmOperationalInternal":{"tmp":"tmp/cadre_0.1.0_1772785248023_0.4066323080201317","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cadre-dev/cadre","version":"0.2.0","author":{"name":"Jacob Freck"},"license":"MIT","_id":"@cadre-dev/cadre@0.2.0","maintainers":[{"name":"jafreck","email":"jafreck@outlook.com"}],"homepage":"https://github.com/jafreck/CADRE#readme","bugs":{"url":"https://github.com/jafreck/CADRE/issues"},"bin":{"cadre":"dist/index.js"},"dist":{"shasum":"a46eb793df9ed0408a4f69f91e4cbb5b6d0c3c2f","tarball":"https://registry.npmjs.org/@cadre-dev/cadre/-/cadre-0.2.0.tgz","fileCount":1607,"integrity":"sha512-X8+8ufdLzX2HWldtci8HXLShYo6+u3ZDZKbuAtnylcZE6QVRhwTPN06LoykDdBG4TNgVeIS/B+v7URLEC/Oqdg==","signatures":[{"sig":"MEYCIQCGvxVenDrAFlBqavitVJRUVCSEP/P+ek6SiIchxaIQAgIhAOzdEyu401NbGYp95jdy63wCnVwjn7A/MH0GYtTUrM/n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cadre-dev%2fcadre@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6125873},"type":"module","gitHead":"72b1c9604b95aeec7a3bd3b04090930ce256e843","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"npm run build --workspaces --if-present && tsc","test:e2e":"CADRE_E2E=1 vitest run tests/e2e-*.test.ts","test:run":"vitest run","postbuild":"mkdir -p dist/agents && rm -rf dist/agents/templates && cp -r src/agents/templates dist/agents/templates","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fc7642d6-6c60-4441-b1be-bef1a19d8ae9"}},"repository":{"url":"git+https://github.com/jafreck/CADRE.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.11.1","description":"Coordinated Agent Development Runtime Engine","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9","zod":"^3.25","chalk":"^5","p-limit":"^7","p-queue":"^9","date-fns":"^4","commander":"^14","simple-git":"^3.32","@jafreck/lore":"^0.3.7","@octokit/rest":"^22","@inquirer/prompts":"^8","zod-to-json-schema":"^3.25","@cadre-dev/framework":"*","@modelcontextprotocol/sdk":"^1.27","@cadre-dev/runtime-provider-kata":"*","@cadre-dev/runtime-provider-docker":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","vitest":"^2","typescript":"^5.9","@types/node":"^25","@vitest/coverage-v8":"^2"},"bundleDependencies":["@cadre-dev/framework","@cadre-dev/runtime-provider-docker","@cadre-dev/runtime-provider-kata"],"_npmOperationalInternal":{"tmp":"tmp/cadre_0.2.0_1773560529427_0.529630796956625","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@cadre-dev/cadre","version":"0.2.1","author":{"name":"Jacob Freck"},"license":"MIT","_id":"@cadre-dev/cadre@0.2.1","maintainers":[{"name":"jafreck","email":"jafreck@outlook.com"}],"homepage":"https://github.com/jafreck/CADRE#readme","bugs":{"url":"https://github.com/jafreck/CADRE/issues"},"bin":{"cadre":"dist/index.js"},"dist":{"shasum":"f5b1255d4c04e33db8e1e2d0b09a3bc70bfded70","tarball":"https://registry.npmjs.org/@cadre-dev/cadre/-/cadre-0.2.1.tgz","fileCount":1607,"integrity":"sha512-peqfc9db1+8SYYYBA4nesfj+BEm4z8XVC1yHNCM9VfzvtzrJH3vF1Ef98sOke17HTL6aEuAKLdKgqMeopCx86A==","signatures":[{"sig":"MEUCIFprg3br9syNKmf2s+24G0GB1A/2JqTU+/J5BIBS1sqXAiEA1dPXP6fTokVubGA2Eeen7lOShz/HWvzJ/lns6F13Ago=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cadre-dev%2fcadre@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6163933},"type":"module","gitHead":"49b752bb14f9c64ae00c67be0c10a6c76410ebc5","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"npm run build --workspaces --if-present && tsc","test:e2e":"CADRE_E2E=1 vitest run tests/e2e-*.test.ts","test:run":"vitest run","postbuild":"mkdir -p dist/agents && rm -rf dist/agents/templates && cp -r src/agents/templates dist/agents/templates","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fc7642d6-6c60-4441-b1be-bef1a19d8ae9"}},"repository":{"url":"git+https://github.com/jafreck/CADRE.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.11.1","description":"Coordinated Agent Development Runtime Engine","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ora":"^9","zod":"^3.25","chalk":"^5","p-limit":"^7","p-queue":"^9","date-fns":"^4","commander":"^14","simple-git":"^3.32","@jafreck/lore":"^0.3.7","@octokit/rest":"^22","@inquirer/prompts":"^8","zod-to-json-schema":"^3.25","@cadre-dev/framework":"*","@modelcontextprotocol/sdk":"^1.27","@cadre-dev/runtime-provider-kata":"*","@cadre-dev/runtime-provider-docker":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","vitest":"^2","typescript":"^5.9","@types/node":"^25","@vitest/coverage-v8":"^2"},"bundleDependencies":["@cadre-dev/framework","@cadre-dev/runtime-provider-docker","@cadre-dev/runtime-provider-kata"],"_npmOperationalInternal":{"tmp":"tmp/cadre_0.2.1_1773607752885_0.1343571478755179","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@cadre-dev/cadre","version":"0.2.2","author":{"name":"Jacob Freck"},"license":"MIT","_id":"@cadre-dev/cadre@0.2.2","maintainers":[{"name":"jafreck","email":"jafreck@outlook.com"}],"homepage":"https://github.com/jafreck/CADRE#readme","bugs":{"url":"https://github.com/jafreck/CADRE/issues"},"bin":{"cadre":"dist/index.js"},"dist":{"shasum":"4d406c1e951d8a7fc0d950fd3e773515a69b646a","tarball":"https://registry.npmjs.org/@cadre-dev/cadre/-/cadre-0.2.2.tgz","fileCount":1607,"integrity":"sha512-VZ5eY82etWlZswrOfrEXQk3kDfOflp9ZXG4EbYj4+Hjqv/tRn6am7RQz3wyjj5vodjloQjhpZRRJOYnYIHx7tg==","signatures":[{"sig":"MEUCIQChyY3QFwkYUt19XHH3NSN+Ki4XL9lt+4SdOp89f7KYsAIgN+l00mUmFj6q2vrq7jGeUc9wb3GL1RoLA70wGid7Xxk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cadre-dev%2fcadre@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6165743},"type":"module","gitHead":"7ee35ec04ebdb1308c03bcee725fb45b378a8da4","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"npm run build --workspaces --if-present && tsc","test:e2e":"CADRE_E2E=1 vitest run tests/e2e-*.test.ts","test:run":"vitest run","postbuild":"mkdir -p dist/agents && rm -rf dist/agents/templates && cp -r src/agents/templates dist/agents/templates","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fc7642d6-6c60-4441-b1be-bef1a19d8ae9"}},"repository":{"url":"git+https://github.com/jafreck/CADRE.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.12.0","description":"Coordinated Agent Development Runtime Engine","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9","zod":"^3.25","chalk":"^5","p-limit":"^7","p-queue":"^9","date-fns":"^4","commander":"^14","simple-git":"^3.32","@jafreck/lore":"^0.3.7","@octokit/rest":"^22","@inquirer/prompts":"^8","zod-to-json-schema":"^3.25","@cadre-dev/framework":"*","@modelcontextprotocol/sdk":"^1.27","@cadre-dev/runtime-provider-kata":"*","@cadre-dev/runtime-provider-docker":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","vitest":"^2","typescript":"^5.9","@types/node":"^25","@vitest/coverage-v8":"^2"},"bundleDependencies":["@cadre-dev/framework","@cadre-dev/runtime-provider-docker","@cadre-dev/runtime-provider-kata"],"_npmOperationalInternal":{"tmp":"tmp/cadre_0.2.2_1774140011206_0.4262946286564313","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@cadre-dev/cadre","version":"0.2.3","author":{"name":"Jacob Freck"},"license":"MIT","_id":"@cadre-dev/cadre@0.2.3","maintainers":[{"name":"jafreck","email":"jafreck@outlook.com"}],"homepage":"https://github.com/jafreck/CADRE#readme","bugs":{"url":"https://github.com/jafreck/CADRE/issues"},"bin":{"cadre":"dist/index.js"},"dist":{"shasum":"2124e0ba9dcbeb095464f55fd31d4b8e1f6af8b8","tarball":"https://registry.npmjs.org/@cadre-dev/cadre/-/cadre-0.2.3.tgz","fileCount":1651,"integrity":"sha512-X4s0Ckuogsg4mq9p32EWSdQqdrCm00RxVdamFrRQSxiYr0Lgjogjo9IW60Mjm8Heum3fyJH2QFCR8q4AGbQwXQ==","signatures":[{"sig":"MEYCIQCIrTyADorqqo/ZHYS4WZugDyKAjZIyg/aD3pRb5saIjAIhAOGm3IjOyZSFSDSXk421jGQPH5b8iL3ua0OFgcbBLB+n","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cadre-dev%2fcadre@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6307265},"type":"module","gitHead":"caefe317b8395ce4e8a6f6a7ca264c5bc9a31510","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"npm run build --workspaces --if-present && tsc","test:e2e":"CADRE_E2E=1 vitest run tests/e2e-*.test.ts","test:run":"vitest run","postbuild":"mkdir -p dist/agents && rm -rf dist/agents/templates && cp -r src/agents/templates dist/agents/templates","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fc7642d6-6c60-4441-b1be-bef1a19d8ae9"}},"repository":{"url":"git+https://github.com/jafreck/CADRE.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.12.0","description":"Coordinated Agent Development Runtime Engine","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9","zod":"^3.25","chalk":"^5","p-limit":"^7","p-queue":"^9","date-fns":"^4","commander":"^14","simple-git":"^3.32","@jafreck/lore":"^0.3.7","@octokit/rest":"^22","@inquirer/prompts":"^8","zod-to-json-schema":"^3.25","@cadre-dev/framework":"*","@modelcontextprotocol/sdk":"^1.27","@cadre-dev/runtime-provider-kata":"*","@cadre-dev/runtime-provider-docker":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","vitest":"^2","typescript":"^5.9","@types/node":"^25","@vitest/coverage-v8":"^2"},"bundleDependencies":["@cadre-dev/framework","@cadre-dev/runtime-provider-docker","@cadre-dev/runtime-provider-kata"],"_npmOperationalInternal":{"tmp":"tmp/cadre_0.2.3_1774226881017_0.9607837855314079","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@cadre-dev/cadre","version":"0.2.4","author":{"name":"Jacob Freck"},"license":"MIT","_id":"@cadre-dev/cadre@0.2.4","maintainers":[{"name":"jafreck","email":"jafreck@outlook.com"}],"homepage":"https://github.com/jafreck/CADRE#readme","bugs":{"url":"https://github.com/jafreck/CADRE/issues"},"bin":{"cadre":"dist/index.js"},"dist":{"shasum":"ec5536691b01dbe5a120d884ad9d458cb93a4191","tarball":"https://registry.npmjs.org/@cadre-dev/cadre/-/cadre-0.2.4.tgz","fileCount":1651,"integrity":"sha512-+hiTfKxEcbdioXNkkRpuySWSsMy3Mw3x9doqT+aYdUqeuxJqE4sKqw/+QprZfo65+QHWcBo2EJF7cqJ8i6hT7A==","signatures":[{"sig":"MEUCIQDC1lCduBIBvy51q5E9NrpVWi30TDxOLO4Ngw9hC/tdFgIgVdgH2a0O0KzV6+6pc3Xqam+oj6iIAdygzhmPzqs5JlY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cadre-dev%2fcadre@0.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6307954},"type":"module","gitHead":"326eed0cb926258b5be46f441553b3fae8165927","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"npm run build --workspaces --if-present && tsc","test:e2e":"CADRE_E2E=1 vitest run tests/e2e-*.test.ts","test:run":"vitest run","postbuild":"mkdir -p dist/agents && rm -rf dist/agents/templates && cp -r src/agents/templates dist/agents/templates","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fc7642d6-6c60-4441-b1be-bef1a19d8ae9"}},"repository":{"url":"git+https://github.com/jafreck/CADRE.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.12.0","description":"Coordinated Agent Development Runtime Engine","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9","zod":"^3.25","chalk":"^5","p-limit":"^7","p-queue":"^9","date-fns":"^4","commander":"^14","simple-git":"^3.32","@jafreck/lore":"^0.3.7","@octokit/rest":"^22","@inquirer/prompts":"^8","zod-to-json-schema":"^3.25","@cadre-dev/framework":"*","@modelcontextprotocol/sdk":"^1.27","@cadre-dev/runtime-provider-kata":"*","@cadre-dev/runtime-provider-docker":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","vitest":"^2","typescript":"^5.9","@types/node":"^25","@vitest/coverage-v8":"^2"},"bundleDependencies":["@cadre-dev/framework","@cadre-dev/runtime-provider-docker","@cadre-dev/runtime-provider-kata"],"_npmOperationalInternal":{"tmp":"tmp/cadre_0.2.4_1774300020927_0.04598934282628675","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@cadre-dev/cadre","version":"0.2.5","author":{"name":"Jacob Freck"},"license":"MIT","_id":"@cadre-dev/cadre@0.2.5","maintainers":[{"name":"jafreck","email":"jafreck@outlook.com"}],"homepage":"https://github.com/jafreck/CADRE#readme","bugs":{"url":"https://github.com/jafreck/CADRE/issues"},"bin":{"cadre":"dist/index.js"},"dist":{"shasum":"6fab9b55826fd1dbe1b65a4b240ec9ecdbbd86b3","tarball":"https://registry.npmjs.org/@cadre-dev/cadre/-/cadre-0.2.5.tgz","fileCount":1651,"integrity":"sha512-JrjMHC9AQv+HZqpI/qWH0tXfWpe5LHlEuDCjg6jn4sP5k8/BZ5OwaqlWU6yUBrs9o65B0QvFYxJYbKgcdIOWLg==","signatures":[{"sig":"MEQCIHtHgwA8hggx04vnp4yN4NPJkvHBwbkwy7U5HvC6NUjsAiA6g7c78dkfkhdWigToYboRrnfrAgQ8LzG2gGhLXbWKGQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cadre-dev%2fcadre@0.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6310706},"type":"module","gitHead":"19529ba972158fa247dd26f69bacfb4f6990e260","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"npm run build --workspaces --if-present && tsc","test:e2e":"CADRE_E2E=1 vitest run tests/e2e-*.test.ts","test:run":"vitest run","postbuild":"mkdir -p dist/agents && rm -rf dist/agents/templates && cp -r src/agents/templates dist/agents/templates","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fc7642d6-6c60-4441-b1be-bef1a19d8ae9"}},"repository":{"url":"git+https://github.com/jafreck/CADRE.git","type":"git"},"workspaces":["packages/*"],"_npmVersion":"11.12.0","description":"Coordinated Agent Development Runtime Engine","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ora":"^9","zod":"^3.25","chalk":"^5","p-limit":"^7","p-queue":"^9","date-fns":"^4","commander":"^14","simple-git":"^3.32","@jafreck/lore":"^0.3.7","@octokit/rest":"^22","@inquirer/prompts":"^8","zod-to-json-schema":"^3.25","@cadre-dev/framework":"*","@modelcontextprotocol/sdk":"^1.27","@cadre-dev/runtime-provider-kata":"*","@cadre-dev/runtime-provider-docker":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4","vitest":"^2","typescript":"^5.9","@types/node":"^25","@vitest/coverage-v8":"^2"},"bundleDependencies":["@cadre-dev/framework","@cadre-dev/runtime-provider-docker","@cadre-dev/runtime-provider-kata"],"_npmOperationalInternal":{"tmp":"tmp/cadre_0.2.5_1774320287868_0.665506521049348","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@cadre-dev/cadre","version":"0.3.1","description":"Coordinated Agent Development Runtime Engine","license":"MIT","author":{"name":"Jacob Freck"},"repository":{"type":"git","url":"git+https://github.com/jafreck/CADRE.git"},"type":"module","workspaces":["packages/*"],"publishConfig":{"access":"public"},"bin":{"cadre":"dist/index.js"},"scripts":{"build":"npm run build --workspaces --if-present && tsc","postbuild":"mkdir -p dist/agents && rm -rf dist/agents/templates && cp -r src/agents/templates dist/agents/templates","dev":"tsx src/index.ts","test":"vitest run","test:watch":"vitest","test:run":"vitest run","test:e2e":"CADRE_E2E=1 vitest run tests/e2e-*.test.ts"},"dependencies":{"@cadre-dev/framework":"*","@cadre-dev/runtime-provider-docker":"*","@cadre-dev/runtime-provider-kata":"*","@inquirer/prompts":"^8","@jafreck/lore":"^0.4.0","@modelcontextprotocol/sdk":"^1.30","@octokit/rest":"^22","chalk":"^6","commander":"^15","date-fns":"^4","ora":"^9","p-limit":"^7","p-queue":"^9","simple-git":"^3.36","zod":"^4.5"},"devDependencies":{"@types/node":"^26","@vitest/coverage-v8":"^5","tsx":"^4","typescript":"^7.0","vitest":"^5"},"gitHead":"10a00a7ba7ea3fbcb14f196e06eee6468d9e3cfd","_id":"@cadre-dev/cadre@0.3.1","bundleDependencies":["@cadre-dev/framework","@cadre-dev/runtime-provider-docker","@cadre-dev/runtime-provider-kata"],"bugs":{"url":"https://github.com/jafreck/CADRE/issues"},"homepage":"https://github.com/jafreck/CADRE#readme","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-aNsuX+mthbjjuSc5siRMu8TzSlNXeAOQiQMdyKPD5t4ExMklMr8qMus4OUOAJFwTOjFN+CsNo+9G2UF6HUR7+A==","shasum":"92cd62a0332c6fe7b931bce43acc638a54785dbb","tarball":"https://registry.npmjs.org/@cadre-dev/cadre/-/cadre-0.3.1.tgz","fileCount":1883,"unpackedSize":8587969,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@cadre-dev%2fcadre@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDeHrW5r3ujg/p1T36/0qRjuws+Zd/oGDcv3jOirj/YvAiADZ+dUnCnZHcArWP9E9qLm8vORWQ3jL9iH5qoLR2uLew=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fc7642d6-6c60-4441-b1be-bef1a19d8ae9"}},"directories":{},"maintainers":[{"name":"jafreck","email":"jafreck@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cadre_0.3.1_1788839349013_0.6284289117431758"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-06T08:20:47.770Z","modified":"2026-09-08T03:49:09.507Z","0.1.0":"2026-03-06T08:20:48.273Z","0.2.0":"2026-03-15T07:42:09.662Z","0.2.1":"2026-03-15T20:49:13.090Z","0.2.2":"2026-03-22T00:40:11.480Z","0.2.3":"2026-03-23T00:48:01.336Z","0.2.4":"2026-03-23T21:07:01.232Z","0.2.5":"2026-03-24T02:44:48.092Z","0.3.1":"2026-09-08T03:49:09.203Z"},"bugs":{"url":"https://github.com/jafreck/CADRE/issues"},"author":{"name":"Jacob Freck"},"license":"MIT","homepage":"https://github.com/jafreck/CADRE#readme","repository":{"type":"git","url":"git+https://github.com/jafreck/CADRE.git"},"description":"Coordinated Agent Development Runtime Engine","maintainers":[{"name":"jafreck","email":"jafreck@outlook.com"}],"readme":"<div align=\"center\">\n  <h1>CADRE</h1>\n  <p><strong>Coordinated Agent Development Runtime Engine</strong></p>\n  <p>Parallel issue-to-PR automation for software teams, plus reusable framework packages for building your own agent workflows.</p>\n  <p>\n    <a href=\"https://github.com/jafreck/cadre/actions/workflows/ci.yml\"><img src=\"https://github.com/jafreck/cadre/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /></a>\n    <a href=\"https://www.npmjs.com/package/@cadre-dev/cadre\"><img src=\"https://img.shields.io/npm/v/@cadre-dev/cadre\" alt=\"npm version\" /></a>\n    <a href=\"https://www.npmjs.com/package/@cadre-dev/cadre\"><img src=\"https://img.shields.io/npm/dw/@cadre-dev/cadre\" alt=\"npm downloads\" /></a>\n    <a href=\"https://codecov.io/gh/jafreck/cadre\"><img src=\"https://img.shields.io/codecov/c/github/jafreck/cadre\" alt=\"Coverage\" /></a>\n    <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"License: MIT\" /></a>\n  </p>\n</div>\n\n# Overview\nCADRE is automation for software development work that starts with an issue and ends with a verified pull request. It is designed for teams that want to move more work in parallel without giving up the structure of their existing repository, build, test, and review process.\n\nCADRE pulls issues from your issue tracker, plans a dependency graph for optimal implementation ordering, launches a fleet of coordinated, specialized agents in parallel to analyze the requirements, plan the implementation, write the code and tests, and review before submitting a pull request. No longer do you need to manually jump between a dozen different sessions to maximize your AI-leverage, CADRE will handle the parallelization, isolation, and verification at a throughput not achievable manually, with a repeatable pipeline that produces auditable outputs instead of one-off agent sessions.\n\nCADRE also ships with a generic agent orchestration framework that can be used to build any other multi-agent or multi-step systems. The CADRE framework combines workflow orchestration, supports multiple agent runtime backends, checkpointing, notifications, and validation into a system that can reliably coordinate complex work from intake through completion. See [CADRE The Framework](#cadre-the-framework) for more.\n\n\n## How does it work?\n\n`@cadre-dev/cadre` is opinionated about software delivery because effective teams use a structured process to avoid common pitfalls. They plan before implementing, verify that the result matches the requirements, make sure there is test coverage, and have teammates review the work before it is merged.\n\nCADRE automates that same loop. Instead of manually iterating back and forth with an agent across multiple sessions, CADRE coordinates specialized agents through planning, implementation, testing, verification, and review so work moves through a repeatable pipeline from issue to pull request.\n\nAt a high level, CADRE:\n\n- pulls work from your issue tracker\n- analyzes the issue and plans an implementation order\n- runs specialized agents in parallel inside isolated git worktrees\n- writes code and tests, then verifies the results against your build and test commands\n- prepares the final change for pull request creation and review\n\n## Artifact Layout\n\nBy default, CADRE keeps runtime state outside the target repository under `~/.cadre/<projectName>/`. Worktrees, checkpoints, reports, and per-issue artifacts are stored there so the repo under development stays clean.\n\n```text\n~/.cadre/<projectName>/\n  fleet-checkpoint.json\n  fleet-progress.json\n  reports/\n    run-report-<timestamp>.json\n  worktrees/\n    issue-<N>/                      # isolated git worktree for the issue\n      .github/agents/\n        *.agent.md\n  issues/\n    <N>/\n      checkpoint.json\n      checkpoint.backup.json\n      issue.json\n      repo-file-tree.txt\n      analysis.md\n      scout-report.md\n      implementation-plan.md\n      session-<id>.md\n      diff-<id>.patch\n      review-<id>.md\n      review-<id>-summary.json\n      whole-pr-diff.patch\n      whole-pr-review.md\n      integration-report.md\n      pr-content.md\n      contexts/\n        <agent>-<timestamp>.json\n```\n\nThe exact files present depend on how far a run has progressed, but this is the normal text-based layout for checkpoints, reports, and intermediate artifacts.\n\n## Install The Application\n\n### Shared prerequisites\n\n- Node.js 20+\n- Git\n- A local clone of the repository you want CADRE to work on\n- A GitHub token in `GITHUB_TOKEN` when `platform` is `github`, or an Azure DevOps PAT when `platform` is `azure-devops`\n- An agent backend CLI on `PATH`. CADRE defaults to `copilot`. If your install exposes a different command such as `gh copilot`, set `agent.copilot.cliCommand` accordingly.\n- A GitHub MCP server command when `platform` is `github`. The default is `github-mcp-server stdio`, but a Docker-backed local server also works well on every OS.\n\n### macOS\n\nInstall the default prerequisites with Homebrew:\n\n```bash\nbrew install node git github/gh-mcp/github-mcp-server\nnpm install -g @cadre-dev/cadre\nexport GITHUB_TOKEN=ghp_your_token\n```\n\nIf you want to use Claude instead of the default Copilot backend:\n\n```bash\nnpm install -g @anthropic-ai/claude-code\nclaude login\n```\n\n### Ubuntu\n\nFor a native Ubuntu install, install Node.js 20 and Git, then install CADRE:\n\n```bash\nsudo apt-get update\nsudo apt-get install -y curl git\ncurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -\nsudo apt-get install -y nodejs\nnpm install -g @cadre-dev/cadre\nexport GITHUB_TOKEN=ghp_your_token\n```\n\nIf you are using GitHub, make sure `github-mcp-server` is available on your `PATH` so CADRE can use the default `github-mcp-server stdio` configuration.\n\nIf you do not want to install the GitHub MCP server binary directly, use the Docker-backed option in [GitHub MCP Server Setup](#github-mcp-server-setup).\n\n### Windows\n\nThe recommended setup is WSL2 with Ubuntu plus Docker Desktop. CADRE's current validation path uses Unix-style `which` lookups, so WSL2 is the practical path today.\n\nInstall the host-side pieces from PowerShell:\n\n```powershell\nwsl --install -d Ubuntu\nwinget install Docker.DockerDesktop\n```\n\nThen open the Ubuntu shell inside WSL2 and run the Ubuntu setup commands from the previous section.\n\nIf you prefer to stay outside WSL2, Git Bash is a better fit than plain PowerShell, but WSL2 is the recommended configuration.\n\n## GitHub MCP Server Setup\n\nIf you install the `github-mcp-server` binary directly and keep it on `PATH`, the default configuration works.\n\nIf you want a cross-platform local server without installing the binary, use Docker and add this to `cadre.config.json`:\n\n```json\n{\n  \"github\": {\n    \"auth\": { \"token\": \"${GITHUB_TOKEN}\" },\n    \"mcpServer\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\",\n        \"-i\",\n        \"--rm\",\n        \"-e\",\n        \"GITHUB_PERSONAL_ACCESS_TOKEN\",\n        \"ghcr.io/github/github-mcp-server\"\n      ]\n    }\n  }\n}\n```\n\nBefore running CADRE with that configuration, make sure `GITHUB_PERSONAL_ACCESS_TOKEN` is set in the shell you are using:\n\n```bash\nexport GITHUB_PERSONAL_ACCESS_TOKEN=\"$GITHUB_TOKEN\"\n```\n\nGitHub App authentication is also supported if you do not want to use a token. See `docs/config-schema.md` for the full auth options.\n\n## Quick Start\n\nInstall globally or use `npx`:\n\n```bash\nnpm install -g @cadre-dev/cadre\n```\n\nCreate a `cadre.config.json` in the repository you want CADRE to work on:\n\n```json\n{\n  \"projectName\": \"my-project\",\n  \"platform\": \"github\",\n  \"repository\": \"owner/repo\",\n  \"repoPath\": \".\",\n  \"baseBranch\": \"main\",\n  \"issues\": {\n    \"ids\": [42, 57, 61]\n  },\n  \"options\": {\n    \"maxParallelIssues\": 3,\n    \"maxParallelAgents\": 3\n  },\n  \"commands\": {\n    \"install\": \"npm install\",\n    \"build\": \"npm run build\",\n    \"test\": \"npm test\"\n  },\n  \"github\": {\n    \"auth\": { \"token\": \"${GITHUB_TOKEN}\" },\n    \"mcpServer\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\",\n        \"-i\",\n        \"--rm\",\n        \"-e\",\n        \"GITHUB_PERSONAL_ACCESS_TOKEN\",\n        \"ghcr.io/github/github-mcp-server\"\n      ]\n    }\n  }\n}\n```\n\nRun the pipeline:\n\n```bash\ncadre run -c cadre.config.json\ncadre status -c cadre.config.json\ncadre run -c cadre.config.json --resume\ncadre worktrees -c cadre.config.json\n```\n\nIf you do not want a global install, the same commands work with `npx @cadre-dev/cadre`.\n\n## Using Claude Instead Of Copilot\n\nCADRE defaults to the Copilot backend. To switch to Claude, install the Claude CLI and set `agent.backend` to `claude`.\n\n```bash\nnpm install -g @anthropic-ai/claude-code\nclaude login\n```\n\n```json\n{\n  \"agent\": {\n    \"backend\": \"claude\",\n    \"model\": \"claude-opus-4-5\",\n    \"timeout\": 600000,\n    \"claude\": {\n      \"cliCommand\": \"claude\"\n    }\n  }\n}\n```\n\nRelevant agent fields:\n\n| Key | Type | Default | Description |\n| --- | --- | --- | --- |\n| `agent.backend` | `\"copilot\" \\| \"claude\"` | `\"copilot\"` | Which AI backend CADRE uses for agent invocations |\n| `agent.model` | `string` | backend default | Model override |\n| `agent.timeout` | `number` | backend default | Timeout in milliseconds |\n| `agent.copilot.cliCommand` | `string` | `\"copilot\"` | Copilot CLI executable |\n| `agent.claude.cliCommand` | `string` | `\"claude\"` | Claude CLI executable |\n\n## How The Application Works\n\nCADRE processes each issue through a five-phase pipeline:\n\n1. Analysis and scouting\n2. Planning\n3. Implementation\n4. Integration verification\n5. Pull request composition\n\nEach issue runs in its own git worktree. Multiple issues run in parallel up to your configured concurrency limit.\n\n### Built-in agent roster\n\n| Agent | Purpose |\n| --- | --- |\n| `issue-analyst` | Analyze issue requirements and scope |\n| `codebase-scout` | Locate relevant files in the codebase |\n| `implementation-planner` | Break work into dependency-aware tasks |\n| `adjudicator` | Choose between competing plans |\n| `code-writer` | Implement code changes |\n| `test-writer` | Write tests for the change |\n| `code-reviewer` | Review changes for correctness |\n| `fix-surgeon` | Repair issues found by review or tests |\n| `integration-checker` | Verify build and test commands pass |\n| `pr-composer` | Draft the pull request title and body |\n\n## CADRE The Framework\n\n`@cadre-dev/framework` is the generic orchestration layer the CADRE application is built on top of. It exposes reusable packages for:\n\n- `@cadre-dev/framework/core`: logging, events, validation, and shared runtime types\n- `@cadre-dev/framework/engine`: queues, executors, retry logic, phase orchestration, and checkpointing\n- `@cadre-dev/framework/runtime`: agent backends, launchers, provider registration, and runtime contracts\n- `@cadre-dev/framework/flow`: a declarative flow DSL and the `FlowRunner` execution engine\n- `@cadre-dev/framework/notifications`: log, webhook, and Slack-style notification plumbing\n\nUse the framework when you want to coordinate agents or workflow steps in any domain.\n\n## Framework Packages And Extension Points\n\nThe framework exposes reusable extension points without patching CADRE core:\n\n- `@cadre-dev/framework/runtime`: `registerAgentBackendFactory()` for backend plugins\n- `@cadre-dev/framework/runtime`: provider registration and capability discovery\n- `@cadre-dev/framework/engine`: pluggable `CheckpointStore` support\n- `@cadre-dev/framework/notifications`: `registerNotificationProviderFactory()` for notification plugins\n- `@cadre-dev/framework/engine`: `registerGatePlugin()` for custom phase gates\n- `@cadre-dev/framework/core`: `FleetEventBus.use()` middleware hooks for lifecycle interception\n\nThe application uses those primitives to build the software-development workflow. The framework lets you use the same primitives for a completely different workflow.\n\n## A More Realistic Framework Example\n\nThe example below is intentionally not about code generation. It shows a support escalation workflow that filters for urgent incidents, gathers customer context in parallel, builds a briefing packet, and routes enterprise customers directly to an on-call response.\n\nThat is an easy-to-evaluate example because the value is obvious: less manual triage, faster response time, and better context when a human needs to step in.\n\n```ts\nimport {\n  FlowRunner,\n  conditional,\n  defineFlow,\n  fromContext,\n  fromStep,\n  gate,\n  parallel,\n  step,\n} from '@cadre-dev/framework/flow';\n\ntype Ticket = {\n  id: string;\n  customerId: string;\n  plan: 'standard' | 'enterprise';\n  severity: 'low' | 'medium' | 'high' | 'urgent';\n  summary: string;\n};\n\nasync function getCustomerProfile(customerId: string) {\n  return { customerId, name: 'Acme Corp', owner: 'oncall-enterprise' };\n}\n\nasync function getRecentIncidents(customerId: string) {\n  return [{ id: 'INC-991', status: 'resolved' }, { id: 'INC-1040', status: 'open' }];\n}\n\nasync function notifyOnCall(brief: unknown) {\n  return { routedTo: 'pager', brief };\n}\n\nasync function enqueueForFollowUp(brief: unknown) {\n  return { routedTo: 'priority-queue', brief };\n}\n\nconst flow = defineFlow<{ ticket: Ticket }>('support-escalation', [\n  step({\n    id: 'intake',\n    input: fromContext('ticket'),\n    run: (_ctx, ticket) => ticket as Ticket,\n  }),\n  gate({\n    id: 'urgent-only',\n    input: fromStep('intake'),\n    evaluate: (_ctx, ticket) => {\n      const current = ticket as Ticket;\n      return current.severity === 'high' || current.severity === 'urgent';\n    },\n  }),\n  parallel({\n    id: 'collect-context',\n    concurrency: 2,\n    branches: {\n      customer: [\n        step({\n          id: 'load-customer',\n          input: fromStep('intake'),\n          run: async (_ctx, ticket) => getCustomerProfile((ticket as Ticket).customerId),\n        }),\n      ],\n      history: [\n        step({\n          id: 'load-history',\n          input: fromStep('intake'),\n          run: async (_ctx, ticket) => getRecentIncidents((ticket as Ticket).customerId),\n        }),\n      ],\n    },\n  }),\n  step({\n    id: 'build-brief',\n    input: {\n      ticket: fromStep('intake'),\n      context: fromStep('collect-context'),\n    },\n    run: (_ctx, input) => {\n      const ticket = input.ticket as Ticket;\n      const context = input.context as {\n        customer: { 'load-customer': unknown };\n        history: { 'load-history': unknown };\n      };\n\n      return {\n        ticketId: ticket.id,\n        plan: ticket.plan,\n        summary: ticket.summary,\n        customer: context.customer['load-customer'],\n        recentIncidents: context.history['load-history'],\n      };\n    },\n  }),\n  conditional({\n    id: 'route-ticket',\n    when: (ctx) => {\n      const brief = ctx.getStepOutput('build-brief') as { plan: string };\n      return brief.plan === 'enterprise';\n    },\n    then: [\n      step({\n        id: 'page-on-call',\n        input: fromStep('build-brief'),\n        run: async (_ctx, brief) => notifyOnCall(brief),\n      }),\n    ],\n    else: [\n      step({\n        id: 'create-priority-queue-item',\n        input: fromStep('build-brief'),\n        run: async (_ctx, brief) => enqueueForFollowUp(brief),\n      }),\n    ],\n  }),\n]);\n\nconst runner = new FlowRunner({ concurrency: 2 });\n\nawait runner.run(flow, {\n  ticket: {\n    id: 'SUP-1042',\n    customerId: 'cust_123',\n    plan: 'enterprise',\n    severity: 'urgent',\n    summary: 'Checkout is timing out for all EU users',\n  },\n});\n```\n\nFor the full DSL reference, see `docs/flow-dsl.md`.\n\n## CLI Commands\n\n- `cadre run`: process issues with the agent pipeline\n- `cadre status`: show fleet and issue progress\n- `cadre reset`: reset fleet or issue state\n- `cadre worktrees`: list or manage active worktrees\n\n## Design Principles\n\n1. No AI logic in the runtime. The runtime manages processes, git, files, and orchestration.\n2. File-based IPC. Agents communicate through files, not in-process APIs.\n3. Worktree isolation. Each issue gets its own git worktree.\n4. Idempotent resume. Re-running with `--resume` is safe.\n5. Git operations belong to the runtime. Agents write files, while CADRE handles the git lifecycle.\n6. MCP-native GitHub access. GitHub interactions go through the GitHub MCP server.\n\n## Docs\n\n- `docs/config-schema.md`: full configuration schema\n- `docs/architecture.md`: high-level architecture and package boundaries\n- `docs/flow-dsl.md`: framework flow DSL reference\n- `docs/container-usage.md`: containerized usage\n- `docs/security.md`: security model and isolation notes\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","readmeFilename":"README.md"}