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
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
proposal | object | yes | ||
proposal.id | string | yes | ||
proposal.page_id | string | yes | ||
proposal.space_id | string | |||
proposal.revision | integer |
| ||
proposal.base_revision | integer |
| ||
proposal.workflow_id | string | |||
proposal.run_id | string | |||
proposal.status | const | yes |
| |
proposal.proposed_by | string | |||
revision | wiki.revision | yes | ||
run_id | string | null |
| ||
model | string | null |
| ||
provider | string | null |
| ||
sources | array of object |
| ||
sources[].url | string | yes |
| |
sources[].title | string | null |
| ||
sources[].author | string | null |
| ||
sources[].retrieved_at | string | null |
| ||
sources[].license | string | null |
|
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 }] }