Standups

Daily standup meetings.

19 actions. Each is callable by the agent as a tool, over HTTP via /api/invoke, and (usually) from a UI page.

standups.create

POST · mutating

Start a standup in a conversation. Attendees (humans + agents) each give yesterday / today / blockers in a timed round-robin (5 min each by default), then the floor opens to dive into anything. A live action-item draft doc is created. Defaults attendees to the conversation members; the first agent becomes the AI facilitator that listens + drafts action items. Set autostart:true to go live immediately.

  • AI tool: standups_create
  • API: POST /api/invoke/standups.create

Input

Field Type Required Description
conversationId string yes
title string
attendeeIds string[]
facilitatorId union
perAttendeeMinutes number
mediaKind "none" | "audio" | "video"
realtimeModelId union
cadence "none" | "daily" | "weekly"
scheduledFor union
autostart boolean
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "conversationId": {
      "type": "string",
      "minLength": 1
    },
    "title": {
      "type": "string"
    },
    "attendeeIds": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "facilitatorId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "perAttendeeMinutes": {
      "type": "number",
      "minimum": 1,
      "maximum": 30
    },
    "mediaKind": {
      "type": "string",
      "enum": [
        "none",
        "audio",
        "video"
      ]
    },
    "realtimeModelId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "cadence": {
      "type": "string",
      "enum": [
        "none",
        "daily",
        "weekly"
      ]
    },
    "scheduledFor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "autostart": {
      "type": "boolean"
    }
  },
  "required": [
    "conversationId"
  ]
}

standups.get

GET

Fetch a standup with its attendee updates and draft action items.

  • AI tool: standups_get
  • API: GET /api/invoke/standups.get

Input

Field Type Required Description
id string yes
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id"
  ]
}

standups.list

GET

List standups, optionally filtered by conversation and/or status (scheduled | live | completed | cancelled).

  • AI tool: standups_list
  • API: GET /api/invoke/standups.list

Input

Field Type Required Description
conversationId string
status string
limit integer
offset integer
orderBy string
orderDir "asc" | "desc"
q string
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "conversationId": {
      "type": "string",
      "minLength": 1
    },
    "status": {
      "type": "string"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "orderBy": {
      "type": "string"
    },
    "orderDir": {
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "q": {
      "type": "string"
    }
  }
}

standups.start

POST · mutating

Begin a scheduled standup: go live and start the first attendee’s turn.

  • AI tool: standups_start
  • API: POST /api/invoke/standups.start

Input

Field Type Required Description
id string yes
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id"
  ]
}

standups.submit_update

POST · mutating

Record an attendee’s yesterday / today / blockers (and optional transcript), post it to the conversation, refresh the draft doc, let the AI facilitator extract action items, and advance to the next attendee (unless advance:false).

  • AI tool: standups_submit_update
  • API: POST /api/invoke/standups.submit_update

Input

Field Type Required Description
id string yes
actorId string yes
yesterday string
today string
blockers string
notes string
transcript string
advance boolean
assist boolean
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "actorId": {
      "type": "string",
      "minLength": 1
    },
    "yesterday": {
      "type": "string"
    },
    "today": {
      "type": "string"
    },
    "blockers": {
      "type": "string"
    },
    "notes": {
      "type": "string"
    },
    "transcript": {
      "type": "string"
    },
    "advance": {
      "type": "boolean"
    },
    "assist": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "actorId"
  ]
}

standups.generate_agent_update

POST · mutating

Generate an AI attendee’s own yesterday / today / blockers from its recent tickets and submit it as their standup turn (then advance unless advance:false).

  • AI tool: standups_generate_agent_update
  • API: POST /api/invoke/standups.generate_agent_update

Input

Field Type Required Description
id string yes
agentActorId string yes
advance boolean
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "agentActorId": {
      "type": "string",
      "minLength": 1
    },
    "advance": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "agentActorId"
  ]
}

standups.advance_turn

POST · mutating

Move to the next pending attendee, or open the floor when everyone is done.

  • AI tool: standups_advance_turn
  • API: POST /api/invoke/standups.advance_turn

Input

Field Type Required Description
id string yes
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id"
  ]
}

standups.skip_turn

POST · mutating

Skip the current (or a specific) attendee and advance.

  • AI tool: standups_skip_turn
  • API: POST /api/invoke/standups.skip_turn

Input

Field Type Required Description
id string yes
actorId string
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "actorId": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id"
  ]
}

standups.set_phase

POST · mutating

Set the meeting phase: round-robin, open-floor (dive-in), or review (wrap-up).

  • AI tool: standups_set_phase
  • API: POST /api/invoke/standups.set_phase

Input

Field Type Required Description
id string yes
phase "round-robin" | "open-floor" | "review" yes
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "phase": {
      "type": "string",
      "enum": [
        "round-robin",
        "open-floor",
        "review"
      ]
    }
  },
  "required": [
    "id",
    "phase"
  ]
}

standups.add_action_item

POST · mutating

Add a draft action item to the standup. operation "create" makes a new task on wrap-up; "update"/"reassign" target an existing ticket via relatedTicketId. AI assistants call this whenever they hear a concrete follow-up or blocker.

  • AI tool: standups_add_action_item
  • API: POST /api/invoke/standups.add_action_item

Input

