feat: add inert() and map() helpers for bounded fan-out
- inert(task) returns a plain task descriptor without PromiseLike or
AsyncIterable protocols, safe to yield from an (async) generator
without triggering auto-await
- map(run, items, { concurrency, signal }) dispatches an iterable or
async iterable of tasks to a Runner with bounded concurrency, yielding
results in completion order
- Accepts mixed task types: Task<string> | Task<number> yields string | number
- Supports AbortSignal for stream cancellation; moroutine auto-transfers
signals passed as task args so in-flight work can observe the same abort
Includes test coverage, a bounded-map example that hashes a directory
tree via recursive async generator, and a README section.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>