openvibers/openvibe.contracts Commits

codes.task@2 — a coding task's attempts and outcome (#250)

OP OpenVibers committed 14 days ago · 5e5cf7ec54 · 49 files, +1360 −87

* 0.242.0: codes.task@2 — a coding task's attempts and outcome; one id, two majors

codes.task@2 is codes.task@1 with the same fields, plus two: the task's
attempts (its timeline: every try, the agent, the machine, the session, the
state it ended in, why, what it cost) and its outcome (done, unfinished with
what is left, or stopped). GET /api/v1/tasks/:id answers it: the task's own
fields stay at the top level, exactly as codes.task@1 had them, and the two new
fields are added to them. codes.task@1 stays as it is.

The loader now takes more than one major per contract id: the catalog lists a
v1 and a v2 file for the same id, the bare id resolves to the newest major, and
id@N names that major — so a v1 caller keeps resolving while a v2 caller names
it exactly. codes.task.read declares codes.task@2.

* 0.242.1: the generated OpenAPI files carry the release's own version

v0.242.0 shipped them with 0.240.0's, because the version was raised after
they were written. The files are written again from 0.242.1; nothing else
changes.

* The generated OpenAPI files, written again on top of 0.241.0

The AI credential v2 release (0.241.0) merged while this release was being
written, so the branch is rebased on it and the generated files are written
again from this version.

* 0.243.0: codes.task@2 released from main

