WikiProposalRequest wiki.proposal-request@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

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

wiki.proposal-request@1: the body of POST /api/v1/proposals on OpenVibe.Wiki (wiki.revision.propose; first-party service principals only, i.e. OpenVibe.AI): an AI-written revision of an existing page (page_id, optionally expected_revision: a stale one is 412) or a new page in a space (space and title). It names the OpenVibe.AI workflow and run that wrote it; it is never published until a person approves it.

Fields

FieldTypeRequiredDescriptionConstraints
spacestring
page_idstring | null
titlestring
  • maxLength 200
bodystring
  • maxLength 200000
summarystring | null
infoboxarray of objectInfobox rows: key, type (text, number, date, url, boolean, page, media) and value.
citationsarray of objectAt most 50. Each needs a URL (with retrieved_at) or a Sources item id (url, title and retrieval come from the item).
  • maxItems 50
citations[].urlstring | null
citations[].titlestring | null
citations[].source_item_idstring | null
citations[].retrieved_atstring | null
citations[].quoteone ofCut to 5000 characters.
citations[].license_notestring | null
citations[].anchorstring | null
workflowobjectyes
workflow.idstringyes
workflow.run_idstring
workflow.runIdstring
workflow.versionany
workflow.modelany
stub_providerboolean
expected_revisioninteger | null
notestring | null

Examples

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

Valid: refresh
{
  "page_id": "pg_01JAB2C3D4E5F6G7H8J9K0MNPQ",
  "body": "Restreaming sends one encoder feed to several platforms. OpenRe.Stream does it server-side.",
  "expected_revision": 3,
  "workflow": {
    "id": "wiki.page_refresh",
    "run_id": "run_01JAB2C3D4E5F6G7H8J9K0MNPS",
    "model": "claude-sonnet-4-5"
  },
  "note": "adds OpenRe"
}
Rejected: no-workflow
{
  "space": "openvibe",
  "title": "x",
  "body": "y"
}

Validate

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