openvibers/openvibe.contracts Commits

0.251.0: the Dock's state (network.dock-state@1, network.dock-result@1) (#259)

OP OpenVibers committed 14 days ago · 17ee5b2371 · 56 files, +611 −81

The Dock (plan 2026-10-30, K-D1) is one small floating surface on every OpenVibe
site: your agent, your chats and your activity. It is drawn on many domains and
localStorage is per site, so the state it follows you with has to live in the
Network.

network.dock-state@1 is one person's Dock: open or collapsed to its pill, which
tab shows, whether the pill is pinned, the agent the Agent tab follows, the
conversation the Chats tab has open, and where it sits per device class (a corner
on a phone, a corner and an optional size on a desktop).

network.dock-result@1 is what GET /api/v1/me/dock answers: that state, the counts
the pill's status dot is drawn from (running, waiting, unread) and whether an
authority behind those counts did not answer, so the counts are lower than the
truth.

Every object refuses extra keys, so a page cannot smuggle a field into the state
another page reads. Two new contracts: nothing changed or removed.

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex a222c91e..0d803049 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -4,6 +4,21 @@ 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.251.0 — 2026-10-30
++
++- **`network.dock-state@1`** (the Dock plan 2026-10-30, K-D1): the state of one person's Dock — the little floating
++ surface every OpenVibe site draws. It lives in the Network, not in the browser, because `localStorage` is per site and
++ the Dock follows the person across every domain. `open` (open or collapsed to its pill), `tab`
++ (`agent` | `chats` | `activity`), `pinned` (keep the pill even when nothing runs or waits), `agent`
++ (`{ service: actor|codes|run|desks, id }` or null — the agent the Agent tab follows), `chat` (the conversation the
++ Chats tab has open, or null), `place` (where it sits per device class: a `corner` for the phone, a `corner` plus an
++ optional `width` (320..720) and `height` (360..900) for the desktop) and `updated_at`. Every object refuses extra
++ keys, so a page cannot smuggle a field into the state another page reads.
++- **`network.dock-result@1`** (the Dock plan 2026-10-30, K-D1): what `GET /api/v1/me/dock` answers on OpenVibe.Network
++ — the person's `network.dock-state@1`, the `counts` the pill's status dot is drawn from (`running`, `waiting`,
++ `unread`) and `sources_partial` (true when an authority behind the counts did not answer, so the counts are lower
++ than the truth). Additive: two new contracts, nothing changed or removed.
++
## 0.250.0 — 2026-10-30
- **`bot.device-message@1`'s heartbeat gains an optional `fleet`** (Codes C9c): what the machine's coding agents have
ddiff --git a/contracts/catalog.json b/contracts/catalog.json
iindex 95f04466..f1b94fc4 100644
---- a/contracts/catalog.json
++++ b/contracts/catalog.json
@@@ -7670,6 +7670,24 @@
"compatibility": "backward",
"status": "active"
},
++ {
++ "id": "network.dock-state",
++ "version": "1.0.0",
++ "owner": "network",
++ "schema": "network/dock-state.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "network.dock-result",
++ "version": "1.0.0",
++ "owner": "network",
++ "schema": "network/dock-result.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
++ },
{
"id": "today.event.scheduled",
"version": "1.0.0",
ddiff --git a/contracts/network/dock-result.v1.json b/contracts/network/dock-result.v1.json
nnew file mode 100644
iindex 00000000..480a59f2
---- /dev/null
++++ b/contracts/network/dock-result.v1.json
@@@ -0,0 +1,29 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/network/dock-result.v1.json",
++ "title": "NetworkDockResult",
++ "description": "network.dock-result@1 (the Dock plan 2026-10-30, K-D1): what GET /api/v1/me/dock answers on OpenVibe.Network — the person's Dock state, the counts the pill's status dot is drawn from, and whether those counts are complete.",
++ "type": "object",
++ "additionalProperties": false,
++ "required": ["state", "counts", "sources_partial"],
++ "properties": {
++ "state": {
++ "$ref": "dock-state.v1.json",
++ "description": "The person's Dock state: the stored one, or the default when they have never opened the Dock."
++ },
++ "counts": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": ["running", "waiting", "unread"],
++ "properties": {
++ "running": { "type": "integer", "minimum": 0, "description": "How many of the person's agents are running." },
++ "waiting": { "type": "integer", "minimum": 0, "description": "How many need the person." },
++ "unread": { "type": "integer", "minimum": 0, "description": "How many notifications the person has not read." }
++ }
++ },
++ "sources_partial": {
++ "type": "boolean",
++ "description": "True when an authority behind the counts did not answer, so the counts are lower than the truth."
++ }
++ }
++}
ddiff --git a/contracts/network/dock-state.v1.json b/contracts/network/dock-state.v1.json
nnew file mode 100644
iindex 00000000..4b353e38
---- /dev/null
++++ b/contracts/network/dock-state.v1.json
@@@ -0,0 +1,71 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/network/dock-state.v1.json",
++ "title": "NetworkDockState",
++ "description": "network.dock-state@1 (the Dock plan 2026-10-30, K-D1): the state of one person's Dock — the little floating surface every OpenVibe site draws. It lives in the Network, not in the browser, because localStorage is per site and the Dock follows the person across every domain. GET /api/v1/me/dock and PUT /api/v1/me/dock on OpenVibe.Network.",
++ "type": "object",
++ "additionalProperties": false,
++ "required": ["open", "tab", "pinned", "agent", "chat", "place", "updated_at"],
++ "properties": {
++ "open": {
++ "type": "boolean",
++ "description": "Whether the Dock is open (a sheet on a phone, a floating card on a desktop) or collapsed to its pill."
++ },
++ "tab": {
++ "enum": ["agent", "chats", "activity"],
++ "description": "Which of the Dock's three tabs shows: the agent's screen, the chats, the activity."
++ },
++ "pinned": {
++ "type": "boolean",
++ "description": "Keep the pill on screen even when nothing runs and nothing waits."
++ },
++ "agent": {
++ "type": ["object", "null"],
++ "additionalProperties": false,
++ "required": ["service", "id"],
++ "properties": {
++ "service": { "enum": ["actor", "codes", "run", "desks"] },
++ "id": { "type": "string", "minLength": 1, "maxLength": 80 }
++ },
++ "description": "The agent the Agent tab follows, or null when it follows none."
++ },
++ "chat": {
++ "type": ["string", "null"],
++ "minLength": 1,
++ "maxLength": 80,
++ "description": "The conversation the Chats tab has open, or null."
++ },
++ "place": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": ["phone", "desktop"],
++ "properties": {
++ "phone": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": ["corner"],
++ "properties": {
++ "corner": { "enum": ["bottom-right", "bottom-left", "top-right", "top-left"] }
++ },
++ "description": "Where the Dock sits on a phone."
++ },
++ "desktop": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": ["corner", "width", "height"],
++ "properties": {
++ "corner": { "enum": ["bottom-right", "bottom-left", "top-right", "top-left"] },
++ "width": { "type": ["integer", "null"], "minimum": 320, "maximum": 720 },
++ "height": { "type": ["integer", "null"], "minimum": 360, "maximum": 900 }
++ },
++ "description": "Where the Dock sits on a desktop, and how big it is (null: the site's own default size)."
++ }
++ }
++ },
++ "updated_at": {
++ "type": "string",
++ "format": "date-time",
++ "description": "When the state was last written."
++ }
++ }
++}
ddiff --git a/fixtures/network.dock-result/invalid/extra-key.json b/fixtures/network.dock-result/invalid/extra-key.json
nnew file mode 100644
iindex 00000000..efdf6858
---- /dev/null
++++ b/fixtures/network.dock-result/invalid/extra-key.json
@@@ -0,0 +1,17 @@
++{
++ "state": {
++ "open": false,
++ "tab": "activity",
++ "pinned": false,
++ "agent": null,
++ "chat": null,
++ "place": {
++ "phone": { "corner": "bottom-right" },
++ "desktop": { "corner": "bottom-right", "width": null, "height": null }
++ },
++ "updated_at": "2026-10-30T12:00:00Z"
++ },
++ "counts": { "running": 0, "waiting": 0, "unread": 0 },
++ "sources_partial": false,
++ "sources": { "actor": "ok" }
++}
ddiff --git a/fixtures/network.dock-result/invalid/negative-count.json b/fixtures/network.dock-result/invalid/negative-count.json
nnew file mode 100644
iindex 00000000..1bbee393
---- /dev/null
++++ b/fixtures/network.dock-result/invalid/negative-count.json
@@@ -0,0 +1,16 @@
++{
++ "state": {
++ "open": true,
++ "tab": "agent",
++ "pinned": true,
++ "agent": { "service": "codes", "id": "tsk_01JAB2C3D4E5F6G7H8J9K0MNPQ" },
++ "chat": null,
++ "place": {
++ "phone": { "corner": "bottom-left" },
++ "desktop": { "corner": "bottom-left", "width": 480, "height": 720 }
++ },
++ "updated_at": "2026-10-30T12:00:00Z"
++ },
++ "counts": { "running": -1, "waiting": 0, "unread": 3 },
++ "sources_partial": false
++}
ddiff --git a/fixtures/network.dock-result/valid/default.json b/fixtures/network.dock-result/valid/default.json
nnew file mode 100644
iindex 00000000..ddf322d2
---- /dev/null
++++ b/fixtures/network.dock-result/valid/default.json
@@@ -0,0 +1,16 @@
++{
++ "state": {
++ "open": false,
++ "tab": "activity",
++ "pinned": false,
++ "agent": null,
++ "chat": null,
++ "place": {
++ "phone": { "corner": "bottom-right" },
++ "desktop": { "corner": "bottom-right", "width": null, "height": null }
++ },
++ "updated_at": "2026-10-30T12:00:00Z"
++ },
++ "counts": { "running": 0, "waiting": 0, "unread": 0 },
++ "sources_partial": false
++}
ddiff --git a/fixtures/network.dock-state/invalid/extra-key.json b/fixtures/network.dock-state/invalid/extra-key.json
nnew file mode 100644
iindex 00000000..8202ec37
---- /dev/null
++++ b/fixtures/network.dock-state/invalid/extra-key.json
@@@ -0,0 +1,13 @@
++{
++ "open": false,
++ "tab": "activity",
++ "pinned": false,
++ "agent": null,
++ "chat": null,
++ "place": {
++ "phone": { "corner": "bottom-right" },
++ "desktop": { "corner": "bottom-right", "width": null, "height": null }
++ },
++ "updated_at": "2026-10-30T12:00:00Z",
++ "theme": "neon-tokyo"
++}
ddiff --git a/fixtures/network.dock-state/invalid/unknown-tab.json b/fixtures/network.dock-state/invalid/unknown-tab.json
nnew file mode 100644
iindex 00000000..c22a5e8c
---- /dev/null
++++ b/fixtures/network.dock-state/invalid/unknown-tab.json
@@@ -0,0 +1,12 @@
++{
++ "open": false,
++ "tab": "profile",
++ "pinned": false,
++ "agent": null,
++ "chat": null,
++ "place": {
++ "phone": { "corner": "bottom-right" },
++ "desktop": { "corner": "bottom-right", "width": null, "height": null }
++ },
++ "updated_at": "2026-10-30T12:00:00Z"
++}
ddiff --git a/fixtures/network.dock-state/invalid/width-2000.json b/fixtures/network.dock-state/invalid/width-2000.json
nnew file mode 100644
iindex 00000000..7260e662
---- /dev/null
++++ b/fixtures/network.dock-state/invalid/width-2000.json
@@@ -0,0 +1,12 @@
++{
++ "open": false,
++ "tab": "activity",
++ "pinned": false,
++ "agent": null,
++ "chat": null,
++ "place": {
++ "phone": { "corner": "bottom-right" },
++ "desktop": { "corner": "bottom-right", "width": 2000, "height": 640 }
++ },
++ "updated_at": "2026-10-30T12:00:00Z"
++}
ddiff --git a/fixtures/network.dock-state/valid/both-places.json b/fixtures/network.dock-state/valid/both-places.json
nnew file mode 100644
iindex 00000000..71a90830
---- /dev/null
++++ b/fixtures/network.dock-state/valid/both-places.json
@@@ -0,0 +1,12 @@
++{
++ "open": false,
++ "tab": "chats",
++ "pinned": false,
++ "agent": null,
++ "chat": null,
++ "place": {
++ "phone": { "corner": "top-right" },
++ "desktop": { "corner": "top-right", "width": 320, "height": 360 }
++ },
++ "updated_at": "2026-10-30T12:00:00Z"
++}
ddiff --git a/fixtures/network.dock-state/valid/default.json b/fixtures/network.dock-state/valid/default.json
nnew file mode 100644
iindex 00000000..a157e39e
---- /dev/null
++++ b/fixtures/network.dock-state/valid/default.json
@@@ -0,0 +1,12 @@
++{
++ "open": false,
++ "tab": "activity",
++ "pinned": false,
++ "agent": null,
++ "chat": null,
++ "place": {
++ "phone": { "corner": "bottom-right" },
++ "desktop": { "corner": "bottom-right", "width": null, "height": null }
++ },
++ "updated_at": "2026-10-30T12:00:00Z"
++}
ddiff --git a/fixtures/network.dock-state/valid/pinned.json b/fixtures/network.dock-state/valid/pinned.json
nnew file mode 100644
iindex 00000000..a997d9cc
---- /dev/null
++++ b/fixtures/network.dock-state/valid/pinned.json
@@@ -0,0 +1,12 @@
++{
++ "open": true,
++ "tab": "agent",
++ "pinned": true,
++ "agent": { "service": "actor", "id": "tsk_01JAB2C3D4E5F6G7H8J9K0MNPQ" },
++ "chat": "cnv_01JAB2C3D4E5F6G7H8J9K0MNPQ",
++ "place": {
++ "phone": { "corner": "top-left" },
++ "desktop": { "corner": "bottom-left", "width": 420, "height": 640 }
++ },
++ "updated_at": "2026-10-30T12:00:00Z"
++}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 58bf1398..5f5378c0 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -86990,6 +86990,205 @@
}
}
},
++ "network.dock-state": {
++ "version": "1.0.0",
++ "owner": "network",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/network/dock-state.v1.json",
++ "title": "NetworkDockState",
++ "description": "network.dock-state@1 (the Dock plan 2026-10-30, K-D1): the state of one person's Dock — the little floating surface every OpenVibe site draws. It lives in the Network, not in the browser, because localStorage is per site and the Dock follows the person across every domain. GET /api/v1/me/dock and PUT /api/v1/me/dock on OpenVibe.Network.",
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "open",
++ "tab",
++ "pinned",
++ "agent",
++ "chat",
++ "place",
++ "updated_at"
++ ],
++ "properties": {
++ "open": {
++ "type": "boolean",
++ "description": "Whether the Dock is open (a sheet on a phone, a floating card on a desktop) or collapsed to its pill."
++ },
++ "tab": {
++ "enum": [
++ "agent",
++ "chats",
++ "activity"
++ ],
++ "description": "Which of the Dock's three tabs shows: the agent's screen, the chats, the activity."
++ },
++ "pinned": {
++ "type": "boolean",
++ "description": "Keep the pill on screen even when nothing runs and nothing waits."
++ },
++ "agent": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": false,
++ "required": [
++ "service",
++ "id"
++ ],
++ "properties": {
++ "service": {
++ "enum": [
++ "actor",
++ "codes",
++ "run",
++ "desks"
++ ]
++ },
++ "id": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 80
++ }
++ },
++ "description": "The agent the Agent tab follows, or null when it follows none."
++ },
++ "chat": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "minLength": 1,
++ "maxLength": 80,
++ "description": "The conversation the Chats tab has open, or null."
++ },
++ "place": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "phone",
++ "desktop"
++ ],
++ "properties": {
++ "phone": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "corner"
++ ],
++ "properties": {
++ "corner": {
++ "enum": [
++ "bottom-right",
++ "bottom-left",
++ "top-right",
++ "top-left"
++ ]
++ }
++ },
++ "description": "Where the Dock sits on a phone."
++ },
++ "desktop": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "corner",
++ "width",
++ "height"
++ ],
++ "properties": {
++ "corner": {
++ "enum": [
++ "bottom-right",
++ "bottom-left",
++ "top-right",
++ "top-left"
++ ]
++ },
++ "width": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 320,
++ "maximum": 720
++ },
++ "height": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 360,
++ "maximum": 900
++ }
++ },
++ "description": "Where the Dock sits on a desktop, and how big it is (null: the site's own default size)."
++ }
++ }
++ },
++ "updated_at": {
++ "type": "string",
++ "format": "date-time",
++ "description": "When the state was last written."
++ }
++ }
++ }
++ },
++ "network.dock-result": {
++ "version": "1.0.0",
++ "owner": "network",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/network/dock-result.v1.json",
++ "title": "NetworkDockResult",
++ "description": "network.dock-result@1 (the Dock plan 2026-10-30, K-D1): what GET /api/v1/me/dock answers on OpenVibe.Network — the person's Dock state, the counts the pill's status dot is drawn from, and whether those counts are complete.",
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "state",
++ "counts",
++ "sources_partial"
++ ],
++ "properties": {
++ "state": {
++ "$ref": "dock-state.v1.json",
++ "description": "The person's Dock state: the stored one, or the default when they have never opened the Dock."
++ },
++ "counts": {
++ "type": "object",
++ "additionalProperties": false,
++ "required": [
++ "running",
++ "waiting",
++ "unread"
++ ],
++ "properties": {
++ "running": {
++ "type": "integer",
++ "minimum": 0,
++ "description": "How many of the person's agents are running."
++ },
++ "waiting": {
++ "type": "integer",
++ "minimum": 0,
++ "description": "How many need the person."
++ },
++ "unread": {
++ "type": "integer",
++ "minimum": 0,
++ "description": "How many notifications the person has not read."
++ }
++ }
++ },
++ "sources_partial": {
++ "type": "boolean",
++ "description": "True when an authority behind the counts did not answer, so the counts are lower than the truth."
++ }
++ }
++ }
++ },
"today.event.scheduled": {
"version": "1.0.0",
"owner": "today",
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex cf0eeabc..8d13392a 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.250.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 e27e7ade..ff985494 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.250.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 0386cb6f..3d8653c4 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.250.0",
-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 64d92499..ab279bb8 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.250.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 aba4ca32..22d5352e 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.250.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 78e7e42f..ede9b18f 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.250.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 95cef72a..320f987c 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.250.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 3267df13..5a57e766 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.250.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.251.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/community.json b/generated/openapi/community.json
iindex 0db08449..3b7cfaa5 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.250.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 742b0096..3557504d 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.250.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 c1ba728c..0429d3b4 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.250.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 e591dc7c..c9a7cb3a 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.250.0",
-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 f78fd8ca..1250f638 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.250.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 9c13b6dd..59868f3f 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.250.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 6ea30e4d..69f3c034 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.250.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 0dcb5457..98ebb698 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.250.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 d6a353e5..a2c3148f 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.250.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 73b720a8..78c547e6 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.250.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 8f978797..b1dee444 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.250.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 17ae42b6..21bc317e 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.250.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 9cccbca2..b27e4d40 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.250.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 aa69b0e6..9719ee24 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.250.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 a64faece..2a7d8826 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.250.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 c6724e6d..f945f30b 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.250.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 71285ae3..c6ebd475 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.250.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 a4eff2e3..3db0afc3 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.250.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 54d42f14..625a7166 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.250.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 1b56ad0c..c68f94a7 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.250.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 39c67f0a..cbeb0499 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.250.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 14fbec53..10c9d525 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.250.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 c7621019..5c65e4b4 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.250.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 d678f9fd..5c028af5 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.250.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 aeafc66d..617d775a 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.250.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 918399a1..51141665 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.250.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 00351d2b..e231d4ce 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.250.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 7e68575c..12fa05c1 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.250.0",
-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 8330b9f8..5ae64be3 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.250.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 8287c51f..410e086e 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.250.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 3832b2c7..96076228 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.250.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 ddf4dbf1..c2ed31a1 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.250.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.250.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.251.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.251.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 f71a3205..5d456db7 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -262087,6 +262087,82 @@ export interface MeActionsResult {
generated_at: string;
}
++/** [email protected] (owner: network) */
++/**
++ * network.dock-state@1 (the Dock plan 2026-10-30, K-D1): the state of one person's Dock — the little floating surface every OpenVibe site draws. It lives in the Network, not in the browser, because localStorage is per site and the Dock follows the person across every domain. GET /api/v1/me/dock and PUT /api/v1/me/dock on OpenVibe.Network.
++ */
++export interface NetworkDockState {
++ /**
++ * Whether the Dock is open (a sheet on a phone, a floating card on a desktop) or collapsed to its pill.
++ */
++ open: boolean;
++ /**
++ * Which of the Dock's three tabs shows: the agent's screen, the chats, the activity.
++ */
++ tab: "agent" | "chats" | "activity";
++ /**
++ * Keep the pill on screen even when nothing runs and nothing waits.
++ */
++ pinned: boolean;
++ /**
++ * The agent the Agent tab follows, or null when it follows none.
++ */
++ agent: {
++ service: "actor" | "codes" | "run" | "desks";
++ id: string;
++ } | null;
++ /**
++ * The conversation the Chats tab has open, or null.
++ */
++ chat: string | null;
++ place: {
++ /**
++ * Where the Dock sits on a phone.
++ */
++ phone: {
++ corner: "bottom-right" | "bottom-left" | "top-right" | "top-left";
++ };
++ /**
++ * Where the Dock sits on a desktop, and how big it is (null: the site's own default size).
++ */
++ desktop: {
++ corner: "bottom-right" | "bottom-left" | "top-right" | "top-left";
++ width: number | null;
++ height: number | null;
++ };
++ };
++ /**
++ * When the state was last written.
++ */
++ updated_at: string;
++}
++
++/** [email protected] (owner: network) */
++/**
++ * network.dock-result@1 (the Dock plan 2026-10-30, K-D1): what GET /api/v1/me/dock answers on OpenVibe.Network — the person's Dock state, the counts the pill's status dot is drawn from, and whether those counts are complete.
++ */
++export interface NetworkDockResult {
++ state: NetworkDockState;
++ counts: {
++ /**
++ * How many of the person's agents are running.
++ */
++ running: number;
++ /**
++ * How many need the person.
++ */
++ waiting: number;
++ /**
++ * How many notifications the person has not read.
++ */
++ unread: number;
++ };
++ /**
++ * True when an authority behind the counts did not answer, so the counts are lower than the truth.
++ */
++ sources_partial: boolean;
++}
++
/** [email protected] (owner: today) */
/**
* today.event.scheduled v1 (OpenVibe.Today server/events/store.js, written to its outbox in the same transaction as the change and published once per evt_ id). A person put a stream or an event on OpenVibe.Today's calendar (POST /api/v1/events or the schedule form). Envelope: source today, subject and actor { type: user, id: <owner usr_> }, visibility internal, priority important. OpenVibe.Network tells a streamer's followers about a scheduled public or followers-only stream (STREAM_SCHEDULED) and clears those notices on cancel (server/notifications/events-consumer.js).
ddiff --git a/package.json b/package.json
iindex 3809b515..0893d60d 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.250.0",
++ "version": "0.251.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",