openvibers/openvibe.contracts Commits

0.210.0: Sources categories housing, food and jobs; Bot's catalog names only what it runs (no ESP32, RTSP or hardware for sale), Actor's real free tier, Help without 'coming' (#205)

OP OpenVibers committed 22 days ago · daae1a8167 · 57 files, +316 −275

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex 029f6126..35377a18 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -4,6 +4,34 @@ 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.210.0 — 2026-10-22
++
++- **Sources categories `housing`, `food` and `jobs`** (plan 2026-10-22, track F1). `sources.source@1`,
++ `sources.item@1`, `sources.source-write-request@1` and the four `sources.*` event payloads accept them, so the
++ owner's top aggregators can move their own fetches into Sources:
++ - OpenVibe.Rent's and Homes' listings and rent data;
++ - OpenVibe.Food's recalls and food data;
++ - OpenVibe.Work's job boards.
++
++ They then share Sources' robots and terms checks, retention and the Search feed. A consumer that switched on the
++ old nine values should treat an unknown category as "other". Nothing in production sends the new values until
++ Sources pins this release.
++- Catalog copy that promised what the products do not do (plan 2026-10-22, track H5), checked against each product's
++ code. **OpenVibe.Bot**:
++ - Its description, FAQ and keywords named ESP32 boards, Android apps, ONVIF and RTSP cameras, ready-made bots to buy
++ and "kits that list exactly what to buy". None ships:
++ - OpenVibe sells no hardware, and the one curated kit (Adeept ADR036) is a parts list;
++ - the ONVIF camera is a server-side connector the operator configures.
++ - It now names what Bot's profiles and drivers run: the Adeept kit, ROS 2, Cozmo, LOOI, a phone in its browser, and
++ the generic relay for anything else.
++ - The planned-site `vision` block (robot arms, telepresence bots, a recording toggle, "flash a ready-made card")
++ and the `plannedRepo`/`meanwhile` pointers go, as for the other live products; nothing reads them since
++ OpenVibe.Sites retired.
++- **OpenVibe.Actor**'s cost answer gives its real free tier (20 tasks a day, $0.05 a task, $0.25 a day), not "limits
++ published before launch".
++- **OpenVibe.Help** no longer says "live or coming": every site it covers is live.
++- The catalog changes are text only.
++
## 0.209.3 — 2026-10-21
- Codes' site text names OpenVibe Git at `git.openvibe.codes`, where it moved on 2026-10-21 (Codes#93; the old
ddiff --git a/README.md b/README.md
iindex 71ad7ad9..0da2b65b 100644
---- a/README.md
++++ b/README.md
@@@ -2,7 +2,7 @@
> Machine-readable contracts for the whole OpenVibe network.
--**Status:** alpha (first released in Wave 1; the release is package.json's `version`, tagged). At v0.209.3: 798 schemas in `contracts/catalog.json`, 45 service manifests, 348 capability manifests, 13 namespace manifests and the staff capability map. Service repositories run `openvibe-contracts-check` and the pin-drift check in CI, and deployed services verify service and app tokens with `serviceAuth` in production. Consumers pin release tags (each repository's `STATUS.json` names its pin). `node scripts/docs-currency.js <root>` checks every checkout's README and `STATUS.json` against its code: the pins and versions they name, a library's consumer list, the deployed flag against the manifest, README links, and the paths and migrations they name. `node scripts/estate.js` generates `docs/ESTATE.md` and `manifests/repositories/` from the estate checkouts, and `--check` fails on drift (plan T1 step 3).
++**Status:** alpha (first released in Wave 1; the release is package.json's `version`, tagged). At v0.210.0: 798 schemas in `contracts/catalog.json`, 45 service manifests, 348 capability manifests, 13 namespace manifests and the staff capability map. Service repositories run `openvibe-contracts-check` and the pin-drift check in CI, and deployed services verify service and app tokens with `serviceAuth` in production. Consumers pin release tags (each repository's `STATUS.json` names its pin). `node scripts/docs-currency.js <root>` checks every checkout's README and `STATUS.json` against its code: the pins and versions they name, a library's consumer list, the deployed flag against the manifest, README links, and the paths and migrations they name. `node scripts/estate.js` generates `docs/ESTATE.md` and `manifests/repositories/` from the estate checkouts, and `--check` fails on drift (plan T1 step 3).
**Plan:** OpenVibe Development Roadmap, Wave 1 (implementation plan rev 3, §3.1 and §18.11).
**License:** AGPL-3.0 (same as every OpenVibe service).
@@@ -63,7 +63,7 @@ OpenAPI 3.1 per service: `generated/openapi/<service>.json` (index in `generated
| `events.event-envelope` | events | durable event shape for OpenVibe.Events (Wave 3) |
| `media.media-ref` | media | `med_<ULID>` (Wave 4) or transitional `legacy:<app>:<kind>:<id>` |
--Manifests: `manifests/services/` (45 services at v0.209.3: 39 `alpha`, 1 `beta` (Media), 4 `stable` (Games, Live, Network, Tools) and 1 `retired` (Sites, 2026-10-14); OpenVibe.Realtime has no manifest, as ADR-005 closed it before it was built; Contracts, SDK, Shared and Publishing are released libraries and Examples a repository with CI, none of them a runtime; `docs/ESTATE.md` tables every repository), `manifests/capabilities/` (348 capabilities at v0.209.3: 306 `active`, 27 `planned` and 15 `retired`; the v0.1 set was Media upload/read, chat send, paste create, coins credit/debit, notifications push, subject resolve and Community post). Each active capability names the route that implements it today. Where a service is reachable today (public, loopback only, library) is Network's observed overlay (`server/registry/exposure.js` there); manifest notes say whether a service is deployed and launched publicly.
++Manifests: `manifests/services/` (45 services at v0.210.0: 39 `alpha`, 1 `beta` (Media), 4 `stable` (Games, Live, Network, Tools) and 1 `retired` (Sites, 2026-10-14); OpenVibe.Realtime has no manifest, as ADR-005 closed it before it was built; Contracts, SDK, Shared and Publishing are released libraries and Examples a repository with CI, none of them a runtime; `docs/ESTATE.md` tables every repository), `manifests/capabilities/` (348 capabilities at v0.210.0: 306 `active`, 27 `planned` and 15 `retired`; the v0.1 set was Media upload/read, chat send, paste create, coins credit/debit, notifications push, subject resolve and Community post). Each active capability names the route that implements it today. Where a service is reachable today (public, loopback only, library) is Network's observed overlay (`server/registry/exposure.js` there); manifest notes say whether a service is deployed and launched publicly.
**Ids.** Subjects use prefixed ULIDs: `usr_`, `gst_`, `app_`, `mod_`. Services and system actors use slugs (`live`, `media`). Events use `evt_` and Media objects `med_`.
ddiff --git a/STATUS.json b/STATUS.json
iindex 4df2eee2..d6710fe7 100644
---- a/STATUS.json
++++ b/STATUS.json
@@@ -11,7 +11,7 @@
"deployment": "none of its own: a library and artifact repository published as release tags; services pin a tag and deploy it with their own releases",
"contracts": "openvibe-contracts (this package: package.json's version, released as the matching tag)",
"features": [
-- "798 JSON Schemas with valid and invalid fixtures (at v0.209.3)",
++ "798 JSON Schemas with valid and invalid fixtures (at v0.210.0)",
"45 service manifests with lifecycle declarations (39 alpha, 1 beta, 4 stable, 1 retired)",
"348 capability manifests (306 active, 27 planned, 15 retired) and the staff capability map",
"13 user-module namespace manifests",
ddiff --git a/contracts/events/payloads/sources.fetch.failed.v1.json b/contracts/events/payloads/sources.fetch.failed.v1.json
iindex fd78f16b..50929b99 100644
---- a/contracts/events/payloads/sources.fetch.failed.v1.json
++++ b/contracts/events/payloads/sources.fetch.failed.v1.json
@@@ -8,7 +8,7 @@
"additionalProperties": false,
"properties": {
"source_key": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{1,63}$" },
-- "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games"] },
++ "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games", "housing", "food", "jobs"] },
"run_id": { "type": "string", "pattern": "^frn_[0-9A-HJKMNP-TV-Z]{26}$", "description": "The recorded fetch run (GET /api/v1/sources/:key/runs)." },
"endpoint_url": { "type": "string", "minLength": 1, "maxLength": 2048 },
"state": { "enum": ["robots_denied", "http_error", "rate_limited", "parse_error"] },
ddiff --git a/contracts/events/payloads/sources.item.created.v1.json b/contracts/events/payloads/sources.item.created.v1.json
iindex 312c1825..ac5338a8 100644
---- a/contracts/events/payloads/sources.item.created.v1.json
++++ b/contracts/events/payloads/sources.item.created.v1.json
@@@ -9,7 +9,7 @@
"properties": {
"item_id": { "type": "string", "pattern": "^itm_[0-9A-HJKMNP-TV-Z]{26}$" },
"source_key": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{1,63}$" },
-- "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games"] },
++ "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games", "housing", "food", "jobs"] },
"kind": { "type": "string", "pattern": "^[a-z][a-z0-9_]{1,39}$", "description": "article | url | sitemap | product | offer | review | record … (sources.item@1 kind)." },
"canonical_url": { "type": ["string", "null"], "format": "uri" },
"title": { "type": ["string", "null"] },
ddiff --git a/contracts/events/payloads/sources.item.removed.v1.json b/contracts/events/payloads/sources.item.removed.v1.json
iindex 59b9d306..11fd59d2 100644
---- a/contracts/events/payloads/sources.item.removed.v1.json
++++ b/contracts/events/payloads/sources.item.removed.v1.json
@@@ -9,7 +9,7 @@
"properties": {
"item_id": { "type": "string", "pattern": "^itm_[0-9A-HJKMNP-TV-Z]{26}$" },
"source_key": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{1,63}$" },
-- "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games"] },
++ "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games", "housing", "food", "jobs"] },
"kind": { "type": "string", "pattern": "^[a-z][a-z0-9_]{1,39}$", "description": "article | url | sitemap | product | offer | review | record … (sources.item@1 kind)." },
"canonical_url": { "type": ["string", "null"], "format": "uri" },
"title": { "type": ["string", "null"] },
ddiff --git a/contracts/events/payloads/sources.item.updated.v1.json b/contracts/events/payloads/sources.item.updated.v1.json
iindex 28389114..d62afc4e 100644
---- a/contracts/events/payloads/sources.item.updated.v1.json
++++ b/contracts/events/payloads/sources.item.updated.v1.json
@@@ -9,7 +9,7 @@
"properties": {
"item_id": { "type": "string", "pattern": "^itm_[0-9A-HJKMNP-TV-Z]{26}$" },
"source_key": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{1,63}$" },
-- "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games"] },
++ "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games", "housing", "food", "jobs"] },
"kind": { "type": "string", "pattern": "^[a-z][a-z0-9_]{1,39}$", "description": "article | url | sitemap | product | offer | review | record … (sources.item@1 kind)." },
"canonical_url": { "type": ["string", "null"], "format": "uri" },
"title": { "type": ["string", "null"] },
ddiff --git a/contracts/sources/item.v1.json b/contracts/sources/item.v1.json
iindex c2e28b14..9a7ae5eb 100644
---- a/contracts/sources/item.v1.json
++++ b/contracts/sources/item.v1.json
@@@ -9,7 +9,7 @@
"properties": {
"id": { "type": "string", "pattern": "^itm_[0-9A-HJKMNP-TV-Z]{26}$" },
"source_key": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{1,63}$" },
-- "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games"] },
++ "category": { "enum": ["news", "blog", "reviews", "deals", "coupons", "trade", "hosting", "crowdfunding", "games", "housing", "food", "jobs"] },
"kind": { "type": "string", "pattern": "^[a-z][a-z0-9_]{1,39}$", "description": "article | url | sitemap | product | offer | review | review_signal | record | coupon …" },
"identity": { "type": "string", "minLength": 1, "maxLength": 2048, "description": "The source's own id (guid, @id, API id) or the canonical URL." },
"canonical_url": { "type": ["string", "null"], "format": "uri" },
ddiff --git a/contracts/sources/source-write-request.v1.json b/contracts/sources/source-write-request.v1.json
iindex ae98a5fd..d56836aa 100644
---- a/contracts/sources/source-write-request.v1.json
++++ b/contracts/sources/source-write-request.v1.json
@@@ -37,7 +37,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"homepage_url": {
ddiff --git a/contracts/sources/source.v1.json b/contracts/sources/source.v1.json
iindex e87f161d..5975e467 100644
---- a/contracts/sources/source.v1.json
++++ b/contracts/sources/source.v1.json
@@@ -51,7 +51,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"homepage_url": {
ddiff --git a/fixtures/sources.source/invalid/unknown-category.json b/fixtures/sources.source/invalid/unknown-category.json
nnew file mode 100644
iindex 00000000..e4de05af
---- /dev/null
++++ b/fixtures/sources.source/invalid/unknown-category.json
@@@ -0,0 +1,26 @@
++{
++ "key": "nasa-news",
++ "name": "NASA news releases",
++ "type": "rss",
++ "category": "weather",
++ "homepage_url": "https://www.nasa.gov/",
++ "endpoints": [
++ {
++ "url": "https://www.nasa.gov/news-release/feed/"
++ }
++ ],
++ "auth": {
++ "mode": "none"
++ },
++ "robots_note": "robots.txt allows the feed path (checked 2026-09-23)",
++ "terms_note": "US government work; verify before enabling",
++ "license_note": null,
++ "min_interval_ms": 60000,
++ "poll_interval_sec": 3600,
++ "stale_after_sec": 172800,
++ "max_items": 200,
++ "enabled": false,
++ "review_required": true,
++ "sensitivity": "none",
++ "default_indexability": "noindex"
++}
ddiff --git a/fixtures/sources.source/valid/rss-jobs.json b/fixtures/sources.source/valid/rss-jobs.json
nnew file mode 100644
iindex 00000000..17cc5587
---- /dev/null
++++ b/fixtures/sources.source/valid/rss-jobs.json
@@@ -0,0 +1,26 @@
++{
++ "key": "example-jobs-feed",
++ "name": "A jobs board feed (example)",
++ "type": "rss",
++ "category": "jobs",
++ "homepage_url": "https://jobs.example.org/",
++ "endpoints": [
++ {
++ "url": "https://jobs.example.org/feed.xml"
++ }
++ ],
++ "auth": {
++ "mode": "none"
++ },
++ "robots_note": "example fixture",
++ "terms_note": "example fixture",
++ "license_note": null,
++ "min_interval_ms": 60000,
++ "poll_interval_sec": 3600,
++ "stale_after_sec": 172800,
++ "max_items": 200,
++ "enabled": false,
++ "review_required": true,
++ "sensitivity": "none",
++ "default_indexability": "noindex"
++}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex f89d4f8d..5806f9bd 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -3759,7 +3759,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"homepage_url": {
@@@ -4153,7 +4156,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"kind": {
@@@ -6790,7 +6796,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"kind": {
@@@ -6869,7 +6878,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"kind": {
@@@ -6952,7 +6964,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"kind": {
@@@ -7030,7 +7045,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"run_id": {
@@@ -7307,7 +7325,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"homepage_url": {
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex 71727a89..57313e56 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.209.3",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 1132e461..98b3fb09 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.209.3",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 2d164a10..0a8aa312 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.209.3",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 ed8eb3db..60ff1648 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.209.3",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 21b1bcc4..25209e9e 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.209.3",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 0e3451ec..a9e15141 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.209.3",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 51fc031b..39cd0778 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.209.3",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 b4550676..2e9107bf 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.209.3",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 535a59ec..fa820fad 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.209.3",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 25d2e94a..1ffb8055 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.209.3",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 f15a1f5b..363209ae 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.209.3",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 d056f256..bff63077 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.209.3",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 44805206..f70a0ccb 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.209.3",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 18def354..5bbbccdc 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.209.3",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 5f9bd572..b29e8097 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.209.3",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 61dbf610..7e74f5cd 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.209.3",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 d514bac7..2d505674 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.209.3",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 d16955ae..cc836f59 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.209.3",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 494f85ae..06ff7869 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.209.3",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 3aff8cc8..85af7ef4 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.209.3",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 655bcc3c..23461faf 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.209.3",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 4e02470e..fe05d590 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.209.3",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 d25c51ce..21553522 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.209.3",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 d7831b65..d5a59b2d 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.209.3",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 2d0a57c4..44f1952b 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.209.3",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 ba66d319..93564323 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.209.3",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 2bf41682..7aafdc6c 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.209.3",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 0e73a0bc..2d2f7d63 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.209.3",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.210.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"
@@@ -942,7 +942,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"kind": {
@@@ -1470,7 +1473,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"homepage_url": {
@@@ -1840,7 +1846,10 @@
"trade",
"hosting",
"crowdfunding",
-- "games"
++ "games",
++ "housing",
++ "food",
++ "jobs"
]
},
"homepage_url": {
ddiff --git a/generated/openapi/space.json b/generated/openapi/space.json
iindex 3db92562..105e1446 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.209.3",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 49bc334f..8b81c14e 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.209.3",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 8730120d..6a18e34d 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.209.3",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 feac0d77..ed6440fb 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.209.3",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 da2e0c0b..c371f44f 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.209.3",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 3c2ad99a..815cdf43 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.209.3",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 d09fdbb9..db70acc6 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.209.3",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 4bb77d74..d3c4eb17 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.209.3",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 e080ae10..a41c0361 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.209.3",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.209.3): 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.210.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.210.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 7a6baa34..9dfb0151 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -6156,7 +6156,19 @@ export interface Source {
key: string;
name: string;
type: "rss" | "atom" | "sitemap" | "jsonld" | "api" | "manual";
-- category: "news" | "blog" | "reviews" | "deals" | "coupons" | "trade" | "hosting" | "crowdfunding" | "games";
++ category:
++ | "news"
++ | "blog"
++ | "reviews"
++ | "deals"
++ | "coupons"
++ | "trade"
++ | "hosting"
++ | "crowdfunding"
++ | "games"
++ | "housing"
++ | "food"
++ | "jobs";
homepage_url?: string | null;
/**
* @maxItems 20
@@@ -72827,7 +72839,19 @@ export interface Source {
export interface SourceItem {
id: string;
source_key: string;
-- category: "news" | "blog" | "reviews" | "deals" | "coupons" | "trade" | "hosting" | "crowdfunding" | "games";
++ category:
++ | "news"
++ | "blog"
++ | "reviews"
++ | "deals"
++ | "coupons"
++ | "trade"
++ | "hosting"
++ | "crowdfunding"
++ | "games"
++ | "housing"
++ | "food"
++ | "jobs";
/**
* article | url | sitemap | product | offer | review | review_signal | record | coupon …
*/
@@@ -75414,7 +75438,19 @@ export interface ChatRoomMessageDeletedPayload {
export interface SourcesItemCreatedPayload {
item_id: string;
source_key: string;
-- category: "news" | "blog" | "reviews" | "deals" | "coupons" | "trade" | "hosting" | "crowdfunding" | "games";
++ category:
++ | "news"
++ | "blog"
++ | "reviews"
++ | "deals"
++ | "coupons"
++ | "trade"
++ | "hosting"
++ | "crowdfunding"
++ | "games"
++ | "housing"
++ | "food"
++ | "jobs";
/**
* article | url | sitemap | product | offer | review | record … (sources.item@1 kind).
*/
@@@ -75436,7 +75472,19 @@ export interface SourcesItemCreatedPayload {
export interface SourcesItemUpdatedPayload {
item_id: string;
source_key: string;
-- category: "news" | "blog" | "reviews" | "deals" | "coupons" | "trade" | "hosting" | "crowdfunding" | "games";
++ category:
++ | "news"
++ | "blog"
++ | "reviews"
++ | "deals"
++ | "coupons"
++ | "trade"
++ | "hosting"
++ | "crowdfunding"
++ | "games"
++ | "housing"
++ | "food"
++ | "jobs";
/**
* article | url | sitemap | product | offer | review | record … (sources.item@1 kind).
*/
@@@ -75459,7 +75507,19 @@ export interface SourcesItemUpdatedPayload {
export interface SourcesItemRemovedPayload {
item_id: string;
source_key: string;
-- category: "news" | "blog" | "reviews" | "deals" | "coupons" | "trade" | "hosting" | "crowdfunding" | "games";
++ category:
++ | "news"
++ | "blog"
++ | "reviews"
++ | "deals"
++ | "coupons"
++ | "trade"
++ | "hosting"
++ | "crowdfunding"
++ | "games"
++ | "housing"
++ | "food"
++ | "jobs";
/**
* article | url | sitemap | product | offer | review | record … (sources.item@1 kind).
*/
@@@ -75481,7 +75541,19 @@ export interface SourcesItemRemovedPayload {
*/
export interface SourcesFetchFailedPayload {
source_key: string;
-- category: "news" | "blog" | "reviews" | "deals" | "coupons" | "trade" | "hosting" | "crowdfunding" | "games";
++ category:
++ | "news"
++ | "blog"
++ | "reviews"
++ | "deals"
++ | "coupons"
++ | "trade"
++ | "hosting"
++ | "crowdfunding"
++ | "games"
++ | "housing"
++ | "food"
++ | "jobs";
/**
* The recorded fetch run (GET /api/v1/sources/:key/runs).
*/
@@@ -75795,7 +75867,19 @@ export type SourcesSourceWriteRequest =
key?: string;
name?: string;
type?: "rss" | "atom" | "sitemap" | "jsonld" | "api" | "manual";
-- category?: "news" | "blog" | "reviews" | "deals" | "coupons" | "trade" | "hosting" | "crowdfunding" | "games";
++ category?:
++ | "news"
++ | "blog"
++ | "reviews"
++ | "deals"
++ | "coupons"
++ | "trade"
++ | "hosting"
++ | "crowdfunding"
++ | "games"
++ | "housing"
++ | "food"
++ | "jobs";
homepage_url?: string | null;
/**
* @maxItems 20
ddiff --git a/manifests/products/openvibe.actor.json b/manifests/products/openvibe.actor.json
iindex bb71f97d..9f5bd1cb 100644
---- a/manifests/products/openvibe.actor.json
++++ b/manifests/products/openvibe.actor.json
@@@ -54,8 +54,8 @@
"answer": "Yes. The router, the runtime, the console and the Node are open source and run on your own server with local models, and can link to openvibe.actor when you want hosted agents or the rest of the network."
},
{
-- "question": "What will it cost?",
-- "answer": "You will be able to start without paying, within limits published before launch; bigger tasks and stronger agents will be paid, with the cost shown per task."
++ "question": "What does it cost?",
++ "answer": "Every task shows what it cost and why it went where it did. Each person gets 20 free tasks a day, up to $0.05 a task and $0.25 a day; a task whose cheapest capable agent would cost more than its budget is refused before it runs. Paid budgets are not on sale yet."
}
],
"keywords": "ai agent router, openrouter for agents, ai agent that controls your computer, remote control computer with ai, self-hosted ai agent, computer use agent, ai command console, agent api, cloud ai agent, mcp server",
ddiff --git a/manifests/products/openvibe.bot.json b/manifests/products/openvibe.bot.json
iindex 064985a3..5cf0844b 100644
---- a/manifests/products/openvibe.bot.json
++++ b/manifests/products/openvibe.bot.json
@@@ -5,7 +5,7 @@
"icon": "fa-robot",
"accent": "#f472b6",
"tagline": "Get your robot online in minutes.",
-- "description": "OpenVibe.Bot is an open control panel for robots. Add a robot, pair it with one command or a QR code, and drive it from any browser with live video, real controls and a stop button that always works. Buy a ready-made bot or bring your own: a Raspberry Pi robot, an ESP32, a ROS 2 robot, a phone, or a Cozmo. Share control, automate it, hand it to your AI agent, and stream it to OpenVibe.Live or openre.stream when you want to.",
++ "description": "OpenVibe.Bot is an open control panel for robots. Add a robot, pair it with one command on the robot (or a QR code for a phone), and drive it from any browser with live video, real controls and a stop button that always works. It runs a Raspberry Pi robot such as the Adeept 4WD kit, a ROS 2 robot, a Cozmo, a LOOI or a phone, and anything else through the generic relay and your own script. Share control, automate it, hand it to your AI agent, and show it on OpenVibe.Live or openre.stream when you want to.",
"pillars": [
{
"title": "Pair devices",
@@@ -21,7 +21,7 @@
},
{
"title": "Stream it",
-- "text": "Connect a device to a Live stream, a game or a website."
++ "text": "Show the camera on a Live channel, or embed a read-only view in any website."
}
],
"faq": [
@@@ -34,8 +34,8 @@
"answer": "No. Streaming is optional. Bot is a control panel for your robot first: drive it, check on it, share it and automate it."
},
{
-- "question": "Which robot comes first?",
-- "answer": "The Adeept 4WD Smart Car Kit for Raspberry Pi: four motors, a pan-tilt camera, distance and line sensors, lights and a buzzer. OpenVibe's device agent drives it directly, so its own open control port never has to be exposed."
++ "question": "Which robots have built-in support?",
++ "answer": "The Adeept 4WD Smart Car Kit for Raspberry Pi (ordinary or mecanum wheels), ROS 2 robots that take cmd_vel, Cozmo, LOOI through the community's Bluetooth bridge, and a phone, whose browser becomes the robot. OpenVibe's device agent drives each one directly, so no robot's own control port is ever exposed."
},
{
"question": "Does it work with Cozmo?",
@@@ -43,7 +43,7 @@
},
{
"question": "What hardware works?",
-- "answer": "A Raspberry Pi or another Linux board, an ESP32, a ROS 2 robot, an Android phone, or an ONVIF or RTSP camera. The curated kits list exactly what to buy."
++ "answer": "A Raspberry Pi or another Linux board running the OpenVibe Node, with a driver for your model; a ROS 2 robot; a Cozmo or a LOOI through a computer next to it; or any phone, in its browser, with nothing to install. Anything else joins through the generic relay and your own script, or a driver you write and submit for others to use. The Adeept kit's page lists its parts; OpenVibe does not sell hardware."
},
{
"question": "How does it keep the robot safe?",
@@@ -51,170 +51,11 @@
},
{
"question": "What will it cost?",
-- "answer": "Controlling your own robot will not cost anything. Limits and any paid extras will be published before launch."
++ "answer": "Controlling your own robot is free. Any paid extra would be listed on the site, with its price, before it starts."
}
],
-- "keywords": "robot control panel, control a robot from the browser, remote control robot online, raspberry pi robot web control, esp32 robot control, ros 2 web control, telepresence robot, stream a robot live, open source robot controller, cozmo remote control, cozmo web control, cozmo sdk alternative",
-- "vision": {
-- "badge": "being built",
-- "cta": [
-- "Robots on Live today",
-- "https://openvibe.live",
-- "fa-tower-broadcast"
-- ],
-- "viz": {
-- "kind": "panel",
-- "name": "Rover-1",
-- "latency": "84 ms",
-- "onair": "Streaming to openvibe.live",
-- "battery": 82,
-- "keys": [
-- [
-- "fa-lightbulb",
-- "Lights"
-- ],
-- [
-- "fa-bullhorn",
-- "Horn"
-- ],
-- [
-- "fa-comment",
-- "Speak"
-- ],
-- [
-- "fa-camera-rotate",
-- "Camera"
-- ]
-- ],
-- "caption": "Design preview of the robot panel",
-- "label": "Design preview: a robot control panel with live video, a drive pad, buttons, battery level and a stop button"
-- },
-- "stepsTitle": "Online in three steps",
-- "stepsLead": "No port forwarding, no stream keys, no config files.",
-- "steps": [
-- [
-- "Add a robot",
-- "Name it and pick what it is: a rover, an arm, a camera, a phone on wheels or your own design."
-- ],
-- [
-- "Pair it",
-- "Paste one command on the robot, flash a ready-made card, or scan a QR code. It gets its own key, which you can revoke any time."
-- ],
-- [
-- "Drive it",
-- "Live video and controls in any browser, phone included, with a stop button that always works."
-- ]
-- ],
-- "choices": {
-- "title": "Buy one or bring your own",
-- "lead": "Start with hardware that is known to work, or use what you already have.",
-- "items": [
-- {
-- "icon": "fa-box-open",
-- "title": "Get a robot",
-- "text": "Curated kits with parts lists, tested settings and build guides, and ready-made bots that arrive paired to your account. The first one on OpenVibe.Bot is the Adeept 4WD Smart Car for Raspberry Pi.",
-- "chips": [
-- "Adeept 4WD Smart Car (Raspberry Pi)",
-- "Rover kits",
-- "Telepresence bots",
-- "Pan-tilt cameras",
-- "Robot arms"
-- ]
-- },
-- {
-- "icon": "fa-screwdriver-wrench",
-- "title": "Bring your own",
-- "text": "Anything with motors, a camera or sensors. Install the OpenVibe device agent on the robot, or, for robots with their own firmware like Cozmo, on a computer next to it, and your robot shows up in the panel.",
-- "chips": [
-- "Raspberry Pi and Linux boards",
-- "Cozmo, through a bridge",
-- "ESP32",
-- "ROS 2",
-- "Android phones",
-- "ONVIF and RTSP cameras",
-- "Serial motor boards"
-- ]
-- }
-- ]
-- },
-- "featuresTitle": "More than a stream",
-- "featuresLead": "A control panel for anything you build, whether or not anyone is watching.",
-- "features": [
-- [
-- "fa-gamepad",
-- "Real controls",
-- "Drive pad, keyboard, touch joystick and gamepad; buttons, sliders, servos and camera pan-tilt, laid out from your robot's profile."
-- ],
-- [
-- "fa-bolt",
-- "Low latency",
-- "Video and commands over WebRTC, so driving feels direct. Works behind ordinary home and mobile networks."
-- ],
-- [
-- "fa-user-group",
-- "Share control",
-- "Invite friends as operators, or open a public queue with timed turns, cooldowns and per-role limits."
-- ],
-- [
-- "fa-shield-halved",
-- "Safe by default",
-- "The robot stops itself when commands stop. An emergency stop, speed and range limits and time windows, all logged."
-- ],
-- [
-- "fa-diagram-project",
-- "Automate it",
-- "Schedules, triggers and webhooks, plus an API and SDKs for your own apps."
-- ],
-- [
-- "fa-user-astronaut",
-- "Hand it to your agent",
-- "Let your OpenVibe.Actor agent patrol, check on or perform with your robot, with your approval."
-- ]
-- ],
-- "connectTitle": "Stream it, record it, connect it",
-- "connectLead": "Optional, one toggle each. Your robot does not need an audience to be useful.",
-- "connect": [
-- [
-- "fa-tower-broadcast",
-- "Stream to OpenVibe.Live",
-- "Put the robot's camera on your channel; viewers can drive it from chat or the panel.",
-- "https://openvibe.live"
-- ],
-- [
-- "fa-satellite-dish",
-- "Stream through openre.stream",
-- "Low-latency ingest and restreaming to other platforms from the same camera.",
-- "https://openre.stream"
-- ],
-- [
-- "fa-photo-film",
-- "Record to OpenVibe.Media",
-- "Keep every run as a video and cut clips from it.",
-- "https://openvibe.media"
-- ],
-- [
-- "fa-code",
-- "Build on it",
-- "The API, SDKs and examples.",
-- "https://openvibe.services"
-- ]
-- ],
-- "building": "OpenVibe.Bot is being built now, starting with our own robots; stream-controlled robots already run on OpenVibe.Live."
-- },
++ "keywords": "robot control panel, control a robot from the browser, remote control robot online, raspberry pi robot web control, ros 2 web control, telepresence robot, stream a robot live, open source robot controller, cozmo remote control, cozmo web control, cozmo sdk alternative, phone as a robot",
"relationships": {
-- "service": "bot",
-- "plannedRepo": "OpenVibe.Bot",
-- "meanwhile": [
-- {
-- "label": "Robots on OpenVibe.Live",
-- "url": "https://openvibe.live",
-- "note": "Stream-controlled robots and cameras run on Live today."
-- },
-- {
-- "label": "OpenVibe.Extensions",
-- "url": "https://github.com/OpenVibers/OpenVibe.Extensions",
-- "note": "Device-side agents and hardware scripts."
-- }
-- ]
++ "service": "bot"
}
}
ddiff --git a/manifests/products/openvibe.help.json b/manifests/products/openvibe.help.json
iindex 82f8e4ed..20be9ac1 100644
---- a/manifests/products/openvibe.help.json
++++ b/manifests/products/openvibe.help.json
@@@ -39,7 +39,7 @@
},
{
"question": "Which sites does it cover?",
-- "answer": "Every OpenVibe product site, live or coming, from OpenVibe.Live to OpenRestream. Each one has its own page with its questions and where it lives."
++ "answer": "Every OpenVibe product site, from OpenVibe.Live to OpenRestream. Each one has its own page with its questions and where it lives."
}
],
"keywords": "openvibe help, openvibe support, help center, support tickets, troubleshooting",
ddiff --git a/manifests/repositories/OpenVibe.Contracts.json b/manifests/repositories/OpenVibe.Contracts.json
iindex 9b115d6b..e86e063c 100644
---- a/manifests/repositories/OpenVibe.Contracts.json
++++ b/manifests/repositories/OpenVibe.Contracts.json
@@@ -4,7 +4,7 @@
"service": "contracts",
"product": "OpenVibe.Contracts",
"stage": "alpha",
-- "version": "0.209.3",
++ "version": "0.210.0",
"runtime": "node >=20",
"database": null,
"migrations": 0,
ddiff --git a/package-lock.json b/package-lock.json
iindex fd52fbb1..8eb021c7 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -1,12 +1,12 @@
{
"name": "openvibe-contracts",
-- "version": "0.209.3",
++ "version": "0.210.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openvibe-contracts",
-- "version": "0.209.3",
++ "version": "0.210.0",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex 468cd1ee..aac88e52 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.209.3",
++ "version": "0.210.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",