Method catalog (next)
Preview JSON-RPC catalog synced from the current in-repo protocol registry.
This is the next channel: it tracks the current in-repo registry and may change before a stable release. Use the header version control to return to 0.8.x.
Full registry
Section titled “Full registry”Runtime4
#runtime.initializereadremote
Params
| Field | Type |
|---|---|
| protocol_version | semver? |
| schema_version | semver? compatible major |
| projection_version | semver? exact reducer match |
| client_name | string? |
| client_version | semver? |
| expected_workspace_id | string? |
| expected_runtime_id | string? |
| expected_epoch | string? |
Result
RuntimeInitializeResult
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "runtime.initialize",
"params": {}
}// scope: read
const result = await client.request("runtime.initialize", {});# JSON-RPC over the local socket
carina call runtime.initialize
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"runtime.initialize","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#runtime.describeread
Params
{}
Result
RuntimeDescription
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "runtime.describe",
"params": {}
}// scope: read
const result = await client.request("runtime.describe", {});# JSON-RPC over the local socket
carina call runtime.describe
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"runtime.describe","params":{}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#runtime.capabilitiesreadremote
Params
{}
Result
{ runtime_version: semver, protocol_version: semver, capabilities: object }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "runtime.capabilities",
"params": {}
}// scope: read
const result = await client.request("runtime.capabilities", {});# JSON-RPC over the local socket
carina call runtime.capabilities
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"runtime.capabilities","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#runtime.registry_schemareadremote
Params
{}
Result
JSON Schema Draft 2020-12
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "runtime.registry_schema",
"params": {}
}// scope: read
const result = await client.request("runtime.registry_schema", {});# JSON-RPC over the local socket
carina call runtime.registry_schema
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"runtime.registry_schema","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
Gateway4
#gateway.helloreadremote
Params
| Field | Type |
|---|---|
| protocol_version | number? |
| client_id | string? |
| role | operator|observer|worker|node? |
| scopes | Scope[]? |
| token | string? |
Result
GatewayHello
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "gateway.hello",
"params": {
"protocol_version": 1,
"scopes": []
}
}// scope: read
const result = await client.request("gateway.hello", {
"protocol_version": 1,
"scopes": []
});# JSON-RPC over the local socket
carina call gateway.hello
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"gateway.hello","params":{"protocol_version":1,"scopes":[]}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#gateway.methodsreadremote
Params
{}
Result
{ version: string, methods: MethodDescriptor[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "gateway.methods",
"params": {}
}// scope: read
const result = await client.request("gateway.methods", {});# JSON-RPC over the local socket
carina call gateway.methods
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"gateway.methods","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#gateway.resolve_scoperead
Params
| Field | Type |
|---|---|
| method | string |
| params | object? |
Result
{ method: string, scope: Scope, dynamic_scope: boolean }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "gateway.resolve_scope",
"params": {
"method": "<method>"
}
}// scope: read
const result = await client.request("gateway.resolve_scope", {
"method": "<method>"
});# JSON-RPC over the local socket
carina call gateway.resolve_scope
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"gateway.resolve_scope","params":{"method":"<method>"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#gateway.token.issueadmincontrol-plane
Params
| Field | Type |
|---|---|
| subject | string? |
| role | operator|observer|worker|node? |
| scopes | Scope[] |
| routes | string[]? |
| ttl_seconds | number? |
| transport | ws|http|plugin? |
Result
{ token: string, claims: GatewayTokenClaims }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "gateway.token.issue",
"params": {
"scopes": [],
"routes": [],
"ttl_seconds": 1
}
}// scope: admin
const result = await client.request("gateway.token.issue", {
"scopes": [],
"routes": [],
"ttl_seconds": 1
});# JSON-RPC over the local socket
carina call gateway.token.issue
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"gateway.token.issue","params":{"scopes":[],"routes":[],"ttl_seconds":1}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
Daemon6
#daemon.statusreadremote
Params
{}
Result
DaemonStatus
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "daemon.status",
"params": {}
}// scope: read
const result = await client.request("daemon.status", {});# JSON-RPC over the local socket
carina call daemon.status
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"daemon.status","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#daemon.metricsreadremote
Params
{}
Result
DaemonMetrics
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "daemon.metrics",
"params": {}
}// scope: read
const result = await client.request("daemon.metrics", {});# JSON-RPC over the local socket
carina call daemon.metrics
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"daemon.metrics","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#daemon.doctorreadremote
Params
{}
Result
DoctorReport
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "daemon.doctor",
"params": {}
}// scope: read
const result = await client.request("daemon.doctor", {});# JSON-RPC over the local socket
carina call daemon.doctor
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"daemon.doctor","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#daemon.remote.disableadmincontrol-plane
Params
| Field | Type |
|---|---|
| on | boolean |
Result
{ remote_disabled: boolean }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "daemon.remote.disable",
"params": {
"on": true
}
}// scope: admin
const result = await client.request("daemon.remote.disable", {
"on": true
});# JSON-RPC over the local socket
carina call daemon.remote.disable
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"daemon.remote.disable","params":{"on":true}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#daemon.reloadadmincontrol-plane
Params
{}
Result
{ reloaded: boolean }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "daemon.reload",
"params": {}
}// scope: admin
const result = await client.request("daemon.reload", {});# JSON-RPC over the local socket
carina call daemon.reload
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"daemon.reload","params":{}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#daemon.set_interactive_approvalwritecontrol-plane
Params
| Field | Type |
|---|---|
| on | boolean? |
| mode | ask|always-approve|dont-ask|accept-edits? |
| session_id | string? |
Result
{ interactive_approval: boolean, approval_mode: ask|always-approve|dont-ask|accept-edits, previous_mode: string, disable_always_approve: boolean, warning: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "daemon.set_interactive_approval",
"params": {
"on": true,
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("daemon.set_interactive_approval", {
"on": true,
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call daemon.set_interactive_approval
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"daemon.set_interactive_approval","params":{"on":true,"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Usage1
#usage.costreadremote
Params
| Field | Type |
|---|---|
| session_id | string? |
| task_id | string? |
Result
UsageCostReport
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "usage.cost",
"params": {
"session_id": "sess_01J...",
"task_id": "Summarize module boundaries"
}
}// scope: read
const result = await client.request("usage.cost", {
"session_id": "sess_01J...",
"task_id": "Summarize module boundaries"
});# JSON-RPC over the local socket
carina call usage.cost
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"usage.cost","params":{"session_id":"sess_01J...","task_id":"Summarize module boundaries"}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
Model1
#model.listreadremote
Params
| Field | Type |
|---|---|
| session_id | string? |
| model_id | string? |
| locale | string? |
Result
{ default_model: string, providers: ModelProvider[], reasoner: ModelReasoner, readiness: { step, blockers[], route_kind, model_id, locale, can_submit, epoch, generation } }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "model.list",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("model.list", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call model.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"model.list","params":{"session_id":"sess_01J..."}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
Agent8
#agent.listreadremote
Params
| Field | Type |
|---|---|
| session_id | string? |
| workspace_root | string? |
| include_hidden | boolean? |
Result
{ agents: Agent[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "agent.list",
"params": {
"session_id": "sess_01J...",
"workspace_root": "/repo",
"include_hidden": true
}
}// scope: read
const result = await client.request("agent.list", {
"session_id": "sess_01J...",
"workspace_root": "/repo",
"include_hidden": true
});# JSON-RPC over the local socket
carina call agent.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"agent.list","params":{"session_id":"sess_01J...","workspace_root":"/repo","include_hidden":true}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#agent.viewreadremote
Params
{}
Result
{ needs_input: AgentViewEntry[], working: AgentViewEntry[], completed: AgentViewEntry[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "agent.view",
"params": {}
}// scope: read
const result = await client.request("agent.view", {});# JSON-RPC over the local socket
carina call agent.view
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"agent.view","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#agent.peekreadremote
Params
| Field | Type |
|---|---|
| task_id | string |
Result
AgentViewEntry
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "agent.peek",
"params": {
"task_id": "Summarize module boundaries"
}
}// scope: read
const result = await client.request("agent.peek", {
"task_id": "Summarize module boundaries"
});# JSON-RPC over the local socket
carina call agent.peek
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"agent.peek","params":{"task_id":"Summarize module boundaries"}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#agent.recapreadremote
Params
| Field | Type |
|---|---|
| task_id | string |
Result
{ agent: AgentViewEntry, recent_events: Event[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "agent.recap",
"params": {
"task_id": "Summarize module boundaries"
}
}// scope: read
const result = await client.request("agent.recap", {
"task_id": "Summarize module boundaries"
});# JSON-RPC over the local socket
carina call agent.recap
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"agent.recap","params":{"task_id":"Summarize module boundaries"}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#agent.dispatchwritecontrol-plane
Params
| Field | Type |
|---|---|
| workspace_root | string |
| prompt | string |
| profile | string? |
| approval_mode | string? |
| agent | string? |
| model | string? |
| isolate | boolean? |
| base_ref | string? |
| branch | string? |
| title | string? |
Result
{ session: Session, task: Task, worktree_id: string? }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "agent.dispatch",
"params": {
"workspace_root": "/repo",
"prompt": "Summarize module boundaries",
"profile": "safe-edit",
"isolate": true
}
}// scope: write
const result = await client.request("agent.dispatch", {
"workspace_root": "/repo",
"prompt": "Summarize module boundaries",
"profile": "safe-edit",
"isolate": true
});# JSON-RPC over the local socket
carina call agent.dispatch
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"agent.dispatch","params":{"workspace_root":"/repo","prompt":"Summarize module boundaries","profile":"safe-edit","isolate":true}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#agent.stopwrite
Params
| Field | Type |
|---|---|
| task_id | string |
Result
Task
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "agent.stop",
"params": {
"task_id": "Summarize module boundaries"
}
}// scope: write
const result = await client.request("agent.stop", {
"task_id": "Summarize module boundaries"
});# JSON-RPC over the local socket
carina call agent.stop
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"agent.stop","params":{"task_id":"Summarize module boundaries"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#agent.removewrite
Params
| Field | Type |
|---|---|
| task_id | string |
Result
{ removed: boolean, task_id: string, session_id: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "agent.remove",
"params": {
"task_id": "Summarize module boundaries"
}
}// scope: write
const result = await client.request("agent.remove", {
"task_id": "Summarize module boundaries"
});# JSON-RPC over the local socket
carina call agent.remove
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"agent.remove","params":{"task_id":"Summarize module boundaries"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#agent.metadata.setwrite
Params
| Field | Type |
|---|---|
| session_id | string |
| title | string? |
| pull_request | string? |
| branch | string? |
| worktree_id | string? |
Result
AgentViewMetadata
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "agent.metadata.set",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("agent.metadata.set", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call agent.metadata.set
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"agent.metadata.set","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Session23
#session.createwrite
Params
| Field | Type |
|---|---|
| workspace_root | string |
| profile | string? |
| approval_mode | string? |
Result
Session
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.create",
"params": {
"workspace_root": "/repo",
"profile": "safe-edit"
}
}// scope: write
const result = await client.request("session.create", {
"workspace_root": "/repo",
"profile": "safe-edit"
});# JSON-RPC over the local socket
carina call session.create
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.create","params":{"workspace_root":"/repo","profile":"safe-edit"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.getreadremote
Params
| Field | Type |
|---|---|
| session_id | string |
Result
Session
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.get",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("session.get", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.get
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.get","params":{"session_id":"sess_01J..."}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#session.listreadremote
Params
| Field | Type |
|---|---|
| archived | boolean? (false active/non-closed only; true closed only; omitted all) |
Result
Session[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.list",
"params": {
"archived": true
}
}// scope: read
const result = await client.request("session.list", {
"archived": true
});# JSON-RPC over the local socket
carina call session.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.list","params":{"archived":true}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#session.renamewrite
Params
| Field | Type |
|---|---|
| session_id | string |
| name | string 1..80 |
Result
Session
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.rename",
"params": {
"session_id": "sess_01J...",
"name": "<name>"
}
}// scope: write
const result = await client.request("session.rename", {
"session_id": "sess_01J...",
"name": "<name>"
});# JSON-RPC over the local socket
carina call session.rename
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.rename","params":{"session_id":"sess_01J...","name":"<name>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.archivewrite
Params
| Field | Type |
|---|---|
| session_id | string |
Result
Session(status=closed); rejects every non-terminal task
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.archive",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("session.archive", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.archive
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.archive","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.unarchivewrite
Params
| Field | Type |
|---|---|
| session_id | string |
Result
Session(status=active)
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.unarchive",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("session.unarchive", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.unarchive
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.unarchive","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.pausewrite
Params
| Field | Type |
|---|---|
| session_id | string |
Result
Session
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.pause",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("session.pause", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.pause
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.pause","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.resumewrite
Params
| Field | Type |
|---|---|
| session_id | string |
Result
Session
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.resume",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("session.resume", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.resume
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.resume","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.closewrite
Params
| Field | Type |
|---|---|
| session_id | string |
Result
Session
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.close",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("session.close", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.close
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.close","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.replayreadremote
Params
| Field | Type |
|---|---|
| session_id | string |
Result
Event[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.replay",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("session.replay", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.replay
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.replay","params":{"session_id":"sess_01J..."}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#session.itemsreadremote
Params
| Field | Type |
|---|---|
| session_id | string |
| cursor | signed opaque exclusive cursor? |
| limit | integer 1..200? |
Result
SessionItemEvent[] when pagination omitted; otherwise { data: SessionItemEvent[], next_cursor: string?, projection_version: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.items",
"params": {
"session_id": "sess_01J...",
"limit": 1
}
}// scope: read
const result = await client.request("session.items", {
"session_id": "sess_01J...",
"limit": 1
});# JSON-RPC over the local socket
carina call session.items
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.items","params":{"session_id":"sess_01J...","limit":1}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#conversation.import.discoverread
Params
| Field | Type |
|---|---|
| sources | (claude-code|codex)[]? |
| source_root | string? |
| workspace_root | string? |
| all_workspaces | boolean? |
Result
{ conversations: ImportCandidate[], warnings: string[], copy_semantics: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "conversation.import.discover",
"params": {
"sources": [],
"source_root": "/repo",
"workspace_root": "/repo",
"all_workspaces": true
}
}// scope: read
const result = await client.request("conversation.import.discover", {
"sources": [],
"source_root": "/repo",
"workspace_root": "/repo",
"all_workspaces": true
});# JSON-RPC over the local socket
carina call conversation.import.discover
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"conversation.import.discover","params":{"sources":[],"source_root":"/repo","workspace_root":"/repo","all_workspaces":true}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#conversation.import.applywrite
Params
| Field | Type |
|---|---|
| selections | { source, source_root?, path, conversation_id, target_workspace? }[] |
Result
{ results: ImportReceipt[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "conversation.import.apply",
"params": {
"selections": []
}
}// scope: write
const result = await client.request("conversation.import.apply", {
"selections": []
});# JSON-RPC over the local socket
carina call conversation.import.apply
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"conversation.import.apply","params":{"selections":[]}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.reviewreadremote
Params
| Field | Type |
|---|---|
| session_id | string |
Result
SessionReview
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.review",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("session.review", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.review
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.review","params":{"session_id":"sess_01J..."}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#session.attachreadremote
Params
| Field | Type |
|---|---|
| session_id | string |
| since | number? |
| event_mode | compat|canonical? (default compat) |
Result
{ events: Event[], from: number, cursor: number, event_mode: compat|canonical }; cursor always advances over raw audit positionsSample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.attach",
"params": {
"session_id": "sess_01J...",
"since": 1
}
}// scope: read
const result = await client.request("session.attach", {
"session_id": "sess_01J...",
"since": 1
});# JSON-RPC over the local socket
carina call session.attach
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.attach","params":{"session_id":"sess_01J...","since":1}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#session.forkwrite
Params
| Field | Type |
|---|---|
| session_id | string |
| last_task_id | string? |
| through_turn | integer? >= 1 |
| before_first | boolean? |
| client_fork_id | ASCII token? 1-128 |
Result
Source-preserving Session with fork lineage; client_fork_id retries are idempotent
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.fork",
"params": {
"session_id": "sess_01J...",
"last_task_id": "Summarize module boundaries",
"through_turn": 1,
"before_first": true
}
}// scope: write
const result = await client.request("session.fork", {
"session_id": "sess_01J...",
"last_task_id": "Summarize module boundaries",
"through_turn": 1,
"before_first": true
});# JSON-RPC over the local socket
carina call session.fork
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.fork","params":{"session_id":"sess_01J...","last_task_id":"Summarize module boundaries","through_turn":1,"before_first":true}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.plan_modewrite
Params
| Field | Type |
|---|---|
| session_id | string |
| on | boolean |
Result
{ session_id: string, plan_mode: boolean }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.plan_mode",
"params": {
"session_id": "sess_01J...",
"on": true
}
}// scope: write
const result = await client.request("session.plan_mode", {
"session_id": "sess_01J...",
"on": true
});# JSON-RPC over the local socket
carina call session.plan_mode
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.plan_mode","params":{"session_id":"sess_01J...","on":true}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.model.getread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ session_id: string, next_model: string, next_reasoning_effort: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.model.get",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("session.model.get", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.model.get
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.model.get","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#session.model.setwritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| model | string |
| reasoning_effort | string? |
Result
{ session_id: string, next_model: string, next_reasoning_effort: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.model.set",
"params": {
"session_id": "sess_01J...",
"model": "<model>"
}
}// scope: write
const result = await client.request("session.model.set", {
"session_id": "sess_01J...",
"model": "<model>"
});# JSON-RPC over the local socket
carina call session.model.set
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.model.set","params":{"session_id":"sess_01J...","model":"<model>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.approve_planwrite
Params
| Field | Type |
|---|---|
| session_id | string |
| run_id | string? (expected latest completed typed Plan run) |
Result
{ session_id: string, plan_mode: false, approved: true, task: Task? }; a matching completed plan queues exactly one build task; omitted run_id preserves compatibilitySample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.approve_plan",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("session.approve_plan", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.approve_plan
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.approve_plan","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.add_diradmincontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| path | string |
Result
object
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.add_dir",
"params": {
"session_id": "sess_01J...",
"path": "/repo"
}
}// scope: admin
const result = await client.request("session.add_dir", {
"session_id": "sess_01J...",
"path": "/repo"
});# JSON-RPC over the local socket
carina call session.add_dir
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.add_dir","params":{"session_id":"sess_01J...","path":"/repo"}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#session.events.streamstreamremote
Params
| Field | Type |
|---|---|
| session_id | string |
| since | integer? >= 0 |
| event_mode | compat|canonical? (default compat) |
Result
{ subscription_id: string, cursor: integer, replayed: integer, event_mode: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.events.stream",
"params": {
"session_id": "sess_01J...",
"since": 1
}
}// scope: stream
const result = await client.request("session.events.stream", {
"session_id": "sess_01J...",
"since": 1
});# JSON-RPC over the local socket
carina call session.events.stream
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.events.stream","params":{"session_id":"sess_01J...","since":1}}Playground
streamMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#session.events.unsubscribestreamremote
Params
| Field | Type |
|---|---|
| subscription_id | string |
Result
{ unsubscribed: boolean }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.events.unsubscribe",
"params": {
"subscription_id": "<subscription_id>"
}
}// scope: stream
const result = await client.request("session.events.unsubscribe", {
"subscription_id": "<subscription_id>"
});# JSON-RPC over the local socket
carina call session.events.unsubscribe
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.events.unsubscribe","params":{"subscription_id":"<subscription_id>"}}Playground
streamMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
Checkpoint5
#session.checkpoint.listread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
Checkpoint[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.checkpoint.list",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("session.checkpoint.list", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call session.checkpoint.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.checkpoint.list","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#session.checkpoint.previewread
Params
| Field | Type |
|---|---|
| session_id | string |
| checkpoint_id | string |
Result
CheckpointPreview
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.checkpoint.preview",
"params": {
"session_id": "sess_01J...",
"checkpoint_id": "<checkpoint_id>"
}
}// scope: read
const result = await client.request("session.checkpoint.preview", {
"session_id": "sess_01J...",
"checkpoint_id": "<checkpoint_id>"
});# JSON-RPC over the local socket
carina call session.checkpoint.preview
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.checkpoint.preview","params":{"session_id":"sess_01J...","checkpoint_id":"<checkpoint_id>"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#session.checkpoint.summarizeread
Params
| Field | Type |
|---|---|
| session_id | string |
| checkpoint_id | string |
Result
CheckpointSummary
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.checkpoint.summarize",
"params": {
"session_id": "sess_01J...",
"checkpoint_id": "<checkpoint_id>"
}
}// scope: read
const result = await client.request("session.checkpoint.summarize", {
"session_id": "sess_01J...",
"checkpoint_id": "<checkpoint_id>"
});# JSON-RPC over the local socket
carina call session.checkpoint.summarize
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.checkpoint.summarize","params":{"session_id":"sess_01J...","checkpoint_id":"<checkpoint_id>"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#session.checkpoint.restorewritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| checkpoint_id | string |
| confirmed | boolean |
Result
CheckpointRestoreResult
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.checkpoint.restore",
"params": {
"session_id": "sess_01J...",
"checkpoint_id": "<checkpoint_id>",
"confirmed": true
}
}// scope: write
const result = await client.request("session.checkpoint.restore", {
"session_id": "sess_01J...",
"checkpoint_id": "<checkpoint_id>",
"confirmed": true
});# JSON-RPC over the local socket
carina call session.checkpoint.restore
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.checkpoint.restore","params":{"session_id":"sess_01J...","checkpoint_id":"<checkpoint_id>","confirmed":true}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#session.checkpoint.compactwritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| task_id | string? (paused task; defaults to latest paused task) |
Result
CheckpointCompactResult
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "session.checkpoint.compact",
"params": {
"session_id": "sess_01J...",
"task_id": "Summarize module boundaries"
}
}// scope: write
const result = await client.request("session.checkpoint.compact", {
"session_id": "sess_01J...",
"task_id": "Summarize module boundaries"
});# JSON-RPC over the local socket
carina call session.checkpoint.compact
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"session.checkpoint.compact","params":{"session_id":"sess_01J...","task_id":"Summarize module boundaries"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Execution13
#execution.startwrite
Params
| Field | Type |
|---|---|
| session_id | string |
| prompt | string |
| client_submission_id | string? |
| agent | string? |
| model | string? |
| reasoning_effort | string? |
| locale | en|zh|zh-Hant|ja|ko|es|fr? |
| token_budget | integer >= 0? |
| mode | background? |
| success_criteria | SuccessCheck[]? |
| output_schema | JSON Schema Draft 2020-12 object? |
| input_media_refs | MediaRef[]? max 4 |
Result
ExecutionRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.start",
"params": {
"session_id": "sess_01J...",
"prompt": "Summarize module boundaries",
"token_budget": 1,
"success_criteria": [],
"input_media_refs": []
}
}// scope: write
const result = await client.request("execution.start", {
"session_id": "sess_01J...",
"prompt": "Summarize module boundaries",
"token_budget": 1,
"success_criteria": [],
"input_media_refs": []
});# JSON-RPC over the local socket
carina call execution.start
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.start","params":{"session_id":"sess_01J...","prompt":"Summarize module boundaries","token_budget":1,"success_criteria":[],"input_media_refs":[]}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#execution.retrywrite
Params
| Field | Type |
|---|---|
| run_id | string |
| client_submission_id | ASCII token 1-128 |
| routing | original|current? (default original) |
| current_model | string? (required from current-route clients) |
| current_reasoning_effort | string? |
Result
ExecutionRun with retry_of_run_id; original run remains terminal
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.retry",
"params": {
"run_id": "<run_id>",
"client_submission_id": "<client_submission_id>"
}
}// scope: write
const result = await client.request("execution.retry", {
"run_id": "<run_id>",
"client_submission_id": "<client_submission_id>"
});# JSON-RPC over the local socket
carina call execution.retry
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.retry","params":{"run_id":"<run_id>","client_submission_id":"<client_submission_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#execution.resumewritecontrol-plane
Params
| Field | Type |
|---|---|
| run_id | string |
Result
ExecutionRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.resume",
"params": {
"run_id": "<run_id>"
}
}// scope: write
const result = await client.request("execution.resume", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call execution.resume
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.resume","params":{"run_id":"<run_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#execution.statusreadremote
Params
| Field | Type |
|---|---|
| run_id | string |
Result
ExecutionRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.status",
"params": {
"run_id": "<run_id>"
}
}// scope: read
const result = await client.request("execution.status", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call execution.status
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.status","params":{"run_id":"<run_id>"}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#execution.listreadremote
Params
| Field | Type |
|---|---|
| session_id | string? |
Result
ExecutionRun[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.list",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("execution.list", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call execution.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.list","params":{"session_id":"sess_01J..."}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#execution.resultreadremote
Params
| Field | Type |
|---|---|
| run_id | string |
Result
ExecutionRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.result",
"params": {
"run_id": "<run_id>"
}
}// scope: read
const result = await client.request("execution.result", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call execution.result
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.result","params":{"run_id":"<run_id>"}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#execution.cancelwrite
Params
| Field | Type |
|---|---|
| run_id | string |
Result
ExecutionRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.cancel",
"params": {
"run_id": "<run_id>"
}
}// scope: write
const result = await client.request("execution.cancel", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call execution.cancel
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.cancel","params":{"run_id":"<run_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#execution.interruptwrite
Params
| Field | Type |
|---|---|
| run_id | string |
| mode | soft? |
Result
{ requested: boolean, already_requested: boolean, run_id: string, mode: soft, safe_point: next_turn_boundary, active_tool: boolean, queue_depth: integer }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.interrupt",
"params": {
"run_id": "<run_id>"
}
}// scope: write
const result = await client.request("execution.interrupt", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call execution.interrupt
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.interrupt","params":{"run_id":"<run_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#execution.steerwrite
Params
| Field | Type |
|---|---|
| run_id | string |
| message | string |
| priority | normal|urgent? |
| steer_id | string? |
Result
{ queued: boolean, run_id: string, status: string, priority: string, steer_id: string, queue_depth: integer, safe_point: next_turn_boundary }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.steer",
"params": {
"run_id": "<run_id>",
"message": "<message>"
}
}// scope: write
const result = await client.request("execution.steer", {
"run_id": "<run_id>",
"message": "<message>"
});# JSON-RPC over the local socket
carina call execution.steer
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.steer","params":{"run_id":"<run_id>","message":"<message>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#execution.queue.listread
Params
| Field | Type |
|---|---|
| run_id | string |
| preview_cells | integer > 0? |
Result
{ run_id: string, queue_depth: integer, soft_interrupt_pending: boolean, items: { steer_id: string, priority: string, preview: string, index: integer }[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.queue.list",
"params": {
"run_id": "<run_id>",
"preview_cells": 1
}
}// scope: read
const result = await client.request("execution.queue.list", {
"run_id": "<run_id>",
"preview_cells": 1
});# JSON-RPC over the local socket
carina call execution.queue.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.queue.list","params":{"run_id":"<run_id>","preview_cells":1}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#execution.queue.dropwrite
Params
| Field | Type |
|---|---|
| run_id | string |
| steer_id | string |
Result
{ run_id: string, steer_id: string, dropped: boolean, queue_depth: integer }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.queue.drop",
"params": {
"run_id": "<run_id>",
"steer_id": "<steer_id>"
}
}// scope: write
const result = await client.request("execution.queue.drop", {
"run_id": "<run_id>",
"steer_id": "<steer_id>"
});# JSON-RPC over the local socket
carina call execution.queue.drop
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.queue.drop","params":{"run_id":"<run_id>","steer_id":"<steer_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#execution.budget.extendadmincontrol-plane
Params
| Field | Type |
|---|---|
| run_id | string |
| additional_tokens | integer > 0 |
| approver | string? |
Result
ExecutionRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.budget.extend",
"params": {
"run_id": "<run_id>",
"additional_tokens": 1
}
}// scope: admin
const result = await client.request("execution.budget.extend", {
"run_id": "<run_id>",
"additional_tokens": 1
});# JSON-RPC over the local socket
carina call execution.budget.extend
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.budget.extend","params":{"run_id":"<run_id>","additional_tokens":1}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#execution.btwwrite
Params
| Field | Type |
|---|---|
| run_id | string |
| question | string |
Result
{ answer: string, ephemeral: true }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "execution.btw",
"params": {
"run_id": "<run_id>",
"question": "<question>"
}
}// scope: write
const result = await client.request("execution.btw", {
"run_id": "<run_id>",
"question": "<question>"
});# JSON-RPC over the local socket
carina call execution.btw
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"execution.btw","params":{"run_id":"<run_id>","question":"<question>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Governance3
#governance.action.approveadmincontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| decision_id | string |
| approver | string? |
| role | string? |
| scope | once|session|project? |
Result
object
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "governance.action.approve",
"params": {
"session_id": "sess_01J...",
"decision_id": "<decision_id>"
}
}// scope: admin
const result = await client.request("governance.action.approve", {
"session_id": "sess_01J...",
"decision_id": "<decision_id>"
});# JSON-RPC over the local socket
carina call governance.action.approve
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"governance.action.approve","params":{"session_id":"sess_01J...","decision_id":"<decision_id>"}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#governance.action.denyadmincontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| decision_id | string |
| approver | string? |
| reason | string |
Result
PermissionDecision
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "governance.action.deny",
"params": {
"session_id": "sess_01J...",
"decision_id": "<decision_id>",
"reason": "<reason>"
}
}// scope: admin
const result = await client.request("governance.action.deny", {
"session_id": "sess_01J...",
"decision_id": "<decision_id>",
"reason": "<reason>"
});# JSON-RPC over the local socket
carina call governance.action.deny
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"governance.action.deny","params":{"session_id":"sess_01J...","decision_id":"<decision_id>","reason":"<reason>"}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#governance.approval.resolveadmincontrol-plane
Params
| Field | Type |
|---|---|
| decision_id | string |
| approve | boolean |
| approver | string? |
| scope | once|session|project? |
Result
object
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "governance.approval.resolve",
"params": {
"decision_id": "<decision_id>",
"approve": true
}
}// scope: admin
const result = await client.request("governance.approval.resolve", {
"decision_id": "<decision_id>",
"approve": true
});# JSON-RPC over the local socket
carina call governance.approval.resolve
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"governance.approval.resolve","params":{"decision_id":"<decision_id>","approve":true}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
Question2
#question.answerwrite
Params
| Field | Type |
|---|---|
| question_id | string |
| value | string |
Result
{ question_id: string, accepted: boolean, value: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "question.answer",
"params": {
"question_id": "<question_id>",
"value": "<value>"
}
}// scope: write
const result = await client.request("question.answer", {
"question_id": "<question_id>",
"value": "<value>"
});# JSON-RPC over the local socket
carina call question.answer
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"question.answer","params":{"question_id":"<question_id>","value":"<value>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#question.pendingread
Params
{}
Result
{ question_ids: string[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "question.pending",
"params": {}
}// scope: read
const result = await client.request("question.pending", {});# JSON-RPC over the local socket
carina call question.pending
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"question.pending","params":{}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
History1
#history.recentread
Params
| Field | Type |
|---|---|
| limit | number? |
| scope | session|workspace|global? |
| session_id | string? (required for session/workspace scope) |
Result
{ entries: string[], count: number, scope: session|workspace|global }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "history.recent",
"params": {
"limit": 1,
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("history.recent", {
"limit": 1,
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call history.recent
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"history.recent","params":{"limit":1,"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
Memory12
#memory.readread
Params
| Field | Type |
|---|---|
| session_id | string |
| target | memory|user? |
Result
MemoryRevisionRead
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.read",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("memory.read", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call memory.read
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.read","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#memory.listread
Params
| Field | Type |
|---|---|
| session_id | string |
| target | memory|user? |
Result
MemoryState
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.list",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("memory.list", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call memory.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.list","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#memory.contextread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ scope: MemoryScope, context: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.context",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("memory.context", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call memory.context
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.context","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#memory.searchread
Params
| Field | Type |
|---|---|
| session_id | string |
| query | string |
| target | memory|user? |
| limit | number? |
| mode | lexical|semantic|auto? |
| model | provider/model? |
Result
MemorySearchResult
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.search",
"params": {
"session_id": "sess_01J...",
"query": "<query>",
"limit": 1
}
}// scope: read
const result = await client.request("memory.search", {
"session_id": "sess_01J...",
"query": "<query>",
"limit": 1
});# JSON-RPC over the local socket
carina call memory.search
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.search","params":{"session_id":"sess_01J...","query":"<query>","limit":1}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#memory.statusread
Params
| Field | Type |
|---|---|
| session_id | string? |
Result
MemoryStatus
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.status",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("memory.status", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call memory.status
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.status","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#memory.writewritecontrol-plane
Params
| Field | Type |
|---|---|
| version | 1? |
| session_id | string |
| target | memory|user? |
| action | add|replace|remove|batch |
| content | string? |
| old_text | string? |
| operations | MemoryOperation[]? |
| expected_revision | string? |
| idempotency_key | string? |
Result
MemoryRevisionWrite
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.write",
"params": {
"session_id": "sess_01J...",
"action": "<action>",
"operations": []
}
}// scope: write
const result = await client.request("memory.write", {
"session_id": "sess_01J...",
"action": "<action>",
"operations": []
});# JSON-RPC over the local socket
carina call memory.write
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.write","params":{"session_id":"sess_01J...","action":"<action>","operations":[]}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#memory.handoffwritecontrol-plane
Params
| Field | Type |
|---|---|
| source_session_id | string |
| target_session_id | string |
| target | memory|user |
| expected_revision | string? |
| idempotency_key | string |
Result
MemoryRevisionWrite|PermissionDecision
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.handoff",
"params": {
"source_session_id": "sess_01J...",
"target_session_id": "sess_01J...",
"target": "<target>",
"idempotency_key": "<idempotency_key>"
}
}// scope: write
const result = await client.request("memory.handoff", {
"source_session_id": "sess_01J...",
"target_session_id": "sess_01J...",
"target": "<target>",
"idempotency_key": "<idempotency_key>"
});# JSON-RPC over the local socket
carina call memory.handoff
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.handoff","params":{"source_session_id":"sess_01J...","target_session_id":"sess_01J...","target":"<target>","idempotency_key":"<idempotency_key>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#memory.rollbackwritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| target | memory|user |
| revision | string |
| expected_revision | string |
| idempotency_key | string |
Result
MemoryRevisionWrite
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.rollback",
"params": {
"session_id": "sess_01J...",
"target": "<target>",
"revision": "<revision>",
"expected_revision": "<expected_revision>",
"idempotency_key": "<idempotency_key>"
}
}// scope: write
const result = await client.request("memory.rollback", {
"session_id": "sess_01J...",
"target": "<target>",
"revision": "<revision>",
"expected_revision": "<expected_revision>",
"idempotency_key": "<idempotency_key>"
});# JSON-RPC over the local socket
carina call memory.rollback
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.rollback","params":{"session_id":"sess_01J...","target":"<target>","revision":"<revision>","expected_revision":"<expected_revision>","idempotency_key":"<idempotency_key>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#memory.verifyread
Params
| Field | Type |
|---|---|
| session_id | string |
| target | memory|user |
| revision | string? |
Result
MemoryVerificationProof
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.verify",
"params": {
"session_id": "sess_01J...",
"target": "<target>"
}
}// scope: read
const result = await client.request("memory.verify", {
"session_id": "sess_01J...",
"target": "<target>"
});# JSON-RPC over the local socket
carina call memory.verify
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.verify","params":{"session_id":"sess_01J...","target":"<target>"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#memory.projection.authorizeadmincontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ projections: MemoryProjectionWriteResult[] }Sample request
Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#memory.projection.reseedadmincontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| document_id | string |
| remote_quiesced | boolean |
Result
{ document_id: string, status: blocked, requires_authorization: true, remote_state_known: false }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.projection.reseed",
"params": {
"session_id": "sess_01J...",
"document_id": "<document_id>",
"remote_quiesced": true
}
}// scope: admin
const result = await client.request("memory.projection.reseed", {
"session_id": "sess_01J...",
"document_id": "<document_id>",
"remote_quiesced": true
});# JSON-RPC over the local socket
carina call memory.projection.reseed
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.projection.reseed","params":{"session_id":"sess_01J...","document_id":"<document_id>","remote_quiesced":true}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#memory.projection.retryadmincontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| document_id | string |
Result
{ document_id: string, status: blocked, attempts: number, previous_error_code: string, requires_authorization: true }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "memory.projection.retry",
"params": {
"session_id": "sess_01J...",
"document_id": "<document_id>"
}
}// scope: admin
const result = await client.request("memory.projection.retry", {
"session_id": "sess_01J...",
"document_id": "<document_id>"
});# JSON-RPC over the local socket
carina call memory.projection.retry
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"memory.projection.retry","params":{"session_id":"sess_01J...","document_id":"<document_id>"}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
Schedule5
#schedule.createwritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| prompt | string |
| kind | at|every|cron |
| expression | string |
| model | string? |
| reasoning_effort | string? |
| agent | string? |
| mode | background? |
| concurrency_policy | forbid|queue|replace|allow? |
Result
Schedule
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "schedule.create",
"params": {
"session_id": "sess_01J...",
"prompt": "Summarize module boundaries",
"kind": "<kind>",
"expression": "<expression>"
}
}// scope: write
const result = await client.request("schedule.create", {
"session_id": "sess_01J...",
"prompt": "Summarize module boundaries",
"kind": "<kind>",
"expression": "<expression>"
});# JSON-RPC over the local socket
carina call schedule.create
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"schedule.create","params":{"session_id":"sess_01J...","prompt":"Summarize module boundaries","kind":"<kind>","expression":"<expression>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#schedule.listread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ schedules: Schedule[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "schedule.list",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("schedule.list", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call schedule.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"schedule.list","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#schedule.pausewritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| schedule_id | string |
Result
Schedule
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "schedule.pause",
"params": {
"session_id": "sess_01J...",
"schedule_id": "<schedule_id>"
}
}// scope: write
const result = await client.request("schedule.pause", {
"session_id": "sess_01J...",
"schedule_id": "<schedule_id>"
});# JSON-RPC over the local socket
carina call schedule.pause
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"schedule.pause","params":{"session_id":"sess_01J...","schedule_id":"<schedule_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#schedule.resumewritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| schedule_id | string |
Result
Schedule
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "schedule.resume",
"params": {
"session_id": "sess_01J...",
"schedule_id": "<schedule_id>"
}
}// scope: write
const result = await client.request("schedule.resume", {
"session_id": "sess_01J...",
"schedule_id": "<schedule_id>"
});# JSON-RPC over the local socket
carina call schedule.resume
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"schedule.resume","params":{"session_id":"sess_01J...","schedule_id":"<schedule_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#schedule.deletewritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| schedule_id | string |
Result
{ deleted: boolean, schedule_id: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "schedule.delete",
"params": {
"session_id": "sess_01J...",
"schedule_id": "<schedule_id>"
}
}// scope: write
const result = await client.request("schedule.delete", {
"session_id": "sess_01J...",
"schedule_id": "<schedule_id>"
});# JSON-RPC over the local socket
carina call schedule.delete
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"schedule.delete","params":{"session_id":"sess_01J...","schedule_id":"<schedule_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Goal7
#goal.getread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ goal: SessionGoal? }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "goal.get",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("goal.get", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call goal.get
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"goal.get","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#goal.setwritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| objective | string |
| status | active|paused|blocked|budget_limited|usage_limited|complete? |
| token_budget | integer >= 0? |
| max_continuations | integer 1..32? |
| success_criteria | SuccessCheck[]? |
| auto_continue | boolean? default false |
Result
SessionGoal
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "goal.set",
"params": {
"session_id": "sess_01J...",
"objective": "<objective>",
"token_budget": 1,
"max_continuations": 1,
"success_criteria": [],
"auto_continue": true
}
}// scope: write
const result = await client.request("goal.set", {
"session_id": "sess_01J...",
"objective": "<objective>",
"token_budget": 1,
"max_continuations": 1,
"success_criteria": [],
"auto_continue": true
});# JSON-RPC over the local socket
carina call goal.set
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"goal.set","params":{"session_id":"sess_01J...","objective":"<objective>","token_budget":1,"max_continuations":1,"success_criteria":[],"auto_continue":true}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#goal.clearwritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ cleared: boolean, session_id: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "goal.clear",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("goal.clear", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call goal.clear
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"goal.clear","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#goal.pausewritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
Result
SessionGoal
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "goal.pause",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("goal.pause", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call goal.pause
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"goal.pause","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#goal.resumewritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
Result
SessionGoal
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "goal.resume",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("goal.resume", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call goal.resume
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"goal.resume","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#goal.completewritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
Result
SessionGoal
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "goal.complete",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("goal.complete", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call goal.complete
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"goal.complete","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#goal.continuewritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
Result
Task
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "goal.continue",
"params": {
"session_id": "sess_01J..."
}
}// scope: write
const result = await client.request("goal.continue", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call goal.continue
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"goal.continue","params":{"session_id":"sess_01J..."}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Workflow8
#workflow.runwritecontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| workflow | string |
| input | string? |
Result
WorkflowRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workflow.run",
"params": {
"session_id": "sess_01J...",
"workflow": "<workflow>"
}
}// scope: write
const result = await client.request("workflow.run", {
"session_id": "sess_01J...",
"workflow": "<workflow>"
});# JSON-RPC over the local socket
carina call workflow.run
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workflow.run","params":{"session_id":"sess_01J...","workflow":"<workflow>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workflow.listreadremote
Params
{}
Result
WorkflowRun[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workflow.list",
"params": {}
}// scope: read
const result = await client.request("workflow.list", {});# JSON-RPC over the local socket
carina call workflow.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workflow.list","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#workflow.detailreadremote
Params
| Field | Type |
|---|---|
| run_id | string |
Result
WorkflowRunDetail
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workflow.detail",
"params": {
"run_id": "<run_id>"
}
}// scope: read
const result = await client.request("workflow.detail", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call workflow.detail
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workflow.detail","params":{"run_id":"<run_id>"}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#workflow.pausewritecontrol-plane
Params
| Field | Type |
|---|---|
| run_id | string |
Result
WorkflowRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workflow.pause",
"params": {
"run_id": "<run_id>"
}
}// scope: write
const result = await client.request("workflow.pause", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call workflow.pause
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workflow.pause","params":{"run_id":"<run_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workflow.resumewritecontrol-plane
Params
| Field | Type |
|---|---|
| run_id | string |
Result
WorkflowRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workflow.resume",
"params": {
"run_id": "<run_id>"
}
}// scope: write
const result = await client.request("workflow.resume", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call workflow.resume
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workflow.resume","params":{"run_id":"<run_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workflow.stopwritecontrol-plane
Params
| Field | Type |
|---|---|
| run_id | string |
Result
WorkflowRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workflow.stop",
"params": {
"run_id": "<run_id>"
}
}// scope: write
const result = await client.request("workflow.stop", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call workflow.stop
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workflow.stop","params":{"run_id":"<run_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workflow.restartwritecontrol-plane
Params
| Field | Type |
|---|---|
| run_id | string |
Result
WorkflowRun
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workflow.restart",
"params": {
"run_id": "<run_id>"
}
}// scope: write
const result = await client.request("workflow.restart", {
"run_id": "<run_id>"
});# JSON-RPC over the local socket
carina call workflow.restart
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workflow.restart","params":{"run_id":"<run_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workflow.savewritecontrol-plane
Params
| Field | Type |
|---|---|
| run_id | string |
| name | string |
Result
{ path: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workflow.save",
"params": {
"run_id": "<run_id>",
"name": "<name>"
}
}// scope: write
const result = await client.request("workflow.save", {
"run_id": "<run_id>",
"name": "<name>"
});# JSON-RPC over the local socket
carina call workflow.save
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workflow.save","params":{"run_id":"<run_id>","name":"<name>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Channel5
#channel.sender.registeradmincontrol-plane
Params
| Field | Type |
|---|---|
| id | string |
| secret_env | CARINA_CHANNEL_* |
| sessions | string[] |
| kinds | string[] |
| can_relay_permission | boolean? |
Result
{ registered: boolean, sender_id: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "channel.sender.register",
"params": {
"id": "<id>",
"secret_env": "<secret_env>",
"sessions": "sess_01J...",
"kinds": [],
"can_relay_permission": true
}
}// scope: admin
const result = await client.request("channel.sender.register", {
"id": "<id>",
"secret_env": "<secret_env>",
"sessions": "sess_01J...",
"kinds": [],
"can_relay_permission": true
});# JSON-RPC over the local socket
carina call channel.sender.register
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"channel.sender.register","params":{"id":"<id>","secret_env":"<secret_env>","sessions":"sess_01J...","kinds":[],"can_relay_permission":true}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#channel.sender.listadmin
Params
{}
Result
ChannelSender[] (secrets omitted)
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "channel.sender.list",
"params": {}
}// scope: admin
const result = await client.request("channel.sender.list", {});# JSON-RPC over the local socket
carina call channel.sender.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"channel.sender.list","params":{}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#channel.event.injectadminremotecontrol-plane
Params
| Field | Type |
|---|---|
| event | ChannelEvent |
| signature | hex-hmac-sha256 |
Result
ChannelReceipt
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "channel.event.inject",
"params": {
"event": "<event>",
"signature": "<signature>"
}
}// scope: admin
const result = await client.request("channel.event.inject", {
"event": "<event>",
"signature": "<signature>"
});# JSON-RPC over the local socket
carina call channel.event.inject
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"channel.event.inject","params":{"event":"<event>","signature":"<signature>"}}Playground
adminMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#channel.event.pendingadmin
Params
{}
Result
{ incidents: ChannelIncident[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "channel.event.pending",
"params": {}
}// scope: admin
const result = await client.request("channel.event.pending", {});# JSON-RPC over the local socket
carina call channel.event.pending
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"channel.event.pending","params":{}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#channel.event.reconcileadmincontrol-plane
Params
| Field | Type |
|---|---|
| sender_id | string |
| event_id | string |
| outcome | executed|not_executed |
| confirmed | boolean |
Result
ChannelReconcileResult
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "channel.event.reconcile",
"params": {
"sender_id": "<sender_id>",
"event_id": "<event_id>",
"outcome": "<outcome>",
"confirmed": true
}
}// scope: admin
const result = await client.request("channel.event.reconcile", {
"sender_id": "<sender_id>",
"event_id": "<event_id>",
"outcome": "<outcome>",
"confirmed": true
});# JSON-RPC over the local socket
carina call channel.event.reconcile
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"channel.event.reconcile","params":{"sender_id":"<sender_id>","event_id":"<event_id>","outcome":"<outcome>","confirmed":true}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
Extension6
#extension.installadmincontrol-plane
Params
| Field | Type |
|---|---|
| source | trusted local directory |
Result
InstalledExtension
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "extension.install",
"params": {
"source": "<source>"
}
}// scope: admin
const result = await client.request("extension.install", {
"source": "<source>"
});# JSON-RPC over the local socket
carina call extension.install
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"extension.install","params":{"source":"<source>"}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#extension.listread
Params
| Field | Type |
|---|---|
| workspace_root | string? absolute path; when present, project-tier disables from <workspace_root>/.carina/extensions.json are merged into effective_enabled per request (disable-only, never persisted) |
Result
ExtensionInventory
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "extension.list",
"params": {
"workspace_root": "/repo"
}
}// scope: read
const result = await client.request("extension.list", {
"workspace_root": "/repo"
});# JSON-RPC over the local socket
carina call extension.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"extension.list","params":{"workspace_root":"/repo"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#extension.enableadmincontrol-plane
Params
| Field | Type |
|---|---|
| name | string |
Result
InstalledExtension
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "extension.enable",
"params": {
"name": "<name>"
}
}// scope: admin
const result = await client.request("extension.enable", {
"name": "<name>"
});# JSON-RPC over the local socket
carina call extension.enable
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"extension.enable","params":{"name":"<name>"}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#extension.disableadmincontrol-plane
Params
| Field | Type |
|---|---|
| name | string |
Result
InstalledExtension
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "extension.disable",
"params": {
"name": "<name>"
}
}// scope: admin
const result = await client.request("extension.disable", {
"name": "<name>"
});# JSON-RPC over the local socket
carina call extension.disable
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"extension.disable","params":{"name":"<name>"}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#extension.updateadmincontrol-plane
Params
| Field | Type |
|---|---|
| name | string |
Result
InstalledExtension
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "extension.update",
"params": {
"name": "<name>"
}
}// scope: admin
const result = await client.request("extension.update", {
"name": "<name>"
});# JSON-RPC over the local socket
carina call extension.update
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"extension.update","params":{"name":"<name>"}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#extension.safe_modeadmincontrol-plane
Params
| Field | Type |
|---|---|
| on | boolean |
Result
ExtensionInventory
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "extension.safe_mode",
"params": {
"on": true
}
}// scope: admin
const result = await client.request("extension.safe_mode", {
"on": true
});# JSON-RPC over the local socket
carina call extension.safe_mode
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"extension.safe_mode","params":{"on":true}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
Telemetry1
#telemetry.statusreadremote
Params
{}
Result
{ enabled: boolean, format: carina-telemetry-json-v1, otlp: false }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "telemetry.status",
"params": {}
}// scope: read
const result = await client.request("telemetry.status", {});# JSON-RPC over the local socket
carina call telemetry.status
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"telemetry.status","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
Artifact3
#artifact.statread
Params
| Field | Type |
|---|---|
| session_id | string |
| run_id | string? |
| call_id | string? |
| artifact_id | sha256 |
Result
ArtifactMetadata
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "artifact.stat",
"params": {
"session_id": "sess_01J...",
"artifact_id": "<artifact_id>"
}
}// scope: read
const result = await client.request("artifact.stat", {
"session_id": "sess_01J...",
"artifact_id": "<artifact_id>"
});# JSON-RPC over the local socket
carina call artifact.stat
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"artifact.stat","params":{"session_id":"sess_01J...","artifact_id":"<artifact_id>"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#artifact.readread
Params
| Field | Type |
|---|---|
| session_id | string |
| run_id | string? |
| call_id | string? |
| artifact_id | sha256 |
| offset | integer? >= 0 |
| limit | integer? 0..1048576 |
Result
{ metadata: ArtifactMetadata, offset: integer, next_offset: integer, eof: boolean, content_base64: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "artifact.read",
"params": {
"session_id": "sess_01J...",
"artifact_id": "<artifact_id>",
"offset": 1,
"limit": 1
}
}// scope: read
const result = await client.request("artifact.read", {
"session_id": "sess_01J...",
"artifact_id": "<artifact_id>",
"offset": 1,
"limit": 1
});# JSON-RPC over the local socket
carina call artifact.read
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"artifact.read","params":{"session_id":"sess_01J...","artifact_id":"<artifact_id>","offset":1,"limit":1}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#artifact.uploadwrite
Params
| Field | Type |
|---|---|
| session_id | string |
| upload_id | string |
| chunk_index | integer >= 0 |
| content_base64 | base64 <= 524288 decoded bytes |
| final | boolean |
| sha256 | sha256 |
| total_bytes | integer 1..4194304 |
| media_type | image/png|image/jpeg|image/gif|image/webp |
| origin | string |
Result
MediaRef on final chunk; upload receipt otherwise
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "artifact.upload",
"params": {
"session_id": "sess_01J...",
"upload_id": "<upload_id>",
"chunk_index": 1,
"content_base64": "<content_base64>",
"final": true,
"sha256": "<sha256>",
"total_bytes": 1,
"media_type": "<media_type>",
"origin": "<origin>"
}
}// scope: write
const result = await client.request("artifact.upload", {
"session_id": "sess_01J...",
"upload_id": "<upload_id>",
"chunk_index": 1,
"content_base64": "<content_base64>",
"final": true,
"sha256": "<sha256>",
"total_bytes": 1,
"media_type": "<media_type>",
"origin": "<origin>"
});# JSON-RPC over the local socket
carina call artifact.upload
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"artifact.upload","params":{"session_id":"sess_01J...","upload_id":"<upload_id>","chunk_index":1,"content_base64":"<content_base64>","final":true,"sha256":"<sha256>","total_bytes":1,"media_type":"<media_type>","origin":"<origin>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Context5
#context.statusread
Params
{}
Result
ContextEngineStatus
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "context.status",
"params": {}
}// scope: read
const result = await client.request("context.status", {});# JSON-RPC over the local socket
carina call context.status
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"context.status","params":{}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#context.doctorread
Params
{}
Result
{ ok: boolean, status: ContextEngineStatus }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "context.doctor",
"params": {}
}// scope: read
const result = await client.request("context.doctor", {});# JSON-RPC over the local socket
carina call context.doctor
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"context.doctor","params":{}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#context.statsread
Params
{}
Result
ContextEngineStats
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "context.stats",
"params": {}
}// scope: read
const result = await client.request("context.stats", {});# JSON-RPC over the local socket
carina call context.stats
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"context.stats","params":{}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#context.summaryread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
ContextSummary
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "context.summary",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("context.summary", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call context.summary
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"context.summary","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#context.compresswrite
Params
| Field | Type |
|---|---|
| content | string |
| session_id | string? |
| task_id | string? |
| turn | number? |
| kind | string? |
| tool | string? |
| pinned | boolean? |
Result
ContextCompressResponse
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "context.compress",
"params": {
"content": "<content>",
"session_id": "sess_01J...",
"task_id": "Summarize module boundaries",
"turn": 1,
"pinned": true
}
}// scope: write
const result = await client.request("context.compress", {
"content": "<content>",
"session_id": "sess_01J...",
"task_id": "Summarize module boundaries",
"turn": 1,
"pinned": true
});# JSON-RPC over the local socket
carina call context.compress
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"context.compress","params":{"content":"<content>","session_id":"sess_01J...","task_id":"Summarize module boundaries","turn":1,"pinned":true}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Workspace18
#worktree.createwritecontrol-plane
Params
| Field | Type |
|---|---|
| id | string |
| repo_root | string |
| base_ref | string? |
| branch | string? |
| owner | string? |
Result
Worktree
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worktree.create",
"params": {
"id": "<id>",
"repo_root": "/repo"
}
}// scope: write
const result = await client.request("worktree.create", {
"id": "<id>",
"repo_root": "/repo"
});# JSON-RPC over the local socket
carina call worktree.create
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worktree.create","params":{"id":"<id>","repo_root":"/repo"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#worktree.listread
Params
{}
Result
Worktree[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worktree.list",
"params": {}
}// scope: read
const result = await client.request("worktree.list", {});# JSON-RPC over the local socket
carina call worktree.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worktree.list","params":{}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#worktree.enterwritecontrol-plane
Params
| Field | Type |
|---|---|
| id | string |
| owner | string |
Result
Worktree
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worktree.enter",
"params": {
"id": "<id>",
"owner": "<owner>"
}
}// scope: write
const result = await client.request("worktree.enter", {
"id": "<id>",
"owner": "<owner>"
});# JSON-RPC over the local socket
carina call worktree.enter
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worktree.enter","params":{"id":"<id>","owner":"<owner>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#worktree.lockwritecontrol-plane
Params
| Field | Type |
|---|---|
| id | string |
| owner | string |
Result
Worktree
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worktree.lock",
"params": {
"id": "<id>",
"owner": "<owner>"
}
}// scope: write
const result = await client.request("worktree.lock", {
"id": "<id>",
"owner": "<owner>"
});# JSON-RPC over the local socket
carina call worktree.lock
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worktree.lock","params":{"id":"<id>","owner":"<owner>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#worktree.unlockwritecontrol-plane
Params
| Field | Type |
|---|---|
| id | string |
| owner | string |
Result
Worktree
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worktree.unlock",
"params": {
"id": "<id>",
"owner": "<owner>"
}
}// scope: write
const result = await client.request("worktree.unlock", {
"id": "<id>",
"owner": "<owner>"
});# JSON-RPC over the local socket
carina call worktree.unlock
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worktree.unlock","params":{"id":"<id>","owner":"<owner>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#worktree.cleanupwritecontrol-plane
Params
| Field | Type |
|---|---|
| id | string |
| owner | string |
| force | boolean? |
Result
{ removed: boolean, id: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worktree.cleanup",
"params": {
"id": "<id>",
"owner": "<owner>",
"force": true
}
}// scope: write
const result = await client.request("worktree.cleanup", {
"id": "<id>",
"owner": "<owner>",
"force": true
});# JSON-RPC over the local socket
carina call worktree.cleanup
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worktree.cleanup","params":{"id":"<id>","owner":"<owner>","force":true}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workspace.treeread
Params
| Field | Type |
|---|---|
| session_id | string |
| max_depth | number? |
Result
TreeNode[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.tree",
"params": {
"session_id": "sess_01J...",
"max_depth": 1
}
}// scope: read
const result = await client.request("workspace.tree", {
"session_id": "sess_01J...",
"max_depth": 1
});# JSON-RPC over the local socket
carina call workspace.tree
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.tree","params":{"session_id":"sess_01J...","max_depth":1}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#workspace.diffread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
WorkspaceDiffResponse
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.diff",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("workspace.diff", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call workspace.diff
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.diff","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#workspace.searchread
Params
| Field | Type |
|---|---|
| session_id | string |
| pattern | string |
| glob | string? |
Result
Match[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.search",
"params": {
"session_id": "sess_01J...",
"pattern": "<pattern>"
}
}// scope: read
const result = await client.request("workspace.search", {
"session_id": "sess_01J...",
"pattern": "<pattern>"
});# JSON-RPC over the local socket
carina call workspace.search
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.search","params":{"session_id":"sess_01J...","pattern":"<pattern>"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#workspace.file.getread
Params
| Field | Type |
|---|---|
| session_id | string |
| path | clean workspace-relative string |
Result
{ content: UTF-8 text <= 1 MiB, hash: sha256 string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.file.get",
"params": {
"session_id": "sess_01J...",
"path": "/repo"
}
}// scope: read
const result = await client.request("workspace.file.get", {
"session_id": "sess_01J...",
"path": "/repo"
});# JSON-RPC over the local socket
carina call workspace.file.get
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.file.get","params":{"session_id":"sess_01J...","path":"/repo"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#workspace.trustadmincontrol-plane
Params
| Field | Type |
|---|---|
| session_id | string |
| trusted | boolean |
Result
object
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.trust",
"params": {
"session_id": "sess_01J...",
"trusted": true
}
}// scope: admin
const result = await client.request("workspace.trust", {
"session_id": "sess_01J...",
"trusted": true
});# JSON-RPC over the local socket
carina call workspace.trust
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.trust","params":{"session_id":"sess_01J...","trusted":true}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#workspace.patch.proposewrite
Params
| Field | Type |
|---|---|
| session_id | string |
| diff | string? |
| files | PatchFile[]? |
| reason | string? |
Result
PatchTransaction
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.patch.propose",
"params": {
"session_id": "sess_01J...",
"files": []
}
}// scope: write
const result = await client.request("workspace.patch.propose", {
"session_id": "sess_01J...",
"files": []
});# JSON-RPC over the local socket
carina call workspace.patch.propose
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.patch.propose","params":{"session_id":"sess_01J...","files":[]}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workspace.patch.applywrite
Params
| Field | Type |
|---|---|
| session_id | string? |
| patch_id | string |
Result
PatchTransaction
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.patch.apply",
"params": {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
}
}// scope: write
const result = await client.request("workspace.patch.apply", {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
});# JSON-RPC over the local socket
carina call workspace.patch.apply
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.patch.apply","params":{"session_id":"sess_01J...","patch_id":"<patch_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workspace.patch.verifywrite
Params
| Field | Type |
|---|---|
| session_id | string |
| patch_id | string |
Result
PatchTransaction
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.patch.verify",
"params": {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
}
}// scope: write
const result = await client.request("workspace.patch.verify", {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
});# JSON-RPC over the local socket
carina call workspace.patch.verify
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.patch.verify","params":{"session_id":"sess_01J...","patch_id":"<patch_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workspace.patch.rollback.previewread
Params
| Field | Type |
|---|---|
| session_id | string |
| patch_id | string |
Result
PatchRollbackPreview
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.patch.rollback.preview",
"params": {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
}
}// scope: read
const result = await client.request("workspace.patch.rollback.preview", {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
});# JSON-RPC over the local socket
carina call workspace.patch.rollback.preview
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.patch.rollback.preview","params":{"session_id":"sess_01J...","patch_id":"<patch_id>"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#workspace.patch.rollbackwrite
Params
| Field | Type |
|---|---|
| session_id | string? |
| patch_id | string |
Result
PatchTransaction
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.patch.rollback",
"params": {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
}
}// scope: write
const result = await client.request("workspace.patch.rollback", {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
});# JSON-RPC over the local socket
carina call workspace.patch.rollback
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.patch.rollback","params":{"session_id":"sess_01J...","patch_id":"<patch_id>"}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
#workspace.patch.listread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
PatchTransaction[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.patch.list",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("workspace.patch.list", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call workspace.patch.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.patch.list","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#workspace.patch.showread
Params
| Field | Type |
|---|---|
| session_id | string |
| patch_id | string |
Result
PatchTransaction
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "workspace.patch.show",
"params": {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
}
}// scope: read
const result = await client.request("workspace.patch.show", {
"session_id": "sess_01J...",
"patch_id": "<patch_id>"
});# JSON-RPC over the local socket
carina call workspace.patch.show
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"workspace.patch.show","params":{"session_id":"sess_01J...","patch_id":"<patch_id>"}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
Mcp1
#mcp.inventoryread
Params
| Field | Type |
|---|---|
| verbose | boolean? |
Result
{ servers: MCPInventoryServer[], count: integer } (secret-free; private servers omitted)Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "mcp.inventory",
"params": {
"verbose": true
}
}// scope: read
const result = await client.request("mcp.inventory", {
"verbose": true
});# JSON-RPC over the local socket
carina call mcp.inventory
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"mcp.inventory","params":{"verbose":true}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
Command2
#command.listreadremote
Params
| Field | Type |
|---|---|
| session_id | string? |
| workspace_root | string? |
Result
{ revision: string, commands: Command[] }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "command.list",
"params": {
"session_id": "sess_01J...",
"workspace_root": "/repo"
}
}// scope: read
const result = await client.request("command.list", {
"session_id": "sess_01J...",
"workspace_root": "/repo"
});# JSON-RPC over the local socket
carina call command.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"command.list","params":{"session_id":"sess_01J...","workspace_root":"/repo"}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#command.execwrite
Params
| Field | Type |
|---|---|
| session_id | string |
| task_id | string? |
| argv | string[] |
Result
{ decision: PermissionDecision, result: CommandResult? }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "command.exec",
"params": {
"session_id": "sess_01J...",
"task_id": "Summarize module boundaries",
"argv": []
}
}// scope: write
const result = await client.request("command.exec", {
"session_id": "sess_01J...",
"task_id": "Summarize module boundaries",
"argv": []
});# JSON-RPC over the local socket
carina call command.exec
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"command.exec","params":{"session_id":"sess_01J...","task_id":"Summarize module boundaries","argv":[]}}Playground
writeThis method is not remotely exposed; use Mock or the local CLI.
Audit3
#audit.reportreadremote
Params
| Field | Type |
|---|---|
| session_id | string |
Result
AuditReport
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "audit.report",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("audit.report", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call audit.report
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"audit.report","params":{"session_id":"sess_01J..."}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#audit.exportreadremote
Params
| Field | Type |
|---|---|
| session_id | string |
| format | jsonl|sqlite? |
Result
object
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "audit.export",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("audit.export", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call audit.export
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"audit.export","params":{"session_id":"sess_01J..."}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#audit.verifyreadremote
Params
| Field | Type |
|---|---|
| session_id | string |
Result
AuditVerification
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "audit.verify",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("audit.verify", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call audit.verify
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"audit.verify","params":{"session_id":"sess_01J..."}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
Profile2
#profile.describereadremote
Params
| Field | Type |
|---|---|
| profile | string? |
| session_id | string? |
Result
PermissionProfile
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "profile.describe",
"params": {
"profile": "safe-edit",
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("profile.describe", {
"profile": "safe-edit",
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call profile.describe
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"profile.describe","params":{"profile":"safe-edit","session_id":"sess_01J..."}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#profile.inventoryread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ effective: PermissionProfile, profile: string, source: string, choices: object[], mutation: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "profile.inventory",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("profile.inventory", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call profile.inventory
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"profile.inventory","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
Product Control3
#config.inventoryread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ effective: object, sources: object, choices: object, mutation: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "config.inventory",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("config.inventory", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call config.inventory
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"config.inventory","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#skill.inventoryread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ skills: object[], count: integer, mutation: string }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "skill.inventory",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("skill.inventory", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call skill.inventory
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"skill.inventory","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#hook.inventoryread
Params
| Field | Type |
|---|---|
| session_id | string |
Result
{ hooks: object[], count: integer, safe_mode: boolean, supported_events: string[], commands_redacted: true }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "hook.inventory",
"params": {
"session_id": "sess_01J..."
}
}// scope: read
const result = await client.request("hook.inventory", {
"session_id": "sess_01J..."
});# JSON-RPC over the local socket
carina call hook.inventory
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"hook.inventory","params":{"session_id":"sess_01J..."}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
Secret2
#secret.grantadmincontrol-plane
Params
object
Result
object
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "secret.grant",
"params": {}
}// scope: admin
const result = await client.request("secret.grant", {});# JSON-RPC over the local socket
carina call secret.grant
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"secret.grant","params":{}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#secret.requestadmincontrol-plane
Params
object
Result
object
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "secret.request",
"params": {}
}// scope: admin
const result = await client.request("secret.request", {});# JSON-RPC over the local socket
carina call secret.request
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"secret.request","params":{}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
Plugin2
#plugin.inspectread
Params
object
Result
object
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "plugin.inspect",
"params": {}
}// scope: read
const result = await client.request("plugin.inspect", {});# JSON-RPC over the local socket
carina call plugin.inspect
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"plugin.inspect","params":{}}Playground
readThis method is not remotely exposed; use Mock or the local CLI.
#plugin.runadmincontrol-plane
Params
object
Result
object
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "plugin.run",
"params": {}
}// scope: admin
const result = await client.request("plugin.run", {});# JSON-RPC over the local socket
carina call plugin.run
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"plugin.run","params":{}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
Worker4
#worker.registerworkerremote
Params
| Field | Type |
|---|---|
| name | string |
| kind | remote|ci|sandbox? |
| process_tree_containment | none|unix_pgrp_v1|windows_job_v1 |
| pools | string[]? (worker_pool:<tag> capability tags, max 8, each 1-64 lowercase alnum/dash/underscore; matches a streaming workflow step's affinity.worker_pool) |
Result
{ worker_id: string, worker_credential: string } (credential returned once; server stores only a hash)Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worker.register",
"params": {
"name": "<name>",
"process_tree_containment": "<process_tree_containment>",
"pools": []
}
}// scope: worker
const result = await client.request("worker.register", {
"name": "<name>",
"process_tree_containment": "<process_tree_containment>",
"pools": []
});# JSON-RPC over the local socket
carina call worker.register
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worker.register","params":{"name":"<name>","process_tree_containment":"<process_tree_containment>","pools":[]}}Playground
workerMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#worker.heartbeatworkerremote
Params
| Field | Type |
|---|---|
| worker_id | string |
| worker_credential | string |
Result
{ ok: boolean }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worker.heartbeat",
"params": {
"worker_id": "<worker_id>",
"worker_credential": "<worker_credential>"
}
}// scope: worker
const result = await client.request("worker.heartbeat", {
"worker_id": "<worker_id>",
"worker_credential": "<worker_credential>"
});# JSON-RPC over the local socket
carina call worker.heartbeat
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worker.heartbeat","params":{"worker_id":"<worker_id>","worker_credential":"<worker_credential>"}}Playground
workerMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#worker.listreadremote
Params
{}
Result
Worker[]
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worker.list",
"params": {}
}// scope: read
const result = await client.request("worker.list", {});# JSON-RPC over the local socket
carina call worker.list
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worker.list","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#worker.revokeworkerremotecontrol-plane
Params
| Field | Type |
|---|---|
| worker_id | string |
| worker_credential | string |
Result
{ ok: boolean }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "worker.revoke",
"params": {
"worker_id": "<worker_id>",
"worker_credential": "<worker_credential>"
}
}// scope: worker
const result = await client.request("worker.revoke", {
"worker_id": "<worker_id>",
"worker_credential": "<worker_credential>"
});# JSON-RPC over the local socket
carina call worker.revoke
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"worker.revoke","params":{"worker_id":"<worker_id>","worker_credential":"<worker_credential>"}}Playground
workerMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
Backpressure2
#backpressure.reportworkerremote
Params
PressureReport + { worker_credential: string }
Result
{ accepted: boolean, report: PressureReport, directive: ThrottleDirective }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "backpressure.report",
"params": {}
}// scope: worker
const result = await client.request("backpressure.report", {});# JSON-RPC over the local socket
carina call backpressure.report
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"backpressure.report","params":{}}Playground
workerMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#backpressure.statusreadremote
Params
{}
Result
BackpressureStatus
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "backpressure.status",
"params": {}
}// scope: read
const result = await client.request("backpressure.status", {});# JSON-RPC over the local socket
carina call backpressure.status
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"backpressure.status","params":{}}Playground
readMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
Work5
#work.submitadmincontrol-plane
Params
WorkSubmission + { required_worker_capabilities: string[]? }
Result
WorkItem
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "work.submit",
"params": {}
}// scope: admin
const result = await client.request("work.submit", {});# JSON-RPC over the local socket
carina call work.submit
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"work.submit","params":{}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#work.canceladmincontrol-plane
Params
| Field | Type |
|---|---|
| task_id | string |
Result
Task
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "work.cancel",
"params": {
"task_id": "Summarize module boundaries"
}
}// scope: admin
const result = await client.request("work.cancel", {
"task_id": "Summarize module boundaries"
});# JSON-RPC over the local socket
carina call work.cancel
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"work.cancel","params":{"task_id":"Summarize module boundaries"}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#work.pollworkerremote
Params
| Field | Type |
|---|---|
| worker_id | string |
| worker_credential | string |
| ttl_ms | number? |
Result
WorkLease?
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "work.poll",
"params": {
"worker_id": "<worker_id>",
"worker_credential": "<worker_credential>",
"ttl_ms": 1
}
}// scope: worker
const result = await client.request("work.poll", {
"worker_id": "<worker_id>",
"worker_credential": "<worker_credential>",
"ttl_ms": 1
});# JSON-RPC over the local socket
carina call work.poll
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"work.poll","params":{"worker_id":"<worker_id>","worker_credential":"<worker_credential>","ttl_ms":1}}Playground
workerMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#work.renewworkerremote
Params
| Field | Type |
|---|---|
| worker_id | string |
| worker_credential | string |
| task_id | string |
| lease_generation | integer >= 1 |
| ttl_ms | number? |
Result
{ ok: boolean, cancelled: boolean? }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "work.renew",
"params": {
"worker_id": "<worker_id>",
"worker_credential": "<worker_credential>",
"task_id": "Summarize module boundaries",
"lease_generation": 1,
"ttl_ms": 1
}
}// scope: worker
const result = await client.request("work.renew", {
"worker_id": "<worker_id>",
"worker_credential": "<worker_credential>",
"task_id": "Summarize module boundaries",
"lease_generation": 1,
"ttl_ms": 1
});# JSON-RPC over the local socket
carina call work.renew
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"work.renew","params":{"worker_id":"<worker_id>","worker_credential":"<worker_credential>","task_id":"Summarize module boundaries","lease_generation":1,"ttl_ms":1}}Playground
workerMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
#work.reportworkerremote
Params
WorkReport + { worker_credential: string, lease_generation: integer >= 1, usage: {input_tokens: integer >= 0, output_tokens: integer >= 0, cache_read_tokens: integer >= 0?, cache_write_tokens: integer >= 0?}?, channel_messages: [{channel: string, payload: any}]? (max 64; see docs/worker-executor.md) }
Result
{ ok: boolean }Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "work.report",
"params": {}
}// scope: worker
const result = await client.request("work.report", {});# JSON-RPC over the local socket
carina call work.report
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"work.report","params":{}}Playground
workerMock works without a daemon. Live completes gateway.hello before sending this JSON-RPC request.
Debug2
#debug.snapshotadmin
Params
| Field | Type |
|---|---|
| limit | number? |
| component | string? |
Result
DebugSnapshot
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "debug.snapshot",
"params": {
"limit": 1
}
}// scope: admin
const result = await client.request("debug.snapshot", {
"limit": 1
});# JSON-RPC over the local socket
carina call debug.snapshot
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"debug.snapshot","params":{"limit":1}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
#debug.correlation.searchadmin
Params
| Field | Type |
|---|---|
| correlation_id | string |
| limit | number? |
Result
DebugSnapshot
Sample request
{
"jsonrpc": "2.0",
"id": 1,
"method": "debug.correlation.search",
"params": {
"correlation_id": "<correlation_id>",
"limit": 1
}
}// scope: admin
const result = await client.request("debug.correlation.search", {
"correlation_id": "<correlation_id>",
"limit": 1
});# JSON-RPC over the local socket
carina call debug.correlation.search
# equivalent payload:
# {"jsonrpc":"2.0","id":1,"method":"debug.correlation.search","params":{"correlation_id":"<correlation_id>","limit":1}}Playground
adminThis method is not remotely exposed; use Mock or the local CLI.
No methods match your filter.
Source of truth
Section titled “Source of truth”- Generated from
protocol/jsonrpc/methods.jsonviapnpm sync-protocol - Channel pin:
src/data/rpc-catalog-next.json(andpublic/data/rpc-catalog-next.json) - See API versions for channel policy
Was this page helpful?
What went wrong?
Thanks for the feedback.
One vote per page is recorded during this session.