LiveAgentStreamStepRequest live.agent-stream-step-request@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
live
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/live/agent-stream-step-request.v1.json

live.agent-stream-step-request@1 (the Agent Streams plan, S2): the body of POST /api/streams/agent/:id/steps on OpenVibe.Live, which answers 201 with the step it stored (live.agent-stream-step@1). The publisher posts with its publish ticket (Authorization: Bearer wpt_…), and Codes and Actor post through their service tokens with live.agent_stream.publish for the person. AT is when the step began (the agent may say so; Live takes its own clock when it is absent), TITLE says what the step is (at most 120 characters), STATUS says how it stands, DETAIL is the optional longer line (at most 500 characters), TESTS and COST_USD are the optional reports. Live refuses more than one step a second, more than two thousand steps per stream, a title over 120 characters or a detail over 500, and text the house filters refuse.

Fields

FieldTypeRequiredDescriptionConstraints
atstring
  • format date-time
titlestringyes
  • minLength 1
  • maxLength 120
statusenumyes
  • one of "started", "passed", "failed", "skipped"
detailstring
  • maxLength 500
testsobject
  • no other fields
tests.passedintegeryes
  • minimum 0
tests.failedintegeryes
  • minimum 0
cost_usdnumber
  • minimum 0

Examples

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

Valid: one
{
  "title": "Run the checkout tests",
  "status": "started"
}
Valid: with-reports
{
  "at": "2026-11-06T10:00:00.000Z",
  "title": "Run the checkout tests",
  "status": "failed",
  "detail": "expected 1 charge, received 2",
  "tests": {
    "passed": 1,
    "failed": 1
  },
  "cost_usd": 0.42
}
Rejected: no-status
{
  "title": "Run the checkout tests"
}
Rejected: title-too-long
{
  "title": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "status": "started"
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('live.agent-stream-step-request@1', value);   // { valid, errors: [{ path, message }] }