Transport and deployment
- Normative
- Draft 1.0
- Updated
- View as Markdown
2.1 Default deployment
A service MUST listen on the loopback addresses 127.0.0.1 and ::1 by default. The conventional port is 17832, which makes the default base address http://127.0.0.1:17832.
| Item | Value |
|---|---|
| Listen addresses | 127.0.0.1 and ::1 |
| Transport | HTTP/1.1 or HTTP/2 carrying JSON |
| Streaming | Server-sent events, Content-Type: text/event-stream |
| Core interface prefix | /lmsp/v1 |
| OpenAI-compatible prefix | /v1 |
| Service description | GET /.well-known/lmsp.json |
| Machine-readable contract | GET /lmsp/v1/openapi.json |
| Optional local channel | Unix domain socket or Windows named pipe |
Requests and responses use JSON in UTF-8 (Content-Type: application/json), except streams (text/event-stream) and errors (application/problem+json). Timestamps are integers: seconds since the Unix epoch. Identifiers are opaque strings; a type prefix such as resp_ or task_ is RECOMMENDED.
The interface contract is an OpenAPI 3.2 document. OpenAPI 3.2 can describe server-sent events, JSON Lines and JSON Sequences, so the streaming endpoints are specified in the same document as the rest. The contract for this version is published at /lmsp/1.0/openapi.json.
A service MAY also accept connections on a Unix domain socket or a Windows named pipe with the same HTTP semantics. In 1.0, how such endpoints are advertised is left to extensions.
2.2 Always-on operation
A service SHOULD be hosted by the operating system: launchd on macOS, systemd on Linux and the Windows Service manager on Windows.
The service process and the model processes SHOULD be separate. A model crash SHOULD affect only the tasks that use that model. It SHOULD NOT make service discovery, the model catalog or queries about earlier tasks unavailable.