Default DAG Node Catalog
The default set of DAG node definitions, assembled from the @robota-sdk/dag-node-* packages. It is
a composition aggregator: import it at an application entry point or composition root.
Internal package: @robota-sdk/dag-nodes-default is private to this monorepo ("private": true) and
not published to npm. It is part of the DAG workflow subsystem; see
the DAG packages.
Where it sits
- Depends on:
@robota-sdk/dag-core,@robota-sdk/dag-node, the@robota-sdk/dag-node-*packages it collects (see DAG node packages), and@robota-sdk/agent-core,@robota-sdk/agent-frameworkand@robota-sdk/agent-interface-commandfor provider and skill wiring.@robota-sdk/agent-builtin-providersis an optional dependency. - Used by:
@robota-sdk/agent-command-workflows(the/workflowscatalog) and, lazily,dag-frameworkwhen a caller does not pass its ownnodes. The dependency is one-way: this package never importsdag-framework.
Main exports
createDefaultNodeRegistrySync()— returns the base node set: nodes with no optional provider-SDK dependency, such asinput,transform,text-template,text-output, the in-processtoolnode and the utility text/data nodes. It always succeeds. This is the set the CLI's/workflowscommand uses.createDefaultNodeRegistry(providers?, …)— async. Adds thellm-textnode, bound to the provider definitions you pass or, when omitted, to a default set loaded lazily from@robota-sdk/agent-builtin-providers(a load failure throws an error naming that package). It also tries to load the optional media nodes (image generation and editing, video) and the skill node, and skips any of them whose import or construction fails. Skill files are found only through the contribution sources and skill roots the caller passes. This catalog is not part of the CLI.
To use a custom catalog instead, pass your own node definitions to createDagFramework({ nodes })
and skip this package.
Usage
import { createDagFramework } from '@robota-sdk/dag-framework';
import { createDefaultNodeRegistrySync } from '@robota-sdk/dag-nodes-default';
const nodes = createDefaultNodeRegistrySync();
console.log(nodes.map((node) => node.nodeType)); // ['input', 'multi-input', 'transform', ...]
const framework = await createDagFramework({
nodes,
paths: { storageRoot: '/var/lib/my-app/dag-storage', assetRoot: '/var/lib/my-app/dag-assets' },
});
await framework.stop();Documents
- SPEC.md — purpose, contract, non-goals and design decisions of the default catalog.