Diverge Provider Protocol — Specification 2.3.0
The wire protocol between callers and providers: running agent and tool containers, joining a tool container, managing volumes, checking images. One WebSocket connection, framed and multiplexed, with a handshake in front.
This specification is the normative definition of the Diverge Provider
Protocol at revision 2.3.0. diverge-provider-sdk
is a Rust crate that implements it and is versioned with it; where a
page includes a file of the crate, the file is part of the
specification.
- What binds. Every sentence of this specification that states what the server or the proxy does, does not do, sends, holds, refuses, ignores, relays, verifies, mounts, stops or ends is a requirement on the provider that operates the server. A sentence stating what the server may do is a permission. A sentence stating that a matter is not prescribed reserves it to the provider.
- The client is not bound. This specification imposes no requirement on a client. A sentence describing what a client sends or does states the input the server serves.
- Remarks. A paragraph that begins with Remark. is descriptive. It imposes no requirement and grants no permission.
- The form. Every page is also published as Markdown, at the
page’s own path with the
.mdextension. The crate and this site live in one repository.