ActorTaskListResult actor.task-list-result@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-list-result.v1.json

actor.task-list-result@1: GET /api/v1/tasks (capability actor.task.list): the caller's latest tasks, newest first, and NEXT, the `before` cursor for the following page (null on the last page).

Fields

FieldTypeRequiredDescriptionConstraints
tasksplatform.taskyes
  • maxItems 100
nextstring | nullyes
  • maxLength 128

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: one-page
{
  "tasks": [
    {
      "id": "tsk_01JAB2C3D4E5F6G7H8J9K0MNPS",
      "requester": {
        "type": "user",
        "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPS"
      },
      "task": "What is the TTL of openvibe.network's MX record?",
      "mode": "cheapest",
      "budget": {
        "per_task_usd": 0.05,
        "per_day_usd": 0.5
      },
      "state": "succeeded",
      "created_at": "2026-10-08T19:00:00.000Z",
      "finished_at": "2026-10-08T19:00:09.000Z",
      "result": {
        "answer": "300 seconds; the MX points at Cloudflare's email routing.",
        "sources": [
          "https://openvibe.tools/tool/mx"
        ]
      },
      "cost": {
        "usd": 0.0011,
        "free_allowance_used": 0.0011
      },
      "explanation": [
        {
          "selected": "openvibe-runtime",
          "objective": "cheapest",
          "reasons": [
            "the cheapest eligible agent"
          ],
          "candidates": [
            {
              "id": "openvibe-runtime",
              "eligible": true,
              "estimated_cost_usd": 0.001
            },
            {
              "id": "openai-agent",
              "eligible": true,
              "estimated_cost_usd": 0.004
            }
          ],
          "decided_at": "2026-10-08T19:00:00.100Z"
        }
      ],
      "cancel": null,
      "progress": null,
      "error": null
    }
  ],
  "next": null
}
Rejected: no-next
{
  "tasks": []
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('actor.task-list-result@1', value);   // { valid, errors: [{ path, message }] }