Field Type Required Description
id string yes
title string yes
description string
assigneeIds string[]
priority "low" | "normal" | "high" | "urgent"
dueDate union
operation "create" | "update" | "reassign"
relatedTicketId union
sourceActorId union
createdByActorId union
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "title": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "assigneeIds": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "priority": {
      "type": "string",
      "enum": [
        "low",
        "normal",
        "high",
        "urgent"
      ]
    },
    "dueDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "operation": {
      "type": "string",
      "enum": [
        "create",
        "update",
        "reassign"
      ]
    },
    "relatedTicketId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "sourceActorId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "createdByActorId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "id",
    "title"
  ]
}

standups.update_action_item

PATCH · mutating

Edit a draft action item — title, description, assignees, priority, due date, operation, target ticket, or status.

  • AI tool: standups_update_action_item
  • API: PATCH /api/invoke/standups.update_action_item

Input

Field Type Required Description
itemId string yes
patch object yes
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "itemId": {
      "type": "string",
      "minLength": 1
    },
    "patch": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "assigneeIds": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "priority": {
          "type": "string",
          "enum": [
            "low",
            "normal",
            "high",
            "urgent"
          ]
        },
        "dueDate": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "operation": {
          "type": "string",
          "enum": [
            "create",
            "update",
            "reassign"
          ]
        },
        "relatedTicketId": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "draft",
            "confirmed",
            "applied",
            "discarded"
          ]
        }
      }
    }
  },
  "required": [
    "itemId",
    "patch"
  ]
}

standups.remove_action_item

DELETE · mutating

Discard a draft action item so it is not turned into a ticket.

  • AI tool: standups_remove_action_item
  • API: DELETE /api/invoke/standups.remove_action_item

Input

Field Type Required Description
itemId string yes
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "itemId": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "itemId"
  ]
}

standups.agent_assist

POST · mutating

Have the AI facilitator read the standup transcript so far and silently draft action items (and search for existing tickets to update/reassign). Returns how many items it added.

  • AI tool: standups_agent_assist
  • API: POST /api/invoke/standups.agent_assist

Input

Field Type Required Description
id string yes
actorId string
instruction string
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "actorId": {
      "type": "string",
      "minLength": 1
    },
    "instruction": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}

standups.ingest_speech

POST · mutating

Feed a chunk of live speech (browser speech-to-text) from a speaker into the standup: logs it to their turn transcript and extracts any concrete action items from it via the LLM. This is what makes "talk and tasks appear as you speak" work. Returns the bundle + how many items were added.

  • AI tool: standups_ingest_speech
  • API: POST /api/invoke/standups.ingest_speech

Input

Field Type Required Description
id string yes
actorId string yes
text string yes
extract boolean
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "actorId": {
      "type": "string",
      "minLength": 1
    },
    "text": {
      "type": "string"
    },
    "extract": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "actorId",
    "text"
  ]
}

standups.attach_media

POST · mutating

Attach an uploaded recording (audio/video) to the whole session or one attendee’s turn, then best-effort server-transcribe it (Deepgram/Whisper). Upload the blob to /api/files/upload first, then pass its url here.

  • AI tool: standups_attach_media
  • API: POST /api/invoke/standups.attach_media

Input

Field Type Required Description
id string yes
actorId union
kind "audio" | "video" yes
url string yes
mimeType string
transcribe boolean
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "actorId": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "kind": {
      "type": "string",
      "enum": [
        "audio",
        "video"
      ]
    },
    "url": {
      "type": "string"
    },
    "mimeType": {
      "type": "string"
    },
    "transcribe": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "kind",
    "url"
  ]
}

standups.realtime_token

POST · mutating

Mint a short-lived realtime-voice token so an AI attendee can join the live standup over WebRTC, listen, and assist. Returns { ok:false, reason } when realtime voice is not configured — the client then uses the text path.

  • AI tool: standups_realtime_token
  • API: POST /api/invoke/standups.realtime_token

Input

Field Type Required Description
id string yes
agentActorId string yes
voice string
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "agentActorId": {
      "type": "string",
      "minLength": 1
    },
    "voice": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "agentActorId"
  ]
}

standups.realtime_settle

POST · mutating

Settle remaining Hypery realtime voice cost after a WebRTC session ends (mint floor already charged).

  • AI tool: standups_realtime_settle
  • API: POST /api/invoke/standups.realtime_settle

Input

Field Type Required Description
id string yes
sessionId string yes
durationMs integer yes
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "sessionId": {
      "type": "string",
      "minLength": 1
    },
    "durationMs": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "id",
    "sessionId",
    "durationMs"
  ]
}

standups.complete

POST · mutating

Wrap up the standup: turn the confirmed action items into ticket changes (create new tasks, or update/reassign existing tickets), finalize the recording + draft doc, and post a summary. confirmedItemIds selects which draft items to apply; omit to apply all non-discarded items.

  • AI tool: standups_complete
  • API: POST /api/invoke/standups.complete

Input

Field Type Required Description
id string yes
confirmedItemIds string[]
recordingUrl string
transcript string
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "confirmedItemIds": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "recordingUrl": {
      "type": "string"
    },
    "transcript": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}

standups.cancel

POST · mutating

Cancel a standup without creating any tickets.

  • AI tool: standups_cancel
  • API: POST /api/invoke/standups.cancel

Input

Field Type Required Description
id string yes
JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "id"
  ]
}