Integration Examples

Flow Agents reaches host runtimes and agent frameworks through two distinct distribution models. This section provides worked examples for each model and a guide to the conformance kit for third-party adapter authors.

Distribution models at a glance

Harness runtimes ship as self-contained bundles under dist/<runtime>/. The npm run build:bundles command generates each bundle from the canonical manifest and policy scripts. flow-agents init (or the dogfood variant) places the generated files at the host-expected paths inside a target workspace. Claude Code, Codex, Kiro, opencode, and pi are harness adapters.

Framework adapters live in integrations/<name>/ as language-native packages. They register Flow Agents callbacks with the framework’s lifecycle system using the framework’s native registration API. integrations/strands/ is the reference implementation: flow-agents-strands is a Python HookProvider that wires into AWS Strands Agents without requiring the Strands SDK at import time.

Third-party adapters self-certify by running the conformance kit in packaging/conformance/. The kit provides golden fixtures and a runner that pipes each fixture through the adapter command and reports per-level verdict.

Conformance levels

Level What is required
L0 Telemetry only — at least agentSpawn fires on session start
L1 L0 plus workflow steering and stop-goal-fit in warning mode
L2 L1 plus config protection (blocking) and quality gate — the reference level

Claude Code and Codex are L2 reference implementations. opencode is L1 (no prompt-submit hook). pi is L1 (no stop hook). The Strands Python adapter is L0 plus config protection via BeforeToolCallEvent cancellation. The Strands TypeScript adapter ships telemetry callbacks plus native config protection; workflow steering, quality-gate, and stop-goal-fit policy coverage is available through the conformance shim only.

The Runtime Hook Surface spec defines the canonical event taxonomy, policy classes, conformance levels, and engine contract in full.

Pages in this section


TypeScript native-import adapter

integrations/strands-ts/ (@kontourai/flow-agents-strands) is the first native-import consumer of the policy engine contract. It binds the config-protection.js run() function directly — no subprocess on the hot path. Shipped native behavior is telemetry callbacks plus config-protection blocking; workflow steering, quality-gate, and stop-goal-fit run through the conformance shim rather than production Strands TS callbacks. See integrations/strands-ts/README.md and the Framework Adapter page for the full comparison with the Python adapter.