v0.242.0 and v0.242.1 were tagged from this branch before it merged. The
release consumers pin is cut from main as 0.243.0, with 0.241.0's AI
credential work in it too; the generated files carry 0.243.0.

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex 159bd4ea..dc46c9d9 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -4,6 +4,31 @@ All notable changes to `openvibe-contracts`. Releases are git tags (`vX.Y.Z`) th
from `https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/<tag>`. Before v0.30.0,
the notes were in the tag and commit messages (`git tag -n1`).
++## 0.243.0 — 2026-10-30
++
++- The release cut from `main` for codes.task@2 (#250): a coding task's attempts and outcome, one id with two majors.
++ It carries 0.241.0 (the AI credential v2 release) as well. `v0.242.0` and `v0.242.1` were tagged from the PR
++ branch before it merged; pin `v0.243.0` instead (OpenVibe.Codes moves to it).
++
++## 0.242.1 — 2026-10-30
++
++- The generated OpenAPI files carry the release's own version again: `v0.242.0` shipped them with 0.240.0's,
++ because the version was raised after they were written. Nothing else changed; `v0.242.1` is the release to pin.
++- This release is rebased on `0.241.0` (the AI credential v2 release, merged while it was being written), so the
++ branch carries that work too; the published `v0.242.1` tarball, which OpenVibe.Codes pins, is the cut from
++ before the rebase and holds the codes.task@2 work alone. The next tag cut from `main` carries both.
++
++## 0.242.0 — 2026-10-30
++
++- **`codes.task@2`** (OpenVibe.Codes): a coding task's timeline. It is `codes.task@1` with the same fields, plus two
++ added ones: `attempts` (every try of the task, in order: the agent, the machine, the session, the state it ended
++ in, why, what it cost) and `outcome` (what the attempts added up to: done, unfinished with what is left, or
++ stopped). `GET /api/v1/tasks/:id` answers it — the task's own fields stay at the top level, exactly as
++ `codes.task@1` had them, and the two new fields are added to them. `codes.task@1` stays as it is.
++- **One contract id may hold more than one major** now: the catalog lists a v1 and a v2 file for the same id, the
++ bare id resolves to the newest major, and `id@N` names that major, so a v1 caller keeps resolving while a v2
++ caller names it exactly. (`ai.credential@2` is the first to use it.)
++
## 0.241.0 — 2026-10-30
- **AI: one credential per provider** (Codes C3; research `research-2026-10-30/codes-c3-connections.md` items 1 and 2).
@@@ -2385,7 +2410,6 @@ as `worker:` capabilities in `platform.resource-offer@1`. The names are reserved
`task:edit`, `task:review`, `task:browse`, `task:run`, `task:test`, `task:plan`, `harness:mcp`, `harness:resume`,
`harness:host-access`, `harness:long-autonomy`. New valid fixture `harness-task-routing`. Additive.
--
**Run jobs and their metering** (plan T14 lane G, follow-up 1 of the Node gap audit):
- New `platform.runtime-class@1`: the classes `function`, `code`, `browser`, `linux`, `desktop` and `gpu`, names
only; `function` is the first one implemented.
ddiff --git a/contracts/catalog.json b/contracts/catalog.json
iindex 01c67cd8..c34fe5d0 100644
---- a/contracts/catalog.json
++++ b/contracts/catalog.json
@@@ -7387,6 +7387,15 @@
"compatibility": "backward",
"status": "active"
},
++ {
++ "id": "codes.task",
++ "version": "2.0.0",
++ "owner": "codes",
++ "schema": "codes/task.v2.json",
++ "visibility": "first-party",
++ "compatibility": "backward",
++ "status": "active"
++ },
{
"id": "play.title-definition",
"version": "1.0.0",
ddiff --git a/contracts/codes/task.v2.json b/contracts/codes/task.v2.json
nnew file mode 100644
iindex 00000000..dc0ae95d
---- /dev/null
++++ b/contracts/codes/task.v2.json
@@@ -0,0 +1,388 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/codes/task.v2.json",
++ "title": "CodesTask",
++ "description": "codes.task@2: a coding task on OpenVibe.Codes, as GET /api/v1/tasks/:id answers it (capability codes.task.read) and POST /api/v1/tasks creates it. It is codes.task@1 with two added fields: ATTEMPTS, the task's timeline (each try of the task, with the state it ended in and why), and OUTCOME, what the task's attempts added up to (done, unfinished with what is left, or stopped). STATE follows the OpenVibe.Run job that carries it: queued (waiting for one of the person's machines), placed, running, then succeeded, failed, cancelled or expired (no machine of theirs took it in time). URL is the task's page on openvibe.codes, where its owner follows it live. RESULT is present once it has ended: OK says whether the agents finished, SUMMARY what they said, FILES and PATCH the change (the patch at most 256 KiB, PATCH_TRUNCATED when cut), PUSH where it went when asked, COST_USD the model use on the person's own keys, DURATION_MS the time on their machine. ERROR says why a task that never ran ended (Run refused it, or the job failed before a result).",
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "id",
++ "state",
++ "repo",
++ "url",
++ "created_at",
++ "updated_at"
++ ],
++ "properties": {
++ "id": {
++ "type": "string",
++ "pattern": "^tsk_[0-9A-HJKMNP-TV-Z]{26}$",
++ "description": "The Codes task id (tsk_ + ULID)."
++ },
++ "state": {
++ "enum": [
++ "queued",
++ "placed",
++ "running",
++ "succeeded",
++ "failed",
++ "cancelled",
++ "expired"
++ ]
++ },
++ "repo": {
++ "type": "string",
++ "maxLength": 300
++ },
++ "ref": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 200
++ },
++ "agent": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 41
++ },
++ "url": {
++ "type": "string",
++ "format": "uri",
++ "pattern": "^https://"
++ },
++ "created_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "updated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "error": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 1000
++ },
++ "result": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "ok"
++ ],
++ "properties": {
++ "ok": {
++ "type": "boolean"
++ },
++ "agents": {
++ "type": "array",
++ "maxItems": 20,
++ "items": {
++ "type": "string",
++ "maxLength": 41
++ }
++ },
++ "summary": {
++ "type": "string",
++ "maxLength": 4000
++ },
++ "files": {
++ "type": "array",
++ "maxItems": 2000,
++ "items": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "path"
++ ],
++ "properties": {
++ "path": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 500
++ },
++ "added": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "removed": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ }
++ }
++ }
++ },
++ "patch": {
++ "type": "string",
++ "maxLength": 262144
++ },
++ "patch_truncated": {
++ "type": "boolean"
++ },
++ "push": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "pushed"
++ ],
++ "properties": {
++ "pushed": {
++ "type": "boolean"
++ },
++ "branch": {
++ "type": "string",
++ "maxLength": 200
++ },
++ "branch_url": {
++ "type": "string",
++ "format": "uri"
++ },
++ "pull_request": {
++ "type": "string",
++ "format": "uri"
++ },
++ "pull_request_error": {
++ "type": "string",
++ "maxLength": 500
++ },
++ "reason": {
++ "type": "string",
++ "maxLength": 500
++ }
++ }
++ },
++ "cost_usd": {
++ "type": "number",
++ "minimum": 0
++ },
++ "duration_ms": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "error": {
++ "type": "string",
++ "maxLength": 1000
++ }
++ }
++ },
++ "actor_ref": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "task_id": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 256
++ },
++ "step_id": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 256
++ }
++ },
++ "description": "The OpenVibe.Actor task and step that started this coding task, when it came from Actor."
++ },
++ "attempts": {
++ "type": "array",
++ "maxItems": 50,
++ "description": "The task's timeline: every try of it, in order. The first is the task itself; the others are what the agents did after it (the same conversation carried on, another agent taking over, a last turn before a limit).",
++ "items": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "id",
++ "n",
++ "state"
++ ],
++ "properties": {
++ "id": {
++ "type": "string",
++ "pattern": "^att_[0-9A-HJKMNP-TV-Z]{26}$",
++ "description": "The attempt id (att_ + ULID)."
++ },
++ "n": {
++ "type": "integer",
++ "minimum": 1,
++ "description": "The attempt's number, 1 for the first try."
++ },
++ "agent": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 41
++ },
++ "model": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 100
++ },
++ "machine": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 100,
++ "description": "The node that ran the attempt, or sandbox when it ran in a sandbox."
++ },
++ "job_id": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 64
++ },
++ "session": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 200,
++ "description": "The harness session, so a following attempt can carry on in the same conversation."
++ },
++ "state": {
++ "enum": [
++ "queued",
++ "running",
++ "done",
++ "failed",
++ "stopped",
++ "budget-stopped",
++ "interrupted"
++ ]
++ },
++ "reason": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "enum": [
++ "limit",
++ "auth",
++ "capacity",
++ "refused",
++ "error",
++ "budget",
++ "stopped",
++ "hung",
++ "context",
++ null
++ ]
++ },
++ "why": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 1000,
++ "description": "One plain sentence: why this attempt happened, or how it ended."
++ },
++ "kind": {
++ "enum": [
++ "first",
++ "continue",
++ "switch",
++ "wrap-up",
++ "restart",
++ "manual"
++ ]
++ },
++ "cost_usd": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "tokens": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "steps": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "started_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "finished_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "created_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "end_why": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 500,
++ "description": "How the attempt ended, in plain words."
++ }
++ }
++ }
++ },
++ "outcome": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": false,
++ "description": "What the task's attempts added up to: done, unfinished (with what is left), or stopped. Null while the task still runs.",
++ "required": [
++ "state"
++ ],
++ "properties": {
++ "state": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "enum": [
++ "done",
++ "unfinished",
++ "stopped",
++ null
++ ]
++ },
++ "note": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 1000
++ }
++ }
++ }
++ }
++}
ddiff --git a/fixtures/codes.task/invalid/bad-attempt-state.json b/fixtures/codes.task/invalid/bad-attempt-state.json
nnew file mode 100644
iindex 00000000..6d8d9bfb
---- /dev/null
++++ b/fixtures/codes.task/invalid/bad-attempt-state.json
@@@ -0,0 +1,15 @@
++{
++ "id": "tsk_01M4XEV0JT93CAYTXVD6V0QW1E",
++ "state": "succeeded",
++ "repo": "https://github.com/octocat/Hello-World",
++ "url": "https://openvibe.codes/run/tasks/tsk_01M4XEV0JT93CAYTXVD6V0QW1E",
++ "created_at": "2026-10-29T15:00:00.000Z",
++ "updated_at": "2026-10-29T15:04:12.000Z",
++ "attempts": [
++ {
++ "id": "att_01M4XEV0JT93CAYTXVD6V0QW1F",
++ "n": 1,
++ "state": "gave-up"
++ }
++ ]
++}
ddiff --git a/fixtures/codes.task/valid/with-attempts.json b/fixtures/codes.task/valid/with-attempts.json
nnew file mode 100644
iindex 00000000..e735c4d2
---- /dev/null
++++ b/fixtures/codes.task/valid/with-attempts.json
@@@ -0,0 +1,56 @@
++{
++ "id": "tsk_01M4XEV0JT93CAYTXVD6V0QW1E",
++ "state": "succeeded",
++ "repo": "https://github.com/octocat/Hello-World",
++ "ref": null,
++ "agent": "claude-code",
++ "url": "https://openvibe.codes/run/tasks/tsk_01M4XEV0JT93CAYTXVD6V0QW1E",
++ "created_at": "2026-10-29T15:00:00.000Z",
++ "updated_at": "2026-10-29T15:04:12.000Z",
++ "attempts": [
++ {
++ "id": "att_01M4XEV0JT93CAYTXVD6V0QW1F",
++ "n": 1,
++ "agent": "claude-code",
++ "model": "claude-sonnet-4",
++ "machine": "node-01",
++ "job_id": "job_01M4XEV0JT93CAYTXVD6V0QW1G",
++ "session": "sess-42",
++ "state": "failed",
++ "reason": "limit",
++ "why": "the first try, with claude-code",
++ "kind": "first",
++ "cost_usd": 0.12,
++ "tokens": 45000,
++ "steps": 18,
++ "started_at": "2026-10-29T15:00:02.000Z",
++ "finished_at": "2026-10-29T15:02:40.000Z",
++ "created_at": "2026-10-29T15:00:01.000Z",
++ "end_why": "the usage limit was reached"
++ },
++ {
++ "id": "att_01M4XEV0JT93CAYTXVD6V0QW1H",
++ "n": 2,
++ "agent": "codex",
++ "model": "gpt-5-codex",
++ "machine": "node-01",
++ "job_id": "job_01M4XEV0JT93CAYTXVD6V0QW1J",
++ "session": null,
++ "state": "done",
++ "reason": null,
++ "why": "took over: the usage limit was reached",
++ "kind": "switch",
++ "cost_usd": 0.31,
++ "tokens": 61000,
++ "steps": 22,
++ "started_at": "2026-10-29T15:02:41.000Z",
++ "finished_at": "2026-10-29T15:04:10.000Z",
++ "created_at": "2026-10-29T15:02:41.000Z",
++ "end_why": null
++ }
++ ],
++ "outcome": {
++ "state": "done",
++ "note": null
++ }
++}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 67daaf07..ef9b8904 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -83421,7 +83421,7 @@
}
}
},
-- "codes.task": {
++ "codes.task@1": {
"version": "1.1.0",
"owner": "codes",
"status": "active",
@@@ -83625,6 +83625,399 @@
}
}
},
++ "codes.task@2": {
++ "version": "2.0.0",
++ "owner": "codes",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/codes/task.v2.json",
++ "title": "CodesTask",
++ "description": "codes.task@2: a coding task on OpenVibe.Codes, as GET /api/v1/tasks/:id answers it (capability codes.task.read) and POST /api/v1/tasks creates it. It is codes.task@1 with two added fields: ATTEMPTS, the task's timeline (each try of the task, with the state it ended in and why), and OUTCOME, what the task's attempts added up to (done, unfinished with what is left, or stopped). STATE follows the OpenVibe.Run job that carries it: queued (waiting for one of the person's machines), placed, running, then succeeded, failed, cancelled or expired (no machine of theirs took it in time). URL is the task's page on openvibe.codes, where its owner follows it live. RESULT is present once it has ended: OK says whether the agents finished, SUMMARY what they said, FILES and PATCH the change (the patch at most 256 KiB, PATCH_TRUNCATED when cut), PUSH where it went when asked, COST_USD the model use on the person's own keys, DURATION_MS the time on their machine. ERROR says why a task that never ran ended (Run refused it, or the job failed before a result).",
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "id",
++ "state",
++ "repo",
++ "url",
++ "created_at",
++ "updated_at"
++ ],
++ "properties": {
++ "id": {
++ "type": "string",
++ "pattern": "^tsk_[0-9A-HJKMNP-TV-Z]{26}$",
++ "description": "The Codes task id (tsk_ + ULID)."
++ },
++ "state": {
++ "enum": [
++ "queued",
++ "placed",
++ "running",
++ "succeeded",
++ "failed",
++ "cancelled",
++ "expired"
++ ]
++ },
++ "repo": {
++ "type": "string",
++ "maxLength": 300
++ },
++ "ref": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 200
++ },
++ "agent": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 41
++ },
++ "url": {
++ "type": "string",
++ "format": "uri",
++ "pattern": "^https://"
++ },
++ "created_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "updated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "error": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 1000
++ },
++ "result": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "ok"
++ ],
++ "properties": {
++ "ok": {
++ "type": "boolean"
++ },
++ "agents": {
++ "type": "array",
++ "maxItems": 20,
++ "items": {
++ "type": "string",
++ "maxLength": 41
++ }
++ },
++ "summary": {
++ "type": "string",
++ "maxLength": 4000
++ },
++ "files": {
++ "type": "array",
++ "maxItems": 2000,
++ "items": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "path"
++ ],
++ "properties": {
++ "path": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 500
++ },
++ "added": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "removed": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ }
++ }
++ }
++ },
++ "patch": {
++ "type": "string",
++ "maxLength": 262144
++ },
++ "patch_truncated": {
++ "type": "boolean"
++ },
++ "push": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "pushed"
++ ],
++ "properties": {
++ "pushed": {
++ "type": "boolean"
++ },
++ "branch": {
++ "type": "string",
++ "maxLength": 200
++ },
++ "branch_url": {
++ "type": "string",
++ "format": "uri"
++ },
++ "pull_request": {
++ "type": "string",
++ "format": "uri"
++ },
++ "pull_request_error": {
++ "type": "string",
++ "maxLength": 500
++ },
++ "reason": {
++ "type": "string",
++ "maxLength": 500
++ }
++ }
++ },
++ "cost_usd": {
++ "type": "number",
++ "minimum": 0
++ },
++ "duration_ms": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "error": {
++ "type": "string",
++ "maxLength": 1000
++ }
++ }
++ },
++ "actor_ref": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "task_id": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 256
++ },
++ "step_id": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 256
++ }
++ },
++ "description": "The OpenVibe.Actor task and step that started this coding task, when it came from Actor."
++ },
++ "attempts": {
++ "type": "array",
++ "maxItems": 50,
++ "description": "The task's timeline: every try of it, in order. The first is the task itself; the others are what the agents did after it (the same conversation carried on, another agent taking over, a last turn before a limit).",
++ "items": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "id",
++ "n",
++ "state"
++ ],
++ "properties": {
++ "id": {
++ "type": "string",
++ "pattern": "^att_[0-9A-HJKMNP-TV-Z]{26}$",
++ "description": "The attempt id (att_ + ULID)."
++ },
++ "n": {
++ "type": "integer",
++ "minimum": 1,
++ "description": "The attempt's number, 1 for the first try."
++ },
++ "agent": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 41
++ },
++ "model": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 100
++ },
++ "machine": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 100,
++ "description": "The node that ran the attempt, or sandbox when it ran in a sandbox."
++ },
++ "job_id": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 64
++ },
++ "session": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 200,
++ "description": "The harness session, so a following attempt can carry on in the same conversation."
++ },
++ "state": {
++ "enum": [
++ "queued",
++ "running",
++ "done",
++ "failed",
++ "stopped",
++ "budget-stopped",
++ "interrupted"
++ ]
++ },
++ "reason": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "enum": [
++ "limit",
++ "auth",
++ "capacity",
++ "refused",
++ "error",
++ "budget",
++ "stopped",
++ "hung",
++ "context",
++ null
++ ]
++ },
++ "why": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 1000,
++ "description": "One plain sentence: why this attempt happened, or how it ended."
++ },
++ "kind": {
++ "enum": [
++ "first",
++ "continue",
++ "switch",
++ "wrap-up",
++ "restart",
++ "manual"
++ ]
++ },
++ "cost_usd": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "tokens": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "steps": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "started_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "finished_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "created_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "end_why": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 500,
++ "description": "How the attempt ended, in plain words."
++ }
++ }
++ }
++ },
++ "outcome": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": false,
++ "description": "What the task's attempts added up to: done, unfinished (with what is left), or stopped. Null while the task still runs.",
++ "required": [
++ "state"
++ ],
++ "properties": {
++ "state": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "enum": [
++ "done",
++ "unfinished",
++ "stopped",
++ null
++ ]
++ },
++ "note": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 1000
++ }
++ }
++ }
++ }
++ }
++ },
"play.title-definition": {
"version": "1.0.0",
"owner": "play",
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex 2fb16549..9093974e 100644
---- a/generated/openapi/actor.json
++++ b/generated/openapi/actor.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Actor API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/ai.json b/generated/openapi/ai.json
iindex 7ba8014d..1a7e017b 100644
---- a/generated/openapi/ai.json
++++ b/generated/openapi/ai.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.AI API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bench.json b/generated/openapi/bench.json
iindex 88e32133..b9de96ed 100644
---- a/generated/openapi/bench.json
++++ b/generated/openapi/bench.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Bench API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/billing.json b/generated/openapi/billing.json
iindex 132ecd47..e57b725e 100644
---- a/generated/openapi/billing.json
++++ b/generated/openapi/billing.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Billing API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/blog.json b/generated/openapi/blog.json
iindex be01c938..8bff6da7 100644
---- a/generated/openapi/blog.json
++++ b/generated/openapi/blog.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Blog API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bot.json b/generated/openapi/bot.json
iindex a5f6054c..599c8722 100644
---- a/generated/openapi/bot.json
++++ b/generated/openapi/bot.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Bot API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/chat.json b/generated/openapi/chat.json
iindex 728898b6..71931342 100644
---- a/generated/openapi/chat.json
++++ b/generated/openapi/chat.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Chat API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/codes.json b/generated/openapi/codes.json
iindex 5a8a67e2..6d3944e3 100644
---- a/generated/openapi/codes.json
++++ b/generated/openapi/codes.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Codes API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
@@@ -122,7 +122,7 @@
"get": {
"operationId": "get_api_v1_tasks_id",
"summary": "Read a coding task started through codes.task.start: GET /api/v1/tasks/:id on OpenVibe.Codes, as the service that started it, naming the same person in X-OV-Subject.",
-- "description": "**codes.task.read** (first-party): Read a coding task started through codes.task.start: GET /api/v1/tasks/:id on OpenVibe.Codes, as the service that started it, naming the same person in X-OV-Subject. Another service's task, or another person's, is 404.",
++ "description": "**codes.task.read** (first-party): Read a coding task started through codes.task.start: GET /api/v1/tasks/:id on OpenVibe.Codes, as the service that started it, naming the same person in X-OV-Subject. Another service's task, or another person's, is 404. The answer is codes.task@2: the task itself (as codes.task@1, with the same fields at the top level) and, added to it, the task's attempts (its timeline) and its outcome.",
"tags": [
"codes.task"
],
@@@ -156,7 +156,7 @@
"content": {
"application/json": {
"schema": {
-- "$ref": "#/components/schemas/codes.task.v1"
++ "$ref": "#/components/schemas/codes.task.v2"
}
}
}
@@@ -511,6 +511,392 @@
}
}
},
++ "codes.task.v2": {
++ "title": "CodesTask",
++ "description": "codes.task@2: a coding task on OpenVibe.Codes, as GET /api/v1/tasks/:id answers it (capability codes.task.read) and POST /api/v1/tasks creates it. It is codes.task@1 with two added fields: ATTEMPTS, the task's timeline (each try of the task, with the state it ended in and why), and OUTCOME, what the task's attempts added up to (done, unfinished with what is left, or stopped). STATE follows the OpenVibe.Run job that carries it: queued (waiting for one of the person's machines), placed, running, then succeeded, failed, cancelled or expired (no machine of theirs took it in time). URL is the task's page on openvibe.codes, where its owner follows it live. RESULT is present once it has ended: OK says whether the agents finished, SUMMARY what they said, FILES and PATCH the change (the patch at most 256 KiB, PATCH_TRUNCATED when cut), PUSH where it went when asked, COST_USD the model use on the person's own keys, DURATION_MS the time on their machine. ERROR says why a task that never ran ended (Run refused it, or the job failed before a result).",
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "id",
++ "state",
++ "repo",
++ "url",
++ "created_at",
++ "updated_at"
++ ],
++ "properties": {
++ "id": {
++ "type": "string",
++ "pattern": "^tsk_[0-9A-HJKMNP-TV-Z]{26}$",
++ "description": "The Codes task id (tsk_ + ULID)."
++ },
++ "state": {
++ "enum": [
++ "queued",
++ "placed",
++ "running",
++ "succeeded",
++ "failed",
++ "cancelled",
++ "expired"
++ ]
++ },
++ "repo": {
++ "type": "string",
++ "maxLength": 300
++ },
++ "ref": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 200
++ },
++ "agent": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 41
++ },
++ "url": {
++ "type": "string",
++ "format": "uri",
++ "pattern": "^https://"
++ },
++ "created_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "updated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "error": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 1000
++ },
++ "result": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "ok"
++ ],
++ "properties": {
++ "ok": {
++ "type": "boolean"
++ },
++ "agents": {
++ "type": "array",
++ "maxItems": 20,
++ "items": {
++ "type": "string",
++ "maxLength": 41
++ }
++ },
++ "summary": {
++ "type": "string",
++ "maxLength": 4000
++ },
++ "files": {
++ "type": "array",
++ "maxItems": 2000,
++ "items": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "path"
++ ],
++ "properties": {
++ "path": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 500
++ },
++ "added": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "removed": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ }
++ }
++ }
++ },
++ "patch": {
++ "type": "string",
++ "maxLength": 262144
++ },
++ "patch_truncated": {
++ "type": "boolean"
++ },
++ "push": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "pushed"
++ ],
++ "properties": {
++ "pushed": {
++ "type": "boolean"
++ },
++ "branch": {
++ "type": "string",
++ "maxLength": 200
++ },
++ "branch_url": {
++ "type": "string",
++ "format": "uri"
++ },
++ "pull_request": {
++ "type": "string",
++ "format": "uri"
++ },
++ "pull_request_error": {
++ "type": "string",
++ "maxLength": 500
++ },
++ "reason": {
++ "type": "string",
++ "maxLength": 500
++ }
++ }
++ },
++ "cost_usd": {
++ "type": "number",
++ "minimum": 0
++ },
++ "duration_ms": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "error": {
++ "type": "string",
++ "maxLength": 1000
++ }
++ }
++ },
++ "actor_ref": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "task_id": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 256
++ },
++ "step_id": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 256
++ }
++ },
++ "description": "The OpenVibe.Actor task and step that started this coding task, when it came from Actor."
++ },
++ "attempts": {
++ "type": "array",
++ "maxItems": 50,
++ "description": "The task's timeline: every try of it, in order. The first is the task itself; the others are what the agents did after it (the same conversation carried on, another agent taking over, a last turn before a limit).",
++ "items": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "id",
++ "n",
++ "state"
++ ],
++ "properties": {
++ "id": {
++ "type": "string",
++ "pattern": "^att_[0-9A-HJKMNP-TV-Z]{26}$",
++ "description": "The attempt id (att_ + ULID)."
++ },
++ "n": {
++ "type": "integer",
++ "minimum": 1,
++ "description": "The attempt's number, 1 for the first try."
++ },
++ "agent": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 41
++ },
++ "model": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 100
++ },
++ "machine": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 100,
++ "description": "The node that ran the attempt, or sandbox when it ran in a sandbox."
++ },
++ "job_id": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 64
++ },
++ "session": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 200,
++ "description": "The harness session, so a following attempt can carry on in the same conversation."
++ },
++ "state": {
++ "enum": [
++ "queued",
++ "running",
++ "done",
++ "failed",
++ "stopped",
++ "budget-stopped",
++ "interrupted"
++ ]
++ },
++ "reason": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "enum": [
++ "limit",
++ "auth",
++ "capacity",
++ "refused",
++ "error",
++ "budget",
++ "stopped",
++ "hung",
++ "context",
++ null
++ ]
++ },
++ "why": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 1000,
++ "description": "One plain sentence: why this attempt happened, or how it ended."
++ },
++ "kind": {
++ "enum": [
++ "first",
++ "continue",
++ "switch",
++ "wrap-up",
++ "restart",
++ "manual"
++ ]
++ },
++ "cost_usd": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "tokens": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "steps": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "started_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "finished_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "created_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "end_why": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 500,
++ "description": "How the attempt ended, in plain words."
++ }
++ }
++ }
++ },
++ "outcome": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": false,
++ "description": "What the task's attempts added up to: done, unfinished (with what is left), or stopped. Null while the task still runs.",
++ "required": [
++ "state"
++ ],
++ "properties": {
++ "state": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "enum": [
++ "done",
++ "unfinished",
++ "stopped",
++ null
++ ]
++ },
++ "note": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 1000
++ }
++ }
++ }
++ }
++ },
"common.action-item.v1": {
"title": "ActionItem",
"description": "One piece of a person's agent work in the Action Center (plan 2026-10-28 §3.10): an agent task, a coding task, an AI run, or an approval waiting on them. Each authority answers its own items in this shape (common.action-list-result@1); OpenVibe.Network merges them into buckets (network.me-actions-result@1). Text is plain (no markup); a cost is what the person was charged in USD, null when unknown or free; href is a page on the authority's own public site.",
ddiff --git a/generated/openapi/community.json b/generated/openapi/community.json
iindex 660cd630..f2d6b4ad 100644
---- a/generated/openapi/community.json
++++ b/generated/openapi/community.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Community API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/coupons.json b/generated/openapi/coupons.json
iindex 03d8a7b4..816c87b5 100644
---- a/generated/openapi/coupons.json
++++ b/generated/openapi/coupons.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Coupons API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/deals.json b/generated/openapi/deals.json
iindex 80eb229d..d7a10704 100644
---- a/generated/openapi/deals.json
++++ b/generated/openapi/deals.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Deals API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/domains.json b/generated/openapi/domains.json
iindex 63cc14db..7fa24786 100644
---- a/generated/openapi/domains.json
++++ b/generated/openapi/domains.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Domains API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/events.json b/generated/openapi/events.json
iindex 96dfb9f6..718339cd 100644
---- a/generated/openapi/events.json
++++ b/generated/openapi/events.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Events API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/food.json b/generated/openapi/food.json
iindex 1d808df6..901b12fb 100644
---- a/generated/openapi/food.json
++++ b/generated/openapi/food.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Food API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/games.json b/generated/openapi/games.json
iindex b150c137..c5e4bdfa 100644
---- a/generated/openapi/games.json
++++ b/generated/openapi/games.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Games API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/host.json b/generated/openapi/host.json
iindex ffd1ef9d..76544a08 100644
---- a/generated/openapi/host.json
++++ b/generated/openapi/host.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Host API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/inventory.json b/generated/openapi/inventory.json
iindex fefa9def..feb9a5d8 100644
---- a/generated/openapi/inventory.json
++++ b/generated/openapi/inventory.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Inventory API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/live.json b/generated/openapi/live.json
iindex 187bda7e..0b455d06 100644
---- a/generated/openapi/live.json
++++ b/generated/openapi/live.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Live API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media-hub.json b/generated/openapi/media-hub.json
iindex a04cb577..14377536 100644
---- a/generated/openapi/media-hub.json
++++ b/generated/openapi/media-hub.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.MediaHub API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media.json b/generated/openapi/media.json
iindex fa5ae1ca..6b8d80f0 100644
---- a/generated/openapi/media.json
++++ b/generated/openapi/media.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Media API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/network.json b/generated/openapi/network.json
iindex c9db8f50..53dcbf7c 100644
---- a/generated/openapi/network.json
++++ b/generated/openapi/network.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Network API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/news.json b/generated/openapi/news.json
iindex 547d88c5..fd2f931e 100644
---- a/generated/openapi/news.json
++++ b/generated/openapi/news.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.News API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/openre.json b/generated/openapi/openre.json
iindex c3343b6f..6442897c 100644
---- a/generated/openapi/openre.json
++++ b/generated/openapi/openre.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenRestream API",
-- "version": "0.241.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/play.json b/generated/openapi/play.json
iindex 263c10d6..8095f3f6 100644
---- a/generated/openapi/play.json
++++ b/generated/openapi/play.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Play API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/quest.json b/generated/openapi/quest.json
iindex be9cd290..6c6c2031 100644
---- a/generated/openapi/quest.json
++++ b/generated/openapi/quest.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Quest API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/reviews.json b/generated/openapi/reviews.json
iindex 1b67aa5b..a02ea546 100644
---- a/generated/openapi/reviews.json
++++ b/generated/openapi/reviews.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Reviews API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/run.json b/generated/openapi/run.json
iindex 01f625a1..3c69e701 100644
---- a/generated/openapi/run.json
++++ b/generated/openapi/run.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Run API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/search.json b/generated/openapi/search.json
iindex 69b8a54b..80b8d6eb 100644
---- a/generated/openapi/search.json
++++ b/generated/openapi/search.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Search API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/services.json b/generated/openapi/services.json
iindex c5c0424e..945f06b0 100644
---- a/generated/openapi/services.json
++++ b/generated/openapi/services.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Services API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/sources.json b/generated/openapi/sources.json
iindex 5d8d5d27..bdbe44d8 100644
---- a/generated/openapi/sources.json
++++ b/generated/openapi/sources.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Sources API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/space.json b/generated/openapi/space.json
iindex ea42ea07..1e977edd 100644
---- a/generated/openapi/space.json
++++ b/generated/openapi/space.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Space API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tips.json b/generated/openapi/tips.json
iindex 3120f6b7..40d1e08f 100644
---- a/generated/openapi/tips.json
++++ b/generated/openapi/tips.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tips API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tools.json b/generated/openapi/tools.json
iindex 6f3e4511..334ba335 100644
---- a/generated/openapi/tools.json
++++ b/generated/openapi/tools.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tools API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/trade.json b/generated/openapi/trade.json
iindex a925fc9c..749aa07c 100644
---- a/generated/openapi/trade.json
++++ b/generated/openapi/trade.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Trade API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vip.json b/generated/openapi/vip.json
iindex 72285c95..8b5b4e5f 100644
---- a/generated/openapi/vip.json
++++ b/generated/openapi/vip.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.VIP API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vision.json b/generated/openapi/vision.json
iindex 7976ee9f..e1bc5ebd 100644
---- a/generated/openapi/vision.json
++++ b/generated/openapi/vision.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Vision API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/watch.json b/generated/openapi/watch.json
iindex 1bf3c24a..06ab8fe9 100644
---- a/generated/openapi/watch.json
++++ b/generated/openapi/watch.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Watch API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/wiki.json b/generated/openapi/wiki.json
iindex 4e9fb8b2..bc660636 100644
---- a/generated/openapi/wiki.json
++++ b/generated/openapi/wiki.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Wiki API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/work.json b/generated/openapi/work.json
iindex c3a34fb6..bbce0bb9 100644
---- a/generated/openapi/work.json
++++ b/generated/openapi/work.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Work API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/zone.json b/generated/openapi/zone.json
iindex 6ea9ba62..eeac6ba1 100644
---- a/generated/openapi/zone.json
++++ b/generated/openapi/zone.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Zone API",
-- "version": "0.241.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.241.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.243.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.243.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/typescript/index.d.ts b/generated/typescript/index.d.ts
iindex a3fa134e..15a937c5 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -211516,6 +211516,8 @@ export interface CodesTask {
} | null;
}
++/** [email protected] (owner: codes) */
++
/** [email protected] (owner: play) */
/**
* A title as its own principal registers it (play.title.manage, PUT /api/v1/titles/:title). Achievements and boards are listed in display order; one left out is retired, never deleted. A board's kind never changes.
ddiff --git a/manifests/capabilities/codes.task.read.json b/manifests/capabilities/codes.task.read.json
iindex 61d05119..f8bf02c0 100644
---- a/manifests/capabilities/codes.task.read.json
++++ b/manifests/capabilities/codes.task.read.json
@@@ -4,9 +4,9 @@
"owner": "codes",
"status": "active",
"visibility": "first-party",
-- "description": "Read a coding task started through codes.task.start: GET /api/v1/tasks/:id on OpenVibe.Codes, as the service that started it, naming the same person in X-OV-Subject. Another service's task, or another person's, is 404.",
++ "description": "Read a coding task started through codes.task.start: GET /api/v1/tasks/:id on OpenVibe.Codes, as the service that started it, naming the same person in X-OV-Subject. Another service's task, or another person's, is 404. The answer is codes.task@2: the task itself (as codes.task@1, with the same fields at the top level) and, added to it, the task's attempts (its timeline) and its outcome.",
"inputSchema": "common.no-body@1",
-- "outputSchema": "codes.task@1",
++ "outputSchema": "codes.task@2",
"permissions": [
"codes:tasks:read"
],
ddiff --git a/package.json b/package.json
iindex 9ab3cfba..5e497251 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.241.0",
++ "version": "0.243.0",
"description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.",
"main": "index.js",
"types": "generated/typescript/index.d.ts",