WikiArticleDraftResult wiki.article-draft-result@1

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

Version
1.0.0
Owner
wiki
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/wiki/article-draft-result.v1.json

wiki.article-draft-result@1: what the wiki writer answers. The draft revision is pending review — status is always 'pending' — with the workflow and run that wrote it, the model that answered, and the sources its sentences cited. Nothing here is published.

Fields

FieldTypeRequiredDescriptionConstraints
proposalobjectyes
proposal.idstringyes
proposal.page_idstringyes
proposal.space_idstring
proposal.revisioninteger
  • minimum 1
proposal.base_revisioninteger
  • minimum 0
proposal.workflow_idstring
proposal.run_idstring
proposal.statusconstyes
  • = "pending"
proposal.proposed_bystring
revisionwiki.revisionyes
run_idstring | null
  • maxLength 200
modelstring | null
  • maxLength 200
providerstring | null
  • maxLength 200
sourcesarray of object
  • maxItems 50
sources[].urlstringyes
  • maxLength 2048
sources[].titlestring | null
  • maxLength 500
sources[].authorstring | null
  • maxLength 200
sources[].retrieved_atstring | null
  • maxLength 40
sources[].licensestring | null
  • maxLength 200

Examples

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

Valid: pending
{
  "proposal": {
    "id": "prp_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "page_id": "pg_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "space_id": "spc_01JAB2C3D4E5F6G7H8J9K0MNPQ",
    "revision": 4,
    "base_revision": 3,
    "workflow_id": "content.wiki",
    "run_id": "run_01JAB2C3D4E5F6G7H8J9K0MNPS",
    "status": "pending",
    "proposed_by": "svc:wiki"
  },
  "revision": {
    "number": 4,
    "id": "rev_01JAB2C3D4E5F6G7H8J9K0MNPR",
    "kind": "edit",
    "parent_number": 3,
    "title": "Restreaming",
    "summary": "Sending one stream to several platforms, with its sources.",
    "infobox": [],
    "body": "Restreaming sends one encoder feed to several platforms. It keeps the chat in one place.",
    "authorship": {
      "mode": "ai",
      "workflow": {
        "id": "content.wiki",
        "runId": "run_01JAB2C3D4E5F6G7H8J9K0MNPS"
      }
    },
    "author": "svc:wiki",
    "message": "AI proposal",
    "created_at": "2026-11-09T10:00:00.000Z"
  },
  "run_id": "run_01JAB2C3D4E5F6G7H8J9K0MNPS",
  "model": "openvibe/auto",
  "provider": "openvibe",
  "sources": [
    {
      "url": "https://docs.example.com/rtmp",
      "title": "RTMP spec",
      "author": null,
      "retrieved_at": "2026-11-09T09:00:00.000Z",
      "license": null
    }
  ]
}
Rejected: published
{
  "proposal": {
    "id": "prp_1",
    "page_id": "pg_1",
    "status": "published"
  },
  "revision": {
    "number": 1,
    "id": "rev_1",
    "kind": "edit",
    "title": "X",
    "author": "svc:wiki",
    "created_at": "2026-11-09T10:00:00.000Z"
  }
}

Validate

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