{"_id":"@aip-tech/braid","_rev":"19-2c18a51170b6b51900bcf5184060b0c9","name":"@aip-tech/braid","dist-tags":{"latest":"0.9.0"},"versions":{"0.1.0":{"name":"@aip-tech/braid","version":"0.1.0","keywords":["process-manager","process-supervisor","nodemon","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.1.0","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://github.com/aip-tech/braid#readme","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"9a32bdd7de6359d9204996d327164c285fe7ce67","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.1.0.tgz","fileCount":21,"integrity":"sha512-Tw23/htut8anNfpg1XFoozp72wPnScr8OH+lrt4r9fj0qFfYiVdSvoLwdHr509nzV6GrGKX9G5dCkjnrZOocqQ==","signatures":[{"sig":"MEYCIQDkYZzaWG3xig7D/VGwq4v6JiYf1v7hl0h/jtECiuASQAIhAMq568mm45e//S2F+FNJwS7zWxe1RTPs0iVlodMtKtbm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36062},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"42e8d439c72609d5b66131dcf5b5fc9def3f1bac","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit — PID tracking, nodemon-driven restarts, and kill-everything-on-crash.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"nodemon":"^3.1.14","tree-kill":"^1.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.1.0_1786746388609_0.3101023408374368","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aip-tech/braid","version":"0.1.1","keywords":["process-manager","process-supervisor","nodemon","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.1.1","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://github.com/aip-tech/braid#readme","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"78d8b08bb2c06c6830ece7e1f546b7941c72299c","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.1.1.tgz","fileCount":21,"integrity":"sha512-YA5xS+dZUrfgexxvlnMzZSfH4fxHHroqUa2M2AuC145NjpKWgJkphn0R+SBBPx12LRXxm6K5R5lB1i1GO+ltMQ==","signatures":[{"sig":"MEQCID3Id9R/zivCkobX8aQ4iTiJ57g//20K3lrH80tp01VbAiBGu4iLMKemzo/byuNvqO8/MQ2g2pwbVGK+Ji2MKdx3NQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35857},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"2fef85f6eddc4f1c524283ef90fd3dcea2ce7e94","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit — PID tracking, nodemon-driven restarts, and kill-everything-on-crash.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"nodemon":"^3.1.14","tree-kill":"^1.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.1.1_1786746631614_0.36645442156356833","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aip-tech/braid","version":"0.2.0","keywords":["process-manager","process-supervisor","nodemon","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.2.0","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://github.com/aip-tech/braid#readme","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"3089b226b618fdb15de7fcc76af5bc6b27d2de8b","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.2.0.tgz","fileCount":46,"integrity":"sha512-6kcCJuRCk9gpWE3vH3lYPVYKbqcFAijuB/nG4f45/tf9ehSx1V4JCNtjN/M0DgWWGE/W+TBuEVy7zjt+UoK9aQ==","signatures":[{"sig":"MEYCIQDo0Aqw+3YCjAynNKc5Q+rhNTFQJL7r27JELikLXA3E4wIhAPpH5pWX9+RWJ+w+rZ/8oEXyV1YM0E7wr+hlh+wQDpvh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117597},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"97106fb97ace308c3251b4ea04f58bce9e0b24df","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit as a background daemon — PID tracking, nodemon-driven restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"nodemon":"^3.1.14","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.2.0_1786755238310_0.5218667915342805","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aip-tech/braid","version":"0.2.1","keywords":["process-manager","process-supervisor","nodemon","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.2.1","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://github.com/aip-tech/braid#readme","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"a02364bedcef1814d78d0fe2884df5baf1972b13","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.2.1.tgz","fileCount":49,"integrity":"sha512-Y2/VTPkXwKaCsPaefY5iwLdbYyre8ugCZVl8+BKkKAPhfJfbd9995U8OvRkt36S8HhYeDnwv6SZ/h+Ke9pe/DQ==","signatures":[{"sig":"MEUCIQCF7bK5nqbXvqIypHvcV5kew22TCs66RugnqQDvC0fXxAIgENwnRNOnyjZML2Bpof7Vvhjgk7Z+JdByxe3GDUD3+b0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99947},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"2318b5e7a239a8a42edc76392be529638d2601b6","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit as a background daemon — PID tracking, nodemon-driven restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"nodemon":"^3.1.14","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.2.1_1786793091090_0.7172882080793059","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@aip-tech/braid","version":"0.2.3","keywords":["process-manager","process-supervisor","nodemon","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.2.3","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://github.com/aip-tech/braid#readme","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"5a1975354c06458fe4d0fb5f64557cd196f739e2","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.2.3.tgz","fileCount":52,"integrity":"sha512-uqQfjKMCEvH0ZDN1aZP5WIVTzcvc01vIGEs/tEgmKn4Se98D4MdPGs/jagK+8TkRidTrhXdmox/e67j4oJA+Rg==","signatures":[{"sig":"MEUCICetiTws2L4k+2WLFT6LHgXKCUX7Xi1ht4vBrXDRJc28AiEA3kDzN3dAZMCnQieTJeoiZyDqv1jqfpmLzukOwB86Yqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":121244},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"72a4846b5f21da573a4bdbb8ddbb27498f61d4aa","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit as a background daemon — PID tracking, nodemon-driven restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"nodemon":"^3.1.14","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.2.3_1786801148698_0.6598087601278992","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@aip-tech/braid","version":"0.2.4","keywords":["process-manager","process-supervisor","nodemon","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.2.4","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bin":{"braid":"dist/cli.js"},"dist":{"shasum":"b35f682cacf90343054dfe35a2080d700f2cfd2b","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.2.4.tgz","fileCount":52,"integrity":"sha512-JfeisiJQjwUewDBkjxgiWFniWMmhg3rihGlar6k3Ym0rOkedxRlpdpC0/twiql+XtsJBs9wMio7eOtUZZQGwAQ==","signatures":[{"sig":"MEYCIQCZWysFfN7aGQzP4pJUep22j1bgtOcCttm8tU+Lr02HjgIhAJTzJuDnA9q6ZlCEHujBs3peoVAPXpk6YCyPBPXbBg+q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135465},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"description":"Runs multiple long-lived processes as one unit as a background daemon — PID tracking, nodemon-driven restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"nodemon":"^3.1.14","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.2.4_1786806623350_0.8734770447580049","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@aip-tech/braid","version":"0.2.5","keywords":["process-manager","process-supervisor","nodemon","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.2.5","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"b220cdc9a2b5c476e81c6cc49fc6d003735e4725","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.2.5.tgz","fileCount":52,"integrity":"sha512-9CfCvo+yDcvLpOeTAqlzO6/kAZUsX83io3SFoKRZWfgjWI3pqVtHIam+KSLTP1lK2R1KMchbZxahOs6UnpZ5/Q==","signatures":[{"sig":"MEUCIQDSqRhv2kMUF+WOiy//ZH3UQyxKuy4ioMC7xDoAI5w5VwIgQpgBM+PVA++duuDbK2dx3yQmNweCJn2QcYRsbEkSEXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140957},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"079467d6232b095e90a1091ad9491c8f24c8f9de","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, nodemon-driven restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"nodemon":"^3.1.14","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.2.5_1787234336532_0.5706170125575312","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@aip-tech/braid","version":"0.2.6","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.2.6","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"55606b3990791e07033f50f7cf344d8bda8fe716","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.2.6.tgz","fileCount":52,"integrity":"sha512-wDDlvBLZPl/cggZZQt5gXHn6u4YGYCAc+PQQo9YN99xkiSr5FB44saymyWQW8PvAe1CX+haGFFqXdhFYD+IUEA==","signatures":[{"sig":"MEUCIGDNpHsevqu7d3Vwx188Aish98CnIFnP6zwhvCCWnIAMAiEAl5NJxxLuHw8SsZB/UeP3BeNWZqGRyWx5caVPZj9aTJQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150916},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"b0c98d6d54bab3193ed68f4f34d5ab965a5a93a9","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.2.6_1787243629932_0.3435534963757696","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@aip-tech/braid","version":"0.2.7","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.2.7","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"c936436b83a5ca5884bfe9c6dbd5aa031aacfb95","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.2.7.tgz","fileCount":52,"integrity":"sha512-vd2xbDkITsgDCwaeKzGXHXvVGtszL6jSPKUm9LQ69+GlmlyefFu5s57uGjHsJi8xrNubBe01VzzONV+bKWjiAg==","signatures":[{"sig":"MEYCIQD6WLQtsjIh3CgE7v2PR/gIeOLPxzBSlyE3clThvfsVsAIhAOB1euSd1gLyUEOtUQkMVYYCV0fxZGiA7X7g/yDSMlZG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155811},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"e08a91d26698aad1573bd89f22849930a2cc77e9","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.2.7_1787246656467_0.47553669481406335","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@aip-tech/braid","version":"0.2.8","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.2.8","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"8dbecf42278a1c51893ef9a19ea9e2bc679de148","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.2.8.tgz","fileCount":52,"integrity":"sha512-faYna51I+M+NqGg8pSNV1efNQKZi2xolKtoJyp97znKaasSckXHExZJTvnmM8LUtMF77JN9iUkUxE/E1DF6UBg==","signatures":[{"sig":"MEQCIDyHkQuKPKdTur19zhO4UcKnW38e57t/Yu3xVH5FNm1vAiB/1AJgCw3ejB/CrtIf+/yDdrHpJHvQQ4IagrbN0vuwgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157389},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"c63eda1f5fbd88b4ba1034ef417c9b3a722861e7","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.2.8_1787249382663_0.40224386656602173","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@aip-tech/braid","version":"0.2.9","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.2.9","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"7b3358ca8f5c3ea0af7d8b6c3bfcb122ddc82ba7","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.2.9.tgz","fileCount":52,"integrity":"sha512-OGyKPS6AfTwgUMkE4D2VD5Xkp8pBKCLU4Aa8cpv1cwRvQm0OsZSuaUcFQtzxR257FB68N1xjVYKWxVjB0MqubQ==","signatures":[{"sig":"MEUCIQCp1ce1KxY5TIpV+i7zxnSfOySqi/NIm/i7gwS3jUcEpQIgVy87fx353Gr4dhAVkiiauPSmQiOFlJhcdTNKPc1vC8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":157478},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"123f632adb0b9fb2e2ea80965120c66ace55cc92","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.2.9_1787250519589_0.22457219796981853","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aip-tech/braid","version":"0.3.0","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.3.0","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"0fe652b2bfaf68967d313bc460c3800bbfa8a661","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.3.0.tgz","fileCount":55,"integrity":"sha512-oRq7t83S4lJM8KAlsc/M8mczhIWtHAT+TP1dk2FUyDnYjn1rzMZi83cTjqj9z9qG0puNsXJNG1WlX9ClNigiqA==","signatures":[{"sig":"MEUCIQD5vwpsrt4823Z5X1wiVfqjJSCF/7BXz71Zvq0pbuKGwgIgV7toyywgn6DkCN/9ElmKJGgfxdSYN0A+5brXsDLa8kU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181690},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"fd0fd1f204776bfc75ce547e0168049f46ddb08f","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.3.0_1787258980454_0.5564330790405612","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@aip-tech/braid","version":"0.3.1","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.3.1","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"a45d3a261c300add19d602c45b76b3ea09cf6537","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.3.1.tgz","fileCount":55,"integrity":"sha512-B3XxaqX78U+tyYidDsBwCJLA6VwLR8DggTMSVERkb1sMxkOnsTsGgOsBJ52fFtn174/qJ6M38NoE7CPweS69NQ==","signatures":[{"sig":"MEQCIHIeQVt2XcGFcU28J8VELZKxhNSsQa4NsRISucVCOJstAiAXL+jTuY1fe5VhT7JKiur2b5rKuDShLeBdpssJboumPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184615},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"eb2760ea7555c20b79d2e08a60fea293323a8d94","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.3.1_1787260500492_0.8381749792486342","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@aip-tech/braid","version":"0.4.0","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.4.0","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"b5c928b428edb81157937b0e5c3f54c83d357876","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.4.0.tgz","fileCount":55,"integrity":"sha512-5ARvs/M8q2J472oVkRXiXOGLf/U56QD9pcuiNCKa40bNtqYdc4Lyer906992nmwR+w+CSfRRy/Adr0pEOdrBMw==","signatures":[{"sig":"MEQCIE1hechTS/Xc31t31LBnsl3QQ0+zFL4pauUBZyYXZFpaAiA/A2zmejCQGWj+G0yiX3181QoTR2awA8+3Dz5u6uerIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198398},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"7df4cdf5b65077daa5de7f8feae11fe5d2897f9b","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.4.0_1787266558175_0.45538194501597906","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@aip-tech/braid","version":"0.5.0","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.5.0","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"b9ac3bf0866e22d0cd5d1481900d42f89bb6ec41","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.5.0.tgz","fileCount":55,"integrity":"sha512-FGIafLFjT9aGpmjjehWk6HMoV7h55SUrvMv71vTOVmtFIjlj0epb3VE2qrk7GO4jDgWOIwMBtcL69af+VQfDGA==","signatures":[{"sig":"MEUCIQC8LuPn6R10rwOWAsIHFe9Dp638xcRKaSzAVLroxbMGBQIgcG9US4NHGPoUBVGDdtJC3HIShLFwkxT/XO2u9ZyrNnc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209257},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"95fcbf99bc1e3bc3086c7b0d13cb28d6cc1a3cdf","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","pidusage":"^4.0.1","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.5.0_1787309063356_0.8682673531423908","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@aip-tech/braid","version":"0.6.0","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.6.0","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"60d9d16557b33a7fcb9e9b341ee05bf73f82301a","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.6.0.tgz","fileCount":55,"integrity":"sha512-3RYtDLx7c5vAhdFzYSbKgupg+rpnXzrwC9h5Uk1cYfLIQY9+pHVEOaQefNzDNYSuquapWQvJ5NmgmbmM1TF1/g==","signatures":[{"sig":"MEUCIFu5um+sK/qbHoHedMXcY81lu0dFk16J1kspLhTZwTdSAiEA3DnlNLZzkqktL12vCZicSQ/ldWLM831vLNV9JQtypT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIEfO7xS4V2mxDkksj8VKZ/OahEXBpC3INf7yVZg6rmW3AiAGoxuOZoiyQnvOf/F7o1ORe4Ed5YOX8qEDejn8nsC4hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220584},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"c598331db97d0f540b63e2575d10355c0b054e8b","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","pidusage":"^4.0.1","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.6.0_1789419707298_0.8016853546132954","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@aip-tech/braid","version":"0.7.0","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.7.0","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"5e89b15eccc97c37d2ed6739e5172bd0d6ac2b82","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.7.0.tgz","fileCount":55,"integrity":"sha512-nd50wtPaOgZcBgBC16b5mLpeEnZJWEI6WDxHr24rzN2THmcvZ5cXI10PLIoELBkBWxCQVaI9h56hVhHHaRU2SA==","signatures":[{"sig":"MEQCIEWK0EdUBBB7MXN1N0m1TORT2095rPSuBhbd5XSw1i+cAiACW5I+A7PFtDRhadmBXrglTn/Y70Epw8m8V2j1XpuuYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID1zRZzeCu5AspurnacgCWLEvNh+2i/Fv/pfMh3Akz6HAiEApCoOvLwgr4Ce+UcNlyuBWRIj6+mLLPZ5XfODXlzVmV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235040},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"93655263c135667ec4c9a9350fd93571361a67bb","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","pidusage":"^4.0.1","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.7.0_1789471060219_0.5866612191812648","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@aip-tech/braid","version":"0.8.0","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"license":"MIT","_id":"@aip-tech/braid@0.8.0","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"homepage":"https://aip-tech.github.io/braid","bugs":{"url":"https://github.com/aip-tech/braid/issues"},"bin":{"braid":"dist/cli.js"},"dist":{"shasum":"9e203354ab6ee10daa49e85af7861fb26d6311d4","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.8.0.tgz","fileCount":55,"integrity":"sha512-C4hi9VfvpBAK0CIBeJzuRxx24lVGlhhDmNQ5kkeUrMEIsxxNsuYzUyKBNKIfxRmGun+PIY6iP+wheHexSdl83w==","signatures":[{"sig":"MEUCIQD7M7A5lyU3I4UtxEfEqQqJ6AFGRHgrnXmS8vVC/KFxgAIgQMCAL6+vJe4uFRRKj9DRR8gL6h1LNxedZhtMwtYv4R4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICkzlZom9AG9GcYWUc4PJbpPvivUL5wor0+QawdYS9LiAiEA0DW8Nq9/tfhz+e7m6tDT68tIPngk36Hln7N0UGF1OaQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236904},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"5ccfd4e7fa08ec7f326d84334cfc41f8f801cc4b","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","pidusage":"^4.0.1","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/braid_0.8.0_1789472003334_0.9782235604693685","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"_id":"@aip-tech/braid@0.9.0","bin":{"braid":"dist/cli.js"},"bugs":{"url":"https://github.com/aip-tech/braid/issues"},"dist":{"shasum":"43a9bf3f9a710abb82b84dd1be604b5691d684ac","tarball":"https://registry.npmjs.org/@aip-tech/braid/-/braid-0.9.0.tgz","fileCount":55,"integrity":"sha512-Y1jDo0BioPy3uQxVmd+DhokJGpI2O6F0umwhb6xRGTClTBZDqMHgbsymmldbVNJ50lY46SLGaTLeRkU2cOyKNw==","signatures":[{"sig":"MEQCIFyq4kTClSvMoiXw+uy1aGzicmgqFXT9uvIZtT/pxoL2AiBTVBFmuuIGq2Kihnz3G4HWW5tdKHZcZIfCsq9FL1fx3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGVZRCJHwdU6f9+F8JBc2jV/aBIMuITXAzlgfk4ujUNHAiB4N9WWzyKPvYITl9PIdurr5DOMGU1XDYZAgUiI8duCtw=="}],"unpackedSize":262214},"main":"./dist/index.js","name":"@aip-tech/braid","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22"},"gitHead":"e14dab4fb34d13eaf5e7694e819cda8d1ea466a4","license":"MIT","scripts":{"lint":"biome lint --write","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.build.json && chmod +x dist/cli.js","check":"biome check --write","format":"biome format --write","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","prepublishOnly":"pnpm run build"},"version":"0.9.0","_npmUser":{"name":"jonwatkins","email":"jonwatkins86@gmail.com"},"homepage":"https://aip-tech.github.io/braid","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"_npmVersion":"11.6.0","description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","directories":{},"maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"chokidar":"^3.6.0","pidusage":"^4.0.1","tree-kill":"^1.2.2","sonic-boom":"^5.0.0","import-meta-resolve":"^4.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/braid_0.9.0_1789652509945_0.25431365710239273"}}},"time":{"created":"2026-08-14T22:26:28.460Z","modified":"2026-09-17T13:41:50.278Z","0.1.0":"2026-08-14T22:26:28.777Z","0.1.1":"2026-08-14T22:30:31.767Z","0.2.0":"2026-08-15T00:53:58.441Z","0.2.1":"2026-08-15T11:24:51.252Z","0.2.3":"2026-08-15T13:39:08.852Z","0.2.4":"2026-08-15T15:10:23.507Z","0.2.5":"2026-08-20T13:58:56.689Z","0.2.6":"2026-08-20T16:33:50.092Z","0.2.7":"2026-08-20T17:24:16.613Z","0.2.8":"2026-08-20T18:09:42.809Z","0.2.9":"2026-08-20T18:28:39.746Z","0.3.0":"2026-08-20T20:49:40.605Z","0.3.1":"2026-08-20T21:15:00.665Z","0.4.0":"2026-08-20T22:55:58.364Z","0.5.0":"2026-08-21T10:44:23.499Z","0.6.0":"2026-09-14T21:01:47.387Z","0.7.0":"2026-09-15T11:17:40.329Z","0.8.0":"2026-09-15T11:33:23.417Z","0.9.0":"2026-09-17T13:41:50.042Z"},"bugs":{"url":"https://github.com/aip-tech/braid/issues"},"license":"MIT","homepage":"https://aip-tech.github.io/braid","keywords":["process-manager","process-supervisor","file-watcher","monorepo","dev-tools","cli"],"repository":{"url":"git+https://github.com/aip-tech/braid.git","type":"git","directory":"packages/braid"},"description":"Runs multiple long-lived processes as one unit, as a background daemon or attached to your terminal — PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.","maintainers":[{"name":"lujoki","email":"luke@sent.com"},{"name":"jonwatkins","email":"jonwatkins86@gmail.com"}],"readme":"# braid\n\nRuns multiple long-lived processes as one unit, as a background daemon by default (or attached to your terminal with `--foreground`): PID tracking, watch-triggered restarts, kill-everything-on-crash, and persistent rotated per-process logs.\n\nPublished on npm as `@aip-tech/braid`. See [CHANGELOG.md](./CHANGELOG.md) for release notes.\n\n## Install\n\n```bash\nnpm install @aip-tech/braid\n```\n\n## Config\n\n`braid.config.ts`:\n\n```ts\nimport { defineConfig } from \"@aip-tech/braid\";\n\nexport default defineConfig({\n\tprocesses: [\n\t\t{ name: \"api\", command: \"pnpm\", args: [\"--filter\", \"./api\", \"run\", \"dev\"], watch: [\"api/src\"] },\n\t\t{ name: \"client\", command: \"pnpm\", args: [\"--filter\", \"./client\", \"run\", \"dev\"] },\n\t],\n});\n```\n\n- `watch`: restart this process when these paths change. Omit it for a command that manages its own reload.\n- `exclude`: paths to leave out of `watch`, resolved the same way — e.g. `exclude: [\"api/src/__generated__\"]` so a regenerated file there doesn't trigger its own restart.\n- `dependsOn`: `{ processes, run? }` — restart this process whenever any of `processes` restarts, optionally running a command first (e.g. codegen) and waiting for it to finish. See [Dependent restarts](#dependent-restarts).\n- `onRestart`: run a command after this process itself restarts, e.g. rebuilding a shared workspace package. See [Post-restart hooks](#post-restart-hooks).\n- `beforeRestart`: run a command after this process's own watched files change and it's stopped, but before it restarts, e.g. regenerating something the fresh process needs on disk. Requires `watch`. See [Pre-restart hooks](#pre-restart-hooks).\n- `readyPattern`: hold off `onRestart`/`dependsOn` until this regex matches the process's own output after a restart. See [Waiting for readiness](#waiting-for-readiness).\n- `startAfter`: `{ processes }` — don't fork this process for the first time until `processes` are themselves ready. See [Waiting to start](#waiting-to-start).\n- `autoStart`: set `false` to keep this process from forking when `start` boots the whole stack — start it later on demand instead. See [Starting on demand](#starting-on-demand). @default `true`\n- `plugins`: external plugins to load, by package name/path (or a `[name, options]` tuple).\n- `logs`: `{ dir, maxSizeBytes, timestamps }` — see [Logs](#logs).\n- `foreground`: run `start` attached to the terminal instead of forking a background daemon. Overridable per invocation with `--foreground`/`--daemon`. @default `false`\n\nFull field list and defaults: [`src/types.ts`](./src/types.ts) (`ProcessConfig`, `BraidConfig`).\n\n## CLI\n\n```bash\nnpx @aip-tech/braid start                    # start every configured process as a background daemon\nnpx @aip-tech/braid start --foreground       # ...or attached to this terminal (Ctrl-C stops everything)\nnpx @aip-tech/braid start --daemon           # force the background daemon, overriding a config's foreground: true\nnpx @aip-tech/braid status                   # list each process's name/pid/alive state\nnpx @aip-tech/braid logs [name]              # print a process's log (every process, interleaved, if no name)\nnpx @aip-tech/braid logs [name] --follow     # keep streaming new output\nnpx @aip-tech/braid logs [name] --lines 50   # only the last 50 lines\nnpx @aip-tech/braid stop                     # kill everything\nnpx @aip-tech/braid start --config ./other.config.ts\nnpx @aip-tech/braid start <name>             # start one configured process in an already-running daemon\nnpx @aip-tech/braid restart <name>           # stop and re-fork one process, leaving the rest alone\nnpx @aip-tech/braid stop <name>              # stop one process, leaving the rest (and the daemon) running\nnpx @aip-tech/braid start --no-watch         # ignore every process's watch/beforeRestart for this run\n```\n\nIn `--foreground` mode, `start` blocks until every process stops (Ctrl-C, or `braid stop` from another terminal), streaming their combined output straight here instead of only to the log files.\n\n`--no-watch` overrides `watch` (and `beforeRestart`, which requires it) on every process for that one invocation, without touching the config file — e.g. running a dev config unmodified in an environment where auto-restart isn't wanted. Manual restarts (`braid restart <name>`), `dependsOn` cascades, and `onRestart` hooks are unaffected; only the watch-triggered restart path is disabled.\n\n## Dependent restarts\n\nA process can restart whenever another one does — e.g. a client that needs to regenerate its GraphQL SDK once the API it talks to restarts:\n\n```ts\n{ name: \"api\", command: \"pnpm\", args: [\"--filter\", \"./api\", \"run\", \"dev\"], watch: [\"api/src\"] },\n{\n\tname: \"client\",\n\tcommand: \"pnpm\",\n\targs: [\"--filter\", \"./client\", \"run\", \"dev\"],\n\tdependsOn: {\n\t\tprocesses: [\"api\"],\n\t\trun: { command: \"pnpm\", args: [\"--filter\", \"./client\", \"run\", \"generate\"] },\n\t},\n},\n```\n\nWhen `api` restarts: `client` stops once `api` has actually re-spawned (not the instant it decides to restart), `run` executes (retried on failure — `retries`/`retryDelayMs`, default 5× / 1s apart, since `api` may still be starting back up), then `client` restarts. Left stopped with a logged reason if `run` never succeeds. A `dependsOn` chain that loops back on its own trigger is rejected at startup.\n\n## Post-restart hooks\n\nFor a shared workspace package other processes just read from (no process of its own to restart), run a command directly after the process that changed it restarts:\n\n```ts\n{\n\tname: \"api\",\n\tcommand: \"pnpm\",\n\targs: [\"--filter\", \"./api\", \"run\", \"dev\"],\n\twatch: [\"api/src\"],\n\tonRestart: { command: \"pnpm\", args: [\"--filter\", \"./types\", \"run\", \"generate\"] },\n},\n```\n\nSame shape and retry behavior as `dependsOn.run`, but scoped to `api` restarting itself — no dependent process is stopped or restarted. If `api` also has dependents (via `dependsOn`), they're notified only once this hook succeeds, and not at all if it never does.\n\n## Pre-restart hooks\n\nFor a process that needs to regenerate its own on-disk dependencies (e.g. a GraphQL SDK generated from a schema it also watches) before it restarts on that same change, `beforeRestart` runs after the process is stopped and before a fresh one starts:\n\n```ts\n{\n\tname: \"client\",\n\tcommand: \"pnpm\",\n\targs: [\"vike\", \"dev\"],\n\twatch: [\"server\", \"lib/sdk\"],\n\tbeforeRestart: { command: \"pnpm\", args: [\"--filter\", \"lib/sdk\", \"run\", \"generate\"] },\n},\n```\n\n`client` is fully stopped, `generate` runs to completion (retried like `onRestart`/`dependsOn.run`), and only then does `client` restart — the fresh process never boots against stale or half-regenerated code. Requires `watch`; rejected at startup otherwise. If the hook keeps failing past its retries, `client` is left stopped, but the watcher stays active — the next matching file change retries the whole cycle, rather than requiring a manual restart.\n\n## Waiting for readiness\n\nRe-spawning a process isn't the same as it being ready — an API might take a moment after restarting before it's actually serving. `readyPattern` holds off `onRestart` and any `dependsOn` cascades until a regex matches that process's own stdout/stderr:\n\n```ts\n{\n\tname: \"api\",\n\tcommand: \"pnpm\",\n\targs: [\"--filter\", \"./api\", \"run\", \"dev\"],\n\twatch: [\"api/src\"],\n\treadyPattern: \"Server listening\",\n\treadyTimeoutMs: 15000, // @default 10000\n},\n```\n\nWithout `readyPattern`, dependents are held off only until `api` has re-spawned (not exited/killed while restarting, but not necessarily done starting up either) — a `run`/`onRestart` hook's own retry is what bridges the rest of that gap. If `readyPattern` never matches within `readyTimeoutMs`, braid logs why and proceeds anyway rather than holding dependents off forever on a misconfigured pattern.\n\n## Waiting to start\n\n`readyPattern`/`dependsOn` both govern *restarts* — braid still forks every configured process at once on `start`, regardless of what any of them need to talk to. `startAfter` delays a process's very first fork until the processes it names are ready:\n\n```ts\n{\n\tname: \"api\",\n\tcommand: \"pnpm\",\n\targs: [\"--filter\", \"./api\", \"run\", \"dev\"],\n\treadyPattern: \"Server listening\",\n},\n{\n\tname: \"client\",\n\tcommand: \"pnpm\",\n\targs: [\"--filter\", \"./client\", \"run\", \"dev\"],\n\tstartAfter: { processes: [\"api\"] },\n},\n```\n\n`client` isn't forked until `api`'s own `readyPattern` matches (or its `readyTimeoutMs` elapses — same best-effort semantics as above); if `api` sets no `readyPattern`, `client` forks as soon as `api` has been forked. This only affects each process's first spawn — once everything is up, later watch-triggered/`dependsOn`/manual restarts are entirely unaffected, and `start` itself doesn't wait around for a slow `startAfter` chain to finish before returning. A `startAfter` chain that loops back on itself is rejected at startup, same as a circular `dependsOn`.\n\n## Starting on demand\n\nSet `autoStart: false` to keep a process from forking at all when `start` boots the whole stack — useful for a cron-style job you only want to run when you ask for it. It's still fully configured (listed by `status`/the dashboard as \"not started\"), just never spawned automatically:\n\n```ts\n{\n\tname: \"cron\",\n\tcommand: \"pnpm\",\n\targs: [\"--filter\", \"./jobs\", \"run\", \"nightly-report\"],\n\tautoStart: false, // @default true\n},\n```\n\nStart it later with `braid start cron`, the dashboard's Start button, or `PluginContext.startProcess()` from a plugin. Calling start on an already-running process is a safe no-op — it doesn't kill and respawn it the way `restart` would. A process can combine `autoStart: false` with its own `startAfter` — its later manual start still waits on those dependencies first — but not with `dependsOn` (a dependency's restart would force-start it early, defeating the point), and it can't be named as someone else's `startAfter` target (that dependent would never see it become ready on its own). Both are rejected at startup.\n\n## Logs\n\nEach process gets a rotated log file at `.braid/logs/<name>.log`. Rotated (one backup kept) on every `start`, on a watch-triggered restart, and past `logs.maxSizeBytes` (default 5MB). Braid's own diagnostics (plugin failures, crash notices) go to `.braid/daemon.log`; a `dependsOn`/`onRestart`/`beforeRestart` hook that keeps failing, or a `readyPattern` that never matches, is also logged into the relevant process's own log. A process also gets a `braid: stopping` line right before braid stops it for a `dependsOn` cascade or a watch-triggered restart (not yet for a plain `braid stop`).\n\nSet `logs.timestamps: true` to prepend a dimmed `HH:MM:SS.mmm` to every line, before the `[name]` tag. It's the same bytes wherever that line shows up — the log file, `braid logs`, the web UI, and the terminal during `braid start` all get it together. @default `false`\n\n## Plugins\n\n`start` runs a loopback-only, token-guarded control server that plugins register routes on. List a plugin by package name/path in `plugins` to load it — see `PluginContext` in [`src/types.ts`](./src/types.ts). No external plugins ship yet.\n\n## Scripts\n\n```bash\npnpm build        # tsc -> dist/\npnpm typecheck    # tsc --noEmit\npnpm test         # vitest run\npnpm coverage     # vitest run --coverage\n```\n","readmeFilename":"README.md"}