181 lines
5.0 KiB
JSON
181 lines
5.0 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://chorus.services/schemas/backbeat/statusclaim/v1.0.0",
|
|
"title": "BACKBEAT StatusClaim (INT-B)",
|
|
"description": "Status update message sent from agents to Reverb service during beat execution",
|
|
"version": "1.0.0",
|
|
"type": "object",
|
|
"required": [
|
|
"type",
|
|
"agent_id",
|
|
"beat_index",
|
|
"state",
|
|
"hlc"
|
|
],
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"type": {
|
|
"type": "string",
|
|
"const": "backbeat.statusclaim.v1",
|
|
"description": "Message type identifier for StatusClaim v1"
|
|
},
|
|
"agent_id": {
|
|
"type": "string",
|
|
"pattern": "^[a-zA-Z0-9_:-]+$",
|
|
"minLength": 1,
|
|
"maxLength": 128,
|
|
"description": "Unique identifier for the reporting agent (format: service:instance or agent:id)"
|
|
},
|
|
"task_id": {
|
|
"type": "string",
|
|
"pattern": "^[a-zA-Z0-9_:-]+$",
|
|
"minLength": 1,
|
|
"maxLength": 128,
|
|
"description": "Optional task identifier if agent is working on a specific task"
|
|
},
|
|
"beat_index": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 9223372036854775807,
|
|
"description": "Beat index this status claim refers to (must match current or recent BeatFrame)"
|
|
},
|
|
"state": {
|
|
"type": "string",
|
|
"enum": [
|
|
"idle",
|
|
"planning",
|
|
"executing",
|
|
"reviewing",
|
|
"completed",
|
|
"failed",
|
|
"blocked",
|
|
"helping"
|
|
],
|
|
"description": "Current state of the agent"
|
|
},
|
|
"beats_left": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 1000,
|
|
"description": "Estimated number of beats needed to complete current work (0 = done this beat)"
|
|
},
|
|
"progress": {
|
|
"type": "number",
|
|
"minimum": 0.0,
|
|
"maximum": 1.0,
|
|
"description": "Progress percentage for current task/phase (0.0 = not started, 1.0 = complete)"
|
|
},
|
|
"notes": {
|
|
"type": "string",
|
|
"maxLength": 256,
|
|
"description": "Brief human-readable status description or error message"
|
|
},
|
|
"hlc": {
|
|
"type": "string",
|
|
"pattern": "^[0-9a-fA-F]{4}:[0-9a-fA-F]{4}:[0-9a-fA-F]{4}$",
|
|
"description": "Hybrid Logical Clock timestamp from the agent"
|
|
},
|
|
"resources": {
|
|
"type": "object",
|
|
"description": "Optional resource utilization information",
|
|
"additionalProperties": false,
|
|
"properties": {
|
|
"cpu_percent": {
|
|
"type": "number",
|
|
"minimum": 0.0,
|
|
"maximum": 100.0,
|
|
"description": "CPU utilization percentage"
|
|
},
|
|
"memory_mb": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"description": "Memory usage in megabytes"
|
|
},
|
|
"disk_io_ops": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"description": "Disk I/O operations since last beat"
|
|
},
|
|
"network_kb": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"description": "Network traffic in kilobytes since last beat"
|
|
}
|
|
}
|
|
},
|
|
"dependencies": {
|
|
"type": "array",
|
|
"maxItems": 50,
|
|
"description": "List of agent IDs this agent is waiting on or helping",
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^[a-zA-Z0-9_:-]+$",
|
|
"maxLength": 128
|
|
}
|
|
},
|
|
"metadata": {
|
|
"type": "object",
|
|
"description": "Optional metadata for extensions and debugging",
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"agent_version": {
|
|
"type": "string",
|
|
"description": "Version of the agent software"
|
|
},
|
|
"error_code": {
|
|
"type": "string",
|
|
"description": "Structured error code if state is 'failed'"
|
|
},
|
|
"retry_count": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"description": "Number of retries attempted for current task"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"examples": [
|
|
{
|
|
"type": "backbeat.statusclaim.v1",
|
|
"agent_id": "search-indexer:worker-03",
|
|
"task_id": "index-batch:20250905-120",
|
|
"beat_index": 1337,
|
|
"state": "executing",
|
|
"beats_left": 3,
|
|
"progress": 0.65,
|
|
"notes": "processing batch 120/200",
|
|
"hlc": "7ffd:0001:beef",
|
|
"resources": {
|
|
"cpu_percent": 85.0,
|
|
"memory_mb": 2048,
|
|
"disk_io_ops": 1250,
|
|
"network_kb": 512
|
|
}
|
|
},
|
|
{
|
|
"type": "backbeat.statusclaim.v1",
|
|
"agent_id": "agent:backup-runner",
|
|
"beat_index": 1338,
|
|
"state": "failed",
|
|
"beats_left": 0,
|
|
"progress": 0.0,
|
|
"notes": "connection timeout to storage backend",
|
|
"hlc": "7ffe:0002:dead",
|
|
"metadata": {
|
|
"agent_version": "2.1.0",
|
|
"error_code": "STORAGE_TIMEOUT",
|
|
"retry_count": 3
|
|
}
|
|
},
|
|
{
|
|
"type": "backbeat.statusclaim.v1",
|
|
"agent_id": "ml-trainer:gpu-node-1",
|
|
"beat_index": 1336,
|
|
"state": "helping",
|
|
"progress": 1.0,
|
|
"notes": "completed own work, assisting node-2 with large model",
|
|
"hlc": "7ffc:0005:cafe",
|
|
"dependencies": ["ml-trainer:gpu-node-2"]
|
|
}
|
|
]
|
|
} |