gradeNot graded
list_loopsAnswer
List open loops in compact form, plus folder counts. Optional status: owed, waiting, draft, done, or today (overdue + due today + drafts awaiting approval). Omit status for all open loops.
View tool JSON
{
"name": "list_loops",
"kind": "answer",
"impl": "imperative",
"description": "List open loops in compact form, plus folder counts. Optional status: owed, waiting, draft, done, or today (overdue + due today + drafts awaiting approval). Omit status for all open loops.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {
"status": {
"type": "string",
"enum": [
"owed",
"waiting",
"draft",
"done",
"today"
],
"description": "Folder to list. today = overdue + due today + drafts."
}
}
}
}get_loopAnswer
Get one loop in full: title, people, notes, pending draft, and the event timeline. Use before drafting or approving.
View tool JSON
{
"name": "get_loop",
"kind": "answer",
"impl": "imperative",
"description": "Get one loop in full: title, people, notes, pending draft, and the event timeline. Use before drafting or approving.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Loop id"
}
}
}
}add_loopAction
Open a new loop. The agent files it; a human still owns sending. Default status is owed.
View tool JSON
{
"name": "add_loop",
"kind": "act",
"impl": "imperative",
"description": "Open a new loop. The agent files it; a human still owns sending. Default status is owed.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"title"
],
"properties": {
"title": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"owed",
"waiting",
"draft",
"done"
]
},
"due": {
"type": "string",
"description": "ISO date or relative (3d, 1w)"
},
"people": {
"type": "array",
"items": {
"type": "string"
}
},
"notes": {
"type": "string"
}
}
}
}update_loopAction
Patch a loop's title, status, due date, notes, or people. Does not send mail.
View tool JSON
{
"name": "update_loop",
"kind": "act",
"impl": "imperative",
"description": "Patch a loop's title, status, due date, notes, or people. Does not send mail.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"owed",
"waiting",
"draft",
"done"
]
},
"due": {
"type": "string",
"description": "ISO, relative, or empty to clear"
},
"notes": {
"type": "string"
},
"people": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}draft_messageAction
Write a pending draft on a loop. Does NOT send. Status becomes draft if it was not already done. A human must approve in the UI or call approve_draft.
View tool JSON
{
"name": "draft_message",
"kind": "act",
"impl": "imperative",
"description": "Write a pending draft on a loop. Does NOT send. Status becomes draft if it was not already done. A human must approve in the UI or call approve_draft.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"body"
],
"properties": {
"id": {
"type": "string"
},
"body": {
"type": "string",
"description": "The unsent message. Keep it short and human."
}
}
}
}approve_draftSensitive Action
CONSEQUENTIAL. Marks the pending draft as sent: appends a sent event, clears the draft, then closes the loop (one-shot) or sets it to waiting if a reply is expected. This is the only send. Equivalent to the human Approve button. Do not call unless the human asked to send, or the draft is clearly ready and they delegated approval.
View tool JSON
{
"name": "approve_draft",
"kind": "transact",
"impl": "imperative",
"description": "CONSEQUENTIAL. Marks the pending draft as sent: appends a sent event, clears the draft, then closes the loop (one-shot) or sets it to waiting if a reply is expected. This is the only send. Equivalent to the human Approve button. Do not call unless the human asked to send, or the draft is clearly ready and they delegated approval.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
}
}
}snooze_loopAction
Push a loop's due date. until is an ISO date or relative like 3d, 1w, 2m.
View tool JSON
{
"name": "snooze_loop",
"kind": "act",
"impl": "imperative",
"description": "Push a loop's due date. until is an ISO date or relative like 3d, 1w, 2m.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"until"
],
"properties": {
"id": {
"type": "string"
},
"until": {
"type": "string",
"description": "ISO datetime or relative: 3d, 1w, 2m"
}
}
}
}close_loopAction
Mark a loop done. Optional reason is stored on the timeline.
View tool JSON
{
"name": "close_loop",
"kind": "act",
"impl": "imperative",
"description": "Mark a loop done. Optional reason is stored on the timeline.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"reason": {
"type": "string"
}
}
}
}search_loopsAnswer
Search titles, people, notes, and drafts.
View tool JSON
{
"name": "search_loops",
"kind": "answer",
"impl": "imperative",
"description": "Search titles, people, notes, and drafts.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"query"
],
"properties": {
"query": {
"type": "string"
}
}
}
}plan_todayAnswer
Return a prioritized plan of what to do now: overdue first, then drafts awaiting approval, then due today. Structured items an agent can act on with draft_message or get_loop.
View tool JSON
{
"name": "plan_today",
"kind": "answer",
"impl": "imperative",
"description": "Return a prioritized plan of what to do now: overdue first, then drafts awaiting approval, then due today. Structured items an agent can act on with draft_message or get_loop.",
"inputSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}