openvibers/openvibe.contracts Commits
Git contracts: git.repo@1, git.commit@1, git.tree@1, git.insights@1 (0.357.0) (#384)
Changes
@@@ -1,5 +1,9 @@# Changelog++## 0.369.0 — 2026-11-09++++- OpenVibe Git: git.repo@1, git.commit@1, git.tree@1 and git.insights@1++## 0.368.0 — 2026-11-09- The wallet and the reviewed store: billing.wallet@1, inventory.store@1, inventory.store-listing@1, inventory.purchase@1@@@ -10722,6 +10722,42 @@"visibility": "public","compatibility": "backward","status": "active"++ },++ {++ "id": "git.repo",++ "version": "1.0.0",++ "owner": "git",++ "schema": "git/repo.v1.json",++ "visibility": "public",++ "compatibility": "backward",++ "status": "active"++ },++ {++ "id": "git.commit",++ "version": "1.0.0",++ "owner": "git",++ "schema": "git/commit.v1.json",++ "visibility": "public",++ "compatibility": "backward",++ "status": "active"++ },++ {++ "id": "git.tree",++ "version": "1.0.0",++ "owner": "git",++ "schema": "git/tree.v1.json",++ "visibility": "public",++ "compatibility": "backward",++ "status": "active"++ },++ {++ "id": "git.insights",++ "version": "1.0.0",++ "owner": "git",++ "schema": "git/insights.v1.json",++ "visibility": "public",++ "compatibility": "backward",++ "status": "active"}]}nnew file mode 100644@@@ -0,0 +1,75 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/git/commit.v1.json",++ "title": "GitCommit",++ "description": "One commit on OpenVibe.Git: its sha, message, author and committer, parents, tree, and — for the commit page or a contents write — its diff and per-file counts. api/view/commit.",++ "type": "object",++ "required": ["sha", "repo", "message", "author", "committer", "parents", "tree_sha", "date"],++ "additionalProperties": false,++ "properties": {++ "sha": {++ "type": "string",++ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$",++ "description": "The commit id: 40 hex characters (SHA-1) or 64 (SHA-256)."++ },++ "repo": { "type": "string", "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$" },++ "message": { "type": "string", "maxLength": 100000 },++ "subject": { "type": "string", "maxLength": 500, "description": "The first line of the message." },++ "author": {++ "type": "object",++ "required": ["name", "email", "date"],++ "additionalProperties": false,++ "properties": {++ "name": { "type": "string" },++ "email": { "type": "string" },++ "username": { "type": ["string", "null"], "description": "The OpenVibe username when the email is a verified one." },++ "date": { "type": "string", "format": "date-time" }++ }++ },++ "committer": {++ "type": "object",++ "required": ["name", "email", "date"],++ "additionalProperties": false,++ "properties": {++ "name": { "type": "string" },++ "email": { "type": "string" },++ "date": { "type": "string", "format": "date-time" }++ }++ },++ "parents": {++ "type": "array",++ "maxItems": 2,++ "items": { "type": "string", "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$" }++ },++ "tree_sha": { "type": "string", "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$" },++ "date": { "type": "string", "format": "date-time" },++ "stats": {++ "type": ["object", "null"],++ "required": ["files", "additions", "deletions"],++ "additionalProperties": false,++ "properties": {++ "files": { "type": "integer", "minimum": 0 },++ "additions": { "type": "integer", "minimum": 0 },++ "deletions": { "type": "integer", "minimum": 0 }++ }++ },++ "files": {++ "type": "array",++ "description": "The changed files, when the caller asked for the diff.",++ "items": {++ "type": "object",++ "required": ["path", "status", "additions", "deletions"],++ "additionalProperties": false,++ "properties": {++ "path": { "type": "string" },++ "previous_path": { "type": ["string", "null"] },++ "status": { "enum": ["added", "modified", "deleted", "renamed", "copied"] },++ "additions": { "type": "integer", "minimum": 0 },++ "deletions": { "type": "integer", "minimum": 0 },++ "patch": { "type": ["string", "null"] }++ }++ }++ },++ "diff": { "type": ["string", "null"], "description": "The unified diff, when the caller asked for it." }++ }++}nnew file mode 100644@@@ -0,0 +1,54 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/git/insights.v1.json",++ "title": "GitInsights",++ "description": "A repository's insights over a window: views, unique visitors, clones and stars per day, and commits per week. Public for a public repository, like GitHub's traffic but open. api/view/insights.",++ "type": "object",++ "required": ["repo", "window_days", "views", "unique_visitors", "clones", "stars", "commits_per_week", "daily"],++ "additionalProperties": false,++ "properties": {++ "repo": { "type": "string", "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$" },++ "window_days": { "type": "integer", "minimum": 1, "maximum": 90 },++ "views": { "type": "integer", "minimum": 0, "description": "Page views of the repository in the window." },++ "unique_visitors": { "type": "integer", "minimum": 0, "description": "Distinct visitors per day, summed over the window." },++ "clones": { "type": "integer", "minimum": 0, "description": "Successful git clones and fetches served in the window." },++ "stars": {++ "type": "object",++ "required": ["total", "in_window"],++ "additionalProperties": false,++ "properties": {++ "total": { "type": "integer", "minimum": 0 },++ "in_window": { "type": "integer", "minimum": 0 }++ }++ },++ "commits_per_week": {++ "type": "array",++ "description": "The default branch's commits for each ISO week, oldest first.",++ "items": {++ "type": "object",++ "required": ["week", "commits"],++ "additionalProperties": false,++ "properties": {++ "week": { "type": "string", "format": "date", "description": "The week's Monday, YYYY-MM-DD." },++ "commits": { "type": "integer", "minimum": 0 }++ }++ }++ },++ "daily": {++ "type": "array",++ "description": "One row per day of the window, oldest first.",++ "items": {++ "type": "object",++ "required": ["day", "views", "unique_visitors", "clones", "stars"],++ "additionalProperties": false,++ "properties": {++ "day": { "type": "string", "format": "date" },++ "views": { "type": "integer", "minimum": 0 },++ "unique_visitors": { "type": "integer", "minimum": 0 },++ "clones": { "type": "integer", "minimum": 0 },++ "stars": { "type": "integer", "minimum": 0 }++ }++ }++ }++ }++}nnew file mode 100644@@@ -0,0 +1,111 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/git/repo.v1.json",++ "title": "GitRepository",++ "description": "One repository on OpenVibe.Git (git.openvibe.codes): its owner, visibility, default branch, counts, and — when it has one — its GitHub mirror and the cached GitHub card. api/view/repo.",++ "type": "object",++ "required": [++ "id",++ "owner",++ "name",++ "full_name",++ "description",++ "visibility",++ "default_branch",++ "topics",++ "stars",++ "watchers",++ "forks",++ "language",++ "html_url",++ "clone_url",++ "created_at",++ "updated_at"++ ],++ "additionalProperties": false,++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^repo_[0-9A-HJKMNP-TV-Z]{26}$",++ "description": "The repository's own id (repo_<ULID>), stable across a rename."++ },++ "owner": {++ "type": "object",++ "required": ["username"],++ "additionalProperties": false,++ "properties": {++ "username": {++ "type": "string",++ "pattern": "^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}$",++ "description": "The OpenVibe username that owns it, lower-case."++ },++ "subject": {++ "type": ["string", "null"],++ "pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$",++ "description": "The owner's Network subject; absent when the owner is the organisation account."++ },++ "display_name": { "type": ["string", "null"] },++ "avatar_url": { "type": ["string", "null"], "format": "uri" }++ }++ },++ "name": {++ "type": "string",++ "pattern": "^(?!.*\\.git$)[a-z0-9][a-z0-9._-]{0,99}$",++ "description": "The repository name; lower-case, and never ending in .git."++ },++ "full_name": {++ "type": "string",++ "pattern": "^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}/(?!.*\\.git$)[a-z0-9][a-z0-9._-]{0,99}$",++ "description": "<owner>/<name>, the name every API path and clone URL uses."++ },++ "description": { "type": "string", "maxLength": 500 },++ "visibility": { "enum": ["public", "private"] },++ "default_branch": { "type": "string", "minLength": 1, "maxLength": 255 },++ "topics": {++ "type": "array",++ "maxItems": 20,++ "items": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,34}$" }++ },++ "stars": { "type": "integer", "minimum": 0 },++ "watchers": { "type": "integer", "minimum": 0 },++ "forks": { "type": "integer", "minimum": 0 },++ "language": { "type": ["string", "null"] },++ "languages": {++ "type": "object",++ "description": "Language name → share of bytes, 0–100, the largest first.",++ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 100 }++ },++ "html_url": { "type": "string", "format": "uri" },++ "clone_url": { "type": "string", "format": "uri" },++ "mirror": {++ "type": ["object", "null"],++ "description": "A git repository mirrored from somewhere (today: a public GitHub URL).",++ "required": ["url", "state", "last_synced_at", "error"],++ "additionalProperties": false,++ "properties": {++ "url": { "type": "string", "format": "uri" },++ "state": { "enum": ["ready", "syncing", "error"] },++ "last_synced_at": { "type": ["string", "null"], "format": "date-time" },++ "error": { "type": ["string", "null"], "maxLength": 500 }++ }++ },++ "github": {++ "type": ["object", "null"],++ "description": "The GitHub card: cached GitHub API readings for the repository's twin.",++ "required": ["full_name", "html_url", "stars", "open_issues", "open_pull_requests", "ci_state", "fetched_at"],++ "additionalProperties": false,++ "properties": {++ "full_name": { "type": "string" },++ "html_url": { "type": "string", "format": "uri" },++ "stars": { "type": "integer", "minimum": 0 },++ "open_issues": { "type": "integer", "minimum": 0 },++ "open_pull_requests": { "type": "integer", "minimum": 0 },++ "ci_state": { "enum": ["success", "failure", "pending", "unknown"] },++ "fetched_at": { "type": "string", "format": "date-time" }++ }++ },++ "created_at": { "type": "string", "format": "date-time" },++ "updated_at": { "type": "string", "format": "date-time" },++ "pushed_at": { "type": ["string", "null"], "format": "date-time" }++ }++}nnew file mode 100644@@@ -0,0 +1,41 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/git/tree.v1.json",++ "title": "GitTree",++ "description": "One directory of a repository at a ref: its entries with mode, size and the last commit that touched each. api/view/tree.",++ "type": "object",++ "required": ["repo", "ref", "path", "entries"],++ "additionalProperties": false,++ "properties": {++ "repo": { "type": "string", "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$" },++ "ref": { "type": "string", "minLength": 1, "maxLength": 255, "description": "The branch, tag or commit the tree was read at." },++ "path": { "type": "string", "maxLength": 4096, "description": "The directory, empty at the repository root." },++ "entries": {++ "type": "array",++ "items": {++ "type": "object",++ "required": ["name", "path", "type", "mode", "sha"],++ "additionalProperties": false,++ "properties": {++ "name": { "type": "string" },++ "path": { "type": "string" },++ "type": { "enum": ["blob", "tree", "commit"] },++ "mode": { "type": "string", "pattern": "^[0-7]{6}$" },++ "sha": { "type": "string", "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$" },++ "size": { "type": ["integer", "null"], "minimum": 0 },++ "last_commit": {++ "type": ["object", "null"],++ "required": ["sha", "message", "date", "author_name"],++ "additionalProperties": false,++ "properties": {++ "sha": { "type": "string", "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$" },++ "message": { "type": "string", "maxLength": 500 },++ "date": { "type": "string", "format": "date-time" },++ "author_name": { "type": "string" }++ }++ }++ }++ }++ }++ }++}nnew file mode 100644@@@ -0,0 +1,10 @@++{++ "sha": "4f0c2d9a1e8b7c6d5a4f3e2d1c0b9a8f7e6d5c4b",++ "repo": "openviber",++ "message": "not a repo name",++ "author": { "name": "", "email": "[email protected]", "date": "yesterday" },++ "committer": { "name": "Sam", "email": "[email protected]", "date": "2026-11-09T08:40:00Z" },++ "parents": [],++ "tree_sha": "xyz",++ "date": "2026-11-09T08:40:00Z"++}nnew file mode 100644@@@ -0,0 +1,17 @@++{++ "sha": "4f0c2d9a1e8b7c6d5a4f3e2d1c0b9a8f7e6d5c4b",++ "repo": "openvibers/openvibe.codes",++ "message": "Open the desk from a phone\n\nA narrow layout and a bigger tap target.",++ "subject": "Open the desk from a phone",++ "author": { "name": "Sam", "email": "[email protected]", "username": "sam", "date": "2026-11-09T08:40:00Z" },++ "committer": { "name": "Sam", "email": "[email protected]", "date": "2026-11-09T08:40:00Z" },++ "parents": ["a1b2c3d4e5f60718293a4b5c6d7e8f9012345678"],++ "tree_sha": "b2c3d4e5f60718293a4b5c6d7e8f901234567890",++ "date": "2026-11-09T08:40:00Z",++ "stats": { "files": 2, "additions": 34, "deletions": 6 },++ "files": [++ { "path": "public/css/codes.css", "previous_path": null, "status": "modified", "additions": 30, "deletions": 6, "patch": "@@ -12,3 +12,27 @@\n .desk { display: grid; }\n" },++ { "path": "test/phone.test.js", "previous_path": null, "status": "added", "additions": 4, "deletions": 0, "patch": null }++ ],++ "diff": "diff --git a/public/css/codes.css b/public/css/codes.css\n"++}nnew file mode 100644@@@ -0,0 +1,10 @@++{++ "repo": "openvibers/openvibe.codes",++ "window_days": 400,++ "views": -1,++ "unique_visitors": 0,++ "clones": 0,++ "stars": { "total": 0, "in_window": 0 },++ "commits_per_week": [],++ "daily": [{ "day": "2026-11-09", "views": 0, "unique_visitors": 0, "clones": 0, "stars": 0, "bots": 1 }]++}nnew file mode 100644@@@ -0,0 +1,17 @@++{++ "repo": "openvibers/openvibe.codes",++ "window_days": 30,++ "views": 2841,++ "unique_visitors": 412,++ "clones": 190,++ "stars": { "total": 12, "in_window": 3 },++ "commits_per_week": [++ { "week": "2026-10-19", "commits": 18 },++ { "week": "2026-10-26", "commits": 27 },++ { "week": "2026-11-02", "commits": 31 }++ ],++ "daily": [++ { "day": "2026-11-08", "views": 121, "unique_visitors": 18, "clones": 9, "stars": 1 },++ { "day": "2026-11-09", "views": 96, "unique_visitors": 14, "clones": 7, "stars": 0 }++ ]++}nnew file mode 100644@@@ -0,0 +1,18 @@++{++ "id": "repo_01JQZ8M4T7Y2N5K3B6V9C1X0DA",++ "owner": { "username": "openvibers" },++ "name": "openvibe.codes.git",++ "full_name": "openvibers/openvibe.codes.git",++ "description": "A name ending in .git is refused.",++ "visibility": "public",++ "default_branch": "main",++ "topics": [],++ "stars": 0,++ "watchers": 1,++ "forks": 0,++ "language": null,++ "html_url": "https://git.openvibe.codes/openvibers/openvibe.codes.git",++ "clone_url": "https://git.openvibe.codes/openvibers/openvibe.codes.git.git",++ "created_at": "2026-11-09T09:00:00Z",++ "updated_at": "2026-11-09T09:00:00Z"++}nnew file mode 100644@@@ -0,0 +1,18 @@++{++ "id": "repo_01JQZ8M4T7Y2N5K3B6V9C1X0DA",++ "owner": { "username": "openvibers" },++ "name": "openvibe.codes",++ "full_name": "openvibers/openvibe.codes",++ "description": "",++ "visibility": "secret",++ "default_branch": "main",++ "topics": [],++ "stars": -1,++ "watchers": 0,++ "forks": 0,++ "language": null,++ "html_url": "https://git.openvibe.codes/openvibers/openvibe.codes",++ "clone_url": "https://git.openvibe.codes/openvibers/openvibe.codes.git",++ "created_at": "2026-11-09T09:00:00Z",++ "updated_at": "2026-11-09T09:00:00Z"++}nnew file mode 100644@@@ -0,0 +1,22 @@++{++ "id": "repo_01JQZ8M4T7Y2N5K3B6V9C1X0DA",++ "owner": { "username": "openvibers", "subject": "usr_01JQZ8M4T7Y2N5K3B6V9C1X0DB", "display_name": "OpenVibers", "avatar_url": "https://openvibe.media/o/med_01JQZ8M4T7Y2N5K3B6V9C1X0DC" },++ "name": "openvibe.codes",++ "full_name": "openvibers/openvibe.codes",++ "description": "Chat with coding agents on your own computers or a cloud desk.",++ "visibility": "public",++ "default_branch": "main",++ "topics": ["agents", "codes"],++ "stars": 12,++ "watchers": 4,++ "forks": 1,++ "language": "JavaScript",++ "languages": { "JavaScript": 72.4, "CSS": 19.1, "Shell": 8.5 },++ "html_url": "https://git.openvibe.codes/openvibers/openvibe.codes",++ "clone_url": "https://git.openvibe.codes/openvibers/openvibe.codes.git",++ "mirror": { "url": "https://github.com/OpenVibers/OpenVibe.Codes.git", "state": "ready", "last_synced_at": "2026-11-09T08:47:55Z", "error": null },++ "github": { "full_name": "OpenVibers/OpenVibe.Codes", "html_url": "https://github.com/OpenVibers/OpenVibe.Codes", "stars": 42, "open_issues": 3, "open_pull_requests": 2, "ci_state": "success", "fetched_at": "2026-11-09T09:00:00Z" },++ "created_at": "2026-10-15T19:43:04Z",++ "updated_at": "2026-11-09T08:47:55Z",++ "pushed_at": "2026-11-09T08:40:00Z"++}nnew file mode 100644@@@ -0,0 +1,22 @@++{++ "id": "repo_01JQZ8M4T7Y2N5K3B6V9C1X0DA",++ "owner": { "username": "openvibers", "subject": null, "display_name": null, "avatar_url": null },++ "name": "private-notes",++ "full_name": "openvibers/private-notes",++ "description": "",++ "visibility": "private",++ "default_branch": "main",++ "topics": [],++ "stars": 0,++ "watchers": 1,++ "forks": 0,++ "language": null,++ "languages": {},++ "html_url": "https://git.openvibe.codes/openvibers/private-notes",++ "clone_url": "https://git.openvibe.codes/openvibers/private-notes.git",++ "mirror": null,++ "github": null,++ "created_at": "2026-11-09T09:00:00Z",++ "updated_at": "2026-11-09T09:00:00Z",++ "pushed_at": null++}nnew file mode 100644@@@ -0,0 +1,8 @@++{++ "repo": "openvibers/openvibe.codes",++ "ref": "main",++ "path": "",++ "entries": [++ { "name": "server", "path": "server", "type": "directory", "mode": "040000", "sha": "c3d4e5f60718293a4b5c6d7e8f90123456789012", "size": -2, "last_commit": null }++ ]++}nnew file mode 100644@@@ -0,0 +1,9 @@++{++ "repo": "openvibers/openvibe.codes",++ "ref": "main",++ "path": "",++ "entries": [++ { "name": "server", "path": "server", "type": "tree", "mode": "040000", "sha": "c3d4e5f60718293a4b5c6d7e8f90123456789012", "size": null, "last_commit": { "sha": "4f0c2d9a1e8b7c6d5a4f3e2d1c0b9a8f7e6d5c4b", "message": "Open the desk from a phone", "date": "2026-11-09T08:40:00Z", "author_name": "Sam" } },++ { "name": "README.md", "path": "README.md", "type": "blob", "mode": "100644", "sha": "d4e5f60718293a4b5c6d7e8f9012345678901234", "size": 1421, "last_commit": null }++ ]++}@@@ -117766,6 +117766,679 @@"status"]}++ },++ "git.repo": {++ "version": "1.0.0",++ "owner": "git",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/git/repo.v1.json",++ "title": "GitRepository",++ "description": "One repository on OpenVibe.Git (git.openvibe.codes): its owner, visibility, default branch, counts, and — when it has one — its GitHub mirror and the cached GitHub card. api/view/repo.",++ "type": "object",++ "required": [++ "id",++ "owner",++ "name",++ "full_name",++ "description",++ "visibility",++ "default_branch",++ "topics",++ "stars",++ "watchers",++ "forks",++ "language",++ "html_url",++ "clone_url",++ "created_at",++ "updated_at"++ ],++ "additionalProperties": false,++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^repo_[0-9A-HJKMNP-TV-Z]{26}$",++ "description": "The repository's own id (repo_<ULID>), stable across a rename."++ },++ "owner": {++ "type": "object",++ "required": [++ "username"++ ],++ "additionalProperties": false,++ "properties": {++ "username": {++ "type": "string",++ "pattern": "^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}$",++ "description": "The OpenVibe username that owns it, lower-case."++ },++ "subject": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$",++ "description": "The owner's Network subject; absent when the owner is the organisation account."++ },++ "display_name": {++ "type": [++ "string",++ "null"++ ]++ },++ "avatar_url": {++ "type": [++ "string",++ "null"++ ],++ "format": "uri"++ }++ }++ },++ "name": {++ "type": "string",++ "pattern": "^(?!.*\\.git$)[a-z0-9][a-z0-9._-]{0,99}$",++ "description": "The repository name; lower-case, and never ending in .git."++ },++ "full_name": {++ "type": "string",++ "pattern": "^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}/(?!.*\\.git$)[a-z0-9][a-z0-9._-]{0,99}$",++ "description": "<owner>/<name>, the name every API path and clone URL uses."++ },++ "description": {++ "type": "string",++ "maxLength": 500++ },++ "visibility": {++ "enum": [++ "public",++ "private"++ ]++ },++ "default_branch": {++ "type": "string",++ "minLength": 1,++ "maxLength": 255++ },++ "topics": {++ "type": "array",++ "maxItems": 20,++ "items": {++ "type": "string",++ "pattern": "^[a-z0-9][a-z0-9-]{0,34}$"++ }++ },++ "stars": {++ "type": "integer",++ "minimum": 0++ },++ "watchers": {++ "type": "integer",++ "minimum": 0++ },++ "forks": {++ "type": "integer",++ "minimum": 0++ },++ "language": {++ "type": [++ "string",++ "null"++ ]++ },++ "languages": {++ "type": "object",++ "description": "Language name → share of bytes, 0–100, the largest first.",++ "additionalProperties": {++ "type": "number",++ "minimum": 0,++ "maximum": 100++ }++ },++ "html_url": {++ "type": "string",++ "format": "uri"++ },++ "clone_url": {++ "type": "string",++ "format": "uri"++ },++ "mirror": {++ "type": [++ "object",++ "null"++ ],++ "description": "A git repository mirrored from somewhere (today: a public GitHub URL).",++ "required": [++ "url",++ "state",++ "last_synced_at",++ "error"++ ],++ "additionalProperties": false,++ "properties": {++ "url": {++ "type": "string",++ "format": "uri"++ },++ "state": {++ "enum": [++ "ready",++ "syncing",++ "error"++ ]++ },++ "last_synced_at": {++ "type": [++ "string",++ "null"++ ],++ "format": "date-time"++ },++ "error": {++ "type": [++ "string",++ "null"++ ],++ "maxLength": 500++ }++ }++ },++ "github": {++ "type": [++ "object",++ "null"++ ],++ "description": "The GitHub card: cached GitHub API readings for the repository's twin.",++ "required": [++ "full_name",++ "html_url",++ "stars",++ "open_issues",++ "open_pull_requests",++ "ci_state",++ "fetched_at"++ ],++ "additionalProperties": false,++ "properties": {++ "full_name": {++ "type": "string"++ },++ "html_url": {++ "type": "string",++ "format": "uri"++ },++ "stars": {++ "type": "integer",++ "minimum": 0++ },++ "open_issues": {++ "type": "integer",++ "minimum": 0++ },++ "open_pull_requests": {++ "type": "integer",++ "minimum": 0++ },++ "ci_state": {++ "enum": [++ "success",++ "failure",++ "pending",++ "unknown"++ ]++ },++ "fetched_at": {++ "type": "string",++ "format": "date-time"++ }++ }++ },++ "created_at": {++ "type": "string",++ "format": "date-time"++ },++ "updated_at": {++ "type": "string",++ "format": "date-time"++ },++ "pushed_at": {++ "type": [++ "string",++ "null"++ ],++ "format": "date-time"++ }++ }++ }++ },++ "git.commit": {++ "version": "1.0.0",++ "owner": "git",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/git/commit.v1.json",++ "title": "GitCommit",++ "description": "One commit on OpenVibe.Git: its sha, message, author and committer, parents, tree, and — for the commit page or a contents write — its diff and per-file counts. api/view/commit.",++ "type": "object",++ "required": [++ "sha",++ "repo",++ "message",++ "author",++ "committer",++ "parents",++ "tree_sha",++ "date"++ ],++ "additionalProperties": false,++ "properties": {++ "sha": {++ "type": "string",++ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$",++ "description": "The commit id: 40 hex characters (SHA-1) or 64 (SHA-256)."++ },++ "repo": {++ "type": "string",++ "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$"++ },++ "message": {++ "type": "string",++ "maxLength": 100000++ },++ "subject": {++ "type": "string",++ "maxLength": 500,++ "description": "The first line of the message."++ },++ "author": {++ "type": "object",++ "required": [++ "name",++ "email",++ "date"++ ],++ "additionalProperties": false,++ "properties": {++ "name": {++ "type": "string"++ },++ "email": {++ "type": "string"++ },++ "username": {++ "type": [++ "string",++ "null"++ ],++ "description": "The OpenVibe username when the email is a verified one."++ },++ "date": {++ "type": "string",++ "format": "date-time"++ }++ }++ },++ "committer": {++ "type": "object",++ "required": [++ "name",++ "email",++ "date"++ ],++ "additionalProperties": false,++ "properties": {++ "name": {++ "type": "string"++ },++ "email": {++ "type": "string"++ },++ "date": {++ "type": "string",++ "format": "date-time"++ }++ }++ },++ "parents": {++ "type": "array",++ "maxItems": 2,++ "items": {++ "type": "string",++ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$"++ }++ },++ "tree_sha": {++ "type": "string",++ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$"++ },++ "date": {++ "type": "string",++ "format": "date-time"++ },++ "stats": {++ "type": [++ "object",++ "null"++ ],++ "required": [++ "files",++ "additions",++ "deletions"++ ],++ "additionalProperties": false,++ "properties": {++ "files": {++ "type": "integer",++ "minimum": 0++ },++ "additions": {++ "type": "integer",++ "minimum": 0++ },++ "deletions": {++ "type": "integer",++ "minimum": 0++ }++ }++ },++ "files": {++ "type": "array",++ "description": "The changed files, when the caller asked for the diff.",++ "items": {++ "type": "object",++ "required": [++ "path",++ "status",++ "additions",++ "deletions"++ ],++ "additionalProperties": false,++ "properties": {++ "path": {++ "type": "string"++ },++ "previous_path": {++ "type": [++ "string",++ "null"++ ]++ },++ "status": {++ "enum": [++ "added",++ "modified",++ "deleted",++ "renamed",++ "copied"++ ]++ },++ "additions": {++ "type": "integer",++ "minimum": 0++ },++ "deletions": {++ "type": "integer",++ "minimum": 0++ },++ "patch": {++ "type": [++ "string",++ "null"++ ]++ }++ }++ }++ },++ "diff": {++ "type": [++ "string",++ "null"++ ],++ "description": "The unified diff, when the caller asked for it."++ }++ }++ }++ },++ "git.tree": {++ "version": "1.0.0",++ "owner": "git",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/git/tree.v1.json",++ "title": "GitTree",++ "description": "One directory of a repository at a ref: its entries with mode, size and the last commit that touched each. api/view/tree.",++ "type": "object",++ "required": [++ "repo",++ "ref",++ "path",++ "entries"++ ],++ "additionalProperties": false,++ "properties": {++ "repo": {++ "type": "string",++ "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$"++ },++ "ref": {++ "type": "string",++ "minLength": 1,++ "maxLength": 255,++ "description": "The branch, tag or commit the tree was read at."++ },++ "path": {++ "type": "string",++ "maxLength": 4096,++ "description": "The directory, empty at the repository root."++ },++ "entries": {++ "type": "array",++ "items": {++ "type": "object",++ "required": [++ "name",++ "path",++ "type",++ "mode",++ "sha"++ ],++ "additionalProperties": false,++ "properties": {++ "name": {++ "type": "string"++ },++ "path": {++ "type": "string"++ },++ "type": {++ "enum": [++ "blob",++ "tree",++ "commit"++ ]++ },++ "mode": {++ "type": "string",++ "pattern": "^[0-7]{6}$"++ },++ "sha": {++ "type": "string",++ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$"++ },++ "size": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0++ },++ "last_commit": {++ "type": [++ "object",++ "null"++ ],++ "required": [++ "sha",++ "message",++ "date",++ "author_name"++ ],++ "additionalProperties": false,++ "properties": {++ "sha": {++ "type": "string",++ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$"++ },++ "message": {++ "type": "string",++ "maxLength": 500++ },++ "date": {++ "type": "string",++ "format": "date-time"++ },++ "author_name": {++ "type": "string"++ }++ }++ }++ }++ }++ }++ }++ }++ },++ "git.insights": {++ "version": "1.0.0",++ "owner": "git",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/git/insights.v1.json",++ "title": "GitInsights",++ "description": "A repository's insights over a window: views, unique visitors, clones and stars per day, and commits per week. Public for a public repository, like GitHub's traffic but open. api/view/insights.",++ "type": "object",++ "required": [++ "repo",++ "window_days",++ "views",++ "unique_visitors",++ "clones",++ "stars",++ "commits_per_week",++ "daily"++ ],++ "additionalProperties": false,++ "properties": {++ "repo": {++ "type": "string",++ "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$"++ },++ "window_days": {++ "type": "integer",++ "minimum": 1,++ "maximum": 90++ },++ "views": {++ "type": "integer",++ "minimum": 0,++ "description": "Page views of the repository in the window."++ },++ "unique_visitors": {++ "type": "integer",++ "minimum": 0,++ "description": "Distinct visitors per day, summed over the window."++ },++ "clones": {++ "type": "integer",++ "minimum": 0,++ "description": "Successful git clones and fetches served in the window."++ },++ "stars": {++ "type": "object",++ "required": [++ "total",++ "in_window"++ ],++ "additionalProperties": false,++ "properties": {++ "total": {++ "type": "integer",++ "minimum": 0++ },++ "in_window": {++ "type": "integer",++ "minimum": 0++ }++ }++ },++ "commits_per_week": {++ "type": "array",++ "description": "The default branch's commits for each ISO week, oldest first.",++ "items": {++ "type": "object",++ "required": [++ "week",++ "commits"++ ],++ "additionalProperties": false,++ "properties": {++ "week": {++ "type": "string",++ "format": "date",++ "description": "The week's Monday, YYYY-MM-DD."++ },++ "commits": {++ "type": "integer",++ "minimum": 0++ }++ }++ }++ },++ "daily": {++ "type": "array",++ "description": "One row per day of the window, oldest first.",++ "items": {++ "type": "object",++ "required": [++ "day",++ "views",++ "unique_visitors",++ "clones",++ "stars"++ ],++ "additionalProperties": false,++ "properties": {++ "day": {++ "type": "string",++ "format": "date"++ },++ "views": {++ "type": "integer",++ "minimum": 0++ },++ "unique_visitors": {++ "type": "integer",++ "minimum": 0++ },++ "clones": {++ "type": "integer",++ "minimum": 0++ },++ "stars": {++ "type": "integer",++ "minimum": 0++ }++ }++ }++ }++ }++ }}}}@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Actor API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.AI API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Bench API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Billing API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Blog API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Bot API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Chat API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Codes API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Community API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe Connect API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Coupons API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Deals API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Design API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Domains API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Events API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Exchange API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Food API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Games API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Host API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Inventory API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Live API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Mail API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.MediaHub API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Media API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Network API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.News API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenRestream API",-- "version": "0.368.0",-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Play API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Quest API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Report API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Reviews API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Run API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Search API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Services API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Sources API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Space API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Tips API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Today API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Tools API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Trade API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.VIP API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Vision API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Watch API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Wiki API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Work API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Zone API",-- "version": "0.368.0",-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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"@@@ -322037,3 +322037,341 @@ export interface InventoryStoreListing {};status: "in_review" | "published" | "rejected";}++++/** [email protected] (owner: git) */++/**++ * One repository on OpenVibe.Git (git.openvibe.codes): its owner, visibility, default branch, counts, and — when it has one — its GitHub mirror and the cached GitHub card. api/view/repo.++ */++export interface GitRepository {++ /**++ * The repository's own id (repo_<ULID>), stable across a rename.++ */++ id: string;++ owner: {++ /**++ * The OpenVibe username that owns it, lower-case.++ */++ username: string;++ /**++ * The owner's Network subject; absent when the owner is the organisation account.++ */++ subject?: string | null;++ display_name?: string | null;++ avatar_url?: string | null;++ };++ /**++ * The repository name; lower-case, and never ending in .git.++ */++ name: string;++ /**++ * <owner>/<name>, the name every API path and clone URL uses.++ */++ full_name: string;++ description: string;++ visibility: "public" | "private";++ default_branch: string;++ /**++ * @maxItems 20++ */++ topics:++ | []++ | [string]++ | [string, string]++ | [string, string, string]++ | [string, string, string, string]++ | [string, string, string, string, string]++ | [string, string, string, string, string, string]++ | [string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string, string, string, string]++ | [string, string, string, string, string, string, string, string, string, string, string, string, string, string]++ | [++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string++ ]++ | [++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string++ ]++ | [++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string++ ]++ | [++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string++ ]++ | [++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string++ ]++ | [++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string,++ string++ ];++ stars: number;++ watchers: number;++ forks: number;++ language: string | null;++ /**++ * Language name → share of bytes, 0–100, the largest first.++ */++ languages?: {++ [k: string]: number | undefined;++ };++ html_url: string;++ clone_url: string;++ /**++ * A git repository mirrored from somewhere (today: a public GitHub URL).++ */++ mirror?: {++ url: string;++ state: "ready" | "syncing" | "error";++ last_synced_at: string | null;++ error: string | null;++ } | null;++ /**++ * The GitHub card: cached GitHub API readings for the repository's twin.++ */++ github?: {++ full_name: string;++ html_url: string;++ stars: number;++ open_issues: number;++ open_pull_requests: number;++ ci_state: "success" | "failure" | "pending" | "unknown";++ fetched_at: string;++ } | null;++ created_at: string;++ updated_at: string;++ pushed_at?: string | null;++}++++/** [email protected] (owner: git) */++/**++ * One commit on OpenVibe.Git: its sha, message, author and committer, parents, tree, and — for the commit page or a contents write — its diff and per-file counts. api/view/commit.++ */++export interface GitCommit {++ /**++ * The commit id: 40 hex characters (SHA-1) or 64 (SHA-256).++ */++ sha: string;++ repo: string;++ message: string;++ /**++ * The first line of the message.++ */++ subject?: string;++ author: {++ name: string;++ email: string;++ /**++ * The OpenVibe username when the email is a verified one.++ */++ username?: string | null;++ date: string;++ };++ committer: {++ name: string;++ email: string;++ date: string;++ };++ /**++ * @maxItems 2++ */++ parents: [] | [string] | [string, string];++ tree_sha: string;++ date: string;++ stats?: {++ files: number;++ additions: number;++ deletions: number;++ } | null;++ /**++ * The changed files, when the caller asked for the diff.++ */++ files?: {++ path: string;++ previous_path?: string | null;++ status: "added" | "modified" | "deleted" | "renamed" | "copied";++ additions: number;++ deletions: number;++ patch?: string | null;++ }[];++ /**++ * The unified diff, when the caller asked for it.++ */++ diff?: string | null;++}++++/** [email protected] (owner: git) */++/**++ * One directory of a repository at a ref: its entries with mode, size and the last commit that touched each. api/view/tree.++ */++export interface GitTree {++ repo: string;++ /**++ * The branch, tag or commit the tree was read at.++ */++ ref: string;++ /**++ * The directory, empty at the repository root.++ */++ path: string;++ entries: {++ name: string;++ path: string;++ type: "blob" | "tree" | "commit";++ mode: string;++ sha: string;++ size?: number | null;++ last_commit?: {++ sha: string;++ message: string;++ date: string;++ author_name: string;++ } | null;++ }[];++}++++/** [email protected] (owner: git) */++/**++ * A repository's insights over a window: views, unique visitors, clones and stars per day, and commits per week. Public for a public repository, like GitHub's traffic but open. api/view/insights.++ */++export interface GitInsights {++ repo: string;++ window_days: number;++ /**++ * Page views of the repository in the window.++ */++ views: number;++ /**++ * Distinct visitors per day, summed over the window.++ */++ unique_visitors: number;++ /**++ * Successful git clones and fetches served in the window.++ */++ clones: number;++ stars: {++ total: number;++ in_window: number;++ };++ /**++ * The default branch's commits for each ISO week, oldest first.++ */++ commits_per_week: {++ /**++ * The week's Monday, YYYY-MM-DD.++ */++ week: string;++ commits: number;++ }[];++ /**++ * One row per day of the window, oldest first.++ */++ daily: {++ day: string;++ views: number;++ unique_visitors: number;++ clones: number;++ stars: number;++ }[];++}@@@ -1,12 +1,12 @@{"name": "openvibe-contracts",-- "version": "0.368.0",++ "version": "0.369.0","lockfileVersion": 3,"requires": true,"packages": {"": {"name": "openvibe-contracts",-- "version": "0.368.0",++ "version": "0.369.0","license": "AGPL-3.0-only","dependencies": {"ajv": "^8.17.1",@@@ -1,6 +1,6 @@{"name": "openvibe-contracts",-- "version": "0.368.0",++ "version": "0.369.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",
@@ -1,5 +1,9 @@
@@ -1,5 +1,9 @@
# Changelog
# Changelog
+## 0.369.0 — 2026-11-09
+
+- OpenVibe Git: git.repo@1, git.commit@1, git.tree@1 and git.insights@1
+
## 0.368.0 — 2026-11-09
## 0.368.0 — 2026-11-09
- The wallet and the reviewed store: billing.wallet@1, inventory.store@1, inventory.store-listing@1, inventory.purchase@1
- The wallet and the reviewed store: billing.wallet@1, inventory.store@1, inventory.store-listing@1, inventory.purchase@1
@@ -10722,6 +10722,42 @@
@@ -10722,6 +10722,42 @@
"visibility": "public",
"visibility": "public",
"compatibility": "backward",
"compatibility": "backward",
"status": "active"
"status": "active"
+ },
+ {
+ "id": "git.repo",
+ "version": "1.0.0",
+ "owner": "git",
+ "schema": "git/repo.v1.json",
+ "visibility": "public",
+ "compatibility": "backward",
+ "status": "active"
+ },
+ {
+ "id": "git.commit",
+ "version": "1.0.0",
+ "owner": "git",
+ "schema": "git/commit.v1.json",
+ "visibility": "public",
+ "compatibility": "backward",
+ "status": "active"
+ },
+ {
+ "id": "git.tree",
+ "version": "1.0.0",
+ "owner": "git",
+ "schema": "git/tree.v1.json",
+ "visibility": "public",
+ "compatibility": "backward",
+ "status": "active"
+ },
+ {
+ "id": "git.insights",
+ "version": "1.0.0",
+ "owner": "git",
+ "schema": "git/insights.v1.json",
+ "visibility": "public",
+ "compatibility": "backward",
+ "status": "active"
}
}
]
]
}
}
new file mode 100644
new file mode 100644
@@ -0,0 +1,75 @@
@@ -0,0 +1,75 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/git/commit.v1.json",
+ "title": "GitCommit",
+ "description": "One commit on OpenVibe.Git: its sha, message, author and committer, parents, tree, and — for the commit page or a contents write — its diff and per-file counts. api/view/commit.",
+ "type": "object",
+ "required": ["sha", "repo", "message", "author", "committer", "parents", "tree_sha", "date"],
+ "additionalProperties": false,
+ "properties": {
+ "sha": {
+ "type": "string",
+ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$",
+ "description": "The commit id: 40 hex characters (SHA-1) or 64 (SHA-256)."
+ },
+ "repo": { "type": "string", "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$" },
+ "message": { "type": "string", "maxLength": 100000 },
+ "subject": { "type": "string", "maxLength": 500, "description": "The first line of the message." },
+ "author": {
+ "type": "object",
+ "required": ["name", "email", "date"],
+ "additionalProperties": false,
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "username": { "type": ["string", "null"], "description": "The OpenVibe username when the email is a verified one." },
+ "date": { "type": "string", "format": "date-time" }
+ }
+ },
+ "committer": {
+ "type": "object",
+ "required": ["name", "email", "date"],
+ "additionalProperties": false,
+ "properties": {
+ "name": { "type": "string" },
+ "email": { "type": "string" },
+ "date": { "type": "string", "format": "date-time" }
+ }
+ },
+ "parents": {
+ "type": "array",
+ "maxItems": 2,
+ "items": { "type": "string", "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$" }
+ },
+ "tree_sha": { "type": "string", "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$" },
+ "date": { "type": "string", "format": "date-time" },
+ "stats": {
+ "type": ["object", "null"],
+ "required": ["files", "additions", "deletions"],
+ "additionalProperties": false,
+ "properties": {
+ "files": { "type": "integer", "minimum": 0 },
+ "additions": { "type": "integer", "minimum": 0 },
+ "deletions": { "type": "integer", "minimum": 0 }
+ }
+ },
+ "files": {
+ "type": "array",
+ "description": "The changed files, when the caller asked for the diff.",
+ "items": {
+ "type": "object",
+ "required": ["path", "status", "additions", "deletions"],
+ "additionalProperties": false,
+ "properties": {
+ "path": { "type": "string" },
+ "previous_path": { "type": ["string", "null"] },
+ "status": { "enum": ["added", "modified", "deleted", "renamed", "copied"] },
+ "additions": { "type": "integer", "minimum": 0 },
+ "deletions": { "type": "integer", "minimum": 0 },
+ "patch": { "type": ["string", "null"] }
+ }
+ }
+ },
+ "diff": { "type": ["string", "null"], "description": "The unified diff, when the caller asked for it." }
+ }
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,54 @@
@@ -0,0 +1,54 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/git/insights.v1.json",
+ "title": "GitInsights",
+ "description": "A repository's insights over a window: views, unique visitors, clones and stars per day, and commits per week. Public for a public repository, like GitHub's traffic but open. api/view/insights.",
+ "type": "object",
+ "required": ["repo", "window_days", "views", "unique_visitors", "clones", "stars", "commits_per_week", "daily"],
+ "additionalProperties": false,
+ "properties": {
+ "repo": { "type": "string", "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$" },
+ "window_days": { "type": "integer", "minimum": 1, "maximum": 90 },
+ "views": { "type": "integer", "minimum": 0, "description": "Page views of the repository in the window." },
+ "unique_visitors": { "type": "integer", "minimum": 0, "description": "Distinct visitors per day, summed over the window." },
+ "clones": { "type": "integer", "minimum": 0, "description": "Successful git clones and fetches served in the window." },
+ "stars": {
+ "type": "object",
+ "required": ["total", "in_window"],
+ "additionalProperties": false,
+ "properties": {
+ "total": { "type": "integer", "minimum": 0 },
+ "in_window": { "type": "integer", "minimum": 0 }
+ }
+ },
+ "commits_per_week": {
+ "type": "array",
+ "description": "The default branch's commits for each ISO week, oldest first.",
+ "items": {
+ "type": "object",
+ "required": ["week", "commits"],
+ "additionalProperties": false,
+ "properties": {
+ "week": { "type": "string", "format": "date", "description": "The week's Monday, YYYY-MM-DD." },
+ "commits": { "type": "integer", "minimum": 0 }
+ }
+ }
+ },
+ "daily": {
+ "type": "array",
+ "description": "One row per day of the window, oldest first.",
+ "items": {
+ "type": "object",
+ "required": ["day", "views", "unique_visitors", "clones", "stars"],
+ "additionalProperties": false,
+ "properties": {
+ "day": { "type": "string", "format": "date" },
+ "views": { "type": "integer", "minimum": 0 },
+ "unique_visitors": { "type": "integer", "minimum": 0 },
+ "clones": { "type": "integer", "minimum": 0 },
+ "stars": { "type": "integer", "minimum": 0 }
+ }
+ }
+ }
+ }
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,111 @@
@@ -0,0 +1,111 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/git/repo.v1.json",
+ "title": "GitRepository",
+ "description": "One repository on OpenVibe.Git (git.openvibe.codes): its owner, visibility, default branch, counts, and — when it has one — its GitHub mirror and the cached GitHub card. api/view/repo.",
+ "type": "object",
+ "required": [
+ "id",
+ "owner",
+ "name",
+ "full_name",
+ "description",
+ "visibility",
+ "default_branch",
+ "topics",
+ "stars",
+ "watchers",
+ "forks",
+ "language",
+ "html_url",
+ "clone_url",
+ "created_at",
+ "updated_at"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^repo_[0-9A-HJKMNP-TV-Z]{26}$",
+ "description": "The repository's own id (repo_<ULID>), stable across a rename."
+ },
+ "owner": {
+ "type": "object",
+ "required": ["username"],
+ "additionalProperties": false,
+ "properties": {
+ "username": {
+ "type": "string",
+ "pattern": "^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}$",
+ "description": "The OpenVibe username that owns it, lower-case."
+ },
+ "subject": {
+ "type": ["string", "null"],
+ "pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$",
+ "description": "The owner's Network subject; absent when the owner is the organisation account."
+ },
+ "display_name": { "type": ["string", "null"] },
+ "avatar_url": { "type": ["string", "null"], "format": "uri" }
+ }
+ },
+ "name": {
+ "type": "string",
+ "pattern": "^(?!.*\\.git$)[a-z0-9][a-z0-9._-]{0,99}$",
+ "description": "The repository name; lower-case, and never ending in .git."
+ },
+ "full_name": {
+ "type": "string",
+ "pattern": "^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}/(?!.*\\.git$)[a-z0-9][a-z0-9._-]{0,99}$",
+ "description": "<owner>/<name>, the name every API path and clone URL uses."
+ },
+ "description": { "type": "string", "maxLength": 500 },
+ "visibility": { "enum": ["public", "private"] },
+ "default_branch": { "type": "string", "minLength": 1, "maxLength": 255 },
+ "topics": {
+ "type": "array",
+ "maxItems": 20,
+ "items": { "type": "string", "pattern": "^[a-z0-9][a-z0-9-]{0,34}$" }
+ },
+ "stars": { "type": "integer", "minimum": 0 },
+ "watchers": { "type": "integer", "minimum": 0 },
+ "forks": { "type": "integer", "minimum": 0 },
+ "language": { "type": ["string", "null"] },
+ "languages": {
+ "type": "object",
+ "description": "Language name → share of bytes, 0–100, the largest first.",
+ "additionalProperties": { "type": "number", "minimum": 0, "maximum": 100 }
+ },
+ "html_url": { "type": "string", "format": "uri" },
+ "clone_url": { "type": "string", "format": "uri" },
+ "mirror": {
+ "type": ["object", "null"],
+ "description": "A git repository mirrored from somewhere (today: a public GitHub URL).",
+ "required": ["url", "state", "last_synced_at", "error"],
+ "additionalProperties": false,
+ "properties": {
+ "url": { "type": "string", "format": "uri" },
+ "state": { "enum": ["ready", "syncing", "error"] },
+ "last_synced_at": { "type": ["string", "null"], "format": "date-time" },
+ "error": { "type": ["string", "null"], "maxLength": 500 }
+ }
+ },
+ "github": {
+ "type": ["object", "null"],
+ "description": "The GitHub card: cached GitHub API readings for the repository's twin.",
+ "required": ["full_name", "html_url", "stars", "open_issues", "open_pull_requests", "ci_state", "fetched_at"],
+ "additionalProperties": false,
+ "properties": {
+ "full_name": { "type": "string" },
+ "html_url": { "type": "string", "format": "uri" },
+ "stars": { "type": "integer", "minimum": 0 },
+ "open_issues": { "type": "integer", "minimum": 0 },
+ "open_pull_requests": { "type": "integer", "minimum": 0 },
+ "ci_state": { "enum": ["success", "failure", "pending", "unknown"] },
+ "fetched_at": { "type": "string", "format": "date-time" }
+ }
+ },
+ "created_at": { "type": "string", "format": "date-time" },
+ "updated_at": { "type": "string", "format": "date-time" },
+ "pushed_at": { "type": ["string", "null"], "format": "date-time" }
+ }
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,41 @@
@@ -0,0 +1,41 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/git/tree.v1.json",
+ "title": "GitTree",
+ "description": "One directory of a repository at a ref: its entries with mode, size and the last commit that touched each. api/view/tree.",
+ "type": "object",
+ "required": ["repo", "ref", "path", "entries"],
+ "additionalProperties": false,
+ "properties": {
+ "repo": { "type": "string", "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$" },
+ "ref": { "type": "string", "minLength": 1, "maxLength": 255, "description": "The branch, tag or commit the tree was read at." },
+ "path": { "type": "string", "maxLength": 4096, "description": "The directory, empty at the repository root." },
+ "entries": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["name", "path", "type", "mode", "sha"],
+ "additionalProperties": false,
+ "properties": {
+ "name": { "type": "string" },
+ "path": { "type": "string" },
+ "type": { "enum": ["blob", "tree", "commit"] },
+ "mode": { "type": "string", "pattern": "^[0-7]{6}$" },
+ "sha": { "type": "string", "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$" },
+ "size": { "type": ["integer", "null"], "minimum": 0 },
+ "last_commit": {
+ "type": ["object", "null"],
+ "required": ["sha", "message", "date", "author_name"],
+ "additionalProperties": false,
+ "properties": {
+ "sha": { "type": "string", "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$" },
+ "message": { "type": "string", "maxLength": 500 },
+ "date": { "type": "string", "format": "date-time" },
+ "author_name": { "type": "string" }
+ }
+ }
+ }
+ }
+ }
+ }
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
+{
+ "sha": "4f0c2d9a1e8b7c6d5a4f3e2d1c0b9a8f7e6d5c4b",
+ "repo": "openviber",
+ "message": "not a repo name",
+ "author": { "name": "", "email": "[email protected]", "date": "yesterday" },
+ "committer": { "name": "Sam", "email": "[email protected]", "date": "2026-11-09T08:40:00Z" },
+ "parents": [],
+ "tree_sha": "xyz",
+ "date": "2026-11-09T08:40:00Z"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
+{
+ "sha": "4f0c2d9a1e8b7c6d5a4f3e2d1c0b9a8f7e6d5c4b",
+ "repo": "openvibers/openvibe.codes",
+ "message": "Open the desk from a phone\n\nA narrow layout and a bigger tap target.",
+ "subject": "Open the desk from a phone",
+ "author": { "name": "Sam", "email": "[email protected]", "username": "sam", "date": "2026-11-09T08:40:00Z" },
+ "committer": { "name": "Sam", "email": "[email protected]", "date": "2026-11-09T08:40:00Z" },
+ "parents": ["a1b2c3d4e5f60718293a4b5c6d7e8f9012345678"],
+ "tree_sha": "b2c3d4e5f60718293a4b5c6d7e8f901234567890",
+ "date": "2026-11-09T08:40:00Z",
+ "stats": { "files": 2, "additions": 34, "deletions": 6 },
+ "files": [
+ { "path": "public/css/codes.css", "previous_path": null, "status": "modified", "additions": 30, "deletions": 6, "patch": "@@ -12,3 +12,27 @@\n .desk { display: grid; }\n" },
+ { "path": "test/phone.test.js", "previous_path": null, "status": "added", "additions": 4, "deletions": 0, "patch": null }
+ ],
+ "diff": "diff --git a/public/css/codes.css b/public/css/codes.css\n"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
+{
+ "repo": "openvibers/openvibe.codes",
+ "window_days": 400,
+ "views": -1,
+ "unique_visitors": 0,
+ "clones": 0,
+ "stars": { "total": 0, "in_window": 0 },
+ "commits_per_week": [],
+ "daily": [{ "day": "2026-11-09", "views": 0, "unique_visitors": 0, "clones": 0, "stars": 0, "bots": 1 }]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
+{
+ "repo": "openvibers/openvibe.codes",
+ "window_days": 30,
+ "views": 2841,
+ "unique_visitors": 412,
+ "clones": 190,
+ "stars": { "total": 12, "in_window": 3 },
+ "commits_per_week": [
+ { "week": "2026-10-19", "commits": 18 },
+ { "week": "2026-10-26", "commits": 27 },
+ { "week": "2026-11-02", "commits": 31 }
+ ],
+ "daily": [
+ { "day": "2026-11-08", "views": 121, "unique_visitors": 18, "clones": 9, "stars": 1 },
+ { "day": "2026-11-09", "views": 96, "unique_visitors": 14, "clones": 7, "stars": 0 }
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
+{
+ "id": "repo_01JQZ8M4T7Y2N5K3B6V9C1X0DA",
+ "owner": { "username": "openvibers" },
+ "name": "openvibe.codes.git",
+ "full_name": "openvibers/openvibe.codes.git",
+ "description": "A name ending in .git is refused.",
+ "visibility": "public",
+ "default_branch": "main",
+ "topics": [],
+ "stars": 0,
+ "watchers": 1,
+ "forks": 0,
+ "language": null,
+ "html_url": "https://git.openvibe.codes/openvibers/openvibe.codes.git",
+ "clone_url": "https://git.openvibe.codes/openvibers/openvibe.codes.git.git",
+ "created_at": "2026-11-09T09:00:00Z",
+ "updated_at": "2026-11-09T09:00:00Z"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
+{
+ "id": "repo_01JQZ8M4T7Y2N5K3B6V9C1X0DA",
+ "owner": { "username": "openvibers" },
+ "name": "openvibe.codes",
+ "full_name": "openvibers/openvibe.codes",
+ "description": "",
+ "visibility": "secret",
+ "default_branch": "main",
+ "topics": [],
+ "stars": -1,
+ "watchers": 0,
+ "forks": 0,
+ "language": null,
+ "html_url": "https://git.openvibe.codes/openvibers/openvibe.codes",
+ "clone_url": "https://git.openvibe.codes/openvibers/openvibe.codes.git",
+ "created_at": "2026-11-09T09:00:00Z",
+ "updated_at": "2026-11-09T09:00:00Z"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
+{
+ "id": "repo_01JQZ8M4T7Y2N5K3B6V9C1X0DA",
+ "owner": { "username": "openvibers", "subject": "usr_01JQZ8M4T7Y2N5K3B6V9C1X0DB", "display_name": "OpenVibers", "avatar_url": "https://openvibe.media/o/med_01JQZ8M4T7Y2N5K3B6V9C1X0DC" },
+ "name": "openvibe.codes",
+ "full_name": "openvibers/openvibe.codes",
+ "description": "Chat with coding agents on your own computers or a cloud desk.",
+ "visibility": "public",
+ "default_branch": "main",
+ "topics": ["agents", "codes"],
+ "stars": 12,
+ "watchers": 4,
+ "forks": 1,
+ "language": "JavaScript",
+ "languages": { "JavaScript": 72.4, "CSS": 19.1, "Shell": 8.5 },
+ "html_url": "https://git.openvibe.codes/openvibers/openvibe.codes",
+ "clone_url": "https://git.openvibe.codes/openvibers/openvibe.codes.git",
+ "mirror": { "url": "https://github.com/OpenVibers/OpenVibe.Codes.git", "state": "ready", "last_synced_at": "2026-11-09T08:47:55Z", "error": null },
+ "github": { "full_name": "OpenVibers/OpenVibe.Codes", "html_url": "https://github.com/OpenVibers/OpenVibe.Codes", "stars": 42, "open_issues": 3, "open_pull_requests": 2, "ci_state": "success", "fetched_at": "2026-11-09T09:00:00Z" },
+ "created_at": "2026-10-15T19:43:04Z",
+ "updated_at": "2026-11-09T08:47:55Z",
+ "pushed_at": "2026-11-09T08:40:00Z"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,22 @@
@@ -0,0 +1,22 @@
+{
+ "id": "repo_01JQZ8M4T7Y2N5K3B6V9C1X0DA",
+ "owner": { "username": "openvibers", "subject": null, "display_name": null, "avatar_url": null },
+ "name": "private-notes",
+ "full_name": "openvibers/private-notes",
+ "description": "",
+ "visibility": "private",
+ "default_branch": "main",
+ "topics": [],
+ "stars": 0,
+ "watchers": 1,
+ "forks": 0,
+ "language": null,
+ "languages": {},
+ "html_url": "https://git.openvibe.codes/openvibers/private-notes",
+ "clone_url": "https://git.openvibe.codes/openvibers/private-notes.git",
+ "mirror": null,
+ "github": null,
+ "created_at": "2026-11-09T09:00:00Z",
+ "updated_at": "2026-11-09T09:00:00Z",
+ "pushed_at": null
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
+{
+ "repo": "openvibers/openvibe.codes",
+ "ref": "main",
+ "path": "",
+ "entries": [
+ { "name": "server", "path": "server", "type": "directory", "mode": "040000", "sha": "c3d4e5f60718293a4b5c6d7e8f90123456789012", "size": -2, "last_commit": null }
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
+{
+ "repo": "openvibers/openvibe.codes",
+ "ref": "main",
+ "path": "",
+ "entries": [
+ { "name": "server", "path": "server", "type": "tree", "mode": "040000", "sha": "c3d4e5f60718293a4b5c6d7e8f90123456789012", "size": null, "last_commit": { "sha": "4f0c2d9a1e8b7c6d5a4f3e2d1c0b9a8f7e6d5c4b", "message": "Open the desk from a phone", "date": "2026-11-09T08:40:00Z", "author_name": "Sam" } },
+ { "name": "README.md", "path": "README.md", "type": "blob", "mode": "100644", "sha": "d4e5f60718293a4b5c6d7e8f9012345678901234", "size": 1421, "last_commit": null }
+ ]
+}
@@ -117766,6 +117766,679 @@
@@ -117766,6 +117766,679 @@
"status"
"status"
]
]
}
}
+ },
+ "git.repo": {
+ "version": "1.0.0",
+ "owner": "git",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/git/repo.v1.json",
+ "title": "GitRepository",
+ "description": "One repository on OpenVibe.Git (git.openvibe.codes): its owner, visibility, default branch, counts, and — when it has one — its GitHub mirror and the cached GitHub card. api/view/repo.",
+ "type": "object",
+ "required": [
+ "id",
+ "owner",
+ "name",
+ "full_name",
+ "description",
+ "visibility",
+ "default_branch",
+ "topics",
+ "stars",
+ "watchers",
+ "forks",
+ "language",
+ "html_url",
+ "clone_url",
+ "created_at",
+ "updated_at"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^repo_[0-9A-HJKMNP-TV-Z]{26}$",
+ "description": "The repository's own id (repo_<ULID>), stable across a rename."
+ },
+ "owner": {
+ "type": "object",
+ "required": [
+ "username"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "username": {
+ "type": "string",
+ "pattern": "^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}$",
+ "description": "The OpenVibe username that owns it, lower-case."
+ },
+ "subject": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^usr_[0-9A-HJKMNP-TV-Z]{26}$",
+ "description": "The owner's Network subject; absent when the owner is the organisation account."
+ },
+ "display_name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "avatar_url": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "uri"
+ }
+ }
+ },
+ "name": {
+ "type": "string",
+ "pattern": "^(?!.*\\.git$)[a-z0-9][a-z0-9._-]{0,99}$",
+ "description": "The repository name; lower-case, and never ending in .git."
+ },
+ "full_name": {
+ "type": "string",
+ "pattern": "^[a-z0-9](?:[a-z0-9]|-(?=[a-z0-9])){0,38}/(?!.*\\.git$)[a-z0-9][a-z0-9._-]{0,99}$",
+ "description": "<owner>/<name>, the name every API path and clone URL uses."
+ },
+ "description": {
+ "type": "string",
+ "maxLength": 500
+ },
+ "visibility": {
+ "enum": [
+ "public",
+ "private"
+ ]
+ },
+ "default_branch": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 255
+ },
+ "topics": {
+ "type": "array",
+ "maxItems": 20,
+ "items": {
+ "type": "string",
+ "pattern": "^[a-z0-9][a-z0-9-]{0,34}$"
+ }
+ },
+ "stars": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "watchers": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "forks": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "language": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "languages": {
+ "type": "object",
+ "description": "Language name → share of bytes, 0–100, the largest first.",
+ "additionalProperties": {
+ "type": "number",
+ "minimum": 0,
+ "maximum": 100
+ }
+ },
+ "html_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "clone_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "mirror": {
+ "type": [
+ "object",
+ "null"
+ ],
+ "description": "A git repository mirrored from somewhere (today: a public GitHub URL).",
+ "required": [
+ "url",
+ "state",
+ "last_synced_at",
+ "error"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "state": {
+ "enum": [
+ "ready",
+ "syncing",
+ "error"
+ ]
+ },
+ "last_synced_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ },
+ "error": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "maxLength": 500
+ }
+ }
+ },
+ "github": {
+ "type": [
+ "object",
+ "null"
+ ],
+ "description": "The GitHub card: cached GitHub API readings for the repository's twin.",
+ "required": [
+ "full_name",
+ "html_url",
+ "stars",
+ "open_issues",
+ "open_pull_requests",
+ "ci_state",
+ "fetched_at"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "full_name": {
+ "type": "string"
+ },
+ "html_url": {
+ "type": "string",
+ "format": "uri"
+ },
+ "stars": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "open_issues": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "open_pull_requests": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "ci_state": {
+ "enum": [
+ "success",
+ "failure",
+ "pending",
+ "unknown"
+ ]
+ },
+ "fetched_at": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "pushed_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "format": "date-time"
+ }
+ }
+ }
+ },
+ "git.commit": {
+ "version": "1.0.0",
+ "owner": "git",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/git/commit.v1.json",
+ "title": "GitCommit",
+ "description": "One commit on OpenVibe.Git: its sha, message, author and committer, parents, tree, and — for the commit page or a contents write — its diff and per-file counts. api/view/commit.",
+ "type": "object",
+ "required": [
+ "sha",
+ "repo",
+ "message",
+ "author",
+ "committer",
+ "parents",
+ "tree_sha",
+ "date"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "sha": {
+ "type": "string",
+ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$",
+ "description": "The commit id: 40 hex characters (SHA-1) or 64 (SHA-256)."
+ },
+ "repo": {
+ "type": "string",
+ "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$"
+ },
+ "message": {
+ "type": "string",
+ "maxLength": 100000
+ },
+ "subject": {
+ "type": "string",
+ "maxLength": 500,
+ "description": "The first line of the message."
+ },
+ "author": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "date"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "username": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "The OpenVibe username when the email is a verified one."
+ },
+ "date": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "committer": {
+ "type": "object",
+ "required": [
+ "name",
+ "email",
+ "date"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "email": {
+ "type": "string"
+ },
+ "date": {
+ "type": "string",
+ "format": "date-time"
+ }
+ }
+ },
+ "parents": {
+ "type": "array",
+ "maxItems": 2,
+ "items": {
+ "type": "string",
+ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$"
+ }
+ },
+ "tree_sha": {
+ "type": "string",
+ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$"
+ },
+ "date": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "stats": {
+ "type": [
+ "object",
+ "null"
+ ],
+ "required": [
+ "files",
+ "additions",
+ "deletions"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "files": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "additions": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "deletions": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ },
+ "files": {
+ "type": "array",
+ "description": "The changed files, when the caller asked for the diff.",
+ "items": {
+ "type": "object",
+ "required": [
+ "path",
+ "status",
+ "additions",
+ "deletions"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "path": {
+ "type": "string"
+ },
+ "previous_path": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "enum": [
+ "added",
+ "modified",
+ "deleted",
+ "renamed",
+ "copied"
+ ]
+ },
+ "additions": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "deletions": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "patch": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ }
+ }
+ },
+ "diff": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "description": "The unified diff, when the caller asked for it."
+ }
+ }
+ }
+ },
+ "git.tree": {
+ "version": "1.0.0",
+ "owner": "git",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/git/tree.v1.json",
+ "title": "GitTree",
+ "description": "One directory of a repository at a ref: its entries with mode, size and the last commit that touched each. api/view/tree.",
+ "type": "object",
+ "required": [
+ "repo",
+ "ref",
+ "path",
+ "entries"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "repo": {
+ "type": "string",
+ "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$"
+ },
+ "ref": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 255,
+ "description": "The branch, tag or commit the tree was read at."
+ },
+ "path": {
+ "type": "string",
+ "maxLength": 4096,
+ "description": "The directory, empty at the repository root."
+ },
+ "entries": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "name",
+ "path",
+ "type",
+ "mode",
+ "sha"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "blob",
+ "tree",
+ "commit"
+ ]
+ },
+ "mode": {
+ "type": "string",
+ "pattern": "^[0-7]{6}$"
+ },
+ "sha": {
+ "type": "string",
+ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$"
+ },
+ "size": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0
+ },
+ "last_commit": {
+ "type": [
+ "object",
+ "null"
+ ],
+ "required": [
+ "sha",
+ "message",
+ "date",
+ "author_name"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "sha": {
+ "type": "string",
+ "pattern": "^[0-9a-f]{40}([0-9a-f]{24})?$"
+ },
+ "message": {
+ "type": "string",
+ "maxLength": 500
+ },
+ "date": {
+ "type": "string",
+ "format": "date-time"
+ },
+ "author_name": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "git.insights": {
+ "version": "1.0.0",
+ "owner": "git",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/git/insights.v1.json",
+ "title": "GitInsights",
+ "description": "A repository's insights over a window: views, unique visitors, clones and stars per day, and commits per week. Public for a public repository, like GitHub's traffic but open. api/view/insights.",
+ "type": "object",
+ "required": [
+ "repo",
+ "window_days",
+ "views",
+ "unique_visitors",
+ "clones",
+ "stars",
+ "commits_per_week",
+ "daily"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "repo": {
+ "type": "string",
+ "pattern": "^[a-z0-9-]+/[a-z0-9][a-z0-9._-]{0,99}$"
+ },
+ "window_days": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 90
+ },
+ "views": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "Page views of the repository in the window."
+ },
+ "unique_visitors": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "Distinct visitors per day, summed over the window."
+ },
+ "clones": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "Successful git clones and fetches served in the window."
+ },
+ "stars": {
+ "type": "object",
+ "required": [
+ "total",
+ "in_window"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "total": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "in_window": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ },
+ "commits_per_week": {
+ "type": "array",
+ "description": "The default branch's commits for each ISO week, oldest first.",
+ "items": {
+ "type": "object",
+ "required": [
+ "week",
+ "commits"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "week": {
+ "type": "string",
+ "format": "date",
+ "description": "The week's Monday, YYYY-MM-DD."
+ },
+ "commits": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ }
+ },
+ "daily": {
+ "type": "array",
+ "description": "One row per day of the window, oldest first.",
+ "items": {
+ "type": "object",
+ "required": [
+ "day",
+ "views",
+ "unique_visitors",
+ "clones",
+ "stars"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "day": {
+ "type": "string",
+ "format": "date"
+ },
+ "views": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "unique_visitors": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "clones": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "stars": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ }
+ }
+ }
+ }
}
}
}
}
}
}
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Actor API",
"title": "OpenVibe.Actor API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.AI API",
"title": "OpenVibe.AI API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Bench API",
"title": "OpenVibe.Bench API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Billing API",
"title": "OpenVibe.Billing API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Blog API",
"title": "OpenVibe.Blog API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Bot API",
"title": "OpenVibe.Bot API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Chat API",
"title": "OpenVibe.Chat API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Codes API",
"title": "OpenVibe.Codes API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Community API",
"title": "OpenVibe.Community API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe Connect API",
"title": "OpenVibe Connect API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe Connect as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Coupons API",
"title": "OpenVibe.Coupons API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Deals API",
"title": "OpenVibe.Deals API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Design API",
"title": "OpenVibe.Design API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Design as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Domains API",
"title": "OpenVibe.Domains API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Events API",
"title": "OpenVibe.Events API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Exchange API",
"title": "OpenVibe.Exchange API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Exchange as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Food API",
"title": "OpenVibe.Food API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Games API",
"title": "OpenVibe.Games API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Host API",
"title": "OpenVibe.Host API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Inventory API",
"title": "OpenVibe.Inventory API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Live API",
"title": "OpenVibe.Live API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Mail API",
"title": "OpenVibe.Mail API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Mail as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.MediaHub API",
"title": "OpenVibe.MediaHub API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Media API",
"title": "OpenVibe.Media API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Network API",
"title": "OpenVibe.Network API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.News API",
"title": "OpenVibe.News API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenRestream API",
"title": "OpenRestream API",
- "version": "0.368.0",
- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Play API",
"title": "OpenVibe.Play API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Quest API",
"title": "OpenVibe.Quest API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Report API",
"title": "OpenVibe.Report API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Reviews API",
"title": "OpenVibe.Reviews API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Run API",
"title": "OpenVibe.Run API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Search API",
"title": "OpenVibe.Search API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Services API",
"title": "OpenVibe.Services API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Sources API",
"title": "OpenVibe.Sources API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Space API",
"title": "OpenVibe.Space API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Tips API",
"title": "OpenVibe.Tips API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Today API",
"title": "OpenVibe.Today API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Today as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Tools API",
"title": "OpenVibe.Tools API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Trade API",
"title": "OpenVibe.Trade API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.VIP API",
"title": "OpenVibe.VIP API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Vision API",
"title": "OpenVibe.Vision API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Watch API",
"title": "OpenVibe.Watch API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Wiki API",
"title": "OpenVibe.Wiki API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Work API",
"title": "OpenVibe.Work API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -3,8 +3,8 @@
@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"info": {
"title": "OpenVibe.Zone API",
"title": "OpenVibe.Zone API",
- "version": "0.368.0",
- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.368.0): each operation lists the capabilities it performs; a token for 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.369.0",
+ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.369.0): each operation lists the capabilities it performs; a token for 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": {
"license": {
"name": "MIT",
"name": "MIT",
"identifier": "MIT"
"identifier": "MIT"
@@ -322037,3 +322037,341 @@ export interface InventoryStoreListing {
@@ -322037,3 +322037,341 @@ export interface InventoryStoreListing {
};
};
status: "in_review" | "published" | "rejected";
status: "in_review" | "published" | "rejected";
}
}
+
+/** [email protected] (owner: git) */
+/**
+ * One repository on OpenVibe.Git (git.openvibe.codes): its owner, visibility, default branch, counts, and — when it has one — its GitHub mirror and the cached GitHub card. api/view/repo.
+ */
+export interface GitRepository {
+ /**
+ * The repository's own id (repo_<ULID>), stable across a rename.
+ */
+ id: string;
+ owner: {
+ /**
+ * The OpenVibe username that owns it, lower-case.
+ */
+ username: string;
+ /**
+ * The owner's Network subject; absent when the owner is the organisation account.
+ */
+ subject?: string | null;
+ display_name?: string | null;
+ avatar_url?: string | null;
+ };
+ /**
+ * The repository name; lower-case, and never ending in .git.
+ */
+ name: string;
+ /**
+ * <owner>/<name>, the name every API path and clone URL uses.
+ */
+ full_name: string;
+ description: string;
+ visibility: "public" | "private";
+ default_branch: string;
+ /**
+ * @maxItems 20
+ */
+ topics:
+ | []
+ | [string]
+ | [string, string]
+ | [string, string, string]
+ | [string, string, string, string]
+ | [string, string, string, string, string]
+ | [string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string, string, string, string]
+ | [string, string, string, string, string, string, string, string, string, string, string, string, string, string]
+ | [
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string
+ ]
+ | [
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string
+ ]
+ | [
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string
+ ]
+ | [
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string
+ ]
+ | [
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string
+ ]
+ | [
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string,
+ string
+ ];
+ stars: number;
+ watchers: number;
+ forks: number;
+ language: string | null;
+ /**
+ * Language name → share of bytes, 0–100, the largest first.
+ */
+ languages?: {
+ [k: string]: number | undefined;
+ };
+ html_url: string;
+ clone_url: string;
+ /**
+ * A git repository mirrored from somewhere (today: a public GitHub URL).
+ */
+ mirror?: {
+ url: string;
+ state: "ready" | "syncing" | "error";
+ last_synced_at: string | null;
+ error: string | null;
+ } | null;
+ /**
+ * The GitHub card: cached GitHub API readings for the repository's twin.
+ */
+ github?: {
+ full_name: string;
+ html_url: string;
+ stars: number;
+ open_issues: number;
+ open_pull_requests: number;
+ ci_state: "success" | "failure" | "pending" | "unknown";
+ fetched_at: string;
+ } | null;
+ created_at: string;
+ updated_at: string;
+ pushed_at?: string | null;
+}
+
+/** [email protected] (owner: git) */
+/**
+ * One commit on OpenVibe.Git: its sha, message, author and committer, parents, tree, and — for the commit page or a contents write — its diff and per-file counts. api/view/commit.
+ */
+export interface GitCommit {
+ /**
+ * The commit id: 40 hex characters (SHA-1) or 64 (SHA-256).
+ */
+ sha: string;
+ repo: string;
+ message: string;
+ /**
+ * The first line of the message.
+ */
+ subject?: string;
+ author: {
+ name: string;
+ email: string;
+ /**
+ * The OpenVibe username when the email is a verified one.
+ */
+ username?: string | null;
+ date: string;
+ };
+ committer: {
+ name: string;
+ email: string;
+ date: string;
+ };
+ /**
+ * @maxItems 2
+ */
+ parents: [] | [string] | [string, string];
+ tree_sha: string;
+ date: string;
+ stats?: {
+ files: number;
+ additions: number;
+ deletions: number;
+ } | null;
+ /**
+ * The changed files, when the caller asked for the diff.
+ */
+ files?: {
+ path: string;
+ previous_path?: string | null;
+ status: "added" | "modified" | "deleted" | "renamed" | "copied";
+ additions: number;
+ deletions: number;
+ patch?: string | null;
+ }[];
+ /**
+ * The unified diff, when the caller asked for it.
+ */
+ diff?: string | null;
+}
+
+/** [email protected] (owner: git) */
+/**
+ * One directory of a repository at a ref: its entries with mode, size and the last commit that touched each. api/view/tree.
+ */
+export interface GitTree {
+ repo: string;
+ /**
+ * The branch, tag or commit the tree was read at.
+ */
+ ref: string;
+ /**
+ * The directory, empty at the repository root.
+ */
+ path: string;
+ entries: {
+ name: string;
+ path: string;
+ type: "blob" | "tree" | "commit";
+ mode: string;
+ sha: string;
+ size?: number | null;
+ last_commit?: {
+ sha: string;
+ message: string;
+ date: string;
+ author_name: string;
+ } | null;
+ }[];
+}
+
+/** [email protected] (owner: git) */
+/**
+ * A repository's insights over a window: views, unique visitors, clones and stars per day, and commits per week. Public for a public repository, like GitHub's traffic but open. api/view/insights.
+ */
+export interface GitInsights {
+ repo: string;
+ window_days: number;
+ /**
+ * Page views of the repository in the window.
+ */
+ views: number;
+ /**
+ * Distinct visitors per day, summed over the window.
+ */
+ unique_visitors: number;
+ /**
+ * Successful git clones and fetches served in the window.
+ */
+ clones: number;
+ stars: {
+ total: number;
+ in_window: number;
+ };
+ /**
+ * The default branch's commits for each ISO week, oldest first.
+ */
+ commits_per_week: {
+ /**
+ * The week's Monday, YYYY-MM-DD.
+ */
+ week: string;
+ commits: number;
+ }[];
+ /**
+ * One row per day of the window, oldest first.
+ */
+ daily: {
+ day: string;
+ views: number;
+ unique_visitors: number;
+ clones: number;
+ stars: number;
+ }[];
+}
@@ -1,12 +1,12 @@
@@ -1,12 +1,12 @@
{
{
"name": "openvibe-contracts",
"name": "openvibe-contracts",
- "version": "0.368.0",
+ "version": "0.369.0",
"lockfileVersion": 3,
"lockfileVersion": 3,
"requires": true,
"requires": true,
"packages": {
"packages": {
"": {
"": {
"name": "openvibe-contracts",
"name": "openvibe-contracts",
- "version": "0.368.0",
+ "version": "0.369.0",
"license": "AGPL-3.0-only",
"license": "AGPL-3.0-only",
"dependencies": {
"dependencies": {
"ajv": "^8.17.1",
"ajv": "^8.17.1",
@@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
{
{
"name": "openvibe-contracts",
"name": "openvibe-contracts",
- "version": "0.368.0",
+ "version": "0.369.0",
"description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.",
"description": "Machine-readable contracts for the OpenVibe network: schemas, manifests, ids, error envelope, capability checks.",
"main": "index.js",
"main": "index.js",
"types": "generated/typescript/index.d.ts",
"types": "generated/typescript/index.d.ts",