Record an output
output_recordRecord something you sent, posted, published or delivered outside Tokenrip (an X post, an email reply, a client report), in one call, with or without a task: kind (x.post, email.reply), target (who received it), ref (the post's URL or message id), text, file (the artifact it was made from), task, job, labels. On a task it takes the task's audience, job and labels, and the task's approved round as its approval. To send once only: first record it with status sending and a key unique to this one send and destination (the task id with the kind, task-id:x.post, or the id of the message you reply to; never an id that recurs, such as a draft's), then send, then settle it with output_update (sent with its ref, or failed only when you know it did not go out, which frees the key). A key an output that is not failed already holds is OUTPUT_EXISTS: details.output names it, so do not send again. Not for files you make in the workspace (artifact_publish) or results of a task (task_complete).
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": {
"workspaceId": "<workspaceId>",
"kind": "<kind>"
},
"name": "output_record"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job | No | The job it served, by name (from workspace_load jobs): a live job of this workspace. Defaults to the task's job. Jobs are internal: only internal members name one. | |
| key | No | Your once-only key, unique to this one send and destination (the task id with the kind, task-id:x.post; the reply's message id; never an id that recurs, such as a draft's), at most 255 characters: while an output not failed holds it in this workspace, another record with it is OUTPUT_EXISTS naming that output. | |
| ref | No | The outside reference once it went out: the post's URL, a Message-ID, at most 2048 characters. | |
| why | No | Required for workspace items: one sentence on what the person is trying to accomplish, in their terms, not a description of this edit. Every workspace write takes one; sessions and summaries record themselves from it. At most 300 characters. | |
| file | No | The file it was made from: { artifact, version? }, readable in the output's audience and not in the trash. The version is recorded. | |
| kind | Yes | What it was, a free tag Tokenrip never interprets (x.post, email.reply, li.comment, link): lowercase letters, digits, -, _ and ., starting with a letter or a digit, at most 64 characters. | |
| task | No | The task it served, by id: any task in this workspace you can edit, whatever its status. The output takes the task's audience, and its job and labels unless you name them; its approval is the task's approved round. | |
| text | No | What was said, at most 4000 characters. | |
| labels | No | Labels for the output: your own words for grouping work. Defaults to the task's labels. Each label is lowercase letters, digits, -, _, : and ., starting with a letter or a digit, at most 64 characters (client:acme, campaign.q4); at most 20. Labels group work; Tokenrip never interprets them. | |
| status | No | sent (the default): it went out. sending: claim it before you send, with a key, then settle it with output_update. | |
| target | No | Who or what received it (x:@bob, bob@acme.com, a channel or a URL), at most 255 characters. | |
| audience | No | Who in the workspace reads it, for an output with no task (internal by default for an internal member; a guest records shared ones). An output on a task takes the task's audience: naming another is refused. | |
| workspaceId | Yes | The workspace (its id or its slug). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| output | Yes |