capability; the handler intersects the static catalog with the caller’s
capability set and returns only the entries the caller is allowed to invoke —
entries the caller can’t use never reach the wire.
The endpoint requires authentication and workspace context (the slash palette
is workspace-scoped). A caller with no relevant grants gets an empty array,
not a 403 — the palette still opens, just with no actions in it.
i18n
Entries carry bothlabel (English) and label_cs (Czech) so the dashboard
can pick by locale without a translation step. The shape is open — additional
label_* fields may be added without breaking clients.
List Slash Commands
200 OK
Entry Fields
| Field | Type | Description |
|---|---|---|
id | string | Command ID |
label | string | English label |
label_cs | string? | Czech label |
icon | string? | Lucide icon name |
capability | string | Capability required to invoke this command |
form_schema | array? | Form fields the action modal renders |
Form Field
| Field | Type | Description |
|---|---|---|
name | string | Field name |
type | string | Renderer type (open set; unknown types fall back to text) |
required | boolean? | Whether the field is required |
default | string? | Default value |
Static Catalog Entries
The platform-defined catalog includes these actions (each gated by its own capability):id | Action | Capability |
|---|---|---|
routine | Create a routine from the conversation | routine.create |
issue | Create an issue from the conversation | issue.create |
skill | Create a skill from the conversation | skill.create |
credential | Add a credential | credential.create |
| Status | Condition |
|---|---|
400 | Missing workspace context |
401 | Not authenticated |