openvibers/openvibe.contracts Commits

Add Report AI comparison contracts (#366)

OP OpenVibers committed 4 days ago · 79853e93fc · 68 files, +752 −93

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex 49a85545..8622ed05 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -1,5 +1,9 @@
# Changelog
++## 0.351.0 — 2026-11-09
++
++- Add the five public Report AI comparison response contracts and fixtures, and list their cached public routes in the Report service manifest.
++
## 0.350.0 — 2026-11-09
- Define credential-free blind fill request, encrypted grant, and outcome contracts, plus the `run.fill.approve` capability.
ddiff --git a/contracts/catalog.json b/contracts/catalog.json
iindex 193fd8f7..e8ffe41a 100644
---- a/contracts/catalog.json
++++ b/contracts/catalog.json
@@@ -10325,6 +10325,51 @@
"compatibility": "backward",
"status": "active",
"adr": "ADR-044"
++ },
++ {
++ "id": "report.ai-leaderboard",
++ "version": "1.0.0",
++ "owner": "report",
++ "schema": "report/ai-leaderboard.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "report.ai-model",
++ "version": "1.0.0",
++ "owner": "report",
++ "schema": "report/ai-model.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "report.ai-providers",
++ "version": "1.0.0",
++ "owner": "report",
++ "schema": "report/ai-providers.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "report.ai-compare",
++ "version": "1.0.0",
++ "owner": "report",
++ "schema": "report/ai-compare.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
++ },
++ {
++ "id": "report.ai-picks",
++ "version": "1.0.0",
++ "owner": "report",
++ "schema": "report/ai-picks.v1.json",
++ "visibility": "public",
++ "compatibility": "backward",
++ "status": "active"
}
]
}
ddiff --git a/contracts/registry/service-manifest.v1.json b/contracts/registry/service-manifest.v1.json
iindex 9de2806f..9dedde6c 100644
---- a/contracts/registry/service-manifest.v1.json
++++ b/contracts/registry/service-manifest.v1.json
@@@ -56,6 +56,22 @@
"type": "string",
"pattern": "^/"
},
++ "routes": {
++ "type": "array",
++ "description": "Public HTTP routes implemented by this service, with their response contract where one exists.",
++ "items": {
++ "type": "object",
++ "required": ["method", "path"],
++ "additionalProperties": false,
++ "properties": {
++ "method": { "type": "string", "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"] },
++ "path": { "type": "string", "pattern": "^/" },
++ "contract": { "type": "string" },
++ "cacheSeconds": { "type": "integer", "minimum": 0 },
++ "cors": { "type": "string" }
++ }
++ }
++ },
"ready": {
"type": "string",
"pattern": "^/"
ddiff --git a/contracts/report/ai-compare.v1.json b/contracts/report/ai-compare.v1.json
nnew file mode 100644
iindex 00000000..2e1ca335
---- /dev/null
++++ b/contracts/report/ai-compare.v1.json
@@@ -0,0 +1,31 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-compare.v1.json",
++ "title": "ReportAiCompare",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "models"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-compare@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "models": {
++ "type": "array",
++ "items": {
++ "type": [
++ "object",
++ "null"
++ ]
++ }
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-compare@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++}
ddiff --git a/contracts/report/ai-leaderboard.v1.json b/contracts/report/ai-leaderboard.v1.json
nnew file mode 100644
iindex 00000000..4bd29c0b
---- /dev/null
++++ b/contracts/report/ai-leaderboard.v1.json
@@@ -0,0 +1,81 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-leaderboard.v1.json",
++ "title": "ReportAiLeaderboard",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "count",
++ "rows",
++ "next_cursor"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-leaderboard@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "count": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "rows": {
++ "type": "array",
++ "items": {
++ "type": "object",
++ "required": [
++ "id",
++ "kind",
++ "rating",
++ "benchmark",
++ "rank",
++ "source"
++ ],
++ "properties": {
++ "id": {
++ "type": "string"
++ },
++ "kind": {
++ "type": "string"
++ },
++ "maker": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "weights": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "rating": {
++ "type": "object"
++ },
++ "benchmark": {
++ "type": "object"
++ },
++ "rank": {
++ "type": "object"
++ },
++ "source": {
++ "type": "object"
++ }
++ },
++ "additionalProperties": true
++ }
++ },
++ "next_cursor": {
++ "type": [
++ "string",
++ "null"
++ ]
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-leaderboard@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++}
ddiff --git a/contracts/report/ai-model.v1.json b/contracts/report/ai-model.v1.json
nnew file mode 100644
iindex 00000000..3aa485a1
---- /dev/null
++++ b/contracts/report/ai-model.v1.json
@@@ -0,0 +1,29 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-model.v1.json",
++ "title": "ReportAiModel",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "model",
++ "source"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-model@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "model": {
++ "type": "string"
++ },
++ "source": {
++ "type": "object"
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-model@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++}
ddiff --git a/contracts/report/ai-picks.v1.json b/contracts/report/ai-picks.v1.json
nnew file mode 100644
iindex 00000000..0aeaa328
---- /dev/null
++++ b/contracts/report/ai-picks.v1.json
@@@ -0,0 +1,47 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-picks.v1.json",
++ "title": "ReportAiPicks",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "picks"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-picks@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "picks": {
++ "type": "array",
++ "items": {
++ "type": "object",
++ "required": [
++ "id",
++ "model",
++ "why"
++ ],
++ "properties": {
++ "id": {
++ "type": "string"
++ },
++ "model": {
++ "type": [
++ "object",
++ "null"
++ ]
++ },
++ "why": {
++ "type": "string"
++ }
++ }
++ }
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-picks@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++}
ddiff --git a/contracts/report/ai-providers.v1.json b/contracts/report/ai-providers.v1.json
nnew file mode 100644
iindex 00000000..d6d721b6
---- /dev/null
++++ b/contracts/report/ai-providers.v1.json
@@@ -0,0 +1,28 @@
++{
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-providers.v1.json",
++ "title": "ReportAiProviders",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "providers"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-providers@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "providers": {
++ "type": "array",
++ "items": {
++ "type": "object"
++ }
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-providers@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++}
ddiff --git a/fixtures/report.ai-compare/invalid/missing-models.json b/fixtures/report.ai-compare/invalid/missing-models.json
nnew file mode 100644
iindex 00000000..56163654
---- /dev/null
++++ b/fixtures/report.ai-compare/invalid/missing-models.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-compare@1","generated_at":"2026-11-08T00:00:00.000Z"}
ddiff --git a/fixtures/report.ai-compare/valid/default.json b/fixtures/report.ai-compare/valid/default.json
nnew file mode 100644
iindex 00000000..22e61499
---- /dev/null
++++ b/fixtures/report.ai-compare/valid/default.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-compare@1","generated_at":"2026-11-08T00:00:00.000Z","models":[]}
ddiff --git a/fixtures/report.ai-leaderboard/invalid/missing-rows.json b/fixtures/report.ai-leaderboard/invalid/missing-rows.json
nnew file mode 100644
iindex 00000000..07618587
---- /dev/null
++++ b/fixtures/report.ai-leaderboard/invalid/missing-rows.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-leaderboard@1","generated_at":"2026-11-08T00:00:00.000Z","count":0,"next_cursor":null}
ddiff --git a/fixtures/report.ai-leaderboard/valid/default.json b/fixtures/report.ai-leaderboard/valid/default.json
nnew file mode 100644
iindex 00000000..358b6923
---- /dev/null
++++ b/fixtures/report.ai-leaderboard/valid/default.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-leaderboard@1","generated_at":"2026-11-08T00:00:00.000Z","count":1,"rows":[{"id":"vendor/model","kind":"chat","rating":{"value":1200,"interval":[1180,1220],"source":"OpenVibe.Bench","date":"2026-11-08T00:00:00.000Z","sample_size":40},"benchmark":{"value":null,"reason":"No benchmark score."},"rank":{"min":1,"max":1},"source":{"name":"OpenVibe.Bench"}}],"next_cursor":null}
ddiff --git a/fixtures/report.ai-model/invalid/missing-model.json b/fixtures/report.ai-model/invalid/missing-model.json
nnew file mode 100644
iindex 00000000..c0b6a6c2
---- /dev/null
++++ b/fixtures/report.ai-model/invalid/missing-model.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-model@1","generated_at":"2026-11-08T00:00:00.000Z","source":{}}
ddiff --git a/fixtures/report.ai-model/valid/default.json b/fixtures/report.ai-model/valid/default.json
nnew file mode 100644
iindex 00000000..6b8c9c2e
---- /dev/null
++++ b/fixtures/report.ai-model/valid/default.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-model@1","generated_at":"2026-11-08T00:00:00.000Z","model":"vendor/model","source":{"name":"OpenVibe.Bench"}}
ddiff --git a/fixtures/report.ai-picks/invalid/missing-picks.json b/fixtures/report.ai-picks/invalid/missing-picks.json
nnew file mode 100644
iindex 00000000..52964cfb
---- /dev/null
++++ b/fixtures/report.ai-picks/invalid/missing-picks.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-picks@1","generated_at":"2026-11-08T00:00:00.000Z"}
ddiff --git a/fixtures/report.ai-picks/valid/default.json b/fixtures/report.ai-picks/valid/default.json
nnew file mode 100644
iindex 00000000..734fb112
---- /dev/null
++++ b/fixtures/report.ai-picks/valid/default.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-picks@1","generated_at":"2026-11-08T00:00:00.000Z","picks":[{"id":"overall","model":null,"why":"Not enough data."}]}
ddiff --git a/fixtures/report.ai-providers/invalid/missing-providers.json b/fixtures/report.ai-providers/invalid/missing-providers.json
nnew file mode 100644
iindex 00000000..b3717221
---- /dev/null
++++ b/fixtures/report.ai-providers/invalid/missing-providers.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-providers@1","generated_at":"2026-11-08T00:00:00.000Z"}
ddiff --git a/fixtures/report.ai-providers/valid/default.json b/fixtures/report.ai-providers/valid/default.json
nnew file mode 100644
iindex 00000000..c57fabb3
---- /dev/null
++++ b/fixtures/report.ai-providers/valid/default.json
@@@ -0,0 +1 @@
++{"$schema":"report.ai-providers@1","generated_at":"2026-11-08T00:00:00.000Z","providers":[]}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 0661b95a..d77f9e12 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -1205,6 +1205,44 @@
"type": "string",
"pattern": "^/"
},
++ "routes": {
++ "type": "array",
++ "description": "Public HTTP routes implemented by this service, with their response contract where one exists.",
++ "items": {
++ "type": "object",
++ "required": [
++ "method",
++ "path"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "method": {
++ "type": "string",
++ "enum": [
++ "GET",
++ "POST",
++ "PUT",
++ "PATCH",
++ "DELETE"
++ ]
++ },
++ "path": {
++ "type": "string",
++ "pattern": "^/"
++ },
++ "contract": {
++ "type": "string"
++ },
++ "cacheSeconds": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "cors": {
++ "type": "string"
++ }
++ }
++ }
++ },
"ready": {
"type": "string",
"pattern": "^/"
@@@ -113665,6 +113703,247 @@
}
}
}
++ },
++ "report.ai-leaderboard": {
++ "version": "1.0.0",
++ "owner": "report",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-leaderboard.v1.json",
++ "title": "ReportAiLeaderboard",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "count",
++ "rows",
++ "next_cursor"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-leaderboard@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "count": {
++ "type": "integer",
++ "minimum": 0
++ },
++ "rows": {
++ "type": "array",
++ "items": {
++ "type": "object",
++ "required": [
++ "id",
++ "kind",
++ "rating",
++ "benchmark",
++ "rank",
++ "source"
++ ],
++ "properties": {
++ "id": {
++ "type": "string"
++ },
++ "kind": {
++ "type": "string"
++ },
++ "maker": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "weights": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "rating": {
++ "type": "object"
++ },
++ "benchmark": {
++ "type": "object"
++ },
++ "rank": {
++ "type": "object"
++ },
++ "source": {
++ "type": "object"
++ }
++ },
++ "additionalProperties": true
++ }
++ },
++ "next_cursor": {
++ "type": [
++ "string",
++ "null"
++ ]
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-leaderboard@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++ }
++ },
++ "report.ai-model": {
++ "version": "1.0.0",
++ "owner": "report",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-model.v1.json",
++ "title": "ReportAiModel",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "model",
++ "source"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-model@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "model": {
++ "type": "string"
++ },
++ "source": {
++ "type": "object"
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-model@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++ }
++ },
++ "report.ai-providers": {
++ "version": "1.0.0",
++ "owner": "report",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-providers.v1.json",
++ "title": "ReportAiProviders",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "providers"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-providers@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "providers": {
++ "type": "array",
++ "items": {
++ "type": "object"
++ }
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-providers@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++ }
++ },
++ "report.ai-compare": {
++ "version": "1.0.0",
++ "owner": "report",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-compare.v1.json",
++ "title": "ReportAiCompare",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "models"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-compare@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "models": {
++ "type": "array",
++ "items": {
++ "type": [
++ "object",
++ "null"
++ ]
++ }
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-compare@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++ }
++ },
++ "report.ai-picks": {
++ "version": "1.0.0",
++ "owner": "report",
++ "status": "active",
++ "schema": {
++ "$schema": "https://json-schema.org/draft/2020-12/schema",
++ "$id": "https://openvibe.network/contracts/report/ai-picks.v1.json",
++ "title": "ReportAiPicks",
++ "type": "object",
++ "required": [
++ "$schema",
++ "generated_at",
++ "picks"
++ ],
++ "properties": {
++ "$schema": {
++ "const": "report.ai-picks@1"
++ },
++ "generated_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "picks": {
++ "type": "array",
++ "items": {
++ "type": "object",
++ "required": [
++ "id",
++ "model",
++ "why"
++ ],
++ "properties": {
++ "id": {
++ "type": "string"
++ },
++ "model": {
++ "type": [
++ "object",
++ "null"
++ ]
++ },
++ "why": {
++ "type": "string"
++ }
++ }
++ }
++ }
++ },
++ "additionalProperties": true,
++ "description": "report.ai-picks@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements."
++ }
}
}
}
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex b1a33d3d..e0989dc8 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.350.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 04a1866a..9b1c1514 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.350.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 89584f82..0fc504d9 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.350.0",
-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 7942ba3e..0995fab9 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.350.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 596c9aac..fe8e8396 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.350.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 9995e18a..35ed1ce4 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.350.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 5b2f9e15..0e03b15c 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.350.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 6b98594e..8ca68b46 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.350.0",
-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 4ca9ba95..1a735b35 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.350.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 dfe4646b..f4f4c2f4 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.350.0",
-- "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 78003f3d..4e62dafe 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.350.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 df77ccca..6bf38b57 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.350.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 eb82acb8..1eb3bd3e 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.350.0",
-- "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 cc1e746d..b7aeda6a 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.350.0",
-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 f47cf6de..f4674cc4 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.350.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 579d3c17..0ec2ea15 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.350.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 86b43f32..6b40b45d 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.350.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 07e6b418..e09c20b7 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.350.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 27f68f1c..5e8eb45c 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.350.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 abc98d2b..692b2cdb 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.350.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 346a1301..ce3cc838 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.350.0",
-- "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 96de9e90..9cfb2bcd 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.350.0",
-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 f5c032eb..d3e65a9b 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.350.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 0d239d34..ca886a70 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.350.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 a30bdded..0233cacd 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.350.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 3103ffcc..7388713a 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.350.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 939f1f31..991258a7 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.350.0",
-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 742dfa2f..1d493160 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.350.0",
-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 fa329009..a4dc42c9 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.350.0",
-- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 dd59691c..aba4c3da 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.350.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 81cccdf1..9676f418 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.350.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 8dc5260f..43477783 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.350.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 7f836c14..1d14e05a 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.350.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 66759819..b26efda7 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.350.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 c2912afb..4ed40b4a 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.350.0",
-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 b4d1f2e5..1d403d31 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.350.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 52ac7aa3..fad7c067 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.350.0",
-- "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 6afdfac8..24934cec 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.350.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 7abe4007..947383b3 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.350.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 cf47bf13..df06c088 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.350.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 905fd6b4..7705f4f2 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.350.0",
-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 8277a6f7..d13b8115 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.350.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 b49c5f24..1fa90ded 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.350.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 6a6ed303..705d3f86 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.350.0",
-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 f13b6a1e..38244b8f 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.350.0",
-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.350.0): each operation lists the capabilities it performs; a token for 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.351.0",
++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.351.0): each operation lists the capabilities it performs; a token for 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 2e7d6b52..5d346ab3 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -960,6 +960,16 @@ export interface ServiceManifest {
domains: string[];
publicOrigin?: string;
health?: string;
++ /**
++ * Public HTTP routes implemented by this service, with their response contract where one exists.
++ */
++ routes?: {
++ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
++ path: string;
++ contract?: string;
++ cacheSeconds?: number;
++ cors?: string;
++ }[];
ready?: string;
/**
* Where the service answers on its host (loopback only): the address the registry polls health and readiness from. A host inventory or an OV_<ID>_INTERNAL_URL loopback override may replace it; a service with nothing to run has none.
@@@ -317329,3 +317339,75 @@ export interface ActorTaskViewTicket {
url: string;
expires_at: string;
}
++
++/** [email protected] (owner: report) */
++/**
++ * report.ai-leaderboard@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements.
++ */
++export interface ReportAiLeaderboard {
++ $schema: "report.ai-leaderboard@1";
++ generated_at: string;
++ count: number;
++ rows: {
++ id: string;
++ kind: string;
++ maker?: string | null;
++ weights?: string | null;
++ rating: {};
++ benchmark: {};
++ rank: {};
++ source: {};
++ [k: string]: unknown | undefined;
++ }[];
++ next_cursor: string | null;
++ [k: string]: unknown | undefined;
++}
++
++/** [email protected] (owner: report) */
++/**
++ * report.ai-model@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements.
++ */
++export interface ReportAiModel {
++ $schema: "report.ai-model@1";
++ generated_at: string;
++ model: string;
++ source: {};
++ [k: string]: unknown | undefined;
++}
++
++/** [email protected] (owner: report) */
++/**
++ * report.ai-providers@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements.
++ */
++export interface ReportAiProviders {
++ $schema: "report.ai-providers@1";
++ generated_at: string;
++ providers: {}[];
++ [k: string]: unknown | undefined;
++}
++
++/** [email protected] (owner: report) */
++/**
++ * report.ai-compare@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements.
++ */
++export interface ReportAiCompare {
++ $schema: "report.ai-compare@1";
++ generated_at: string;
++ models: ({} | null)[];
++ [k: string]: unknown | undefined;
++}
++
++/** [email protected] (owner: report) */
++/**
++ * report.ai-picks@1: public OpenVibe.Report AI comparison response, with source dates and sample sizes for reported measurements.
++ */
++export interface ReportAiPicks {
++ $schema: "report.ai-picks@1";
++ generated_at: string;
++ picks: {
++ id: string;
++ model: {} | null;
++ why: string;
++ }[];
++ [k: string]: unknown | undefined;
++}
ddiff --git a/manifests/services/report.json b/manifests/services/report.json
iindex 1a44dfe4..3bcc75f4 100644
---- a/manifests/services/report.json
++++ b/manifests/services/report.json
@@@ -70,6 +70,13 @@
},
"notes": "Port 5080, unit openvibe-report.service. The Report room (plan 2026-10-28 §5.4): the network's open numbers, The Rundown (what streamers talked about) and each stream's after-show report, in one place. v1 is a stateless front over OpenVibe.Network's open stats (/api/v1/stats) and OpenVibe.Live's Rundown and recap APIs; v2 makes Report the analytics authority (Network's analytics move here, Live's recap and Rundown jobs move here, the external SDK).",
"health": "/api/health",
++ "routes": [
++ { "method": "GET", "path": "/api/v1/ai/leaderboard", "contract": "report.ai-leaderboard@1", "cacheSeconds": 120, "cors": "*" },
++ { "method": "GET", "path": "/api/v1/ai/models/:id", "contract": "report.ai-model@1", "cacheSeconds": 120, "cors": "*" },
++ { "method": "GET", "path": "/api/v1/ai/providers", "contract": "report.ai-providers@1", "cacheSeconds": 120, "cors": "*" },
++ { "method": "GET", "path": "/api/v1/ai/compare?models=", "contract": "report.ai-compare@1", "cacheSeconds": 120, "cors": "*" },
++ { "method": "GET", "path": "/api/v1/ai/picks", "contract": "report.ai-picks@1", "cacheSeconds": 120, "cors": "*" }
++ ],
"ready": "/api/ready",
"internalOrigin": "http://127.0.0.1:5080",
"site": {
ddiff --git a/package-lock.json b/package-lock.json
iindex cacbe4f1..313b8a3f 100644
---- a/package-lock.json
++++ b/package-lock.json
@@@ -1,12 +1,12 @@
{
"name": "openvibe-contracts",
-- "version": "0.349.0",
++ "version": "0.351.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openvibe-contracts",
-- "version": "0.349.0",
++ "version": "0.351.0",
"license": "AGPL-3.0-only",
"dependencies": {
"ajv": "^8.17.1",
ddiff --git a/package.json b/package.json
iindex b2ce4dc7..332dfbd6 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.350.0",
++ "version": "0.351.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",