Skip to content

Zene Host Protocol v1 JSON Examples

This document is the official integration example set for clawbridge -> zene host mode.

Note:

  • clawbridge command-provider MVP default path is one-shot bridge-compatible mode (host + --bridge-compat + --single-request).
  • the stream/event examples below are advanced mode references.

Transport Rules

  • stdin: NDJSON (one JSON object per line)
  • stdout: NDJSON (one JSON object per line)
  • stdout: protocol data only
  • stderr: logs and diagnostics only

1) Ping

Request

json
{"protocol_version":1,"type":"ping","request_id":"ping-001","session_id":"s-user-1"}

Response

json
{"protocol_version":1,"type":"ack","request_id":"ping-001","session_id":"s-user-1","ts_ms":1773935000000,"status":"PONG"}

2) Run (stream=true)

Request

json
{"protocol_version":1,"type":"run","request_id":"run-001","session_id":"s-user-1","ts_ms":1773935000100,"prompt":"Analyze project structure","metadata":{"channel":"clawbridge","trace_id":"trace-001"},"timeout_ms":120000,"idempotency_key":"idem-001","stream":true}

Responses (typical sequence)

json
{"protocol_version":1,"type":"ack","request_id":"run-001","session_id":"s-user-1","ts_ms":1773935000101,"status":"ACCEPTED","request_ts_ms":1773935000100}
{"protocol_version":1,"type":"event","request_id":"run-001","session_id":"s-user-1","ts_ms":1773935000102,"event_type":"REQUEST_ACCEPTED","seq":1,"payload":{"timeout_ms":120000,"metadata":{"channel":"clawbridge","trace_id":"trace-001"}}}
{"protocol_version":1,"type":"event","request_id":"run-001","session_id":"s-user-1","ts_ms":1773935002100,"event_type":"RUN_FINISHED","seq":2,"payload":{}}
{"protocol_version":1,"type":"final","request_id":"run-001","session_id":"s-user-1","ts_ms":1773935002101,"status":"OK","text":"Project has src, tests, and docs.","usage":{"prompt_tokens":120,"completion_tokens":40,"total_tokens":160},"error":null,"latency_ms":2000}

3) Run Timeout

Request

json
{"protocol_version":1,"type":"run","request_id":"run-timeout-001","session_id":"s-user-1","prompt":"Very long task","timeout_ms":1000,"idempotency_key":"idem-timeout-001","stream":false}

Response (terminal)

json
{"protocol_version":1,"type":"final","request_id":"run-timeout-001","session_id":"s-user-1","ts_ms":1773935005000,"status":"TIMEOUT","text":"Request timed out. Please retry with a simpler prompt or a higher timeout.","usage":{"prompt_tokens":0,"completion_tokens":0,"total_tokens":0},"error":{"code":"TIMEOUT","message":"request exceeded timeout_ms","retryable":true},"latency_ms":1002}

4) Cancel

Cancel Request

json
{"protocol_version":1,"type":"cancel","request_id":"cancel-001","session_id":"s-user-1","target_request_id":"run-001"}

Responses

json
{"protocol_version":1,"type":"ack","request_id":"cancel-001","session_id":"s-user-1","ts_ms":1773935002200,"status":"CANCEL_ACCEPTED","target_request_id":"run-001"}
{"protocol_version":1,"type":"final","request_id":"run-001","session_id":"s-user-1","ts_ms":1773935002201,"status":"CANCELED","text":"","usage":{"prompt_tokens":0,"completion_tokens":0,"total_tokens":0},"error":null,"latency_ms":0}

5) Invalid Request

Request (missing required idempotency_key on run)

json
{"protocol_version":1,"type":"run","request_id":"bad-001","session_id":"s-user-1","prompt":"hello"}

Response

json
{"protocol_version":1,"type":"error","request_id":"bad-001","session_id":"s-user-1","ts_ms":1773935003000,"error":{"code":"INVALID_REQUEST","message":"run request requires non-empty idempotency_key","retryable":false}}

6) Idempotency Replay

First Request

json
{"protocol_version":1,"type":"run","request_id":"run-a","session_id":"s-user-1","prompt":"hello","timeout_ms":120000,"idempotency_key":"idem-replay-1","stream":false}

Retry with same (session_id, idempotency_key)

json
{"protocol_version":1,"type":"run","request_id":"run-b","session_id":"s-user-1","prompt":"hello","timeout_ms":120000,"idempotency_key":"idem-replay-1","stream":false}

Replay Response Example

json
{"protocol_version":1,"type":"final","request_id":"run-b","session_id":"s-user-1","ts_ms":1773935008000,"status":"OK","text":"...","usage":{"prompt_tokens":12,"completion_tokens":5,"total_tokens":17},"error":null,"latency_ms":321,"replayed":true}

7) In-flight Idempotency Suppression

If a duplicate request arrives while the first one is still running:

json
{"protocol_version":1,"type":"ack","request_id":"run-b","session_id":"s-user-1","ts_ms":1773935007000,"status":"DUPLICATE_IN_PROGRESS","existing_request_id":"run-a"}

Error Code Reference

  • TIMEOUT
  • PROVIDER_AUTH
  • PROVIDER_RATE_LIMIT
  • PROVIDER_DOWN
  • INVALID_REQUEST
  • INTERNAL

Released under the MIT License.