Rules
4 actions. Each is callable by the agent as a tool, over HTTP via /api/invoke, and (usually) from a UI page.
rules.list_rows
GET
List engagement rules from the rules table (scopable at workspace/project/mission). The legacy in-mission jsonb rules.list endpoint is kept for back-compat.
- AI tool:
rules_list_rows - API:
GET /api/invoke/rules.list_rows
Input
| Field | Type | Required | Description |
|---|---|---|---|
scope |
"workspace" | "project" | "mission" | — | |
projectId |
string | — | |
missionId |
string | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"scope": {
"type": "string",
"enum": [
"workspace",
"project",
"mission"
]
},
"projectId": {
"type": "string",
"minLength": 1
},
"missionId": {
"type": "string",
"minLength": 1
}
}
}rules.create
POST · mutating
Create a scopable engagement rule.
- AI tool:
rules_create - API:
POST /api/invoke/rules.create
Input
| Field | Type | Required | Description |
|---|---|---|---|
scope |
"workspace" | "project" | "mission" | — | |
projectId |
union | — | |
missionId |
union | — | |
trigger |
string | yes | |
action |
string | yes | |
requiresApproval |
boolean | — | |
enabled |
boolean | — | |
description |
union | — | |
config |
object | — | |
priority |
integer | — | |
createdBy |
union | — |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"scope": {
"default": "workspace",
"type": "string",
"enum": [
"workspace",
"project",
"mission"
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"missionId": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"trigger": {
"type": "string"
},
"action": {
"type": "string"
},
"requiresApproval": {
"default": false,
"type": "boolean"
},
"enabled": {
"default": true,
"type": "boolean"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"config": {
"default": {},
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"priority": {
"default": 0,
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"createdBy": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
}
},
"required": [
"trigger",
"action"
]
}rules.update
PATCH · mutating
Update an engagement rule.
- AI tool:
rules_update - API:
PATCH /api/invoke/rules.update
Input
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | yes | |
patch |
object | yes |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"patch": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"scope": {
"default": "workspace",
"type": "string",
"enum": [
"workspace",
"project",
"mission"
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"missionId": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"trigger": {
"type": "string"
},
"action": {
"type": "string"
},
"requiresApproval": {
"default": false,
"type": "boolean"
},
"enabled": {
"default": true,
"type": "boolean"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"config": {
"default": {},
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"priority": {
"default": 0,
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"createdBy": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"createdAt": {},
"updatedAt": {}
}
}
},
"required": [
"id",
"patch"
]
}rules.delete
DELETE · mutating
Delete an engagement rule.
- AI tool:
rules_delete - API:
DELETE /api/invoke/rules.delete
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"
]
}