The SDKs are out, at version 0.1.0. A TypeScript package, a Python package and the dm1 command line tool now call decision-machine-1 directly. Read SDKs.
Your labels become your result types. TypeScript infers the union of the label names you pass, so a typo is a compile error. A batch of texts returns a tuple of results. Python solves the same type from one annotated constant, and ships a sync client and an async client.
Both packages unwrap the results, entities and data envelopes. They merge text and texts into one argument. They check your limits before they spend a token, and retry 429, 502, 529 and transport failures. Every other field keeps its wire name.
The dm1 CLI runs every capability from a shell. It prints a table on a terminal and JSON into a pipe, chunks --lines at the 32-text batch limit, and exits 3 when --check or --min fails.