Skip to content

ProviderKind

ProviderKind = "parse" | "exec"

Whether a provider must run subprocesses to do its job.

This is a trust boundary, not an optimization. moon query tasks in an arbitrary directory executes that repo’s toolchain configuration, so pointing this package at a repository you did not write is code execution. collect(root, { allowExec: false }) runs only parse providers, and they answer from files alone.

parse is a floor, not a promise never to spawn: a parse provider may take a better answer from its own tool when allowExec is on and the binary is there (just, rake, go-task, gradle all do). What the kind guarantees is that with execution off the provider still has something honest to report.