{"_id":"@amsterdamdatalabs/enact-loop","_rev":"5-905a9f3ea5d6c3e95866a5265cb33da2","name":"@amsterdamdatalabs/enact-loop","dist-tags":{"latest":"0.1.24"},"versions":{"0.1.4":{"name":"@amsterdamdatalabs/enact-loop","version":"0.1.4","license":"UNLICENSED","_id":"@amsterdamdatalabs/enact-loop@0.1.4","maintainers":[{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"}],"bin":{"enact-loop":"dist/mcp/server.js"},"dist":{"shasum":"dd56fe0c386b0d068a4d431313fa39e85857cf5d","tarball":"https://registry.npmjs.org/@amsterdamdatalabs/enact-loop/-/enact-loop-0.1.4.tgz","fileCount":101,"integrity":"sha512-PPzxtzwtYcEKFVWBxLfV5Nm2oAwnmXY05sSDsCMgbtq/cY5Z1ZKUljS20dH3Q8O5cns2OjaPxxiLkSMOniqy5Q==","signatures":[{"sig":"MEUCIDp3MxppIfRPpUlbTA1DfrjNVsaRfjRu8ErV57ADCVqzAiEA5eYUnp4/b5+dBJOPKun1nxSjQUBsen72n5eN81HgGOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246615},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./loop":{"types":"./dist/loop/contract.d.ts","default":"./dist/loop/contract.js"},"./authority":{"types":"./dist/authority/authority.d.ts","default":"./dist/authority/authority.js"},"./stopPolicy":{"types":"./dist/closure/stopPolicy.d.ts","default":"./dist/closure/stopPolicy.js"}},"gitHead":"5578e24a4fd64f631a226e1bc3f4f47362748b1b","scripts":{"test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && tsc-alias -p tsconfig.json && chmod +x dist/mcp/server.js 2>/dev/null || true","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"},"repository":{"url":"https://dev.azure.com/amsterdamdatalabs/Enact/_git/enact-loop","type":"git"},"_npmVersion":"10.9.8","description":"enact-loop — generic contract-runner state machine with independent grading","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"4.3.6","yaml":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","tsc-alias":"^1.8.10","typescript":"^5.9.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/enact-loop_0.1.4_1781895175343_0.4656412194564796","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@amsterdamdatalabs/enact-loop","version":"0.1.5","license":"UNLICENSED","_id":"@amsterdamdatalabs/enact-loop@0.1.5","maintainers":[{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"}],"bin":{"enact-loop":"dist/mcp/server.js"},"dist":{"shasum":"2b06e3cb9143efb8368a7e28289f9e9b4c86a889","tarball":"https://registry.npmjs.org/@amsterdamdatalabs/enact-loop/-/enact-loop-0.1.5.tgz","fileCount":101,"integrity":"sha512-omGBYFoD+jB9T8DaIeB43JBNczRd48jRNbnuh3H/33Fm6nbjoKnWAHlAeATptosj1j3lshlXTRm15XvYqaoumw==","signatures":[{"sig":"MEYCIQCC9i3z3ChunRHwGwSdroGJcfTyKsRcaxcLZQaT1JnDNgIhAJOmdUu6SxYHldzb16sVU7ZJ00pa3WNnGzm5yYLaW7be","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":246615},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./loop":{"types":"./dist/loop/contract.d.ts","default":"./dist/loop/contract.js"},"./authority":{"types":"./dist/authority/authority.d.ts","default":"./dist/authority/authority.js"},"./stopPolicy":{"types":"./dist/closure/stopPolicy.d.ts","default":"./dist/closure/stopPolicy.js"}},"gitHead":"34977aab58db6e472289f6a7a7693d71dabbc62d","scripts":{"test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && tsc-alias -p tsconfig.json && chmod +x dist/mcp/server.js 2>/dev/null || true","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"},"repository":{"url":"https://dev.azure.com/amsterdamdatalabs/Enact/_git/enact-loop","type":"git"},"_npmVersion":"10.9.8","description":"enact-loop — generic contract-runner state machine with independent grading","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"4.3.6","yaml":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","tsc-alias":"^1.8.10","typescript":"^5.9.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/enact-loop_0.1.5_1781895782625_0.45601357420626454","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@amsterdamdatalabs/enact-loop","version":"0.1.16","license":"UNLICENSED","_id":"@amsterdamdatalabs/enact-loop@0.1.16","maintainers":[{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"}],"bin":{"enact-loop":"dist/mcp/server.js"},"dist":{"shasum":"3cc7b8e125a44f99a105acf32c49d3c0c5792d9e","tarball":"https://registry.npmjs.org/@amsterdamdatalabs/enact-loop/-/enact-loop-0.1.16.tgz","fileCount":105,"integrity":"sha512-v0Bhigt6w6k/Mf+qIeuwmndJBDXmC3SKzDtCFimpjVqB/WxZguEQm1uSZp/DzH6TUG/w12Jac90JFAkT119z2w==","signatures":[{"sig":"MEYCIQCAMCA/pqS9LtwxhKYN4RkCeBPst/sY/a9IwMI6R9faEgIhAMBaNFECMMszd6R/zHd7QAyQhkPz56tD51M/mZTY3xgI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252897},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./loop":{"types":"./dist/loop/contract.d.ts","default":"./dist/loop/contract.js"},"./authority":{"types":"./dist/authority/authority.d.ts","default":"./dist/authority/authority.js"},"./stopPolicy":{"types":"./dist/closure/stopPolicy.d.ts","default":"./dist/closure/stopPolicy.js"}},"gitHead":"351fed8b8512e049083aa3edeb12be1d51c80b67","scripts":{"test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && tsc-alias -p tsconfig.json && chmod +x dist/mcp/server.js 2>/dev/null || true","pretest":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"},"repository":{"url":"https://dev.azure.com/amsterdamdatalabs/Enact/_git/enact-loop","type":"git"},"_npmVersion":"10.9.8","description":"enact-loop — generic contract-runner state machine with independent grading","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"4.3.6","yaml":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","tsc-alias":"^1.8.10","typescript":"^5.9.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/enact-loop_0.1.16_1782088319870_0.6486655756583115","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@amsterdamdatalabs/enact-loop","version":"0.1.20","license":"UNLICENSED","_id":"@amsterdamdatalabs/enact-loop@0.1.20","maintainers":[{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"}],"bin":{"enact-loop":"dist/mcp/server.js"},"dist":{"shasum":"6227e728bd477f76621ffc6a8ca99dc9cf7dd687","tarball":"https://registry.npmjs.org/@amsterdamdatalabs/enact-loop/-/enact-loop-0.1.20.tgz","fileCount":129,"integrity":"sha512-7PTqZYTFZHNZfIZgQpnGr0T4o774LS/aNjVRbjrLm9wZ7qXe74ddnNWAlaDNN+ismQNXCF+UBq1O6vDaJNHlaQ==","signatures":[{"sig":"MEYCIQCB2ls1iUYc2hJquimbDv73leuXynKGPIG/0vz2aFuVrQIhALM9v6dsIs5lNtMuGGVR5RYjgERyZyg6c89cKNxGpPvJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":380735},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./loop":{"types":"./dist/loop/contract.d.ts","default":"./dist/loop/contract.js"},"./authority":{"types":"./dist/authority/authority.d.ts","default":"./dist/authority/authority.js"},"./stopPolicy":{"types":"./dist/closure/stopPolicy.d.ts","default":"./dist/closure/stopPolicy.js"}},"gitHead":"7161cf7ece7f274cefcc5b34cf43b0f21276276f","scripts":{"test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && tsc-alias -p tsconfig.json && chmod +x dist/mcp/server.js 2>/dev/null || true","pretest":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit","typecheck:tests":"tsc -p tsconfig.test.json --noEmit"},"_npmUser":{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"},"repository":{"url":"https://dev.azure.com/amsterdamdatalabs/Enact/_git/enact-loop","type":"git"},"_npmVersion":"10.9.8","description":"enact-loop — generic contract-runner state machine with independent grading","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"4.3.6","yaml":"^2.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.7","tsc-alias":"^1.8.10","typescript":"^5.9.3","@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/enact-loop_0.1.20_1782562828630_0.22724363883492016","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@amsterdamdatalabs/enact-loop","version":"0.1.24","description":"enact-loop — generic contract-runner state machine with independent grading","license":"UNLICENSED","repository":{"type":"git","url":"https://dev.azure.com/amsterdamdatalabs/Enact/_git/enact-loop"},"type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./loop":{"types":"./dist/loop/contract.d.ts","default":"./dist/loop/contract.js"},"./authority":{"types":"./dist/authority/authority.d.ts","default":"./dist/authority/authority.js"},"./stopPolicy":{"types":"./dist/closure/stopPolicy.d.ts","default":"./dist/closure/stopPolicy.js"}},"bin":{"enact-loop":"dist/mcp/server.js"},"publishConfig":{"access":"public"},"scripts":{"build":"rm -rf dist && tsc -p tsconfig.json && tsc-alias -p tsconfig.json && chmod +x dist/mcp/server.js 2>/dev/null || true","typecheck":"tsc -p tsconfig.json --noEmit","typecheck:tests":"tsc -p tsconfig.test.json --noEmit","pretest":"npm run build","test":"vitest run"},"dependencies":{"yaml":"^2.9.0","zod":"4.3.6"},"devDependencies":{"@types/node":"^22.0.0","@vitest/coverage-v8":"^4.1.9","tsc-alias":"^1.8.10","typescript":"^5.9.3","vitest":"^4.1.7"},"engines":{"node":">=22"},"_id":"@amsterdamdatalabs/enact-loop@0.1.24","gitHead":"ffc33116ecd5fb87fd3c67009255dc6316f678fd","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-nPPBO4hjp/m/MHgpn0E71W02If4oNLKHD4A6QyKQmbqPdLsIPHRdaVor9vpAivfvnTbQOaEHEihuYNpZpqY3bQ==","shasum":"7227fb7075b4a3421b70f21131de2dc81deb0b37","tarball":"https://registry.npmjs.org/@amsterdamdatalabs/enact-loop/-/enact-loop-0.1.24.tgz","fileCount":141,"unpackedSize":426783,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFZJ0W1PLC//75lSVPqLDmwQreRR8qNTcfpEBFZZNWt4AiBmuR+zEr+s6Xd3g1gQFUenDEkWIMZq9biSa1Nx7XM3Yg=="}]},"_npmUser":{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"},"directories":{},"maintainers":[{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/enact-loop_0.1.24_1783728579350_0.6092313745829843"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T18:52:55.233Z","modified":"2026-07-11T00:09:39.625Z","0.1.4":"2026-06-19T18:52:55.565Z","0.1.5":"2026-06-19T19:03:02.801Z","0.1.16":"2026-06-22T00:32:00.009Z","0.1.20":"2026-06-27T12:20:28.810Z","0.1.24":"2026-07-11T00:09:39.504Z"},"license":"UNLICENSED","repository":{"type":"git","url":"https://dev.azure.com/amsterdamdatalabs/Enact/_git/enact-loop"},"description":"enact-loop — generic contract-runner state machine with independent grading","maintainers":[{"name":"tarun.rana","email":"tarun.rana@amsterdamdatalabs.com"}],"readme":"# enact-loop\n\nGeneric contract-runner state machine with independent grading for ENACT OS.\n\n## Storage layout\n\nThe loop engine only manages `state/`, `logs/`, and `sessions/` under its own tree (`LAYOUT_DIRS`). Plan artifacts are **FACTORY-owned** and live under `~/.enact/factory/projects/<key>/plans/`, not the loop tree.\n\nSee [CHANGELOG.md](CHANGELOG.md) for release notes. Canonical docs live in the sibling **enact-docs** repo (`03-packages/enact-loop.md`, `05-operations/loop/enact-loop-cli.md`). Operational learnings validated in production runs are in [docs/operational-notes.md](docs/operational-notes.md).\n\n**Dev install:** `bash dev-install-and-run.sh bootstrap`\n","readmeFilename":"README.md"}