Whether a value is already a root, and so is worth handing to
asRunnableRoot.
An agent always is. A Workflow is because the runner drives it as a node
rather than running it through runAsync.
Used where a root is discovered rather than passed — the agent loader
sifting a module's exports — so a workflow export is found the same way an
agent export is.
Deliberately narrower than what asRunnableRoot accepts: a passed root
is a statement of intent, while a discovered one is a guess, and every module
exports functions that are not meant to be the app.
Whether a value is already a root, and so is worth handing to asRunnableRoot.
An agent always is. A
Workflowis because the runner drives it as a node rather than running it throughrunAsync.Used where a root is discovered rather than passed — the agent loader sifting a module's exports — so a workflow export is found the same way an agent export is.
Deliberately narrower than what asRunnableRoot accepts: a passed root is a statement of intent, while a discovered one is a guess, and every module exports functions that are not meant to be the app.