Start a session
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.
bearerAuthorizationBearer <token>An API token
application/json- body
requestId?stringmeta?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?The session
application/json- response
sessionId*stringrequestId*stringThe caller's key, as given
principal*stringWhose 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*integerCreated (milliseconds since the epoch)
endedAt?integerEnded: sandbox deleted, input refused, conversation kept (milliseconds since the epoch)
model*parent?||curl -X POST 'http://127.0.0.1:7777/sessions' \ -H 'Content-Type: application/json' \ -d '{ "requestId": "my-first"}'{ "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 }}