{"_id":"@aku11i/rosso","_rev":"6-8009283fe8b3eef1b0c724d51c8cf2de","name":"@aku11i/rosso","dist-tags":{"latest":"0.2.1"},"versions":{"0.0.1":{"name":"@aku11i/rosso","version":"0.0.1","keywords":["rss","feed","aggregator","cli"],"author":{"name":"aku11i"},"license":"MIT","_id":"@aku11i/rosso@0.0.1","maintainers":[{"name":"aku11i","email":"shuhei.akutagawa+npm@gmail.com"}],"homepage":"https://github.com/aku11i/rosso#readme","bugs":{"url":"https://github.com/aku11i/rosso/issues"},"bin":{"rosso":"dist/bin.mjs"},"dist":{"shasum":"221960dcccfe55e731dc5f0c27ec2ecd8887d028","tarball":"https://registry.npmjs.org/@aku11i/rosso/-/rosso-0.0.1.tgz","fileCount":8,"integrity":"sha512-nDfb8Z6JlhGKDPVfFS6h4SCNJFBqokA8mYruGuABjmYx0mVxp2riaOZpf9y2OUcGX4cVJj+zWXFw+w/jxrcNQQ==","signatures":[{"sig":"MEYCIQDblnra7KFtGCisu2NUOorDe+rdAkVhZrKDAqL1tmYMTAIhAJrem2c26QqYrUG0YzzhSb0g0KZG12KVWowWjM8zPXin","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16173},"main":"dist/index.mjs","type":"module","_from":"file:aku11i-rosso-0.0.1.tgz","types":"dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"scripts":{"dev":"node --experimental-strip-types src/bin.ts","fix":"biome check --write --unsafe .","lint":"biome check .","test":"node --experimental-strip-types --test","build":"tsdown src/index.ts src/bin.ts --dts --clean","start":"node dist/bin.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"aku11i","email":"shuhei.akutagawa+npm@gmail.com"},"_resolved":"/tmp/2336224db51acae2bbd0e0b180c2806b/aku11i-rosso-0.0.1.tgz","_integrity":"sha512-nDfb8Z6JlhGKDPVfFS6h4SCNJFBqokA8mYruGuABjmYx0mVxp2riaOZpf9y2OUcGX4cVJj+zWXFw+w/jxrcNQQ==","repository":{"url":"git+https://github.com/aku11i/rosso.git","type":"git"},"_npmVersion":"11.3.0","description":"Build an RSS feed from various sources","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^4.1.13","feed":"^5.1.0","yaml":"^2.8.2","env-paths":"^3.0.0","@rowanmanning/feed-parser":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.17.4","typescript":"^5.8.0","@types/node":"^22.0.0","@biomejs/biome":"^2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/rosso_0.0.1_1765755913733_0.03813811123936417","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@aku11i/rosso","version":"0.0.2","keywords":["rss","feed","aggregator","cli"],"author":{"name":"aku11i"},"license":"MIT","_id":"@aku11i/rosso@0.0.2","maintainers":[{"name":"aku11i","email":"shuhei.akutagawa+npm@gmail.com"}],"homepage":"https://github.com/aku11i/rosso#readme","bugs":{"url":"https://github.com/aku11i/rosso/issues"},"bin":{"rosso":"dist/bin.mjs"},"dist":{"shasum":"6c3a4200f8fa6f1680b05feda65da339a27b08a1","tarball":"https://registry.npmjs.org/@aku11i/rosso/-/rosso-0.0.2.tgz","fileCount":8,"integrity":"sha512-eD2pLAzfamayVJKRFPAbEK9VbjJ6tu1zsmDG/18xDPGG0UbIs9ItYj4ItDeAlQj+MjcgXPZVTWtLENOemA1YNw==","signatures":[{"sig":"MEYCIQCUxnyqsCf8BUeLXFl6m8lu3TTC2O9y2U2ojuEhyjhvLgIhAKxXE295C7+KGoEUnWziYJ4ur6zzB7/DG9cSdsxK3Cd6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aku11i%2frosso@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":16473},"main":"dist/index.mjs","type":"module","_from":"file:aku11i-rosso-0.0.2.tgz","types":"dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"scripts":{"dev":"node --experimental-strip-types src/bin.ts","fix":"biome check --write --unsafe .","lint":"biome check .","test":"node --experimental-strip-types --test","build":"tsdown src/index.ts src/bin.ts --dts --clean","start":"node dist/bin.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:91d158da-b26c-4d7c-90f1-9d91fdc04870"}},"_resolved":"/tmp/cc913a518b6c430f967bab810911fcbc/aku11i-rosso-0.0.2.tgz","_integrity":"sha512-eD2pLAzfamayVJKRFPAbEK9VbjJ6tu1zsmDG/18xDPGG0UbIs9ItYj4ItDeAlQj+MjcgXPZVTWtLENOemA1YNw==","repository":{"url":"git+https://github.com/aku11i/rosso.git","type":"git"},"_npmVersion":"11.7.0","description":"Build an RSS feed from various sources","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"^4.1.13","feed":"^5.1.0","yaml":"^2.8.2","env-paths":"^3.0.0","@rowanmanning/feed-parser":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.17.4","typescript":"^5.8.0","@types/node":"^22.0.0","@biomejs/biome":"^2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/rosso_0.0.2_1765758285525_0.9571550441495491","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@aku11i/rosso","version":"0.1.0","keywords":["rss","feed","aggregator","cli"],"author":{"name":"aku11i"},"license":"MIT","_id":"@aku11i/rosso@0.1.0","maintainers":[{"name":"aku11i","email":"shuhei.akutagawa+npm@gmail.com"}],"homepage":"https://github.com/aku11i/rosso#readme","bugs":{"url":"https://github.com/aku11i/rosso/issues"},"bin":{"rosso":"dist/bin.mjs"},"dist":{"shasum":"bd7ea8bec20e0ff7dece36aefe07ee18aa777e4e","tarball":"https://registry.npmjs.org/@aku11i/rosso/-/rosso-0.1.0.tgz","fileCount":8,"integrity":"sha512-Rm1UpAiZ1HRRNVDP1d0deF577jrjczUBkK3ILIvTp1uFXRBWUamb1ZBWqdDwWoID5f4UooTUUmG4DNQiCXlygw==","signatures":[{"sig":"MEYCIQCV5m+mKwc369ZKQsl0awEicfnlnLNzXO17c3YS3fBQPgIhALbw4hHEz2G+pcvmpGvyx4gETaJuxEmcHlkvuytuMGqT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aku11i%2frosso@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26450},"main":"dist/index.mjs","type":"module","_from":"file:aku11i-rosso-0.1.0.tgz","types":"dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"scripts":{"dev":"node --experimental-strip-types src/bin.ts","fix":"biome check --write --unsafe .","lint":"biome check .","test":"node --experimental-strip-types --experimental-test-module-mocks --test","build":"tsdown src/index.ts src/bin.ts --dts --clean","start":"node dist/bin.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:91d158da-b26c-4d7c-90f1-9d91fdc04870"}},"_resolved":"/tmp/b5662158b831b70eed0191a0721dcfbb/aku11i-rosso-0.1.0.tgz","_integrity":"sha512-Rm1UpAiZ1HRRNVDP1d0deF577jrjczUBkK3ILIvTp1uFXRBWUamb1ZBWqdDwWoID5f4UooTUUmG4DNQiCXlygw==","repository":{"url":"git+https://github.com/aku11i/rosso.git","type":"git"},"_npmVersion":"11.7.0","description":"Build an RSS feed from various sources","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ai":"^5.0.113","zod":"^4.1.13","feed":"^5.1.0","yaml":"^2.8.2","env-paths":"^3.0.0","@ai-sdk/openai":"^2.0.86","@rowanmanning/feed-parser":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.17.4","typescript":"^5.8.0","@types/node":"^22.0.0","@biomejs/biome":"^2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/rosso_0.1.0_1765799402956_0.4511625657777809","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aku11i/rosso","version":"0.1.1","keywords":["rss","feed","aggregator","cli"],"author":{"name":"aku11i"},"license":"MIT","_id":"@aku11i/rosso@0.1.1","maintainers":[{"name":"aku11i","email":"shuhei.akutagawa+npm@gmail.com"}],"homepage":"https://github.com/aku11i/rosso#readme","bugs":{"url":"https://github.com/aku11i/rosso/issues"},"bin":{"rosso":"dist/bin.mjs"},"dist":{"shasum":"451277447983091b760d535cd59734056641fbdc","tarball":"https://registry.npmjs.org/@aku11i/rosso/-/rosso-0.1.1.tgz","fileCount":8,"integrity":"sha512-i8883/R5NWcppyM+6am15M8xSiDm9EF0jzA6Qz+jgxxktUolOhdaFDvTl3Nfe7I4SUEUlB7h1OzN8gkZUBAgSA==","signatures":[{"sig":"MEQCIEwwfYAn6wtVFnJ7jOu+pdQxh2lArLsePxLOkWpYySxwAiBrP62cEr9z5vTzzXeyThVcGr8dVOHtANp3jMRGqSDYSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aku11i%2frosso@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26913},"main":"dist/index.mjs","type":"module","_from":"file:aku11i-rosso-0.1.1.tgz","types":"dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"scripts":{"dev":"node --experimental-strip-types src/bin.ts","fix":"biome check --write --unsafe .","lint":"biome check .","test":"node --experimental-strip-types --experimental-test-module-mocks --test","build":"tsdown src/index.ts src/bin.ts --dts --clean","start":"node dist/bin.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:91d158da-b26c-4d7c-90f1-9d91fdc04870"}},"_resolved":"/tmp/2720d9a224853d984bdd1a6812acf941/aku11i-rosso-0.1.1.tgz","_integrity":"sha512-i8883/R5NWcppyM+6am15M8xSiDm9EF0jzA6Qz+jgxxktUolOhdaFDvTl3Nfe7I4SUEUlB7h1OzN8gkZUBAgSA==","repository":{"url":"git+https://github.com/aku11i/rosso.git","type":"git"},"_npmVersion":"11.7.0","description":"Build an RSS feed from various sources","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ai":"^5.0.113","zod":"^4.1.13","feed":"^5.1.0","yaml":"^2.8.2","env-paths":"^3.0.0","@ai-sdk/openai":"^2.0.86","@rowanmanning/feed-parser":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.17.4","typescript":"^5.8.0","@types/node":"^22.0.0","@biomejs/biome":"^2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/rosso_0.1.1_1765802403814_0.8177880176824159","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aku11i/rosso","version":"0.2.0","keywords":["rss","feed","aggregator","cli"],"author":{"name":"aku11i"},"license":"MIT","_id":"@aku11i/rosso@0.2.0","maintainers":[{"name":"aku11i","email":"shuhei.akutagawa+npm@gmail.com"}],"homepage":"https://github.com/aku11i/rosso#readme","bugs":{"url":"https://github.com/aku11i/rosso/issues"},"bin":{"rosso":"dist/bin.mjs"},"dist":{"shasum":"2c087af727b90d6ba30dbc457df5f100c8cc2eb3","tarball":"https://registry.npmjs.org/@aku11i/rosso/-/rosso-0.2.0.tgz","fileCount":8,"integrity":"sha512-40xpvtVzTJNZp4jtOH+nZPtcfmlAl4Vporfq2tlUHqmRQtbdz7CFOrIhfYQjIlsq+Gj2rVl22KJ1tB48eeTsiQ==","signatures":[{"sig":"MEYCIQDDyXY0YWLWz7DPbMFtzN2iqWxN7YiyJE5QLTUieFW9ggIhAJndtFhTWHHkdq2RH3FRa6oWrYCOv4TmaIh9hkl5wKzQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aku11i%2frosso@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":27160},"main":"dist/index.mjs","type":"module","_from":"file:aku11i-rosso-0.2.0.tgz","types":"dist/index.d.mts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"scripts":{"dev":"node --experimental-strip-types src/bin.ts","fix":"biome check --write --unsafe .","lint":"biome check .","test":"node --experimental-strip-types --experimental-test-module-mocks --test","build":"tsdown src/index.ts src/bin.ts --dts --clean","start":"node dist/bin.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:91d158da-b26c-4d7c-90f1-9d91fdc04870"}},"_resolved":"/tmp/74c38aa9ac54448740236a8dc7411c91/aku11i-rosso-0.2.0.tgz","_integrity":"sha512-40xpvtVzTJNZp4jtOH+nZPtcfmlAl4Vporfq2tlUHqmRQtbdz7CFOrIhfYQjIlsq+Gj2rVl22KJ1tB48eeTsiQ==","repository":{"url":"git+https://github.com/aku11i/rosso.git","type":"git"},"_npmVersion":"11.7.0","description":"Build an RSS feed from various sources","directories":{},"_nodeVersion":"24.11.1","dependencies":{"ai":"^5.0.113","zod":"^4.1.13","feed":"^5.1.0","yaml":"^2.8.2","env-paths":"^3.0.0","@ai-sdk/openai":"^2.0.86","@rowanmanning/feed-parser":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsdown":"^0.17.4","typescript":"^5.8.0","@types/node":"^22.0.0","@biomejs/biome":"^2.3.8"},"_npmOperationalInternal":{"tmp":"tmp/rosso_0.2.0_1765841416543_0.2086202726749744","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@aku11i/rosso","version":"0.2.1","description":"Build an RSS feed from various sources","license":"MIT","author":{"name":"aku11i"},"repository":{"type":"git","url":"git+https://github.com/aku11i/rosso.git"},"bugs":{"url":"https://github.com/aku11i/rosso/issues"},"homepage":"https://github.com/aku11i/rosso#readme","keywords":["rss","feed","aggregator","cli"],"main":"dist/index.mjs","types":"dist/index.d.mts","type":"module","bin":{"rosso":"dist/bin.mjs"},"exports":{".":{"types":"./dist/index.d.mts","import":"./dist/index.mjs"}},"publishConfig":{"access":"public"},"engines":{"node":">=22.0.0"},"devDependencies":{"@biomejs/biome":"^2.3.8","@types/node":"^22.0.0","tsdown":"^0.17.4","typescript":"^5.8.0"},"dependencies":{"@ai-sdk/openai":"^2.0.86","@rowanmanning/feed-parser":"^2.1.1","ai":"^5.0.113","env-paths":"^3.0.0","feed":"^5.1.0","yaml":"^2.8.2","zod":"^4.1.13"},"scripts":{"start":"node dist/bin.mjs","dev":"node --experimental-strip-types src/bin.ts","build":"tsdown src/index.ts src/bin.ts --dts --clean","test":"node --experimental-strip-types --experimental-test-module-mocks --test","typecheck":"tsc -p tsconfig.json --noEmit","lint":"biome check .","fix":"biome check --write --unsafe .","ready":"pnpm run fix && pnpm run typecheck && pnpm run test","ready:check":"pnpm run lint && pnpm run typecheck && pnpm run test"},"_id":"@aku11i/rosso@0.2.1","_integrity":"sha512-h8SAqDqzr9eNnShwLABBpCTMovN9gZ2qOWswtiz8wLUoRdItHUIFh9qy6+fVqtsYLghVsz5LNEFkK28AuzfxRA==","_resolved":"/tmp/b285a40a6655d45065e6a86a9899176c/aku11i-rosso-0.2.1.tgz","_from":"file:aku11i-rosso-0.2.1.tgz","_nodeVersion":"24.11.1","_npmVersion":"11.7.0","dist":{"integrity":"sha512-h8SAqDqzr9eNnShwLABBpCTMovN9gZ2qOWswtiz8wLUoRdItHUIFh9qy6+fVqtsYLghVsz5LNEFkK28AuzfxRA==","shasum":"bcc8a2fd5a1e236846862c11cad106002897aca0","tarball":"https://registry.npmjs.org/@aku11i/rosso/-/rosso-0.2.1.tgz","fileCount":8,"unpackedSize":27444,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aku11i%2frosso@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG9xGSX85PdsgQdbao0odPtJjQgziqxpVLuqlxtv3eK2AiEAo/yGL7To0e8N/xQLDKzyF8KpzWKJw8pW9ftEBJojpNI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:91d158da-b26c-4d7c-90f1-9d91fdc04870"}},"directories":{},"maintainers":[{"name":"aku11i","email":"shuhei.akutagawa+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rosso_0.2.1_1765845845837_0.8509890379454663"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-14T23:45:13.644Z","modified":"2025-12-16T00:44:06.337Z","0.0.1":"2025-12-14T23:45:13.906Z","0.0.2":"2025-12-15T00:24:45.690Z","0.1.0":"2025-12-15T11:50:03.149Z","0.1.1":"2025-12-15T12:40:03.971Z","0.2.0":"2025-12-15T23:30:16.703Z","0.2.1":"2025-12-16T00:44:05.978Z"},"bugs":{"url":"https://github.com/aku11i/rosso/issues"},"author":{"name":"aku11i"},"license":"MIT","homepage":"https://github.com/aku11i/rosso#readme","keywords":["rss","feed","aggregator","cli"],"repository":{"type":"git","url":"git+https://github.com/aku11i/rosso.git"},"description":"Build an RSS feed from various sources","maintainers":[{"name":"aku11i","email":"shuhei.akutagawa+npm@gmail.com"}],"readme":"# Rosso\n\nBuild an RSS feed from various sources.\n\nRosso is a small CLI that lets you combine multiple RSS feeds into a single feed for your reader.\n\n- `fetch`: downloads RSS feeds defined in `source.yaml` and caches items locally (as JSON)\n- `build`: generates an aggregated RSS feed from the cache (offline; no network access)\n\n## Install\n\n```bash\nnpm install -g @aku11i/rosso\n```\n\nRequires Node.js `>=22`.\n\n## Quick start\n\nCreate `source.yaml`:\n\n```yaml\nname: My Feed\ndescription: A combined feed for my reader\nlink: https://example.com/\nfeeds:\n  - type: rss\n    url: https://blog.example.com/rss.xml\n  - type: rss\n    url: https://news.example.com/feed.xml\n```\n\nFetch and cache:\n\n```bash\nrosso fetch source.yaml\n```\n\nBuild an RSS file:\n\n```bash\nrosso build source.yaml --output-file ./dist/rosso.xml\n```\n\nIf you omit `--output-file`, Rosso prints the RSS XML to stdout.\n\n## `source.yaml` format\n\nRequired fields:\n\n- `name`\n- `description`\n- `link`\n- `feeds`\n\nFeed entries:\n\n```yaml\nfeeds:\n  - type: rss\n    url: https://example.com/feed.xml\n```\n\nDuplicate feed URLs are removed within the same source.\n\n### Optional filtering (LLM)\n\nAdd a filter prompt:\n\n```yaml\nfilter:\n  prompt: Keep items about TypeScript and Node.js.\n```\n\nThen pass a model when running `fetch`:\n\n```bash\nrosso fetch source.yaml --model-provider openai --model gpt-5-mini\n```\n\nProviders: `openai`, `github`.\n\nAPI keys:\n\n- `openai`: set `OPENAI_API_KEY` or pass `--model-provider-api-key`\n- `github`: set `GITHUB_TOKEN`, login via `gh auth token`, or pass `--model-provider-api-key`\n\n## Cache\n\n- Default location: your OS user cache directory\n- Override: `--cache-dir <dir>`\n- `fetch` updates the cache using the network\n- `build` reads only from the cache (no network)\n\n## CLI\n\n- `rosso fetch <source> [--cache-dir <dir>] [--model-provider ...]`\n- `rosso build <source> [--cache-dir <dir>] [--output-file <file>]`\n\nRun `rosso --help` for full usage.\n\n## License\n\nMIT (see `LICENSE`).\n\n## Development\n\n- Requires Node.js `>=22`\n- Install: `pnpm install`\n- Build: `pnpm build`\n- Test: `pnpm test`\n- Lint: `pnpm lint`\n","readmeFilename":"README.md"}