Node definitions
Defs are the typed description of /object_info: class name, inputs (connection vs widget), outputs, combo options, min/max.
They come from a snapshot of one Comfy, not from a mythical global catalog.
ts
import { parseObjectInfo, hashObjectInfo, loadDefsSnapshot } from "@stepupgaming/comfy-workflows";Compile without defs still emits, but validation against types/combos needs them. Live --url fetches /object_info for validate / run.
Codegen turns defs into TypeScript specs (defineNode, conn, int, combo, …). Those specs are what g.add type-checks against.
Dynamic / autogrow inputs may not round-trip into a perfect spec. That is an escape-hatch case, not a reason to skip codegen.