CodeVetter · Repo Unpack · Extension points
vercel/turborepo
The core extends through explicit traits, typed configuration, and centralized command dispatch. Repository contributors supply ecosystem knowledge, command providers supply executable specifications, and query interfaces keep GraphQL implementation outside the CLI dependency boundary. Companion packages add filesystem-discovered transformations, while output changes follow a shared logging architecture.
- New ecosystem integrations implement RepositoryContributor::id, discover_packages, and discover_package_scopes; conservative static dependencies are an optional separate hook.
- CommandFactory::add_provider registers ordered CommandProvider implementations; the first Some command wins and any provider error immediately propagates.
- EngineProvider exposes tasks, definitions, and dependencies, while EngineExecutor accepts concurrency and a message sender, permitting execution support to depend on interfaces.
- QueryServer injection enables alternate query implementations or CLI builds without queries; the binary's adapter delegates execute_query and run_query_server to turborepo-query.
- CLI dispatch is centralized in the Command match; additions must connect parsed commands to their command adapters, telemetry events, and CommandBase requirements.
- The public TypeScript schema maps task names to Pipeline definitions and exposes workspace extends, tags, and boundaries configuration.
- Codemods plug in as default-exported Transformer modules discovered from the transforms directory; loadTransformers ignores loading errors and filters empty results.
- New logging areas add Subsystem variants; user-facing events and task bytes pass through GroupingLayer and Logger to terminal, TUI, and file/collector sinks.