OpenWOP openwop.dev

Which hosts implement OpenWOP, what each one claims, and the signed evidence behind the claim.

How to read it.

  • A row is a claim plus evidence. The claim is what the host advertises at /.well-known/openwop. The evidence is a signed conformance bundle committed under evidence/v2-host-bundles/, which anyone can re-verify.
  • A profile is certified only when the bundle shows every floor requirement of that profile witnessed, with nothing blocked (RFC 0148, RFC 0168). An unqualified "OpenWOP conformant" means openwop-core-standard.
  • The five counts are the bundle's requirement rows: pass / fail / blocked / inapplicable / skipped. inapplicable means the host does not advertise that optional surface. It is not a failure.
  • Who runs it uses the evidence tiers of GOVERNANCE.md §"Acceptance evidence tiers": tier 1 is the steward's own host, tier 2 a steward-affiliated host, tier 3 an independent organization. There is no tier-3 host yet.

The full measurement history (every per-deploy note, superseded row and per-capability table) is in docs/INTEROP-EVIDENCE-LOG.md.

v2 — the current major

Each row shows the host's newest certified bundle and the suite version that measured it. Verify any row with node scripts/check-cut-gates.mjs --host-bundle <bundle>, or the bundle's signature with npx @openwop/openwop-conformance --verify <bundle> --host-key <key>. Its Coexistence group reports blocked for a host that does not mount the conformance seams, since the fork and pack-ceiling legs run only through them. A host that has dropped v1 is excused the two overlap legs once it refuses the dropped major.

HostWho runs itSuite (cut)pass / fail / blocked / inapplicable / skippedCertified profilesEvidence tierBundle
openwop-host-v2-reference@2.0.0-rc.1 — the v2 reference example (examples/hosts/v2-reference)Steward, reference example (tier 1). Built from spec/v2/core/.2.46.36 (2026-10-31, build f8f079bf)541 / 0 / 0 / 341 / 10openwop-discovery-core · openwop-core-standard · openwop-conformance-seams-v2selfopenwop-host-v2-reference.json
myndhyve@c8d511d8 — MyndHyve's legacy workflow-runtime at api.myndhyve.ai, retired 2026-10-29 (last cut)Steward-affiliated (tier 2), retired2.46.13 (2026-10-16, build c8d511d8)418 / 0 / 0 / 405 / 17openwop-discovery-core · openwop-core-standardselfmyndhyve.json
openwop-workflow-engine@0.1.0 — openwop-app, production at app.openwop.dev (protocol origin api.openwop.dev)Steward, production (tier 1)2.46.36 (2026-10-31, build 9f4cca7d4)524 / 0 / 0 / 363 / 11openwop-discovery-core · openwop-core-standardselfopenwop-workflow-engine.json

