ActorTaskEvent actor.task-event@1
Generated at from
openvibe-contracts v0.127.0 and
openvibe-sdk v0.37.0.
- Version
- 1.0.0
- Owner
- actor
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Decision
- ADR-044
- Schema
https://openvibe.network/contracts/actor/task-event.v1.json
actor.task-event@1: one event on a task's live stream (GET /api/v1/tasks/:id/events, text/event-stream; the SSE id is SEQ, so a reader resumes with Last-Event-ID). KIND is run.job-stream-event@1's three, as platform.task@1 progress names them: state (the task moved to STATE), output (one step of the agent's work: AGENT says what it is doing in TEXT, or calls TOOL with a short INPUT summary, or a tool answered), end (the task ended in STATE; nothing follows). Events are best-effort; the task record (GET /api/v1/tasks/:id) is the source of truth.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
task_id | string | yes |
| |
seq | integer | yes |
| |
kind | enum | yes |
| |
at | string | yes |
| |
state | enum |
| ||
agent | string |
| ||
step | enum |
| ||
text | string |
| ||
tool | string |
| ||
input | string |
| ||
is_error | boolean |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: end
{
"task_id": "tsk_01JAB2C3D4E5F6G7H8J9K0MNPS",
"seq": 9,
"kind": "end",
"at": "2026-10-08T19:00:09.000Z",
"state": "succeeded"
}Valid: state
{
"task_id": "tsk_01JAB2C3D4E5F6G7H8J9K0MNPS",
"seq": 1,
"kind": "state",
"at": "2026-10-08T19:00:00.000Z",
"state": "running",
"agent": "openvibe-runtime"
}Valid: tool-call
{
"task_id": "tsk_01JAB2C3D4E5F6G7H8J9K0MNPS",
"seq": 2,
"kind": "output",
"at": "2026-10-08T19:00:01.000Z",
"agent": "openvibe-runtime",
"step": "tool_call",
"tool": "tools.mx",
"input": "openvibe.network"
}Rejected: end-without-state
{
"task_id": "tsk_01JAB2C3D4E5F6G7H8J9K0MNPS",
"seq": 9,
"kind": "end",
"at": "2026-10-08T19:00:09.000Z"
}Rejected: output-without-step
{
"task_id": "tsk_01JAB2C3D4E5F6G7H8J9K0MNPS",
"seq": 2,
"kind": "output",
"at": "2026-10-08T19:00:01.000Z"
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('actor.task-event@1', value); // { valid, errors: [{ path, message }] }