Capture to LociHub
capturePut something into LociHub: "capture this", "save this chat", "send this to
my Stage". Adds to the owner's Stage or Sessions for review; nothing is
overwritten or deleted. Not for reading or finding: search / hydrate.
choice is required and is the user's pick; capture_options returns the
choices when the user hasn't said which. With a choice and its inputs it
acts in one call.
choice="session"+turn: the conversation -> the owner's Sessions.choice="summary_session"+turn+content(a short recap of this conversation): the conversation -> Sessions, and the recap -> Stage.choice="note"+content(+ optionaltitle,files): content -> Stage for the owner to review. No session, no node, no address -- the owner decides what it becomes and where it lives.choice="memory"+content: facts about the owner that the user gave in this conversation, one per line -> one Stage item per fact. Only what was said in this conversation is captured; nothing from other conversations. Noturn.
turn is the whole conversation, verbatim: the tool stores exactly
the messages it is given as the session, so a summarized, shortened or
reworded transcript is stored as such. A recap belongs in content. It is a
turn/v1.0 object (or a JSON string of one):
{"schema": "turn/v1.0", "model": "<model>",
"turns": [{"seq": 0, "role": "human", "content": "hi",
"timestamp": "2026-06-09T18:20:02Z"}]}
Each ``turns[]`` item: ``seq`` (0-based, +1), ``role`` (``human`` /
``assistant``, alternating, first ``human``), non-empty ``content``, ISO 8601
``timestamp`` (non-decreasing). Re-capturing the same conversation is safe: the
hub appends only the new messages.files: a list of {"name", "content_type", "content_base64"} that ride a
note into Stage and are saved with the node. summary is the old name for
content. The first capture in a chat has no conversation_id; the reply
carries the one the hub minted, and passing it again in the same chat appends
to that session. status: "queued" means durably queued: it appears
shortly.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"choice": "<choice>"
},
"name": "capture"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| turn | No | ||
| files | No | ||
| title | No | ||
| choice | Yes | ||
| content | No | ||
| summary | No | ||
| conversation_id | No |