Notes on the rows:

  • The @<version> in each host cell is the label the v1 end-of-support clock recorded when it anchored (evidence/v1-end-of-support.json). The bundle carries the host's current version and build.
  • openwop-app serves v2 only: its newest bundle advertises protocolVersions: ["2.0"]. It certified openwop-conformance-seams-v2 on a 0%-traffic side revision of its production image, with the seams switched on (openwop-workflow-engine-side-rev-rfc0199-2.42.2.json, suite 2.42.2). Production does not expose the seams. Four earlier production bundles (2.35.1, 2.43.0, 2.44.0, 2.45.28 4683d9f89) also record seams-v2 as certified, but each advertises only conformance.certificationBundleUrl: the predicate read the whole conformance block until suite 2.46.2, and --verify on 2.46.2 refuses that certification.
  • MyndHyve moved to the openwop-app white-label (myndhyve.ai) and retired its legacy workflow-runtime on 2026-10-29. The white-label is openwop-app's codebase, so the openwop-app row covers it, and a cut against it is tier 1 (evidence/host-tiers.json). No new bundle can be cut against api.myndhyve.ai: scripts/check-ext-status-coherence.mjs refuses one dated after the retirement. The legacy row stays as its last certified cut. The legacy runtime was closed source. Its bundle is verified against the key its live discovery document publishes. Its 2.46.13 cut (build c8d511d8) is RFC 0246's acceptance witness: 0246.mean-gated and 0246.suite-gated pass. Its 2.46.9 re-cut (build 73befc10, myndhyve #624) advertises confidenceEscalationInterruptKind: "approval", as suite 2.46.3 rules a v2 host must (clarification or approval), so openwop.requirement.multiAgent.escalation-kind-canonical and v2-multi-agent-advertisement now pass. Its first 2.46.9 cut (build 65785814, myndhyve-2.46.9.json) advertised the vendor kind x-host-myndhyve-low-confidence and recorded those two rows executed-fail; it stays in the corpus as RFC 0244's acceptance witness.
  • Evidence tier is the bundle's own field (RFC 0148). Every bundle here is self: the host operator cut it.
  • Older and side bundles for each host stay under evidence/v2-host-bundles/, named <host>-<suite>[-<scope>].json.

v1 reference examples

v1 reached end of support on 2026-10-04 (RFC 0234); spec/v1/ is frozen. Four reference examples in openwop-examples still serve the v1 wire and have no v2 bundle. Each was last measured at suite 1.130.0.

HostRepo / PathEvidence
In-memory (reference example)examples/hosts/in-memoryconformance.md
SQLite (reference example)examples/hosts/sqliteconformance.md
Python in-memory (reference example)examples/hosts/pythonconformance.md
Postgres (reference example)examples/hosts/postgresconformance-full.md

Each claims openwop-discovery-core; Postgres also claims the production profile. The full profile list is in each host's evidence file and in the evidence log.

Capabilities by host

Optional capabilities each production host has advertised and demonstrated. The certified v2 bundles above are the authoritative current state; this table is a summary, and the dated evidence for every cell is in the evidence log.

✓ advertised and witnessed · ◐ implemented but not advertised, or only partly witnessed · ✗ ruled out by the host · — not implemented · n/m not measured

CapabilityRFCopenwop-appMyndHyve
Durable single-instance rung0158✓✓
Poison work terminates in bounded attempts0158 §C.8✓n/m
Replay side-effect suppression (recorded-outcome)0140✓—
Host-initiated fan-out on a replay fork is an external effectreplay.md✓◐ (deployed; the suite cannot observe it there)
Compensation and partial failure0151, 0157✓—
Memory profile0080✓✓
Agent platform profile0085n/m✓
Connection packs0095✓✓
Connection-pack provider vendor grouping0123✓—
Multi-turn conversation primitive0005✓✓
Multi-party group conversation0101✓—
Localized content0103✓✓
Parallel sub-workflow fan-out and join0118✓✓
Per-item input for data-parallel dispatch0126✓✓
Per-run parameter deferral0124✓✗
Streaming and CDC trigger sources0127✓✗
Self-hosted runner0122✓✓
Self-hosted / OpenAI-compatible providers0108✓—
Portable prompt-prefix cache0116✓—
Subscription-reuse provider auth0121◐ (refusal rail only)—
Anonymous-actor authorization0132✓—
Purpose-propagation labels0128✓✗ (opt-out)
SAML ⟷ SCIM subject linking0159, 0163✓◐ (SAML only)
Front-end plugin packs0117, 0119✓—
A2UI surface deltas0114◐ (not advertised)—
Eval trajectories, repeated trials, fail-closed fixtures0244— (forthcoming, app ADR 0889)✓

Composition partners

The suite's MCP and A2A probes run against reference implementations of the neighbouring protocols. A2A vs MCP vs OpenWOP explains how the three layers compose.

PartnerReference implementationResult
MCP@modelcontextprotocol/sdk@1.29.0, all three transports✓ round-trip passes
A2A@a2a-js/sdk@0.3.13 reference peer (measured before v2). The v2 A2A 1.0 legs run against the suite's own fake peer.✓ round-trip passes

Add A Host

The full path is docs/IMPLEMENTER-PATH.md; build against docs/IMPLEMENT-CORE.md.

  1. Implement the v2 wire contract in spec/v2/core/. spec/v2/profiles.json lists every scenario in the openwop-core-standard floor, so the bar is known before you start.
  2. Seed the fixtures the floor needs (conformance-noop, conformance-cancellable, conformance-delay) and advertise them at /.well-known/openwop.
  3. Run the suite: npx @openwop/openwop-conformance --base-url <url> --api-key <key> --target-major 2 --require-behavior. With --require-behavior, an advertised behaviour the suite cannot observe fails instead of being skipped.
  4. Cut a signed bundle: add --certify bundle.json --bundle-version 3 --host-build commit:<sha> --signing-key <pem> --signing-key-id <id>, and publish the matching public key in your discovery document's signingKeys[].
  5. Open a PR that adds your bundle under evidence/v2-host-bundles/ and your row to the v2 table above. scripts/check-cut-gates.mjs --host-bundle <bundle> reports blocked on the matrix-row check until that row exists; that is expected on a first submission.

Your evidence is your own signed bundle, and nothing in this path needs the steward's permission. A host run by an independent organization is tier 3, the evidence tier the project does not have yet.

See Also

Keep reading.

Edit this page on GitHub ↗