API Reference
API
Skill runtime bindings (W4)
Warp resolves only runtime-effective bindings and exact Fabric-admitted release pins. It does not
own a Skill catalogue, admission, entitlement fact, principal, knowledge pack, capability or
connection. POST /api/v1/skill-bindings/effective requires the immutable SelectionRevision pin
plus current owner projections and returns blocked whenever admission, policy, readiness,
model certification, budget, provider or cache freshness is not valid. Content uses phase-on-
demand loading; metadata is the only default load.
GET /api/v1/agents/{agent_id}/skillsis selection-required and cannot invent an agent-local catalogue.POST /api/v1/skill-bindings/enable-requestsand/disable-requestsrequireexpected_revisionandidempotency_key; they are governed command requests, not Lantern UI truth.loaded_not_evidencedis notcompleted; a completed execution requires output/adherence evidence. Resume after a Doubtfire safe stop revalidates the original release pin.- Warp accepts only
agent_profile,tenant,company, andprincipalscopes. Routine policy remains Shuttle-owned.
Typed briefs are the default handoff contract. Full conversation history is never a default runtime handoff, and an expired or unprovenanced brief is rejected.
Scope
This file summarizes the stable and relevant HTTP surfaces for jhf-warp.
It does not replace the live OpenAPI document at /openapi.json.
Canonical Self-Description Endpoints
| Endpoint | Method | Purpose | Stability | Auth |
|---|---|---|---|---|
/health | GET | liveness check | stable | deployment-time protection if needed |
/ready | GET | readiness plus warnings/capabilities/self-description hints | stable | deployment-time protection if needed |
/version | GET | canonical version endpoint plus manifest/version-source hints | stable | deployment-time protection if needed |
/fabric-manifest.json | GET | read-only machine-readable repository/service manifest | stable | deployment-time protection if needed |
/api/v1/version | GET | versioned API variant plus manifest/version-source hints | stable | deployment-time protection if needed |
/openapi.json | GET | machine-readable OpenAPI document | stable | deployment-time protection if needed |
/api/v1/bootstrap/workflow-posture | GET | workflow bootstrap injection and execution-posture readback | stable | deployment-time protection if needed |
/api/v1/bootstrap/agent-platform-core-normalization | GET | Warp consumer readback for the Fabric-owned agent-platform core normalization truth | stable | deployment-time protection if needed |
/api/v1/bootstrap/agent-universal-intent-assignment | GET | Warp consumer readback for the Fabric-owned universal intent and delegated closeout truth | stable | deployment-time protection if needed |
/api/v1/bootstrap/doubtfire-execution-followthrough | GET | Warp consumer readback for the Fabric-owned Doubtfire heartbeat, watchdog, and silent-executor truth | stable | deployment-time protection if needed |
/api/v1/bootstrap/doubtfire-boost-lifecycle | GET | Warp consumer readback for bounded Boost/integration lifecycle supervision | stable | deployment-time protection if needed |
/api/v1/bootstrap/universal-work-orchestration | GET | Warp consumer readback for Fabric Universal Work goal, capability-resume, replan, progress, and supervision truth | stable | deployment-time protection if needed |
/api/v1/bootstrap/operator-lane-owner-decision | GET | Warp consumer readback for the Fabric-owned owner-decision packet and resume semantics used by Lantern Inbox | stable | deployment-time protection if needed |
/api/v1/bootstrap/operator-lane-residual-payable | GET | Warp consumer readback for the Fabric-owned residual-payable blocker classification and followthrough semantics | stable | deployment-time protection if needed |
/api/v1/bootstrap/plan-studio-execution-boundary | GET | Warp consumer readback for admitted Plan Studio execution-readiness truth | stable | deployment-time protection if needed |
/api/v1/bootstrap/work-operating-context-readback | GET | Fabric-backed Work Operating Context injection readback for target flows | stable | deployment-time protection if needed |
These endpoints are read-only. They may sit behind the same operator/internal gateway boundary as the rest of the service, but they are the only endpoints that should ever be considered for broader read-only exposure. Their shared-host publication contract is explicit:
jhf-warp-apiisstatic-requiredon host port18086- the machine-readable publication source is
GET /fabric-manifest.json->runtime_contract.port_policy - Fabric and other consumers must not infer live ingress ports from Docker or ad-hoc host scans
Auth Boundary Classes
- self-description:
/health/ready/version/openapi.json/fabric-manifest.json
- internal operator reads:
- runtime, topology, drift, audit, rollout, control-agent reads, persistent-agent reads,
/metrics, and owner-decision packet readbacks such as/api/v1/operator-lanes/owner-decision/finance-invoice-packet
- runtime, topology, drift, audit, rollout, control-agent reads, persistent-agent reads,
- internal control or mutation:
- patch plan/apply
- execution apply routes
- control-agent reconcile
POSTand dispatch preview - persistent-agent learning proposal writes and review writes
The application requires a Bearer token for internal routes and consumes projected authority
context without turning Warp into a local IAM or governance authority. Heddle remains the
upstream identity/auth truth, Fabric remains the current projection/composition layer, and
future normative governance belongs to Spine. Self-description routes stay open. Outside
development and test, mutating routes fail closed when the projected authority context is
unavailable or incomplete.
Treat the second and third classes as deployment-protected internal surfaces even with the built-in token gate.
Primary API Groups
Classification and Setup
| Endpoint group | Methods | Auth | Stability |
|---|---|---|---|
/api/v1/classify | POST | Bearer token + projected authority context | stable |
/api/v1/setup/preview | POST | Bearer token + projected authority context | stable |
/api/v1/domains | GET | Bearer token + projected authority context | stable |
/api/v1/domains/{domain_id}/profiles | GET | Bearer token + projected authority context | stable |
/api/v1/domains/{domain_id}/setup | POST | Bearer token + projected authority context | stable |
/api/v1/bootstrap/workflow-posture | GET | deployment-time protection if needed | stable |
/api/v1/bootstrap/agent-universal-intent-assignment | GET | deployment-time protection if needed | stable |
/api/v1/bootstrap/doubtfire-execution-followthrough | GET | deployment-time protection if needed | stable |
/api/v1/bootstrap/universal-work-orchestration | GET | deployment-time protection if needed | stable |
/api/v1/bootstrap/operator-lane-owner-decision | GET | deployment-time protection if needed | stable |
/api/v1/bootstrap/operator-lane-residual-payable | GET | deployment-time protection if needed | stable |
/api/v1/bootstrap/plan-studio-execution-boundary | GET | deployment-time protection if needed | stable |
/api/v1/bootstrap/work-operating-context | GET | deployment-time protection if needed | stable |
/api/v1/bootstrap/work-operating-context-readback | GET | deployment-time protection if needed | stable |
/api/v1/bootstrap/work-operating-closeout-gate | GET | deployment-time protection if needed | stable |
Runtime / Topology / Drift
| Endpoint group | Methods | Auth | Stability |
|---|---|---|---|
/api/v1/runtime/inventory | GET; optional refresh=true | Bearer token + projected authority context | stable |
/api/v1/topology/current | GET | Bearer token + projected authority context | stable |
/api/v1/topology/diff | GET | Bearer token + projected authority context | stable |
/api/v1/drift/summary | GET | Bearer token + projected authority context | stable |
/metrics | GET | Bearer token + projected authority context | stable |
/api/v1/openclaw/patch/plan | POST | Bearer token + projected write authorization | stable |
/api/v1/openclaw/patch/apply | POST | Bearer token + projected write authorization | stable |
Operator Lanes
| Endpoint group | Methods | Auth | Stability |
|---|---|---|---|
/api/v1/bootstrap/operator-lane-owner-decision | GET | deployment-time protection if needed | stable |
/api/v1/operator-lanes/owner-decision/finance-invoice-packet | GET | Bearer token + projected internal-read authorization | stable |
/api/v1/operator-lanes/owner-decision/submit | POST | Bearer token + projected write authorization | stable |
/api/v1/bootstrap/operator-lane-residual-payable | GET | deployment-time protection if needed | stable |
/api/v1/operator-lanes/residual-payable/classify | POST | Bearer token + projected write authorization | stable |
GET /api/v1/bootstrap/operator-lane-owner-decision is the Warp readback surface for the
Fabric-owned owner-decision contract used by Lantern Inbox and other Human-in-the-Loop consumers.
It also republishes the admitted queue markers decision_lane_state=admitted_submit and
canonical_packet_state=published so downstream consumers can distinguish canonical owner-backed
queue truth from future_contract posture. The payload now also carries:
decision_items: admitted item-level owner-decision work entriesadmitted_item_countandprimary_item_ref: deterministic queue summary- a top-level mirror of the primary item so existing Lantern consumers can stay compatible while consuming canonical packet-backed approval work
POST /api/v1/operator-lanes/owner-decision/submit is a bounded submit lane:
- it records admitted human decision evidence
- it returns deterministic resume posture for
approved,rejected, andneeds_more_context - it never grants local domain-write, approval, or closeout authority to Warp or Lantern
GET /api/v1/operator-lanes/owner-decision/finance-invoice-packet consumes one exact, admitted
Spindle FIN-INV packet. It requires packet_ref, company, lane_ref, and lane_revision_ref.
The readback is secret-free, requires a Bearer token plus projected internal-read authority, and
fails closed if Spindle does not confirm the same requested packet and scope in requested
decision state. Unlike the bootstrap aggregation route, this exact packet readback does not accept
the admitted no-Bearer internal-read bypass.
- missing owner mapping, missing evidence, unsupported outcomes, or stale lane state stay fail-closed
GET /api/v1/bootstrap/operator-lane-residual-payable is the Warp readback surface for the
Fabric-owned residual-payable blocker contract used after owner-decision packet work is already
cleared. It republishes the admitted markers decision_lane_state=admitted_submit and
canonical_blocker_state=published, plus one source-backed blocker item for
ACC-PINV-2026-00060, so downstream consumers can treat post-approval residual blockers as
canonical followthrough work instead of vague business residue.
POST /api/v1/operator-lanes/residual-payable/classify is a bounded classification lane:
- it records admitted residual-payable classification evidence
- it returns deterministic next posture and resume transition
- it never grants local domain-write, payment-entry, or formal-close authority to Warp
Agent Federation Runtime
| Endpoint group | Methods | Auth | Stability |
|---|---|---|---|
/api/v1/agent-runtime/catalog | GET | Bearer token + projected authority context | stable |
/api/v1/agent-runtime/catalog/{agent_id} | GET | Bearer token + projected authority context | stable |
/api/v1/agent-runtime/team-handoff-policies | GET | Bearer token + projected authority context | stable |
/api/v1/agent-runtime/team-handoff-policies/{agent_slug} | GET | Bearer token + projected authority context | stable |
/api/v1/agent-runtime/delegations | GET | Bearer token + projected authority context | stable |
/api/v1/agent-runtime/delegation-state | GET | Bearer token + projected authority context | stable |
/api/v1/agent-runtime/readiness | GET | Bearer token + projected authority context | stable |
These routes are the deterministic federation read contract for Heddle/Fabric-facing consumers.
They expose root agent ids, parentage status, runtime federation state, class-transition state,
and fail-closed markers so downstream consumers do not need local heuristics for ambiguous
parentage, multiple roots, degraded fallback, or zombie lockout.
GET /api/v1/agent-runtime/delegation-state also exposes authority_readback markers for the
canonical executive delegation lane (jadda-helpifyr -> executive-execution-lane -> main) and
explicit fail-closed posture when authority readback is missing or stale.
GET /api/v1/agent-runtime/team-handoff-policies is the canonical ACP-W4 read-only surface for:
- explicit team assignment mode
- delegation scope and max depth
- same-team versus cross-team handoff posture
- accept/reject/expire/escalate transitions
- circular-handoff fail-closed behavior
- missing/stale/conflicting projection fail-closed posture
Audit / Rollout
| Endpoint group | Methods | Auth | Stability |
|---|---|---|---|
/api/v1/audit/events | GET | Bearer token + projected authority context | stable |
/api/v1/rollouts/audit | GET | Bearer token + projected authority context | stable |
/api/v1/rollouts/history | GET | Bearer token + projected authority context | stable |
/api/v1/rollouts/history and /api/v1/rollouts/audit now return machine-readable rollout readback details when Warp owns the setup or delivery trace, including task_title, canonical assignment records, and handoff_policy_refs for downstream week-run verification.
The runtime-team apply family also keeps executor-lane realization explicit in runtime_spec via
execution_identity_mode and canonical executor_bindings, so downstream monitors can distinguish
permanent-roster delegation from a managed runtime team without inferring identity from prose.
Control Agent
| Endpoint group | Methods | Auth | Stability |
|---|---|---|---|
/api/v1/control-agent/status | GET | Bearer token + projected authority context | stable |
/api/v1/control-agent/reconcile | GET, POST | GET open self-description method guidance, POST Bearer token + projected write authorization | stable |
/api/v1/control-agent/leases | GET | Bearer token + projected authority context | stable |
/api/v1/control-agent/watchdog | GET | Bearer token + projected authority context | stable |
/api/v1/control-agent/schedule | GET | Bearer token + projected authority context | stable |
/api/v1/control-agent/dispatch-preview | POST | Bearer token + projected authority context | stable |
/api/v1/control-agent/runtime/apply | POST | Bearer token + projected write authorization | stable |
GET /api/v1/control-agent/reconcile is intentionally read-only and anonymous. It exists only as
method-guidance/readback so generic internal probes do not churn 401 Unauthorized on the write
lane. Actual reconcile execution remains POST-only and write-auth protected.
For v1, that POST reconcile lane is supervisor-only: it may observe, classify, emit watchdog
evidence, and record guarded next-dispatch readiness, but it does not dispatch or assign work
directly. Authoritative dispatch remains with Warp.
POST /api/v1/control-agent/runtime/apply accepts an optional idempotency_key. A repeated
request with the same key and control-agent execution id replays the previously verified audit
event with replayed=true instead of reapplying the runtime config.
GET /api/v1/control-agent/status is the bounded operator readback for that lane and now exposes
per-agent supervisor signals (idle, done, stuck, needs_attention) derived from current
eligibility and watchdog evidence without creating a second task or dispatch authority surface.
For SSH-host runtimes, that readback reuses the cached or persisted runtime inventory lane instead
of forcing a fresh live SSH discovery on every request, so status remains bounded even while the
runtime host is slow.
When openclaw status --json is delayed or missing agent inventory, the same bounded readback
may reuse agent presence derived from openclaw health --json heartbeat data instead of dropping
the runtime roster to empty on otherwise healthy runtimes.
The same readback also exposes one observational goal_lifecycle lane plus goal_status_summary
derived from active lease and current actionable watchdog evidence while historical
watchdog observations remain visible in the watchdog readback and summary counters. That lane is read-only: it reports
goal_ok, goal_missing, goal_conflict, goal_done, blocked, or goal_not_applicable
without creating a second Goal authority surface.
Standby with retained session history but without an active Goal lease or upstream completion truth
must remain observationally non-terminal and therefore reads back as goal_not_applicable, not
goal_done.
The same status surface also publishes the explicit Doubtfire re-nudge boundary for v1:
doubtfire-control may send bounded PM-ready reminders, but it may not dispatch, assign, or
promote write-like actions when the workflow posture still reports missing admitted write
capability.
It now also publishes one explicit codex-companion passive-support boundary:
that consumer may read waiting/blocked/needs-attention summaries, closeout-gate posture, and
post-merge reconcile drift visibility from the same bounded surface, but it may not dispatch,
assign, self-close by projection, or invent shadow execution truth.
GET /api/v1/bootstrap/workflow-posture publishes explicit write-readiness entries for
invoice-submit, pcc-create, pcc-close, and wire-submission. The invoice lane exposes its
bounded accounting capability references but remains blocked until current Fabric packet,
Lantern decision, and Spindle owner-readback evidence are available together. PCC and wire lanes
also remain blocked before phase start; Warp never infers readiness from PM state alone.
GET /api/v1/bootstrap/work-operating-context-readback is the bounded live companion to the
static bootstrap contract. It publishes:
- the current Fabric-owned
work_type,required_gates,truth_owner_refs, andautonomy - the explicit
shadow_truth_policyandruntime_postureinherited from the Warp contract - fail-closed terminal-claim checks for
done,closed,resolved,sent,submitted,published,paid, andfiled - a read-only
goal_projectionpreview that classifies whether the current work requires a Goal, whether that Goal is currently materializable from upstream issue/work-item truth, and which fail-closed blocker reasons prevent dispatch when the Goal cannot be projected
For repo-owned Gitea flows, the same readback may derive issue identity from
repo_name + issue_number when the caller does not provide an explicit
issue_ref. That keeps repo-scoped SoT lanes from falling through to
goal_missing solely because the canonical issue identity was supplied as
repository coordinates instead of a prebuilt owner/repo#number string.
That surface is read-only. It does not admit or execute terminal claims locally; it only exposes whether Fabric currently allows them.
GET /api/v1/bootstrap/agent-platform-core-normalization is the bounded live companion to
Fabric's Wave-1 agent-platform core-normalization contract. It publishes the Warp-side consumer
projection for retrieval, context, skill/hook, and guardrail vocabulary so runtime operators can
verify that Warp is consuming Fabric-owned terminology instead of a local shadow taxonomy. The same
payload also includes persistent_agent_profile_reconciliation, which proves every Warp persistent
agent profile is tied to the Fabric core-normalization contract, the Fabric ACP tool-action registry,
the Warp tool-policy projection, and the Warp team-handoff lifecycle projection before consumers
treat that profile as reconciled.
GET /api/v1/bootstrap/agent-universal-intent-assignment is the bounded live companion to
Fabric's universal intent and delegated closeout contracts. It publishes the Warp-side consumer
projection for admitted intent classes, task-profile-derived role shapes, artifact-profile
alignment, closeout-bundle-profile alignment, visual-evidence posture/policy alignment, and
explicit fail-closed rules so operators can verify that dynamic agent rollout varies by task type
without granting Warp local closeout authority.
GET /api/v1/bootstrap/doubtfire-execution-followthrough is the bounded live companion to
Fabric's Wave-4 Doubtfire supervision contracts. It publishes the Warp-side consumer projection
for canonical heartbeat ownership, watchdog event mapping, silent-executor detection classes and
outcomes, the existing control-agent runtime readback surfaces, and the explicit fail-closed rule
that no-silent-stop claims require owner runtime readback instead of projection-only green.
GET /api/v1/bootstrap/doubtfire-boost-lifecycle is the additive live companion for Fabric's
Boost/integration lifecycle supervision. It covers activation, upgrade, execution, revocation,
and uninstall, and emits only bounded, deduplicated observation/escalation posture. Fabric owns
semantic lifecycle and admission truth; doubtfire-control remains the single supervisor.
The route cannot authorize credentials, create Connections, activate Boosts, lower gates, or claim domain completion. Unknown lifecycle state, missing signals, contradictory state, and rollup overflow remain fail-closed or explicitly deferred.
GET /api/v1/bootstrap/universal-work-orchestration binds Fabric's Universal Work capability-gap,
replan, progress, heartbeat, and watchdog contracts to Warp's existing supervision surfaces. It is
read-only: Fabric remains the goal/replan admission owner and Shuttle remains the dispatch, ack,
and evidence owner. Missing owner readback is explicitly blocked rather than projected green.
POST /api/v1/control-agent/dispatch-preview now consumes the same Goal projection lane for
eligible multi-turn work. The preview request accepts bounded upstream identity fields
work_type, work_item_ref, issue_ref, and an optional active_goal_id. The response remains
non-destructive and now also returns:
goal_requiredgoal_classificationgoal_idbootstrap_context_sourceblocker_reasons
For admitted team-only previews, the bounded team_lane readback also publishes
execution_identity_mode plus canonical executor_bindings so downstream monitors can verify
whether the task is delegated onto the permanent roster or requires a managed runtime team without
flattening execution truth back to main:main.
Dispatch preview must fail closed when Goal-enabled work resolves to goal_missing,
goal_conflict, or any non-goal_ok classification. A mismatched active_goal_id against an
current readback goal_id is also a blocker.
The current admitted docs-change Plan Studio followthrough under JaddaHelpifyr/helpifyr-fabric#739
and JaddaHelpifyr/jhf-warp#453 stays fail-closed outside the bounded admitted lane.
For that lane, Warp treats GET /api/v1/bootstrap/work-operating-context-readback,
GET /api/v1/bootstrap/work-operating-closeout-gate, work_item_ref, issue_ref, and the
read-only goal_projection fields as the mandatory handoff truth before downstream execution may
start.
The same handoff is now bound to Fabric's admitted
GET /api/v1/planning/sessions/{session_id}/execution-context surface, so work_type,
work_item_ref, issue_ref, and goal_envelope_ref must come from upstream execution-context
truth instead of local Warp inference.
already leased target agent is surfaced as goal_conflict; Warp may not silently continue by
inventing local Goal truth.
Persistent Domain Agents
| Endpoint group | Methods | Auth | Stability |
|---|---|---|---|
/api/v1/persistent-agents | GET | Bearer token + projected authority context | stable |
/api/v1/persistent-agents/{agent_slug} | GET | Bearer token + projected authority context | stable |
/api/v1/persistent-agents/{agent_slug}/learning-proposals | GET, POST | GET projected authority, POST projected write authorization | stable |
/api/v1/persistent-agents/{agent_slug}/learning-proposals/{proposal_id}/review | POST | Bearer token + projected write authorization | stable |
/api/v1/tool-profiles | GET | Bearer token + projected authority context | stable |
/api/v1/agent-tool-policies | GET | Bearer token + projected authority context | stable |
/api/v1/agent-tool-policies/{agent_slug} | GET | Bearer token + projected authority context | stable |
/api/v1/jadda-interface/policy-projection | GET | Bearer token + projected authority context | stable |
/api/v1/loom-ocr/agent-action-policy | GET | Bearer token + projected authority context | stable |
/api/v1/weft/workspace-action-policy | GET | Bearer token + projected authority context | stable |
/api/v1/voice/targets | GET | Bearer token + projected authority context | stable |
/api/v1/voice/targets/default | GET | Bearer token + projected authority context | stable |
/api/v1/voice/targets/{agent_slug} | GET | Bearer token + projected authority context | stable |
/api/v1/voice/runtime-profiles | GET | Bearer token + projected authority context | stable |
/api/v1/voice/library-governance | GET | Bearer token + projected authority context | stable |
/api/v1/workspaces/persistent | GET | Bearer token + projected authority context | stable |
Learning proposal governance is fail-closed: review is required before activation, self-activation is disallowed, and approved/rejected proposals are terminal (a new change requires a new proposal).
GET /api/v1/voice/library-governance is the canonical read-only governance surface for:
- voice identity lifecycle state
- consent expiry and re-consent triggers
- re-record and re-clone triggers
- brand voice pack binding
- tenant/team inheritance posture
- retention, deletion, and audit history references
GET /api/v1/voice/runtime-profiles is the canonical read-only Wave-8 surface for:
- first-wave speaking roster admission
- session-start-cacheable voice eligibility
voice_llm_profilerouting and pinning posturevoice_audio_profilelocal-first and external-consent-gated provider posture- explicit denial of
doubtfire-controlas a normal speaking participant
GET /api/v1/agent-tool-policies is the canonical ACP-W3 read-only surface for:
- sandbox approval posture
- bounded-change scope
- escalation mode and escalation target
- fail-closed stale-projection action
GET /api/v1/jadda-interface/policy-projection is the canonical Warp-owned read-only surface for:
- meeting-create admission posture
- transcript and recording default posture
- voice TTS posture and fail-closed external voice-output admission
- consent and late-joiner handling
- external STT fail-closed requirements
- V1 actions-blocked and no-commitment voice boundary
GET /api/v1/loom-ocr/agent-action-policy is the canonical Warp-owned read-only surface for:
- OCR action-class admission posture
- untrusted-input / prompt-injection fail-closed handling
- explicit read-only vs approval-gated vs blocked OCR actions
- required actor/agent/correlation/gate/evidence fields for downstream review
GET /api/v1/weft/workspace-action-policy is the canonical Warp-owned read-only surface for:
- Weft workspace action eligibility by risk class
- reminder candidate and materialization gating
- lead-agent default mail posture and blocked mailbox modes
- capability-specific confidence thresholds without auto-materialize widening
Registration note:
- there is still no shipped
POST /api/v1/persistent-agentscreate/adopt endpoint - any future create/adopt endpoint must first pass the Spindle-backed registration validator
defined in
docs/SPINDLE_AGENT_REGISTRATION_REQUEST_CONTRACT.md
Auth
Inbound auth accepts:
Authorization: Bearer <token>
Self-description endpoints are open.
Internal routes require a Bearer token and consume projected authority context.
Exception: internal-read routes also allow the admitted agent lane without Bearer when
X-JHF-Acting-Agent-Id (or X-JHF-Actor-Subject-Ref) and
X-JHF-Policy-Projection-Version match Warp-owned tool-policy projection truth; missing or stale
projection stays fail-closed.
GET /api/v1/bootstrap/workflow-posture is part of that admitted internal-read lane and
explicitly publishes the guarded staffing/assignment mutation route family plus the fail-closed
denial posture expected by Host172 workflow verification.
Internal write surfaces fail closed when the projected authority path is unavailable.
Read-only routes may remain available in a clearly marked degraded mode when the projection
layer is unavailable.
Deployment boundary protection is still required around all internal surfaces.
GET /metrics exports a minimal Prometheus-style text payload for service, persistence, runtime,
drift, outbox, control-agent, and persistent-governance signals.
Request / Response Format
- JSON over HTTP
- schema contracts are defined by Pydantic models and surfaced through
/openapi.json
Versioning Logic
- API path version anchor:
/api/v1/... - manifest schema anchor:
fabric-manifest.json -> manifest_version
- package version source:
pyproject.tomlsrc/oc_agent_manager/__init__.py
- compatibility signals:
fabric-manifest.json -> compatibilityfabric-manifest.json -> compatibility.manifest_v2_claim_owner_projectionfabric-manifest.json -> compatibility.agent_tool_policy_projectionfabric-manifest.json -> compatibility.jadda_interface_policy_projectionfabric-manifest.json -> compatibility.loom_ocr_agent_action_policy_projectionfabric-manifest.json -> compatibility.weft_workspace_action_policy_projectionfabric-manifest.json -> compatibility.agent_universal_intent_assignment_projectionfabric-manifest.json -> compatibility.doubtfire_execution_followthrough_projectionfabric-manifest.json -> compatibility.universal_work_orchestration_projectionfabric-manifest.json -> compatibility.operator_lane_residual_payable_projectionpython scripts/verify_doubtfire_execution_followthrough.py --require-exact-main --output artifacts/doubtfire-execution-followthrough-owner-readback.jsonpython scripts/verify_universal_work_orchestration_projection.py --require-exact-main --output artifacts/universal-work-orchestration-owner-readback.jsonpython scripts/verify_operator_lane_residual_payable.pypython scripts/verify_agent_universal_intent_assignment_projection.py --require-exact-main --output artifacts/agent-universal-intent-owner-followthrough.json- immutable OCI tags
sha-<12>plus branch tagmain - Alembic migration lineage
alembic/head
Example Calls
curl http://<internal-runtime-redacted>:8080/health
curl http://<internal-runtime-redacted>:8080/ready
curl http://<internal-runtime-redacted>:8080/version
curl -H "Authorization: Bearer ${JHF_HEDDLE_ACCESS_TOKEN}" http://<internal-runtime-redacted>:8080/metrics
curl `api/v`1/runtime/inventory
curl "`api/v`1/runtime/inventory?refresh=true"
curl http://<internal-runtime-redacted>:8080/openapi.json
Stability Notes
- self-description endpoints are intended to be stable
- runtime/topology/drift endpoints are active/stable internal service contracts
- MCP wrappers are not separate network API endpoints
- no webhook signature standard exists yet
License
AGPLv3. See ../LICENSE (LICENSE).
Learn more at helpifyr.com.