openvibers/openvibe.contracts Commits

0.379.0: Add the public exchange.market contract (#397)

OP OpenVibers committed 3 days ago · 59d400bccb · 60 files, +1033 −98

* 0.381.0: Add public exchange market contract

* Keep market manifest aligned with existing CORS policy

* Merge main and use the next untagged Contracts version

* Cover empty market snapshots with stale metadata

* 0.379.0: Wiki rich articles — blocks, image suggestions and the writer (#393)

* 0.378.0: Wiki rich article contracts (blocks, image suggestions, the writer)

* Merge origin/main into w1/contracts-wiki-blocks and bump 0.378.0

* Merge origin/main and bump to 0.379.0 (0.378.0 is the Link rename)

* Merge wiki rich article contracts for 0.379.0

* 0.379.0: Exchange routing, request presets and generation contracts (#394)

* 0.379.0: Add Exchange routing, preset and generation contracts

* Reconcile Contracts 0.378 with Exchange schemas

* 0.379.0: Wiki rich articles — blocks, image suggestions and the writer (#393)

* 0.378.0: Wiki rich article contracts (blocks, image suggestions, the writer)

* Merge origin/main into w1/contracts-wiki-blocks and bump 0.378.0

* Merge origin/main and bump to 0.379.0 (0.378.0 is the Link rename)

* Merge wiki rich article contracts for 0.379.0

* Merge routing contracts and release version 0.380.0

* 0.380.0: blog.changelog-entry@2 for the tagged updates feed (#395)

* 0.380.0: blog.changelog-entry@2 for the tagged updates feed

One shipped change as the API shows it: plain words without the PR number
or stage tag, kind (new, better, fixed or internal), one to three areas
from Blog's fixed list, and the commit and pull request for the row's
fold. Valid and invalid fixtures cover the kind, the area list and the
plain-words rule; the generated bundle, types and OpenAPI name 0.380.0.

* Name the 0.378.0 and 0.379.0 entries the open PRs bring

The history test counts every minor to the current release; #393 and
#394 are the pending 0.378.0 and 0.379.0 contracts and their entries
reconcile at merge.

* Merge origin/main into rc-contracts-changelog-entry-v2

* 0.379.0: Wiki rich articles — blocks, image suggestions and the writer (#393)

* 0.378.0: Wiki rich article contracts (blocks, image suggestions, the writer)

* Merge origin/main into w1/contracts-wiki-blocks and bump 0.378.0

* Merge origin/main and bump to 0.379.0 (0.378.0 is the Link rename)

* Merge wiki rich article contracts for 0.379.0

* 0.379.0: Exchange routing, request presets and generation contracts (#394)

* 0.379.0: Add Exchange routing, preset and generation contracts

* Reconcile Contracts 0.378 with Exchange schemas

* 0.379.0: Wiki rich articles — blocks, image suggestions and the writer (#393)

* 0.378.0: Wiki rich article contracts (blocks, image suggestions, the writer)

* Merge origin/main into w1/contracts-wiki-blocks and bump 0.378.0

* Merge origin/main and bump to 0.379.0 (0.378.0 is the Link rename)

* Merge wiki rich article contracts for 0.379.0

* Merge routing contracts and release version 0.380.0

* Merge blog changelog contract for 0.381.0

* Merge exchange market contract for 0.382.0

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex d3639062..094229b0 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -1,5 +1,9 @@
# Changelog
++## 0.382.0 — 2026-11-09
++
++- Add `exchange.market@1`: paginated own-page market offers, routing flags and per-field model metadata provenance.
++
## 0.381.0 — 2026-11-09
- blog.changelog-entry@2: a shipped change with its plain words, kind (new, better, fixed or internal) and one to three areas from Blog's fixed list, with the commit and pull request for the row's fold
ddiff --git a/README.md b/README.md
iindex 0474cdd3..08d88d56 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.381.0: 1192 schemas in `contracts/catalog.json`, 65 service manifests, 511 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.382.0: 1193 schemas in `contracts/catalog.json`, 65 service manifests, 511 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).
ddiff --git a/contracts/catalog.json b/contracts/catalog.json
iindex 108e06d3..5e6c3161 100644
---- a/contracts/catalog.json
++++ b/contracts/catalog.json
@@@ -10995,6 +10995,15 @@
"compatibility": "backward",
"status": "active",
"adr": "ADR-025"
++ },
++ {
++ "id": "exchange.market",
++ "version": "1.0.0",
++ "owner": "ai",
++ "schema": "exchange/market.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
}
]
}
ddiff --git a/contracts/exchange/market.v1.json b/contracts/exchange/market.v1.json
nnew file mode 100644
iindex 00000000..f63c2232
---- /dev/null
++++ b/contracts/exchange/market.v1.json
@@@ -0,0 +1,300 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/exchange/market.v1.json",
++ "title": "ExchangeMarket",
++ "description": "Public own-page provider offers, enabled or not; prices are observations, not routing quotes. Paged by limit (1-500) and cursor, filterable by maker, open_weights and kind. No credentials or account identifiers. Model metadata preserves per-field provenance and stale state.",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "metadata",
++ "total_models",
++ "total_offers",
++ "offers",
++ "next_cursor"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "exchange.market@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "metadata": {
++ "type": "object",
++ "required": [
++ "source",
++ "checked_at",
++ "stale"
++ ],
++ "properties": {
++ "source": {
++ "const": "https://models.dev/api.json"
++ },
++ "checked_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "stale": {
++ "type": "boolean"
++ }
++ },
++ "additionalProperties": false
++ },
++ "total_models": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "total_offers": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "next_cursor": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "offers": {
++ "type": "array",
++ "maxItems": 500,
++ "items": {
++ "type": "object",
++ "required": [
++ "maker",
++ "licence",
++ "release_date",
++ "knowledge_cutoff",
++ "price_checked_at",
++ "model",
++ "provider",
++ "provider_name",
++ "provider_model",
++ "name",
++ "routed",
++ "uncensored",
++ "context",
++ "max_output",
++ "kind",
++ "provider_access",
++ "open_weights",
++ "price_source",
++ "price",
++ "field_sources",
++ "modalities"
++ ],
++ "properties": {
++ "maker": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "licence": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "release_date": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "knowledge_cutoff": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "price_checked_at": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "model": {
++ "type": "string",
++ "minLength": 1
++ },
++ "provider": {
++ "type": "string",
++ "minLength": 1
++ },
++ "provider_name": {
++ "type": "string",
++ "minLength": 1
++ },
++ "provider_model": {
++ "type": "string",
++ "minLength": 1
++ },
++ "name": {
++ "type": "string",
++ "minLength": 1
++ },
++ "routed": {
++ "type": "boolean"
++ },
++ "uncensored": {
++ "type": "boolean"
++ },
++ "context": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "max_output": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "kind": {
++ "enum": [
++ "chat",
++ "embedding",
++ "stt",
++ "image"
++ ]
++ },
++ "provider_access": {
++ "enum": [
++ "OWN_DEPLOYMENT",
++ "AUTHORIZED_WHOLESALE",
++ "CUSTOMER_BYOK",
++ "UNVERIFIED",
++ "RESTRICTED"
++ ]
++ },
++ "open_weights": {
++ "type": [
++ "boolean",
++ "null"
++ ]
++ },
++ "price_source": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "uri"
++ },
++ "price": {
++ "type": "object",
++ "required": [
++ "in",
++ "out",
++ "cached",
++ "currency",
++ "per"
++ ],
++ "properties": {
++ "in": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "out": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "cached": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "currency": {
++ "const": "USD"
++ },
++ "per": {
++ "const": "1M tokens"
++ }
++ },
++ "additionalProperties": false
++ },
++ "field_sources": {
++ "type": "object",
++ "additionalProperties": false,
++ "properties": {
++ "maker": {
++ "type": "string",
++ "format": "uri"
++ },
++ "context": {
++ "type": "string",
++ "format": "uri"
++ },
++ "max_output": {
++ "type": "string",
++ "format": "uri"
++ },
++ "open_weights": {
++ "type": "string",
++ "format": "uri"
++ },
++ "licence": {
++ "type": "string",
++ "format": "uri"
++ },
++ "release_date": {
++ "type": "string",
++ "format": "uri"
++ },
++ "knowledge_cutoff": {
++ "type": "string",
++ "format": "uri"
++ },
++ "modalities": {
++ "type": "string",
++ "format": "uri"
++ }
++ }
++ },
++ "modalities": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "required": [
++ "input",
++ "output"
++ ],
++ "properties": {
++ "input": {
++ "type": "array",
++ "items": {
++ "type": "string"
++ }
++ },
++ "output": {
++ "type": "array",
++ "items": {
++ "type": "string"
++ }
++ }
++ },
++ "additionalProperties": false
++ }
++ },
++ "additionalProperties": false
++ }
++ }
++ },
++ "additionalProperties": false
++}
ddiff --git a/fixtures/exchange.market/invalid/account.json b/fixtures/exchange.market/invalid/account.json
nnew file mode 100644
iindex 00000000..90d33556
---- /dev/null
++++ b/fixtures/exchange.market/invalid/account.json
@@@ -0,0 +1,79 @@
++{
++ "$schema": "exchange.market@1",
++ "generated_at": "2026-11-09T00:00:00.000Z",
++ "metadata": {
++ "source": "https://models.dev/api.json",
++ "checked_at": null,
++ "stale": true
++ },
++ "total_models": 29,
++ "total_offers": 38,
++ "offers": [
++ {
++ "model": "abliteration/abliterated-model",
++ "provider": "abliteration",
++ "provider_name": "Abliteration.ai (the uncensored tier)",
++ "provider_model": "abliterated-model",
++ "name": "Abliterated Model",
++ "kind": "chat",
++ "price": {
++ "in": 1,
++ "out": 3,
++ "cached": 0.1,
++ "currency": "USD",
++ "per": "1M tokens"
++ },
++ "price_source": "https://docs.abliteration.ai/pricing.md",
++ "price_checked_at": "2026-11-06",
++ "routed": false,
++ "uncensored": true,
++ "provider_access": "UNVERIFIED",
++ "field_sources": {
++ "context": "https://docs.abliteration.ai/pricing.md",
++ "max_output": "https://docs.abliteration.ai/pricing.md"
++ },
++ "maker": null,
++ "context": 262144,
++ "max_output": 262134,
++ "open_weights": null,
++ "licence": null,
++ "release_date": null,
++ "knowledge_cutoff": null,
++ "modalities": null,
++ "account_id": "must-not-be-public"
++ },
++ {
++ "model": "abliteration/abliterated-model-large-flash",
++ "provider": "abliteration",
++ "provider_name": "Abliteration.ai (the uncensored tier)",
++ "provider_model": "abliterated-model-large-flash",
++ "name": "Abliterated Large Flash",
++ "kind": "chat",
++ "price": {
++ "in": 1,
++ "out": 2,
++ "cached": 0.1,
++ "currency": "USD",
++ "per": "1M tokens"
++ },
++ "price_source": "https://docs.abliteration.ai/pricing.md",
++ "price_checked_at": "2026-11-06",
++ "routed": false,
++ "uncensored": true,
++ "provider_access": "UNVERIFIED",
++ "field_sources": {
++ "context": "https://docs.abliteration.ai/pricing.md",
++ "max_output": "https://docs.abliteration.ai/pricing.md"
++ },
++ "maker": null,
++ "context": 1048576,
++ "max_output": 262144,
++ "open_weights": null,
++ "licence": null,
++ "release_date": null,
++ "knowledge_cutoff": null,
++ "modalities": null
++ }
++ ],
++ "next_cursor": "2"
++}
ddiff --git a/fixtures/exchange.market/invalid/price.json b/fixtures/exchange.market/invalid/price.json
nnew file mode 100644
iindex 00000000..526fdcab
---- /dev/null
++++ b/fixtures/exchange.market/invalid/price.json
@@@ -0,0 +1,78 @@
++{
++ "$schema": "exchange.market@1",
++ "generated_at": "2026-11-09T00:00:00.000Z",
++ "metadata": {
++ "source": "https://models.dev/api.json",
++ "checked_at": null,
++ "stale": true
++ },
++ "total_models": 29,
++ "total_offers": 38,
++ "offers": [
++ {
++ "model": "abliteration/abliterated-model",
++ "provider": "abliteration",
++ "provider_name": "Abliteration.ai (the uncensored tier)",
++ "provider_model": "abliterated-model",
++ "name": "Abliterated Model",
++ "kind": "chat",
++ "price": {
++ "in": -1,
++ "out": 3,
++ "cached": 0.1,
++ "currency": "USD",
++ "per": "1M tokens"
++ },
++ "price_source": "https://docs.abliteration.ai/pricing.md",
++ "price_checked_at": "2026-11-06",
++ "routed": false,
++ "uncensored": true,
++ "provider_access": "UNVERIFIED",
++ "field_sources": {
++ "context": "https://docs.abliteration.ai/pricing.md",
++ "max_output": "https://docs.abliteration.ai/pricing.md"
++ },
++ "maker": null,
++ "context": 262144,
++ "max_output": 262134,
++ "open_weights": null,
++ "licence": null,
++ "release_date": null,
++ "knowledge_cutoff": null,
++ "modalities": null
++ },
++ {
++ "model": "abliteration/abliterated-model-large-flash",
++ "provider": "abliteration",
++ "provider_name": "Abliteration.ai (the uncensored tier)",
++ "provider_model": "abliterated-model-large-flash",
++ "name": "Abliterated Large Flash",
++ "kind": "chat",
++ "price": {
++ "in": 1,
++ "out": 2,
++ "cached": 0.1,
++ "currency": "USD",
++ "per": "1M tokens"
++ },
++ "price_source": "https://docs.abliteration.ai/pricing.md",
++ "price_checked_at": "2026-11-06",
++ "routed": false,
++ "uncensored": true,
++ "provider_access": "UNVERIFIED",
++ "field_sources": {
++ "context": "https://docs.abliteration.ai/pricing.md",
++ "max_output": "https://docs.abliteration.ai/pricing.md"
++ },
++ "maker": null,
++ "context": 1048576,
++ "max_output": 262144,
++ "open_weights": null,
++ "licence": null,
++ "release_date": null,
++ "knowledge_cutoff": null,
++ "modalities": null
++ }
++ ],
++ "next_cursor": "2"
++}
ddiff --git a/fixtures/exchange.market/valid/empty-stale.json b/fixtures/exchange.market/valid/empty-stale.json
nnew file mode 100644
iindex 00000000..e494262d
---- /dev/null
++++ b/fixtures/exchange.market/valid/empty-stale.json
@@@ -0,0 +1,13 @@
++{
++ "$schema": "exchange.market@1",
++ "generated_at": "2026-11-09T00:00:00.000Z",
++ "metadata": {
++ "source": "https://models.dev/api.json",
++ "checked_at": "2026-11-07T00:00:00.000Z",
++ "stale": true
++ },
++ "total_models": 0,
++ "total_offers": 0,
++ "offers": [],
++ "next_cursor": null
++}
ddiff --git a/fixtures/exchange.market/valid/offers.json b/fixtures/exchange.market/valid/offers.json
nnew file mode 100644
iindex 00000000..5c271414
---- /dev/null
++++ b/fixtures/exchange.market/valid/offers.json
@@@ -0,0 +1,78 @@
++{
++ "$schema": "exchange.market@1",
++ "generated_at": "2026-11-09T00:00:00.000Z",
++ "metadata": {
++ "source": "https://models.dev/api.json",
++ "checked_at": null,
++ "stale": true
++ },
++ "total_models": 29,
++ "total_offers": 38,
++ "offers": [
++ {
++ "model": "abliteration/abliterated-model",
++ "provider": "abliteration",
++ "provider_name": "Abliteration.ai (the uncensored tier)",
++ "provider_model": "abliterated-model",
++ "name": "Abliterated Model",
++ "kind": "chat",
++ "price": {
++ "in": 1,
++ "out": 3,
++ "cached": 0.1,
++ "currency": "USD",
++ "per": "1M tokens"
++ },
++ "price_source": "https://docs.abliteration.ai/pricing.md",
++ "price_checked_at": "2026-11-06",
++ "routed": false,
++ "uncensored": true,
++ "provider_access": "UNVERIFIED",
++ "field_sources": {
++ "context": "https://docs.abliteration.ai/pricing.md",
++ "max_output": "https://docs.abliteration.ai/pricing.md"
++ },
++ "maker": null,
++ "context": 262144,
++ "max_output": 262134,
++ "open_weights": null,
++ "licence": null,
++ "release_date": null,
++ "knowledge_cutoff": null,
++ "modalities": null
++ },
++ {
++ "model": "abliteration/abliterated-model-large-flash",
++ "provider": "abliteration",
++ "provider_name": "Abliteration.ai (the uncensored tier)",
++ "provider_model": "abliterated-model-large-flash",
++ "name": "Abliterated Large Flash",
++ "kind": "chat",
++ "price": {
++ "in": 1,
++ "out": 2,
++ "cached": 0.1,
++ "currency": "USD",
++ "per": "1M tokens"
++ },
++ "price_source": "https://docs.abliteration.ai/pricing.md",
++ "price_checked_at": "2026-11-06",
++ "routed": false,
++ "uncensored": true,
++ "provider_access": "UNVERIFIED",
++ "field_sources": {
++ "context": "https://docs.abliteration.ai/pricing.md",
++ "max_output": "https://docs.abliteration.ai/pricing.md"
++ },
++ "maker": null,
++ "context": 1048576,
++ "max_output": 262144,
++ "open_weights": null,
++ "licence": null,
++ "release_date": null,
++ "knowledge_cutoff": null,
++ "modalities": null
++ }
++ ],
++ "next_cursor": "2"
++}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 97b3da85..45b5053a 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -120956,6 +120956,311 @@
},
"description": "Owner-scoped request accounting. Cost is USD and latency is milliseconds; prompts and outputs are excluded."
}
++ },
++ "exchange.market": {
++ "version": "1.0.0",
++ "owner": "ai",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/exchange/market.v1.json",
++ "title": "ExchangeMarket",
++ "description": "Public own-page provider offers, enabled or not; prices are observations, not routing quotes. Paged by limit (1-500) and cursor, filterable by maker, open_weights and kind. No credentials or account identifiers. Model metadata preserves per-field provenance and stale state.",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "metadata",
++ "total_models",
++ "total_offers",
++ "offers",
++ "next_cursor"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "exchange.market@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "metadata": {
++ "type": "object",
++ "required": [
++ "source",
++ "checked_at",
++ "stale"
++ ],
++ "properties": {
++ "source": {
++ "const": "https://models.dev/api.json"
++ },
++ "checked_at": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "date-time"
++ },
++ "stale": {
++ "type": "boolean"
++ }
++ },
++ "additionalProperties": false
++ },
++ "total_models": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "total_offers": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "next_cursor": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "offers": {
++ "type": "array",
++ "maxItems": 500,
++ "items": {
++ "type": "object",
++ "required": [
++ "maker",
++ "licence",
++ "release_date",
++ "knowledge_cutoff",
++ "price_checked_at",
++ "model",
++ "provider",
++ "provider_name",
++ "provider_model",
++ "name",
++ "routed",
++ "uncensored",
++ "context",
++ "max_output",
++ "kind",
++ "provider_access",
++ "open_weights",
++ "price_source",
++ "price",
++ "field_sources",
++ "modalities"
++ ],
++ "properties": {
++ "maker": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "licence": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "release_date": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "knowledge_cutoff": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "price_checked_at": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "model": {
++ "type": "string",
++ "minLength": 1
++ },
++ "provider": {
++ "type": "string",
++ "minLength": 1
++ },
++ "provider_name": {
++ "type": "string",
++ "minLength": 1
++ },
++ "provider_model": {
++ "type": "string",
++ "minLength": 1
++ },
++ "name": {
++ "type": "string",
++ "minLength": 1
++ },
++ "routed": {
++ "type": "boolean"
++ },
++ "uncensored": {
++ "type": "boolean"
++ },
++ "context": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "max_output": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "kind": {
++ "enum": [
++ "chat",
++ "embedding",
++ "stt",
++ "image"
++ ]
++ },
++ "provider_access": {
++ "enum": [
++ "OWN_DEPLOYMENT",
++ "AUTHORIZED_WHOLESALE",
++ "CUSTOMER_BYOK",
++ "UNVERIFIED",
++ "RESTRICTED"
++ ]
++ },
++ "open_weights": {
++ "type": [
++ "boolean",
++ "null"
++ ]
++ },
++ "price_source": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "uri"
++ },
++ "price": {
++ "type": "object",
++ "required": [
++ "in",
++ "out",
++ "cached",
++ "currency",
++ "per"
++ ],
++ "properties": {
++ "in": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "out": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "cached": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "currency": {
++ "const": "USD"
++ },
++ "per": {
++ "const": "1M tokens"
++ }
++ },
++ "additionalProperties": false
++ },
++ "field_sources": {
++ "type": "object",
++ "additionalProperties": false,
++ "properties": {
++ "maker": {
++ "type": "string",
++ "format": "uri"
++ },
++ "context": {
++ "type": "string",
++ "format": "uri"
++ },
++ "max_output": {
++ "type": "string",
++ "format": "uri"
++ },
++ "open_weights": {
++ "type": "string",
++ "format": "uri"
++ },
++ "licence": {
++ "type": "string",
++ "format": "uri"
++ },
++ "release_date": {
++ "type": "string",
++ "format": "uri"
++ },
++ "knowledge_cutoff": {
++ "type": "string",
++ "format": "uri"
++ },
++ "modalities": {
++ "type": "string",
++ "format": "uri"
++ }
++ }
++ },
++ "modalities": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "required": [
++ "input",
++ "output"
++ ],
++ "properties": {
++ "input": {
++ "type": "array",
++ "items": {
++ "type": "string"
++ }
++ },
++ "output": {
++ "type": "array",
++ "items": {
++ "type": "string"
++ }
++ }
++ },
++ "additionalProperties": false
++ }
++ },
++ "additionalProperties": false
++ }
++ }
++ },
++ "additionalProperties": false
++ }
}
}
}
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex 7704c861..bbf3bbf5 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.381.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 3999700a..8498373d 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.381.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 0b350db0..29ea1b2d 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.381.0",
-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 d32c2f7d..4774e82a 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.381.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 e35ae583..09f11b6c 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.381.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 4e6d8765..56230871 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.381.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 ce7fa7f9..ce055278 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.381.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 1aadf0e5..e2cfea69 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.381.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 f6d3d573..06099697 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.381.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.382.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/connect.json b/generated/openapi/connect.json
iindex 12e77002..fc4e6e20 100644
---- a/generated/openapi/connect.json
++++ b/generated/openapi/connect.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe Connect API",
-- "version": "0.381.0",
-- "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 5fbffd96..284aad87 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.381.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 c399cf84..e7f58d47 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.381.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.382.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/design.json b/generated/openapi/design.json
iindex 17601238..5b111669 100644
---- a/generated/openapi/design.json
++++ b/generated/openapi/design.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Design API",
-- "version": "0.381.0",
-- "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 5d7ac751..eb373bac 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.381.0",
-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 2c4e9e2c..dcedc367 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.381.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.382.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/exchange.json b/generated/openapi/exchange.json
iindex a4875e0b..19b9980e 100644
---- a/generated/openapi/exchange.json
++++ b/generated/openapi/exchange.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Exchange API",
-- "version": "0.381.0",
-- "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 aa422522..a16093bf 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.381.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 41d68b89..5598b789 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.381.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.382.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/git.json b/generated/openapi/git.json
iindex 6f2e7ccd..5beafb56 100644
---- a/generated/openapi/git.json
++++ b/generated/openapi/git.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Git API",
-- "version": "0.381.0",
-- "description": "Routes of OpenVibe.Git as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Git as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 905a65e3..c1489039 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.381.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 a5e5f0a9..6f3ca185 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.381.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 b2a7d331..eb54be9b 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.381.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.382.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/mail.json b/generated/openapi/mail.json
iindex 54772d0f..2797b051 100644
---- a/generated/openapi/mail.json
++++ b/generated/openapi/mail.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Mail API",
-- "version": "0.381.0",
-- "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 a66a4eb4..8071fbc0 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.381.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 745b560d..4d21dd65 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.381.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 b9a52e59..9c75ac2d 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.381.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 30b4ca4c..06b41936 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.381.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 9867faae..0dbfc460 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.381.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 85491040..df9a8900 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.381.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 4c1d5102..28bc9580 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.381.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.382.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/report.json b/generated/openapi/report.json
iindex f4c971f8..3f786499 100644
---- a/generated/openapi/report.json
++++ b/generated/openapi/report.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Report API",
-- "version": "0.381.0",
-- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 12dfc671..37fb40f1 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.381.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 aff76744..bbf3585c 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.381.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 8565c91b..8fac197c 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.381.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 7888388f..a08e9750 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.381.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 48e3003c..382cac1f 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.381.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 3dc479a9..5f76184f 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.381.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 44b5a50f..f9941b25 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.381.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.382.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/today.json b/generated/openapi/today.json
iindex 05eaefc7..40de9961 100644
---- a/generated/openapi/today.json
++++ b/generated/openapi/today.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Today API",
-- "version": "0.381.0",
-- "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 9c48afdc..1c06abdd 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.381.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 c307ff49..fbf1fb59 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.381.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 233a7c49..a8bcddba 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.381.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 1c7441f1..98acca8b 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.381.0",
-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 042b077d..4ff2596b 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.381.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 59b797c5..99ea9b18 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.381.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 d5776531..48343bd4 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.381.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 7d23867a..78ec91ce 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.381.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.381.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.382.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.382.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 0da67c5c..4fcb98a8 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -327484,3 +327484,64 @@ export interface ExchangeGeneration {
tokens_completion: number;
created_at: string;
}
++
++/** [email protected] (owner: ai) */
++/**
++ * Public own-page provider offers, enabled or not; prices are observations, not routing quotes. Paged by limit (1-500) and cursor, filterable by maker, open_weights and kind. No credentials or account identifiers. Model metadata preserves per-field provenance and stale state.
++ */
++export interface ExchangeMarket {
++ $schema: "exchange.market@1";
++ generated_at: string;
++ metadata: {
++ source: "https://models.dev/api.json";
++ checked_at: string | null;
++ stale: boolean;
++ };
++ total_models: number;
++ total_offers: number;
++ next_cursor: string | null;
++ /**
++ * @maxItems 500
++ */
++ offers: {
++ maker: string | null;
++ licence: string | null;
++ release_date: string | null;
++ knowledge_cutoff: string | null;
++ price_checked_at: string | null;
++ model: string;
++ provider: string;
++ provider_name: string;
++ provider_model: string;
++ name: string;
++ routed: boolean;
++ uncensored: boolean;
++ context: number | null;
++ max_output: number | null;
++ kind: "chat" | "embedding" | "stt" | "image";
++ provider_access: "OWN_DEPLOYMENT" | "AUTHORIZED_WHOLESALE" | "CUSTOMER_BYOK" | "UNVERIFIED" | "RESTRICTED";
++ open_weights: boolean | null;
++ price_source: string | null;
++ price: {
++ in: number | null;
++ out: number | null;
++ cached: number | null;
++ currency: "USD";
++ per: "1M tokens";
++ };
++ field_sources: {
++ maker?: string;
++ context?: string;
++ max_output?: string;
++ open_weights?: string;
++ licence?: string;
++ release_date?: string;
++ knowledge_cutoff?: string;
++ modalities?: string;
++ };
++ modalities: {
++ input: string[];
++ output: string[];
++ } | null;
++ }[];
++}
ddiff --git a/manifests/services/ai.json b/manifests/services/ai.json
iindex 8579f12e..d5faf2dd 100644
---- a/manifests/services/ai.json
++++ b/manifests/services/ai.json
@@@ -105,5 +105,13 @@
"installs": "the local model server (Ollama, LM Studio) as OpenVibe Link's ai plugin",
"shows": "Serves your own AI models, on your own machine."
}
++ ],
++ "routes": [
++ {
++ "method": "GET",
++ "path": "/api/v1/exchange/market",
++ "contract": "exchange.market@1",
++ "cacheSeconds": 60
++ }
]
}
ddiff --git a/package-lock.json b/package-lock.json
iindex f4f8b470..bd8b5ba6 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -1,12 +1,12 @@
{
"name": "openvibe-contracts",
-- "version": "0.381.0",
++ "version": "0.382.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openvibe-contracts",
-- "version": "0.381.0",
++ "version": "0.382.0",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex e910a5e3..989ce08b 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.381.0",
++ "version": "0.382.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",