Pistis
API referenceSessions

Start a session

POST
/sessions

requestId is any string you choose: sending the same one again returns the same session. meta labels it (and picks an agent, repositories or a pool); agent changes this session's agent from the host's defaults.

Authorization

bearer
headerAuthorizationBearer <token>

An API token

Request Body

application/json
  1. body
requestId?string
meta?

Labels fixed at creation: up to 16, key ^[a-z][a-z0-9_]{0,31}$, value up to 256 characters. agent picks an agent, agent_revision pins one, repo picks repositories (<connection>:<path>, comma-separated, up to 10), pool picks a pool of your machines. Keys starting with slack_ or flow are Pistis's own and refused.

agent?

Response Body

The session

application/json
  1. response
sessionId*string
requestId*string

The caller's key, as given

principal*string

Whose session it is

meta*

Labels fixed at creation: up to 16, key ^[a-z][a-z0-9_]{0,31}$, value up to 256 characters. agent picks an agent, agent_revision pins one, repo picks repositories (<connection>:<path>, comma-separated, up to 10), pool picks a pool of your machines. Keys starting with slack_ or flow are Pistis's own and refused.

skills*
createdAt*integer

Created (milliseconds since the epoch)

endedAt?integer

Ended: sandbox deleted, input refused, conversation kept (milliseconds since the epoch)

model*
parent?||
Example Request
curl -X POST 'http://127.0.0.1:7777/sessions' \  -H 'Content-Type: application/json' \  -d '{  "requestId": "my-first"}'
Example Response
{  "sessionId": "string",  "requestId": "string",  "principal": "string",  "meta": {    "property1": "string",    "property2": "string"  },  "skills": {    "property1": "string",    "property2": "string"  },  "createdAt": 0,  "endedAt": 0,  "model": {    "id": "string",    "thinking": "off"  },  "parent": {    "kind": "branch",    "sessionId": "string",    "atSeq": 0  }}