SDK and surface parity matrix

This matrix compares ArcFlow capabilities across runtime surfaces. Values come from SDK parity matrix, verified 2026-05-31 against arcflow-core, arcflow-server, and SDK exports.

Use it when answering "can I do X in TypeScript?" or "does Relay support graph workflows?"

Legend

SymbolMeaning
YSupported in this surface
NNot supported
partialBehavior exists; known gap documented
pubSupported via published workflow (runPublished in static SDK)
stubAlpha or limited (WASM linear stub)
viewRead or visualize only (VS Code)
debugDebug/run from workspace, not production path
migrateCLI applies schema; not a workflow feature
proxiedRelay forwards to server capability
pollClient polls instead of push stream
Y*Conditional (see row note)

Full matrix

CapabilityPyTSServerRelayStaticCLIVSCodeWASM
Linear workflowsYYYYpubYviewstub
Graph workflowsYYYYpubNviewN
Tools / LLMYYYYpubNdebugstub
RAG / vectorYYYYpubNNN
Recovery / migrateYYYNNmigrateNN
HITLYYYY*pollNNN
External callbackYYYNNNNN
SDK streamingYYNNpollNNN
Server SSENNNNNNNN
Trace readYYGETGETGETtracetimelineN
Workflow registryNNYvia srvpubNNN
Admin / sitesNNYNNNNN
Idempotency-KeyNNYproxiedNNNN

Row notes

Linear workflows

All SDK and server paths execute ordered steps. WASM supports a linear stub for edge experiments only, not production.

Graph workflows

Python and TypeScript expose graph builders in-process. CLI does not author graphs interactively. VS Code visualizes graph workflow specification definitions.

Partial recovery (Graph recovery resume): Graph runs persist checkpoint fields in Postgres, but mid-graph resume dispatch is incomplete. Linear recovery works. Do not plan SLA around graph resume until Graph recovery resume closes.

Tools / LLM

Python Agent accepts Tool instances and full tool loop config. TypeScript Agent is name/role/instructions only in the binding layer; tools work when defined in the workflow specification sent to server or via Python-authored workflows.

VS Code debug path invokes TS SDK for local runs.

RAG / vector

Both SDKs export VectorStore for ingest/search. Static product uses dashboard-ingested knowledge and published workflows, not in-browser vector APIs.

Recovery / migrate

SDKs set recovery_enabled in exec config. Server persists recovery state. CLI migrate up applies Postgres schema required for recovery but does not run workflows.

HITL

Server supports approve/reject APIs. Relay may proxy approve when scoped site key allows (Y*).

Static SDK polls run status for interrupt resolution rather than holding a long-lived SSE connection.

External callback

SDKs and server support async external outcome reports with HMAC verification. Relay and static browser client do not receive external callbacks directly.

Python ships report_outcome() helper. TypeScript exports types only.

SDK streaming

run_stream() / runStream() work in-process in Python and TypeScript. Not available on server HTTP surface.

Server SSE

Deferred (streaming deferred): GET /v1/runs/{id}/events is not implemented. Do not document server SSE as shipped. Workarounds: SDK streaming in your backend, poll GET run, or static SDK poll for tokens.

Trace read

SDKs: workflow.trace() after run. Server and Relay: GET trace endpoints. CLI: arcflow trace <run_id>. VS Code: timeline view of metadata events.

Workflow registry

Server stores semver-published workflows. Static SDK calls runPublished(name, version, input). SDKs can publish() and resolve() when runtime= URL is configured.

Admin / sites

Server-only admin API for static product (sites, knowledge ingest, chat publish). Not exposed in SDK packages.

Idempotency-Key

Server honors idempotency on mutating routes. Relay forwards the header to upstream.

Python vs TypeScript SDK detail

FeaturePythonTypeScript
Workflow linear + graphYY
Agent toolsYN (binding gap)
Agent memory / contextYN (binding gap)
Tool classYN
Providers OpenAI/Anthropic/GeminiYY
VectorStoreYY
run_stream / runStreamYY
Recovery + HITLYY
report_outcome()YN (types only)
ScheduleManifestYN
LangChain adapterY (arcflow.langchain)N
Vitest test helpersNY
mapNativeErrorNY
PageContent
Python overviewPython SDK capabilities
TypeScript overviewTypeScript SDK capabilities
Maturity and known gapsGraph recovery resume, , Operator dashboard UI