{"_id":"@charlie-labs/daemons","_rev":"7-30abc3976043878b031dad57e1fca7f2","name":"@charlie-labs/daemons","dist-tags":{"latest":"2.2.0"},"versions":{"0.0.1":{"name":"@charlie-labs/daemons","version":"0.0.1","_id":"@charlie-labs/daemons@0.0.1","maintainers":[{"name":"rileytomasek","email":"riley.tomasek@gmail.com"},{"name":"ryan-charlielabs","email":"ryan@charlielabs.ai"}],"homepage":"https://github.com/charlie-labs/daemons#readme","bugs":{"url":"https://github.com/charlie-labs/daemons/issues"},"bin":{"daemon":"dist/bin.js"},"dist":{"shasum":"bcae34dccc4b86ac7aaa4ed3650753cedb90c76e","tarball":"https://registry.npmjs.org/@charlie-labs/daemons/-/daemons-0.0.1.tgz","fileCount":33,"integrity":"sha512-iv/RtobZEgc7IvBmowWqIcLIJ6T507pyd5GOY7t3zuSE6eKJFXM2IpDKOJySC8urdNfxDFLMqh2tIPDjJa2FKQ==","signatures":[{"sig":"MEQCHwsHatp0mexC6B6GHKB22zd9fzseJkb5OZx3IYSY4rICIQC7iJM9IrbEuza3wdVFlzRBmynlk9ta7CVsQgulH2saZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1012594},"type":"module","engines":{"node":">=20"},"gitHead":"c7d0adfa0c491e497ed45515f3e1fde5088a4f52","scripts":{"test":"vitest run","build":"rm -rf dist && bun build src/daemon-cli/bin.ts src/daemon-cli/index.ts --target=node --outdir=dist --entry-naming=[name].js && chmod +x dist/bin.js","prepack":"bun run build","typecheck":"tsc --noEmit","smoke:daemon":"bun scripts/smoke-daemon-bin.ts","generate:examples":"bun scripts/generate-examples.ts","validate:examples":"bun scripts/validate-examples.ts"},"_npmUser":{"name":"rileytomasek","email":"riley.tomasek@gmail.com"},"repository":{"url":"git+https://github.com/charlie-labs/daemons.git","type":"git"},"_npmVersion":"11.12.1","description":"Public Charlie daemon examples catalog and CLI.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.25.76","yaml":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.14","@types/bun":"^1.2.22","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/daemons_0.0.1_1779405275935_0.7026957616598684","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@charlie-labs/daemons","version":"2.0.0","_id":"@charlie-labs/daemons@2.0.0","maintainers":[{"name":"rileytomasek","email":"riley.tomasek@gmail.com"},{"name":"ryan-charlielabs","email":"ryan@charlielabs.ai"}],"homepage":"https://github.com/charlie-labs/daemons#readme","bugs":{"url":"https://github.com/charlie-labs/daemons/issues"},"bin":{"daemon":"dist/bin.js"},"dist":{"shasum":"9ce52a7e4ce20331cbf599c926f3d72229b465d8","tarball":"https://registry.npmjs.org/@charlie-labs/daemons/-/daemons-2.0.0.tgz","fileCount":86,"integrity":"sha512-aNQxBqKiyG/htaiDlOnD27rmjvQSxKnq5ie/Vhem7Ua8fRnFB3TY73fL/ekfaQPHCaes2WuIFN95RmR8kw5Gmw==","signatures":[{"sig":"MEYCIQCAkNnMwsWdWdHMPAc8mOQl0/s7+5Qy1738EC/e3+E9xQIhAPVXIvW/alg3iE6Eze4hBD5vHH0Biu70f4pwQh/DHuGC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@charlie-labs%2fdaemons@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":527696},"main":"./dist/index.js","type":"module","zshy":{"bin":{"daemon":"./bin.ts"},"cjs":false,"exports":{".":"./index.ts","./examples":"./index.ts","./package.json":"./package.json","./examples.json":"./examples.json"}},"types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./examples":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./examples.json":"./dist/examples.json"},"gitHead":"8645258ca51f68751314aa07158b2d61fcb2c879","scripts":{"test":"vitest run","build":"bun run --bun zshy && chmod +x dist/bin.js","prepack":"bun run build","typecheck":"tsc --noEmit","smoke:daemon":"bun scripts/smoke-daemon-bin.ts","generate:examples":"bun scripts/generate-examples.ts","validate:examples":"bun scripts/validate-examples.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:272d2cb8-02a0-45b0-b5b9-cd258d827894"}},"repository":{"url":"git+https://github.com/charlie-labs/daemons.git","type":"git"},"_npmVersion":"11.13.0","description":"Public Charlie daemon examples catalog and CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.25.76","yaml":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zshy":"^0.4.3","vitest":"^4.0.14","@types/bun":"^1.2.22","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/daemons_2.0.0_1781480786787_0.7487566325807997","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@charlie-labs/daemons","version":"2.0.1","_id":"@charlie-labs/daemons@2.0.1","maintainers":[{"name":"rileytomasek","email":"riley.tomasek@gmail.com"},{"name":"ryan-charlielabs","email":"ryan@charlielabs.ai"}],"homepage":"https://github.com/charlie-labs/daemons#readme","bugs":{"url":"https://github.com/charlie-labs/daemons/issues"},"bin":{"daemon":"dist/bin.js"},"dist":{"shasum":"fd6452de164c6de57ca7f2a926259f338f4f4b86","tarball":"https://registry.npmjs.org/@charlie-labs/daemons/-/daemons-2.0.1.tgz","fileCount":86,"integrity":"sha512-0g+uEWfnd7ARn+6gktJcGDq6IeLwMdHPWur+uQs4AsWUhhecNlOG5EXNmqfkKXwuwLj+tq/cmteRB11ct7DyvQ==","signatures":[{"sig":"MEUCIDkzDYPZkpSfdUGUNi5L2b3hD9qTeepTtENFcRyr5AhmAiEAytU8gtMDRVa+fqWokOxPMmI56EzatGGrMGjV28EocdM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@charlie-labs%2fdaemons@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":532795},"main":"./dist/index.js","type":"module","zshy":{"bin":{"daemon":"./bin.ts"},"cjs":false,"exports":{".":"./index.ts","./examples":"./index.ts","./package.json":"./package.json","./examples.json":"./examples.json"}},"types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./examples":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./examples.json":"./dist/examples.json"},"gitHead":"d02578168d59252207fb92761a75e029fdaecbc1","scripts":{"test":"vitest run","build":"bun run --bun zshy && chmod +x dist/bin.js","prepack":"bun run build","typecheck":"tsc --noEmit","smoke:daemon":"bun scripts/smoke-daemon-bin.ts","generate:examples":"bun scripts/generate-examples.ts","validate:examples":"bun scripts/validate-examples.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:272d2cb8-02a0-45b0-b5b9-cd258d827894"}},"repository":{"url":"git+https://github.com/charlie-labs/daemons.git","type":"git"},"_npmVersion":"11.13.0","description":"Public Charlie daemon examples catalog and CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.25.76","yaml":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zshy":"^0.4.3","vitest":"^4.0.14","@types/bun":"^1.2.22","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/daemons_2.0.1_1781614662604_0.0659071523952306","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@charlie-labs/daemons","version":"2.0.2","_id":"@charlie-labs/daemons@2.0.2","maintainers":[{"name":"rileytomasek","email":"riley.tomasek@gmail.com"},{"name":"ryan-charlielabs","email":"ryan@charlielabs.ai"}],"homepage":"https://github.com/charlie-labs/daemons#readme","bugs":{"url":"https://github.com/charlie-labs/daemons/issues"},"bin":{"daemon":"dist/bin.js"},"dist":{"shasum":"0b135cb704350424e441a1d67299248993c87028","tarball":"https://registry.npmjs.org/@charlie-labs/daemons/-/daemons-2.0.2.tgz","fileCount":86,"integrity":"sha512-gMLKGlNIqSz4eMawMHgdbfSQrRVrNnXP0Au0Fxg73Giete6Cj/z6wZ1wO9h1BZE5u2NJLTz87hYFJ55GCf4oIw==","signatures":[{"sig":"MEUCIC4OXspiS+4JFISD4EUq+LdarfVNTglJBnDZ+mb+0PU2AiEA0B0ZAWDXIWPpbLfj2X5quT9I0Ye0+nDGn5zI2gAv+Ik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@charlie-labs%2fdaemons@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":533161},"main":"./dist/index.js","type":"module","zshy":{"bin":{"daemon":"./bin.ts"},"cjs":false,"exports":{".":"./index.ts","./examples":"./index.ts","./package.json":"./package.json","./examples.json":"./examples.json"}},"types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./examples":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./examples.json":"./dist/examples.json"},"gitHead":"be4cc98d92b11c7b7e51f9b9076272452560a27c","scripts":{"test":"vitest run","build":"bun run --bun zshy && chmod +x dist/bin.js","prepack":"bun run build","typecheck":"tsc --noEmit","smoke:daemon":"bun scripts/smoke-daemon-bin.ts","generate:examples":"bun scripts/generate-examples.ts","validate:examples":"bun scripts/validate-examples.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:272d2cb8-02a0-45b0-b5b9-cd258d827894"}},"repository":{"url":"git+https://github.com/charlie-labs/daemons.git","type":"git"},"_npmVersion":"11.13.0","description":"Public Charlie daemon examples catalog and CLI.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^3.25.76","yaml":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zshy":"^0.4.3","vitest":"^4.0.14","@types/bun":"^1.2.22","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/daemons_2.0.2_1781625886104_0.6051593640850215","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@charlie-labs/daemons","version":"2.0.3","_id":"@charlie-labs/daemons@2.0.3","maintainers":[{"name":"rileytomasek","email":"riley.tomasek@gmail.com"},{"name":"ryan-charlielabs","email":"ryan@charlielabs.ai"}],"homepage":"https://github.com/charlie-labs/daemons#readme","bugs":{"url":"https://github.com/charlie-labs/daemons/issues"},"bin":{"daemon":"dist/bin.js"},"dist":{"shasum":"16e1955230e4f2e27592110c760434804dbece27","tarball":"https://registry.npmjs.org/@charlie-labs/daemons/-/daemons-2.0.3.tgz","fileCount":90,"integrity":"sha512-n6p6FzzBW5Ok4g33SAcnzIHWyIL0VBCJEG864TnPeDMh+hkLNCjEQugNwOPxNAYXeAY4vgqwnmqJSiV+mWWDNQ==","signatures":[{"sig":"MEUCICD/RfkLGPa6xvpH2bpyoy8RLQVdw0VeP4vWU8xNPifQAiEAznjAyVxj6C462XsKssYgXndJYJF7f6C/+svu4ecbZxE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@charlie-labs%2fdaemons@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":563664},"main":"./dist/index.js","type":"module","zshy":{"bin":{"daemon":"./bin.ts"},"cjs":false,"exports":{".":"./index.ts","./examples":"./index.ts","./package.json":"./package.json","./examples.json":"./examples.json"}},"types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./examples":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./examples.json":"./dist/examples.json"},"gitHead":"36e43970f2f7b2e8720000b73f187ea691cc607d","scripts":{"test":"vitest run","build":"bun run --bun zshy && chmod +x dist/bin.js","prepack":"bun run build","typecheck":"tsc --noEmit","smoke:daemon":"bun scripts/smoke-daemon-bin.ts","generate:examples":"bun scripts/generate-examples.ts","validate:examples":"bun scripts/validate-examples.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:272d2cb8-02a0-45b0-b5b9-cd258d827894"}},"repository":{"url":"git+https://github.com/charlie-labs/daemons.git","type":"git"},"_npmVersion":"11.16.0","description":"Public Charlie daemon examples catalog and CLI.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.25.76","yaml":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zshy":"^0.4.3","vitest":"^4.0.14","@types/bun":"^1.2.22","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/daemons_2.0.3_1784760903286_0.8973580276422461","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@charlie-labs/daemons","version":"2.1.0","_id":"@charlie-labs/daemons@2.1.0","maintainers":[{"name":"rileytomasek","email":"riley.tomasek@gmail.com"},{"name":"ryan-charlielabs","email":"ryan@charlielabs.ai"}],"homepage":"https://github.com/charlie-labs/daemons#readme","bugs":{"url":"https://github.com/charlie-labs/daemons/issues"},"bin":{"daemon":"dist/bin.js"},"dist":{"shasum":"a8dd519ff125fb1d02fa6ba011ca8737ece10a1a","tarball":"https://registry.npmjs.org/@charlie-labs/daemons/-/daemons-2.1.0.tgz","fileCount":96,"integrity":"sha512-xWFMJ8oGLz2uoGWRm8dWwmUesUibeXdEuQ4hqaZaeKGVQjHWY2WarUKFPcI7W82qYk0IJpUOZxGGZbHj9GuDDQ==","signatures":[{"sig":"MEQCIEmxL1yMskshwO63kzmByxYhb4T1BVt4hqL2pLnTPhgLAiB/ajLM3TiV8qZMVhLDosRIcKx84cQksWIsrapZWjz4gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@charlie-labs%2fdaemons@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":635278},"main":"./dist/index.js","type":"module","zshy":{"bin":{"daemon":"./bin.ts"},"cjs":false,"exports":{".":"./index.ts","./examples":"./index.ts","./package.json":"./package.json","./examples.json":"./examples.json"}},"types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./examples":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./examples.json":"./dist/examples.json"},"gitHead":"a194084dc114896c2318c72dce812f9ef9031890","scripts":{"test":"vitest run","build":"bun run --bun zshy && chmod +x dist/bin.js","prepack":"bun run build","typecheck":"tsc --noEmit","smoke:daemon":"bun scripts/smoke-daemon-bin.ts","generate:examples":"bun scripts/generate-examples.ts","validate:examples":"bun scripts/validate-examples.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:272d2cb8-02a0-45b0-b5b9-cd258d827894"}},"repository":{"url":"git+https://github.com/charlie-labs/daemons.git","type":"git"},"_npmVersion":"11.16.0","description":"Public Charlie daemon examples catalog and CLI.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^3.25.76","yaml":"^2.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zshy":"^0.4.3","vitest":"^4.0.14","@types/bun":"^1.2.22","typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/daemons_2.1.0_1785111193132_0.285349893828839","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@charlie-labs/daemons","version":"2.2.0","description":"Public Charlie daemon examples catalog and CLI.","type":"module","bin":{"daemon":"dist/bin.js"},"scripts":{"typecheck":"tsc --noEmit","test":"vitest run","generate:examples":"bun scripts/generate-examples.ts","validate:examples":"bun scripts/validate-examples.ts","build":"bun run --bun zshy && chmod +x dist/bin.js","smoke:daemon":"bun scripts/smoke-daemon-bin.ts","prepack":"bun run build"},"dependencies":{"yaml":"^2.8.1","zod":"^3.25.76"},"devDependencies":{"@types/bun":"^1.2.22","typescript":"^5.9.3","vitest":"^4.0.14","zshy":"^0.4.3"},"engines":{"node":">=20"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/charlie-labs/daemons.git"},"bugs":{"url":"https://github.com/charlie-labs/daemons/issues"},"homepage":"https://github.com/charlie-labs/daemons#readme","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./examples":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json","./examples.json":"./dist/examples.json"},"zshy":{"exports":{".":"./index.ts","./examples":"./index.ts","./examples.json":"./examples.json","./package.json":"./package.json"},"bin":{"daemon":"./bin.ts"},"cjs":false},"module":"./dist/index.js","gitHead":"9b73f2a228077fc3120776263b59402f6cf594c4","_id":"@charlie-labs/daemons@2.2.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-TLY0dzVD23FztdolgSR9Zd7gQby8aw6HYV/r+P9IMOoa0WGvnFSEZ26P4jwCGwkPckpDntUy1R/XSSjMxhN7EQ==","shasum":"0dda37d6a7e38ebcc28bf45119c0249c4c0de8e7","tarball":"https://registry.npmjs.org/@charlie-labs/daemons/-/daemons-2.2.0.tgz","fileCount":96,"unpackedSize":638112,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@charlie-labs%2fdaemons@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCCF28MPov7OtZOzrTU8XJeBjSDVjviILdzOov9lMDG6wIgOVgNYrrPjs+D2XjvB2MGOGDJ9dqAsuhEHvnoINXiKRQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:272d2cb8-02a0-45b0-b5b9-cd258d827894"}},"directories":{},"maintainers":[{"name":"rileytomasek","email":"riley.tomasek@gmail.com"},{"name":"ryan-charlielabs","email":"ryan@charlielabs.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/daemons_2.2.0_1785532294974_0.04914091928154374"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T23:14:35.779Z","modified":"2026-07-31T21:11:35.639Z","0.0.1":"2026-05-21T23:14:36.200Z","2.0.0":"2026-06-14T23:46:26.909Z","2.0.1":"2026-06-16T12:57:42.737Z","2.0.2":"2026-06-16T16:04:46.285Z","2.0.3":"2026-07-22T22:55:03.472Z","2.1.0":"2026-07-27T00:13:13.423Z","2.2.0":"2026-07-31T21:11:35.140Z"},"bugs":{"url":"https://github.com/charlie-labs/daemons/issues"},"homepage":"https://github.com/charlie-labs/daemons#readme","repository":{"type":"git","url":"git+https://github.com/charlie-labs/daemons.git"},"description":"Public Charlie daemon examples catalog and CLI.","maintainers":[{"name":"rileytomasek","email":"riley.tomasek@gmail.com"},{"name":"ryan-charlielabs","email":"ryan@charlielabs.ai"}],"readme":"This repo contains example daemon files for common daemon patterns.\n\nThese examples are reference patterns for Charlie daemons. They are not the normative source of truth for the daemon format or for authoring rules.\n\n## Start here\n\nStart with the docs:\n\n- [Daemons](https://docs.charlielabs.ai/daemons)\n- [Choosing daemons](https://docs.charlielabs.ai/daemons/choosing-daemons)\n- [Writing and editing DAEMON.md](https://docs.charlielabs.ai/daemons/writing-and-editing-daemon-md)\n- [DAEMON.md reference](https://docs.charlielabs.ai/daemons/daemon-md-reference)\n- [Testing and iterating on daemons](https://docs.charlielabs.ai/daemons/testing-and-iterating-on-daemons)\n\nFor this repo's examples package, CLI, and catalog contract, use:\n\n- [Daemon catalog CLI](docs/daemon-cli.md)\n- [Examples v2 package and catalog spec](docs/examples-spec.md)\n- [Examples authoring guide](docs/examples-authoring-guide.md)\n- [Examples catalog consumer guide](docs/examples-catalog-consumer-guide.md)\n\nRead [Daemons](https://docs.charlielabs.ai/daemons) first if you are new to the concept.\n\nUse [DAEMON.md reference](https://docs.charlielabs.ai/daemons/daemon-md-reference) for the exact authored contract and [Testing and iterating on daemons](https://docs.charlielabs.ai/daemons/testing-and-iterating-on-daemons) for testing and rollout guidance.\n\n## Example index\n\n| Category | Daemon ID | Path | Description |\n| --- | --- | --- | --- |\n| Dependency maintenance | `js-ts-dependency-upgrades` | [daemons/js-ts-dependency-upgrades/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/js-ts-dependency-upgrades/DAEMON.md) | Opens low-noise JavaScript/TypeScript dependency upgrade PRs with a configured package manager. |\n| Documentation freshness | `docs-drift-maintainer` | [daemons/docs-drift-maintainer/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/docs-drift-maintainer/DAEMON.md) | Repairs docs drift from recent merged source changes with small source-backed PRs. |\n| Documentation freshness | `docs-stale-maintainer` | [daemons/docs-stale-maintainer/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/docs-stale-maintainer/DAEMON.md) | Runs weekly to repair older outdated documentation in small source-backed PRs with a hard size limit. |\n| GitHub activity reporting | `github-activity-digest` | [daemons/github-activity-digest/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/github-activity-digest/DAEMON.md) | Posts a low-noise scheduled digest of meaningful pull request and CI activity. |\n| GitHub issue hygiene | `github-bug-context-researcher` | [daemons/github-bug-context-researcher/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/github-bug-context-researcher/DAEMON.md) | Adds concise repository-aware triage context to newly opened GitHub bugs and regressions. |\n| GitHub issue hygiene | `github-issue-duplicate-finder` | [daemons/github-issue-duplicate-finder/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/github-issue-duplicate-finder/DAEMON.md) | Suggests likely duplicate or related GitHub issues when new issues are opened. |\n| GitHub issue hygiene | `github-issue-labeler` | [daemons/github-issue-labeler/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/github-issue-labeler/DAEMON.md) | Keeps recently changed GitHub issues aligned with the installed repository's current label set. |\n| Linear issue hygiene | `linear-bug-context-researcher` | [daemons/linear-bug-context-researcher/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/linear-bug-context-researcher/DAEMON.md) | Adds concise repo-aware triage context to newly created Linear bugs and regressions. |\n| Linear issue hygiene | `linear-issue-duplicate-finder` | [daemons/linear-issue-duplicate-finder/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/linear-issue-duplicate-finder/DAEMON.md) | Suggests likely duplicate or related Linear issues when new issues are created. |\n| Linear issue hygiene | `linear-issue-labeler` | [daemons/linear-issue-labeler/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/linear-issue-labeler/DAEMON.md) | Keeps recently changed Linear issues aligned with the current Linear label set. |\n| Linear issue hygiene | `linear-pr-link-reconciler` | [daemons/linear-pr-link-reconciler/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/linear-pr-link-reconciler/DAEMON.md) | Finds likely GitHub code work for Linear issues and asks for confirmation without editing links automatically. |\n| PR check repair | `pr-check-repair` | [daemons/pr-check-repair/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/pr-check-repair/DAEMON.md) | Repairs failing GitHub-visible PR checks with focused evidence-grounded commits, flaky reruns, or low-noise blocked comments. |\n| PR merge conflict repair | `pr-merge-conflict-repair` | [daemons/pr-merge-conflict-repair/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/pr-merge-conflict-repair/DAEMON.md) | Repairs clear merge conflicts on non-draft GitHub pull requests after target base branch changes, with focused verification and low-noise blocked comments. |\n| PR metadata management | `pr-metadata` | [daemons/pr-metadata/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/pr-metadata/DAEMON.md) | Keeps PR title/body metadata complete, current, and linked to the correct issue item. |\n| PR review | `pr-review` | [daemons/pr-review/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/pr-review/DAEMON.md) | Reviews pull requests for concise, evidence-backed correctness and repository-policy risks before merge. |\n| PR review triage | `pr-review-triage` | [daemons/pr-review-triage/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/pr-review-triage/DAEMON.md) | Triages PR review threads and top-level PR comments for merge-readiness, duplicate feedback, fixed items, and safe low-noise follow-up. |\n| Slack operations | `slack-alert-context-researcher` | [daemons/slack-alert-context-researcher/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/slack-alert-context-researcher/DAEMON.md) | Replies to alert-like Slack bot messages with compact GitHub and incident context for triage. |\n| Slack planning | `slack-meeting-followup-planner` | [daemons/slack-meeting-followup-planner/DAEMON.md](https://github.com/charlie-labs/daemons/blob/master/daemons/slack-meeting-followup-planner/DAEMON.md) | Turns Slack meeting notes or transcripts into concise, repo-aware follow-up options Charlie can help execute. |\n\n## Generated examples catalog\n\nThe root `examples.json` file is generated from each `daemons/<id>/example.yml`, `DAEMON.md`, and supported files under `scripts/**` and `references/**`.\n\n## Node examples API\n\nNode consumers can import the packaged catalog API without shelling out to the CLI:\n\n```ts\nimport {\n  createDaemonInstallPullRequest,\n  getDaemonExample,\n  listDaemonExamples,\n  listDaemonInstallPullRequests,\n  loadDaemonExamplesCatalog,\n} from \"@charlie-labs/daemons\";\n\nconst catalog = await loadDaemonExamplesCatalog();\nconst examples = await listDaemonExamples();\nconst example = await getDaemonExample(\"js-ts-dependency-upgrades\");\n\nawait createDaemonInstallPullRequest({\n  repo: \"owner/repo\",\n  exampleId: \"js-ts-dependency-upgrades\",\n  base: \"main\",\n  adaptations: { package_manager: \"pnpm\" },\n});\n\nawait listDaemonInstallPullRequests({ repo: \"owner/repo\" });\n```\n\nThe catalog APIs read the package-root `examples.json`, so they work from the built npm package. The install-PR APIs render from the same catalog contract and use GitHub authentication through an explicit token/client or `GITHUB_TOKEN` / `GH_TOKEN`.\n\n## Daemon catalog CLI\n\nThis package is npm-ready as `@charlie-labs/daemons` and exposes the `daemon` binary.\n\nUse it to browse the public examples catalog, safely scaffold catalog examples into `.agents/daemons/<id>/`, and validate runtime daemon files:\n\n```bash\ndaemon list\n\ndaemon show js-ts-dependency-upgrades --json\n\ndaemon add js-ts-dependency-upgrades --dry-run --adapt package_manager=pnpm\n\ndaemon pr open js-ts-dependency-upgrades --repo owner/repo --base main --adapt package_manager=pnpm\n\ndaemon pr list --repo owner/repo\n\ndaemon validate .agents/daemons/js-ts-dependency-upgrades/DAEMON.md\n\ndaemon validate --all --json\n```\n\nKey safety defaults:\n\n- catalog reads default to `master` and support `--ref <sha|branch|tag>`;\n- install copies only catalog-listed `DAEMON.md`, `scripts[]`, and `references[]` files from the same ref;\n- install never copies `example.yml` or crawls upstream directories;\n- install plans include destination paths and file modes (`100644`/`100755`);\n- existing destination directories/files require `--force`;\n- deprecated examples require `--allow-deprecated`;\n- show surfaces structured `adaptations[]` and optional `specializationIdeas[]`, and add/install/PR-open render `{{adapt.key}}` tokens with string-only values before validation;\n- `daemon pr open` writes an atomic GitHub commit on a deterministic `charlie/daemon-installs/<example-id>` branch, opens an install PR, and records only adaptation keys (not raw values) in the hidden PR marker and CLI output;\n- scaffolding does not activate a daemon until the change is merged and ingested by Charlie.\n\nSee [Daemon catalog CLI](docs/daemon-cli.md) for command details, JSON envelope, validation semantics, and exit codes.\n\nFor release instructions, see [Releasing `@charlie-labs/daemons`](RELEASING.md).\n\n\nUse [Examples v2 package and catalog spec](docs/examples-spec.md) for the exact package, metadata, generation, validation, and public-safety contract. Use [Examples authoring guide](docs/examples-authoring-guide.md) for author/reviewer guidance. Use [Examples catalog consumer guide](docs/examples-catalog-consumer-guide.md) for website, dashboard, and install consumer guidance.\n\nUse the repo-owned checks before changing examples:\n\n```bash\nbun install\nbun run generate:examples\nbun run validate:examples\nbun run test\n```\n\n`examples.json` is deterministic and should be committed whenever example packages change.\n\n## How to use this repo\n\nUse this repo to:\n\n- find the nearest example pattern\n- calibrate scope and level of specificity\n- compare watch-driven, schedule-driven, and hybrid shapes\n- adapt a proven structure to your repo’s real maintenance role\n\nDo not assume an example can be copied directly into your repo without changes.\n\nThe docs are the source of truth for:\n\n- [what daemons are](https://docs.charlielabs.ai/daemons)\n- [what fields exist](https://docs.charlielabs.ai/daemons/daemon-md-reference)\n- [what the validation rules are](https://docs.charlielabs.ai/daemons/daemon-md-reference)\n- [what good daemon files look like](https://docs.charlielabs.ai/daemons/writing-and-editing-daemon-md)\n- [how to test and iterate safely](https://docs.charlielabs.ai/daemons/testing-and-iterating-on-daemons)\n\nUse the docs for concept, contract, and authoring guidance. Use this repo for concrete patterns.\n\n## How Charlie should use these examples\n\nWhen choosing daemons:\n\n- use [Choosing daemons](https://docs.charlielabs.ai/daemons/choosing-daemons) and the `Example index` to find the nearest pattern.\n\nWhen creating or editing daemon files:\n\n- use [Writing and editing DAEMON.md](https://docs.charlielabs.ai/daemons/writing-and-editing-daemon-md) and [DAEMON.md reference](https://docs.charlielabs.ai/daemons/daemon-md-reference), and treat examples as reference patterns rather than source of truth.\n- use [Examples authoring guide](docs/examples-authoring-guide.md) when adding or reviewing example packages in this repo.\n","readmeFilename":"README.md"}