openvibers/openvibe.contracts Commits
report.ai-usage-me-result@2: the person's AI usage as Report answers it (L41 R1) (#271)
Changes
@@@ -1,5 +1,18 @@# Changelog++## 0.263.0 — 2026-10-31++++- **`report.ai-usage-me-result@2`** (plan L41 R1, OpenVibe.Report): GET `/api/v1/me/ai/usage` as the route now++ answers it. The body is `{ group, rows, totals, by_paid_by, insights, source }`: `rows` are one bucket each++ (`day`, `week`, `month`, `provider`, `model`, `surface` or `paid_by`) with `key`, `calls`, `input_tokens`,++ `output_tokens`, `cached_tokens`, `cache_write_tokens`, `cost_usd`, `fee_usd`, `charged_usd` and `saved_usd`;++ `totals` repeats those measures for the window; `by_paid_by` holds the same measures for each payer++ (`own_key`, `openvibe_key`, `plan`, `own_machine`, `free_tier`, `network_allowance`, `org_key`); `insights` are++ two or three plain lines worked out from the numbers; and `source` is `raw`, `rollups` or `raw+rollups`.++- **Breaking shape:** v1's `usage` array and its `input`/`output`/`reasoning`/`cache_read`/`cache_write`/++ `list_cost_usd`/`cache_saved_usd` field names are gone, so v1 is deprecated in favour of `@2` and stays++ loadable until 1.0.0. The v2 TypeScript type is `ReportAiUsageMeResultV2`.++## 0.262.0 — 2026-10-31- **The task-aware router's explain** (L33 P3 "the router picks for the task", L36 Y7 "a smarter router";@@@ -224,6 +224,13 @@"since": "0.249.0","removeAfter": "1.0.0","reason": "Actor's files and charts ride on the tool result that made them; v2 adds artifacts to that event while keeping every v1 field (Actor v2 stage V2-4, 2026-10-30)"++ },++ {++ "id": "report.ai-usage-me-result@1",++ "replacement": "report.ai-usage-me-result@2",++ "since": "0.263.0",++ "removeAfter": "1.0.0",++ "reason": "Report's personal AI usage answers rows, totals, by_paid_by, insights and source (plan L41 R1); v1's usage array and its field names never matched the route, so the shape moved to a new major (2026-10-31)"}]}@@@ -8473,6 +8473,15 @@"compatibility": "backward","status": "active"},++ {++ "id": "report.ai-usage-me-result",++ "version": "2.0.0",++ "owner": "report",++ "schema": "report/ai-usage-me-result.v2.json",++ "visibility": "public",++ "compatibility": "backward",++ "status": "active"++ },{"id": "bench.benchmark","version": "1.0.0",nnew file mode 100644@@@ -0,0 +1,80 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/report/ai-usage-me-result.v2.json",++ "title": "ReportAiUsageMeResultV2",++ "description": "report.ai-usage-me-result@2: the AI usage of one person (plan L41 R1). GET /api/v1/me/ai/usage answers for the person their session names and nobody else: the rows of one group (day, week, month, provider, model, surface or paid_by), the totals, what each way of paying cost, two or three plain lines worked out from the numbers, and the source that answered (raw records, the roll-ups, or both). v2 replaces v1's `usage` array and its `input`/`output`/`reasoning`/`cache_read`/`cache_write`/`list_cost_usd`/`cache_saved_usd` names with `rows` and the names the route answers: `input_tokens`, `output_tokens`, `cached_tokens`, `cache_write_tokens`, `cost_usd` and `saved_usd`. The route answers 401 signed out; the subject is the session's, never the query.",++ "type": "object",++ "required": ["group", "rows", "totals", "by_paid_by", "insights", "source"],++ "additionalProperties": false,++ "properties": {++ "group": {++ "type": "string",++ "enum": ["day", "week", "month", "provider", "model", "surface", "paid_by"],++ "description": "The bucket the rows are grouped by; a person may ask for any of the seven."++ },++ "rows": {++ "type": "array",++ "description": "One row per bucket, sorted by key. Empty when the window has no calls.",++ "items": {++ "type": "object",++ "required": ["key", "calls", "input_tokens", "output_tokens", "cached_tokens", "cache_write_tokens", "cost_usd", "fee_usd", "charged_usd", "saved_usd"],++ "additionalProperties": false,++ "properties": {++ "key": { "type": "string", "maxLength": 200, "description": "The bucket's key: a day (YYYY-MM-DD), a week (its Monday), a month (YYYY-MM), a provider, a model, a surface or a payer; 'unknown' when the record has no such value." },++ "calls": { "type": "integer", "minimum": 0 },++ "input_tokens": { "type": "integer", "minimum": 0, "description": "The uncached input tokens." },++ "output_tokens": { "type": "integer", "minimum": 0 },++ "cached_tokens": { "type": "integer", "minimum": 0, "description": "The input tokens read from a provider cache." },++ "cache_write_tokens": { "type": "integer", "minimum": 0, "description": "The input tokens written to a provider cache." },++ "cost_usd": { "type": "number", "minimum": 0, "description": "What the tokens cost at list prices." },++ "fee_usd": { "type": "number", "minimum": 0 },++ "charged_usd": { "type": "number", "minimum": 0 },++ "saved_usd": { "type": "number", "minimum": 0, "description": "What the cache saved against the plain input price." }++ }++ }++ },++ "totals": { "$ref": "#/$defs/measure" },++ "by_paid_by": {++ "type": "object",++ "description": "What each way of paying cost over the same window; a payer with no calls is absent.",++ "additionalProperties": false,++ "properties": {++ "own_key": { "$ref": "#/$defs/measure" },++ "openvibe_key": { "$ref": "#/$defs/measure" },++ "plan": { "$ref": "#/$defs/measure" },++ "own_machine": { "$ref": "#/$defs/measure" },++ "free_tier": { "$ref": "#/$defs/measure" },++ "network_allowance": { "$ref": "#/$defs/measure" },++ "org_key": { "$ref": "#/$defs/measure" }++ }++ },++ "insights": {++ "type": "array",++ "description": "Two or three plain lines worked out from the numbers, one when the window has no calls; never an AI call.",++ "items": { "type": "string" }++ },++ "source": {++ "type": "string",++ "enum": ["raw", "rollups", "raw+rollups"],++ "description": "Which tables answered: raw records inside the 90-day retention, the roll-ups beyond it, or both."++ }++ },++ "$defs": {++ "measure": {++ "type": "object",++ "required": ["calls", "input_tokens", "output_tokens", "cached_tokens", "cache_write_tokens", "cost_usd", "fee_usd", "charged_usd", "saved_usd"],++ "additionalProperties": false,++ "properties": {++ "calls": { "type": "integer", "minimum": 0 },++ "input_tokens": { "type": "integer", "minimum": 0, "description": "The uncached input tokens." },++ "output_tokens": { "type": "integer", "minimum": 0 },++ "cached_tokens": { "type": "integer", "minimum": 0, "description": "The input tokens read from a provider cache." },++ "cache_write_tokens": { "type": "integer", "minimum": 0, "description": "The input tokens written to a provider cache." },++ "cost_usd": { "type": "number", "minimum": 0, "description": "What the tokens cost at list prices." },++ "fee_usd": { "type": "number", "minimum": 0 },++ "charged_usd": { "type": "number", "minimum": 0 },++ "saved_usd": { "type": "number", "minimum": 0, "description": "What the cache saved against the plain input price." }++ }++ }++ }++}@@@ -1,6 +1,19 @@{"group": "day",-- "usage": [],-- "totals": { "calls": 0 },++ "rows": [],++ "totals": {++ "calls": 0,++ "input_tokens": 0,++ "output_tokens": 0,++ "cached_tokens": 0,++ "cache_write_tokens": 0,++ "cost_usd": 0,++ "fee_usd": 0,++ "charged_usd": 0,++ "saved_usd": 0++ },++ "by_paid_by": {},++ "insights": ["No AI calls in this window."],++ "source": "raw","subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"}nnew file mode 100644@@@ -0,0 +1,30 @@++{++ "group": "day",++ "rows": [],++ "totals": {++ "calls": 0,++ "input_tokens": 0,++ "output_tokens": 0,++ "cached_tokens": 0,++ "cache_write_tokens": 0,++ "cost_usd": 0,++ "fee_usd": 0,++ "charged_usd": 0,++ "saved_usd": 0++ },++ "by_paid_by": {++ "someone_else": {++ "calls": 0,++ "input_tokens": 0,++ "output_tokens": 0,++ "cached_tokens": 0,++ "cache_write_tokens": 0,++ "cost_usd": 0,++ "fee_usd": 0,++ "charged_usd": 0,++ "saved_usd": 0++ }++ },++ "insights": ["No AI calls in this window."],++ "source": "raw"++}nnew file mode 100644@@@ -0,0 +1,18 @@++{++ "group": "day",++ "rows": [],++ "totals": {++ "calls": 0,++ "input_tokens": 0,++ "output_tokens": 0,++ "cached_tokens": 0,++ "cache_write_tokens": 0,++ "cost_usd": 0,++ "fee_usd": 0,++ "charged_usd": 0,++ "saved_usd": 0++ },++ "by_paid_by": {},++ "insights": ["No AI calls in this window."],++ "source": "rollups"++}@@@ -1,11 +1,70 @@{-- "group": "day",-- "usage": [++ "group": "paid_by",++ "rows": [{-- "group": "day", "key": "2026-10-31", "calls": 2,-- "input": 200, "output": 80, "reasoning": 0, "cache_read": 800, "cache_write": 0,-- "list_cost_usd": 0.0021, "charged_usd": 0, "fee_usd": 0, "cache_saved_usd": 0++ "key": "openvibe_key",++ "calls": 1,++ "input_tokens": 1000,++ "output_tokens": 500,++ "cached_tokens": 0,++ "cache_write_tokens": 100,++ "cost_usd": 0.05,++ "fee_usd": 0.01,++ "charged_usd": 0.06,++ "saved_usd": 0++ },++ {++ "key": "own_key",++ "calls": 2,++ "input_tokens": 250,++ "output_tokens": 90,++ "cached_tokens": 800,++ "cache_write_tokens": 0,++ "cost_usd": 0.0031,++ "fee_usd": 0,++ "charged_usd": 0,++ "saved_usd": 0.0017++ }++ ],++ "totals": {++ "calls": 3,++ "input_tokens": 1250,++ "output_tokens": 590,++ "cached_tokens": 800,++ "cache_write_tokens": 100,++ "cost_usd": 0.0531,++ "fee_usd": 0.01,++ "charged_usd": 0.06,++ "saved_usd": 0.0017++ },++ "by_paid_by": {++ "openvibe_key": {++ "calls": 1,++ "input_tokens": 1000,++ "output_tokens": 500,++ "cached_tokens": 0,++ "cache_write_tokens": 100,++ "cost_usd": 0.05,++ "fee_usd": 0.01,++ "charged_usd": 0.06,++ "saved_usd": 0++ },++ "own_key": {++ "calls": 2,++ "input_tokens": 250,++ "output_tokens": 90,++ "cached_tokens": 800,++ "cache_write_tokens": 0,++ "cost_usd": 0.0031,++ "fee_usd": 0,++ "charged_usd": 0,++ "saved_usd": 0.0017}++ },++ "insights": [++ "67% of your calls ran on your own keys, so no fee on those.",++ "The cache saved you less than $0.01 this month.",++ "Your calls cost $0.06, including $0.01 in fees."],-- "totals": { "calls": 2, "input": 200, "output": 80 }++ "source": "raw"}@@@ -94349,7 +94349,7 @@}}},-- "report.ai-usage-me-result": {++ "report.ai-usage-me-result@1": {"version": "1.0.0","owner": "report","status": "active",@@@ -94459,6 +94459,217 @@}}},++ "report.ai-usage-me-result@2": {++ "version": "2.0.0",++ "owner": "report",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/report/ai-usage-me-result.v2.json",++ "title": "ReportAiUsageMeResultV2",++ "description": "report.ai-usage-me-result@2: the AI usage of one person (plan L41 R1). GET /api/v1/me/ai/usage answers for the person their session names and nobody else: the rows of one group (day, week, month, provider, model, surface or paid_by), the totals, what each way of paying cost, two or three plain lines worked out from the numbers, and the source that answered (raw records, the roll-ups, or both). v2 replaces v1's `usage` array and its `input`/`output`/`reasoning`/`cache_read`/`cache_write`/`list_cost_usd`/`cache_saved_usd` names with `rows` and the names the route answers: `input_tokens`, `output_tokens`, `cached_tokens`, `cache_write_tokens`, `cost_usd` and `saved_usd`. The route answers 401 signed out; the subject is the session's, never the query.",++ "type": "object",++ "required": [++ "group",++ "rows",++ "totals",++ "by_paid_by",++ "insights",++ "source"++ ],++ "additionalProperties": false,++ "properties": {++ "group": {++ "type": "string",++ "enum": [++ "day",++ "week",++ "month",++ "provider",++ "model",++ "surface",++ "paid_by"++ ],++ "description": "The bucket the rows are grouped by; a person may ask for any of the seven."++ },++ "rows": {++ "type": "array",++ "description": "One row per bucket, sorted by key. Empty when the window has no calls.",++ "items": {++ "type": "object",++ "required": [++ "key",++ "calls",++ "input_tokens",++ "output_tokens",++ "cached_tokens",++ "cache_write_tokens",++ "cost_usd",++ "fee_usd",++ "charged_usd",++ "saved_usd"++ ],++ "additionalProperties": false,++ "properties": {++ "key": {++ "type": "string",++ "maxLength": 200,++ "description": "The bucket's key: a day (YYYY-MM-DD), a week (its Monday), a month (YYYY-MM), a provider, a model, a surface or a payer; 'unknown' when the record has no such value."++ },++ "calls": {++ "type": "integer",++ "minimum": 0++ },++ "input_tokens": {++ "type": "integer",++ "minimum": 0,++ "description": "The uncached input tokens."++ },++ "output_tokens": {++ "type": "integer",++ "minimum": 0++ },++ "cached_tokens": {++ "type": "integer",++ "minimum": 0,++ "description": "The input tokens read from a provider cache."++ },++ "cache_write_tokens": {++ "type": "integer",++ "minimum": 0,++ "description": "The input tokens written to a provider cache."++ },++ "cost_usd": {++ "type": "number",++ "minimum": 0,++ "description": "What the tokens cost at list prices."++ },++ "fee_usd": {++ "type": "number",++ "minimum": 0++ },++ "charged_usd": {++ "type": "number",++ "minimum": 0++ },++ "saved_usd": {++ "type": "number",++ "minimum": 0,++ "description": "What the cache saved against the plain input price."++ }++ }++ }++ },++ "totals": {++ "$ref": "#/$defs/measure"++ },++ "by_paid_by": {++ "type": "object",++ "description": "What each way of paying cost over the same window; a payer with no calls is absent.",++ "additionalProperties": false,++ "properties": {++ "own_key": {++ "$ref": "#/$defs/measure"++ },++ "openvibe_key": {++ "$ref": "#/$defs/measure"++ },++ "plan": {++ "$ref": "#/$defs/measure"++ },++ "own_machine": {++ "$ref": "#/$defs/measure"++ },++ "free_tier": {++ "$ref": "#/$defs/measure"++ },++ "network_allowance": {++ "$ref": "#/$defs/measure"++ },++ "org_key": {++ "$ref": "#/$defs/measure"++ }++ }++ },++ "insights": {++ "type": "array",++ "description": "Two or three plain lines worked out from the numbers, one when the window has no calls; never an AI call.",++ "items": {++ "type": "string"++ }++ },++ "source": {++ "type": "string",++ "enum": [++ "raw",++ "rollups",++ "raw+rollups"++ ],++ "description": "Which tables answered: raw records inside the 90-day retention, the roll-ups beyond it, or both."++ }++ },++ "$defs": {++ "measure": {++ "type": "object",++ "required": [++ "calls",++ "input_tokens",++ "output_tokens",++ "cached_tokens",++ "cache_write_tokens",++ "cost_usd",++ "fee_usd",++ "charged_usd",++ "saved_usd"++ ],++ "additionalProperties": false,++ "properties": {++ "calls": {++ "type": "integer",++ "minimum": 0++ },++ "input_tokens": {++ "type": "integer",++ "minimum": 0,++ "description": "The uncached input tokens."++ },++ "output_tokens": {++ "type": "integer",++ "minimum": 0++ },++ "cached_tokens": {++ "type": "integer",++ "minimum": 0,++ "description": "The input tokens read from a provider cache."++ },++ "cache_write_tokens": {++ "type": "integer",++ "minimum": 0,++ "description": "The input tokens written to a provider cache."++ },++ "cost_usd": {++ "type": "number",++ "minimum": 0,++ "description": "What the tokens cost at list prices."++ },++ "fee_usd": {++ "type": "number",++ "minimum": 0++ },++ "charged_usd": {++ "type": "number",++ "minimum": 0++ },++ "saved_usd": {++ "type": "number",++ "minimum": 0,++ "description": "What the cache saved against the plain input price."++ }++ }++ }++ }++ }++ },"bench.benchmark": {"version": "1.0.0","owner": "bench",@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Actor API",-- "version": "0.262.0",-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",-- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.263.0",++ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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"@@@ -277599,6 +277599,271 @@ export interface ReportAiUsageMeResult {totals: {};}++/** [email protected] (owner: report) */++/**++ * report.ai-usage-me-result@2: the AI usage of one person (plan L41 R1). GET /api/v1/me/ai/usage answers for the person their session names and nobody else: the rows of one group (day, week, month, provider, model, surface or paid_by), the totals, what each way of paying cost, two or three plain lines worked out from the numbers, and the source that answered (raw records, the roll-ups, or both). v2 replaces v1's `usage` array and its `input`/`output`/`reasoning`/`cache_read`/`cache_write`/`list_cost_usd`/`cache_saved_usd` names with `rows` and the names the route answers: `input_tokens`, `output_tokens`, `cached_tokens`, `cache_write_tokens`, `cost_usd` and `saved_usd`. The route answers 401 signed out; the subject is the session's, never the query.++ */++export interface ReportAiUsageMeResultV2 {++ /**++ * The bucket the rows are grouped by; a person may ask for any of the seven.++ */++ group: "day" | "week" | "month" | "provider" | "model" | "surface" | "paid_by";++ /**++ * One row per bucket, sorted by key. Empty when the window has no calls.++ */++ rows: {++ /**++ * The bucket's key: a day (YYYY-MM-DD), a week (its Monday), a month (YYYY-MM), a provider, a model, a surface or a payer; 'unknown' when the record has no such value.++ */++ key: string;++ calls: number;++ /**++ * The uncached input tokens.++ */++ input_tokens: number;++ output_tokens: number;++ /**++ * The input tokens read from a provider cache.++ */++ cached_tokens: number;++ /**++ * The input tokens written to a provider cache.++ */++ cache_write_tokens: number;++ /**++ * What the tokens cost at list prices.++ */++ cost_usd: number;++ fee_usd: number;++ charged_usd: number;++ /**++ * What the cache saved against the plain input price.++ */++ saved_usd: number;++ }[];++ totals: {++ calls: number;++ /**++ * The uncached input tokens.++ */++ input_tokens: number;++ output_tokens: number;++ /**++ * The input tokens read from a provider cache.++ */++ cached_tokens: number;++ /**++ * The input tokens written to a provider cache.++ */++ cache_write_tokens: number;++ /**++ * What the tokens cost at list prices.++ */++ cost_usd: number;++ fee_usd: number;++ charged_usd: number;++ /**++ * What the cache saved against the plain input price.++ */++ saved_usd: number;++ };++ /**++ * What each way of paying cost over the same window; a payer with no calls is absent.++ */++ by_paid_by: {++ own_key?: {++ calls: number;++ /**++ * The uncached input tokens.++ */++ input_tokens: number;++ output_tokens: number;++ /**++ * The input tokens read from a provider cache.++ */++ cached_tokens: number;++ /**++ * The input tokens written to a provider cache.++ */++ cache_write_tokens: number;++ /**++ * What the tokens cost at list prices.++ */++ cost_usd: number;++ fee_usd: number;++ charged_usd: number;++ /**++ * What the cache saved against the plain input price.++ */++ saved_usd: number;++ };++ openvibe_key?: {++ calls: number;++ /**++ * The uncached input tokens.++ */++ input_tokens: number;++ output_tokens: number;++ /**++ * The input tokens read from a provider cache.++ */++ cached_tokens: number;++ /**++ * The input tokens written to a provider cache.++ */++ cache_write_tokens: number;++ /**++ * What the tokens cost at list prices.++ */++ cost_usd: number;++ fee_usd: number;++ charged_usd: number;++ /**++ * What the cache saved against the plain input price.++ */++ saved_usd: number;++ };++ plan?: {++ calls: number;++ /**++ * The uncached input tokens.++ */++ input_tokens: number;++ output_tokens: number;++ /**++ * The input tokens read from a provider cache.++ */++ cached_tokens: number;++ /**++ * The input tokens written to a provider cache.++ */++ cache_write_tokens: number;++ /**++ * What the tokens cost at list prices.++ */++ cost_usd: number;++ fee_usd: number;++ charged_usd: number;++ /**++ * What the cache saved against the plain input price.++ */++ saved_usd: number;++ };++ own_machine?: {++ calls: number;++ /**++ * The uncached input tokens.++ */++ input_tokens: number;++ output_tokens: number;++ /**++ * The input tokens read from a provider cache.++ */++ cached_tokens: number;++ /**++ * The input tokens written to a provider cache.++ */++ cache_write_tokens: number;++ /**++ * What the tokens cost at list prices.++ */++ cost_usd: number;++ fee_usd: number;++ charged_usd: number;++ /**++ * What the cache saved against the plain input price.++ */++ saved_usd: number;++ };++ free_tier?: {++ calls: number;++ /**++ * The uncached input tokens.++ */++ input_tokens: number;++ output_tokens: number;++ /**++ * The input tokens read from a provider cache.++ */++ cached_tokens: number;++ /**++ * The input tokens written to a provider cache.++ */++ cache_write_tokens: number;++ /**++ * What the tokens cost at list prices.++ */++ cost_usd: number;++ fee_usd: number;++ charged_usd: number;++ /**++ * What the cache saved against the plain input price.++ */++ saved_usd: number;++ };++ network_allowance?: {++ calls: number;++ /**++ * The uncached input tokens.++ */++ input_tokens: number;++ output_tokens: number;++ /**++ * The input tokens read from a provider cache.++ */++ cached_tokens: number;++ /**++ * The input tokens written to a provider cache.++ */++ cache_write_tokens: number;++ /**++ * What the tokens cost at list prices.++ */++ cost_usd: number;++ fee_usd: number;++ charged_usd: number;++ /**++ * What the cache saved against the plain input price.++ */++ saved_usd: number;++ };++ org_key?: {++ calls: number;++ /**++ * The uncached input tokens.++ */++ input_tokens: number;++ output_tokens: number;++ /**++ * The input tokens read from a provider cache.++ */++ cached_tokens: number;++ /**++ * The input tokens written to a provider cache.++ */++ cache_write_tokens: number;++ /**++ * What the tokens cost at list prices.++ */++ cost_usd: number;++ fee_usd: number;++ charged_usd: number;++ /**++ * What the cache saved against the plain input price.++ */++ saved_usd: number;++ };++ };++ /**++ * Two or three plain lines worked out from the numbers, one when the window has no calls; never an AI call.++ */++ insights: string[];++ /**++ * Which tables answered: raw records inside the 90-day retention, the roll-ups beyond it, or both.++ */++ source: "raw" | "rollups" | "raw+rollups";++}++/** [email protected] (owner: bench) *//*** bench.benchmark@1: a versioned, forkable benchmark on OpenVibe.Bench (spec 2026-10-30, stage B1). It holds the tasks, the judges, how they combine into one score, the limits a run may not pass, the default model and harness matrix, and the visibility of the set. A version is immutable once a run names it; a fork records its parent. Holdout tasks are hidden from everyone but the executor.@@@ -1,12 +1,12 @@{"name": "openvibe-contracts",-- "version": "0.262.0",++ "version": "0.263.0","lockfileVersion": 3,"requires": true,"packages": {"": {"name": "openvibe-contracts",-- "version": "0.262.0",++ "version": "0.263.0","license": "AGPL-3.0-only","dependencies": {"ajv": "^8.17.1",@@@ -1,6 +1,6 @@{"name": "openvibe-contracts",-- "version": "0.262.0",++ "version": "0.263.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,18 @@
@@ -1,5 +1,18 @@
# Changelog
# Changelog
+## 0.263.0 — 2026-10-31
+
+- **`report.ai-usage-me-result@2`** (plan L41 R1, OpenVibe.Report): GET `/api/v1/me/ai/usage` as the route now
+ answers it. The body is `{ group, rows, totals, by_paid_by, insights, source }`: `rows` are one bucket each
+ (`day`, `week`, `month`, `provider`, `model`, `surface` or `paid_by`) with `key`, `calls`, `input_tokens`,
+ `output_tokens`, `cached_tokens`, `cache_write_tokens`, `cost_usd`, `fee_usd`, `charged_usd` and `saved_usd`;
+ `totals` repeats those measures for the window; `by_paid_by` holds the same measures for each payer
+ (`own_key`, `openvibe_key`, `plan`, `own_machine`, `free_tier`, `network_allowance`, `org_key`); `insights` are
+ two or three plain lines worked out from the numbers; and `source` is `raw`, `rollups` or `raw+rollups`.
+- **Breaking shape:** v1's `usage` array and its `input`/`output`/`reasoning`/`cache_read`/`cache_write`/
+ `list_cost_usd`/`cache_saved_usd` field names are gone, so v1 is deprecated in favour of `@2` and stays
+ loadable until 1.0.0. The v2 TypeScript type is `ReportAiUsageMeResultV2`.
+
## 0.262.0 — 2026-10-31
## 0.262.0 — 2026-10-31
- **The task-aware router's explain** (L33 P3 "the router picks for the task", L36 Y7 "a smarter router";
- **The task-aware router's explain** (L33 P3 "the router picks for the task", L36 Y7 "a smarter router";
@@ -224,6 +224,13 @@
@@ -224,6 +224,13 @@
"since": "0.249.0",
"since": "0.249.0",
"removeAfter": "1.0.0",
"removeAfter": "1.0.0",
"reason": "Actor's files and charts ride on the tool result that made them; v2 adds artifacts to that event while keeping every v1 field (Actor v2 stage V2-4, 2026-10-30)"
"reason": "Actor's files and charts ride on the tool result that made them; v2 adds artifacts to that event while keeping every v1 field (Actor v2 stage V2-4, 2026-10-30)"
+ },
+ {
+ "id": "report.ai-usage-me-result@1",
+ "replacement": "report.ai-usage-me-result@2",
+ "since": "0.263.0",
+ "removeAfter": "1.0.0",
+ "reason": "Report's personal AI usage answers rows, totals, by_paid_by, insights and source (plan L41 R1); v1's usage array and its field names never matched the route, so the shape moved to a new major (2026-10-31)"
}
}
]
]
}
}
@@ -8473,6 +8473,15 @@
@@ -8473,6 +8473,15 @@
"compatibility": "backward",
"compatibility": "backward",
"status": "active"
"status": "active"
},
},
+ {
+ "id": "report.ai-usage-me-result",
+ "version": "2.0.0",
+ "owner": "report",
+ "schema": "report/ai-usage-me-result.v2.json",
+ "visibility": "public",
+ "compatibility": "backward",
+ "status": "active"
+ },
{
{
"id": "bench.benchmark",
"id": "bench.benchmark",
"version": "1.0.0",
"version": "1.0.0",
new file mode 100644
new file mode 100644
@@ -0,0 +1,80 @@
@@ -0,0 +1,80 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/report/ai-usage-me-result.v2.json",
+ "title": "ReportAiUsageMeResultV2",
+ "description": "report.ai-usage-me-result@2: the AI usage of one person (plan L41 R1). GET /api/v1/me/ai/usage answers for the person their session names and nobody else: the rows of one group (day, week, month, provider, model, surface or paid_by), the totals, what each way of paying cost, two or three plain lines worked out from the numbers, and the source that answered (raw records, the roll-ups, or both). v2 replaces v1's `usage` array and its `input`/`output`/`reasoning`/`cache_read`/`cache_write`/`list_cost_usd`/`cache_saved_usd` names with `rows` and the names the route answers: `input_tokens`, `output_tokens`, `cached_tokens`, `cache_write_tokens`, `cost_usd` and `saved_usd`. The route answers 401 signed out; the subject is the session's, never the query.",
+ "type": "object",
+ "required": ["group", "rows", "totals", "by_paid_by", "insights", "source"],
+ "additionalProperties": false,
+ "properties": {
+ "group": {
+ "type": "string",
+ "enum": ["day", "week", "month", "provider", "model", "surface", "paid_by"],
+ "description": "The bucket the rows are grouped by; a person may ask for any of the seven."
+ },
+ "rows": {
+ "type": "array",
+ "description": "One row per bucket, sorted by key. Empty when the window has no calls.",
+ "items": {
+ "type": "object",
+ "required": ["key", "calls", "input_tokens", "output_tokens", "cached_tokens", "cache_write_tokens", "cost_usd", "fee_usd", "charged_usd", "saved_usd"],
+ "additionalProperties": false,
+ "properties": {
+ "key": { "type": "string", "maxLength": 200, "description": "The bucket's key: a day (YYYY-MM-DD), a week (its Monday), a month (YYYY-MM), a provider, a model, a surface or a payer; 'unknown' when the record has no such value." },
+ "calls": { "type": "integer", "minimum": 0 },
+ "input_tokens": { "type": "integer", "minimum": 0, "description": "The uncached input tokens." },
+ "output_tokens": { "type": "integer", "minimum": 0 },
+ "cached_tokens": { "type": "integer", "minimum": 0, "description": "The input tokens read from a provider cache." },
+ "cache_write_tokens": { "type": "integer", "minimum": 0, "description": "The input tokens written to a provider cache." },
+ "cost_usd": { "type": "number", "minimum": 0, "description": "What the tokens cost at list prices." },
+ "fee_usd": { "type": "number", "minimum": 0 },
+ "charged_usd": { "type": "number", "minimum": 0 },
+ "saved_usd": { "type": "number", "minimum": 0, "description": "What the cache saved against the plain input price." }
+ }
+ }
+ },
+ "totals": { "$ref": "#/$defs/measure" },
+ "by_paid_by": {
+ "type": "object",
+ "description": "What each way of paying cost over the same window; a payer with no calls is absent.",
+ "additionalProperties": false,
+ "properties": {
+ "own_key": { "$ref": "#/$defs/measure" },
+ "openvibe_key": { "$ref": "#/$defs/measure" },
+ "plan": { "$ref": "#/$defs/measure" },
+ "own_machine": { "$ref": "#/$defs/measure" },
+ "free_tier": { "$ref": "#/$defs/measure" },
+ "network_allowance": { "$ref": "#/$defs/measure" },
+ "org_key": { "$ref": "#/$defs/measure" }
+ }
+ },
+ "insights": {
+ "type": "array",
+ "description": "Two or three plain lines worked out from the numbers, one when the window has no calls; never an AI call.",
+ "items": { "type": "string" }
+ },
+ "source": {
+ "type": "string",
+ "enum": ["raw", "rollups", "raw+rollups"],
+ "description": "Which tables answered: raw records inside the 90-day retention, the roll-ups beyond it, or both."
+ }
+ },
+ "$defs": {
+ "measure": {
+ "type": "object",
+ "required": ["calls", "input_tokens", "output_tokens", "cached_tokens", "cache_write_tokens", "cost_usd", "fee_usd", "charged_usd", "saved_usd"],
+ "additionalProperties": false,
+ "properties": {
+ "calls": { "type": "integer", "minimum": 0 },
+ "input_tokens": { "type": "integer", "minimum": 0, "description": "The uncached input tokens." },
+ "output_tokens": { "type": "integer", "minimum": 0 },
+ "cached_tokens": { "type": "integer", "minimum": 0, "description": "The input tokens read from a provider cache." },
+ "cache_write_tokens": { "type": "integer", "minimum": 0, "description": "The input tokens written to a provider cache." },
+ "cost_usd": { "type": "number", "minimum": 0, "description": "What the tokens cost at list prices." },
+ "fee_usd": { "type": "number", "minimum": 0 },
+ "charged_usd": { "type": "number", "minimum": 0 },
+ "saved_usd": { "type": "number", "minimum": 0, "description": "What the cache saved against the plain input price." }
+ }
+ }
+ }
+}
@@ -1,6 +1,19 @@
@@ -1,6 +1,19 @@
{
{
"group": "day",
"group": "day",
- "usage": [],
- "totals": { "calls": 0 },
+ "rows": [],
+ "totals": {
+ "calls": 0,
+ "input_tokens": 0,
+ "output_tokens": 0,
+ "cached_tokens": 0,
+ "cache_write_tokens": 0,
+ "cost_usd": 0,
+ "fee_usd": 0,
+ "charged_usd": 0,
+ "saved_usd": 0
+ },
+ "by_paid_by": {},
+ "insights": ["No AI calls in this window."],
+ "source": "raw",
"subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
"subject": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
}
}
new file mode 100644
new file mode 100644
@@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
+{
+ "group": "day",
+ "rows": [],
+ "totals": {
+ "calls": 0,
+ "input_tokens": 0,
+ "output_tokens": 0,
+ "cached_tokens": 0,
+ "cache_write_tokens": 0,
+ "cost_usd": 0,
+ "fee_usd": 0,
+ "charged_usd": 0,
+ "saved_usd": 0
+ },
+ "by_paid_by": {
+ "someone_else": {
+ "calls": 0,
+ "input_tokens": 0,
+ "output_tokens": 0,
+ "cached_tokens": 0,
+ "cache_write_tokens": 0,
+ "cost_usd": 0,
+ "fee_usd": 0,
+ "charged_usd": 0,
+ "saved_usd": 0
+ }
+ },
+ "insights": ["No AI calls in this window."],
+ "source": "raw"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
+{
+ "group": "day",
+ "rows": [],
+ "totals": {
+ "calls": 0,
+ "input_tokens": 0,
+ "output_tokens": 0,
+ "cached_tokens": 0,
+ "cache_write_tokens": 0,
+ "cost_usd": 0,
+ "fee_usd": 0,
+ "charged_usd": 0,
+ "saved_usd": 0
+ },
+ "by_paid_by": {},
+ "insights": ["No AI calls in this window."],
+ "source": "rollups"
+}
@@ -1,11 +1,70 @@
@@ -1,11 +1,70 @@
{
{
- "group": "day",
- "usage": [
+ "group": "paid_by",
+ "rows": [
{
{
- "group": "day", "key": "2026-10-31", "calls": 2,
- "input": 200, "output": 80, "reasoning": 0, "cache_read": 800, "cache_write": 0,
- "list_cost_usd": 0.0021, "charged_usd": 0, "fee_usd": 0, "cache_saved_usd": 0
+ "key": "openvibe_key",
+ "calls": 1,
+ "input_tokens": 1000,
+ "output_tokens": 500,
+ "cached_tokens": 0,
+ "cache_write_tokens": 100,
+ "cost_usd": 0.05,
+ "fee_usd": 0.01,
+ "charged_usd": 0.06,
+ "saved_usd": 0
+ },
+ {
+ "key": "own_key",
+ "calls": 2,
+ "input_tokens": 250,
+ "output_tokens": 90,
+ "cached_tokens": 800,
+ "cache_write_tokens": 0,
+ "cost_usd": 0.0031,
+ "fee_usd": 0,
+ "charged_usd": 0,
+ "saved_usd": 0.0017
+ }
+ ],
+ "totals": {
+ "calls": 3,
+ "input_tokens": 1250,
+ "output_tokens": 590,
+ "cached_tokens": 800,
+ "cache_write_tokens": 100,
+ "cost_usd": 0.0531,
+ "fee_usd": 0.01,
+ "charged_usd": 0.06,
+ "saved_usd": 0.0017
+ },
+ "by_paid_by": {
+ "openvibe_key": {
+ "calls": 1,
+ "input_tokens": 1000,
+ "output_tokens": 500,
+ "cached_tokens": 0,
+ "cache_write_tokens": 100,
+ "cost_usd": 0.05,
+ "fee_usd": 0.01,
+ "charged_usd": 0.06,
+ "saved_usd": 0
+ },
+ "own_key": {
+ "calls": 2,
+ "input_tokens": 250,
+ "output_tokens": 90,
+ "cached_tokens": 800,
+ "cache_write_tokens": 0,
+ "cost_usd": 0.0031,
+ "fee_usd": 0,
+ "charged_usd": 0,
+ "saved_usd": 0.0017
}
}
+ },
+ "insights": [
+ "67% of your calls ran on your own keys, so no fee on those.",
+ "The cache saved you less than $0.01 this month.",
+ "Your calls cost $0.06, including $0.01 in fees."
],
],
- "totals": { "calls": 2, "input": 200, "output": 80 }
+ "source": "raw"
}
}
@@ -94349,7 +94349,7 @@
@@ -94349,7 +94349,7 @@
}
}
}
}
},
},
- "report.ai-usage-me-result": {
+ "report.ai-usage-me-result@1": {
"version": "1.0.0",
"version": "1.0.0",
"owner": "report",
"owner": "report",
"status": "active",
"status": "active",
@@ -94459,6 +94459,217 @@
@@ -94459,6 +94459,217 @@
}
}
}
}
},
},
+ "report.ai-usage-me-result@2": {
+ "version": "2.0.0",
+ "owner": "report",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/report/ai-usage-me-result.v2.json",
+ "title": "ReportAiUsageMeResultV2",
+ "description": "report.ai-usage-me-result@2: the AI usage of one person (plan L41 R1). GET /api/v1/me/ai/usage answers for the person their session names and nobody else: the rows of one group (day, week, month, provider, model, surface or paid_by), the totals, what each way of paying cost, two or three plain lines worked out from the numbers, and the source that answered (raw records, the roll-ups, or both). v2 replaces v1's `usage` array and its `input`/`output`/`reasoning`/`cache_read`/`cache_write`/`list_cost_usd`/`cache_saved_usd` names with `rows` and the names the route answers: `input_tokens`, `output_tokens`, `cached_tokens`, `cache_write_tokens`, `cost_usd` and `saved_usd`. The route answers 401 signed out; the subject is the session's, never the query.",
+ "type": "object",
+ "required": [
+ "group",
+ "rows",
+ "totals",
+ "by_paid_by",
+ "insights",
+ "source"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "group": {
+ "type": "string",
+ "enum": [
+ "day",
+ "week",
+ "month",
+ "provider",
+ "model",
+ "surface",
+ "paid_by"
+ ],
+ "description": "The bucket the rows are grouped by; a person may ask for any of the seven."
+ },
+ "rows": {
+ "type": "array",
+ "description": "One row per bucket, sorted by key. Empty when the window has no calls.",
+ "items": {
+ "type": "object",
+ "required": [
+ "key",
+ "calls",
+ "input_tokens",
+ "output_tokens",
+ "cached_tokens",
+ "cache_write_tokens",
+ "cost_usd",
+ "fee_usd",
+ "charged_usd",
+ "saved_usd"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "key": {
+ "type": "string",
+ "maxLength": 200,
+ "description": "The bucket's key: a day (YYYY-MM-DD), a week (its Monday), a month (YYYY-MM), a provider, a model, a surface or a payer; 'unknown' when the record has no such value."
+ },
+ "calls": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "input_tokens": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "The uncached input tokens."
+ },
+ "output_tokens": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "cached_tokens": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "The input tokens read from a provider cache."
+ },
+ "cache_write_tokens": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "The input tokens written to a provider cache."
+ },
+ "cost_usd": {
+ "type": "number",
+ "minimum": 0,
+ "description": "What the tokens cost at list prices."
+ },
+ "fee_usd": {
+ "type": "number",
+ "minimum": 0
+ },
+ "charged_usd": {
+ "type": "number",
+ "minimum": 0
+ },
+ "saved_usd": {
+ "type": "number",
+ "minimum": 0,
+ "description": "What the cache saved against the plain input price."
+ }
+ }
+ }
+ },
+ "totals": {
+ "$ref": "#/$defs/measure"
+ },
+ "by_paid_by": {
+ "type": "object",
+ "description": "What each way of paying cost over the same window; a payer with no calls is absent.",
+ "additionalProperties": false,
+ "properties": {
+ "own_key": {
+ "$ref": "#/$defs/measure"
+ },
+ "openvibe_key": {
+ "$ref": "#/$defs/measure"
+ },
+ "plan": {
+ "$ref": "#/$defs/measure"
+ },
+ "own_machine": {
+ "$ref": "#/$defs/measure"
+ },
+ "free_tier": {
+ "$ref": "#/$defs/measure"
+ },
+ "network_allowance": {
+ "$ref": "#/$defs/measure"
+ },
+ "org_key": {
+ "$ref": "#/$defs/measure"
+ }
+ }
+ },
+ "insights": {
+ "type": "array",
+ "description": "Two or three plain lines worked out from the numbers, one when the window has no calls; never an AI call.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "source": {
+ "type": "string",
+ "enum": [
+ "raw",
+ "rollups",
+ "raw+rollups"
+ ],
+ "description": "Which tables answered: raw records inside the 90-day retention, the roll-ups beyond it, or both."
+ }
+ },
+ "$defs": {
+ "measure": {
+ "type": "object",
+ "required": [
+ "calls",
+ "input_tokens",
+ "output_tokens",
+ "cached_tokens",
+ "cache_write_tokens",
+ "cost_usd",
+ "fee_usd",
+ "charged_usd",
+ "saved_usd"
+ ],
+ "additionalProperties": false,
+ "properties": {
+ "calls": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "input_tokens": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "The uncached input tokens."
+ },
+ "output_tokens": {
+ "type": "integer",
+ "minimum": 0
+ },
+ "cached_tokens": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "The input tokens read from a provider cache."
+ },
+ "cache_write_tokens": {
+ "type": "integer",
+ "minimum": 0,
+ "description": "The input tokens written to a provider cache."
+ },
+ "cost_usd": {
+ "type": "number",
+ "minimum": 0,
+ "description": "What the tokens cost at list prices."
+ },
+ "fee_usd": {
+ "type": "number",
+ "minimum": 0
+ },
+ "charged_usd": {
+ "type": "number",
+ "minimum": 0
+ },
+ "saved_usd": {
+ "type": "number",
+ "minimum": 0,
+ "description": "What the cache saved against the plain input price."
+ }
+ }
+ }
+ }
+ }
+ },
"bench.benchmark": {
"bench.benchmark": {
"version": "1.0.0",
"version": "1.0.0",
"owner": "bench",
"owner": "bench",
@@ -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.262.0",
- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Bench as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Codes as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Domains as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.MediaHub as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Play as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Quest as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Report as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Space as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Vision as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Work as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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.262.0",
- "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.262.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.263.0",
+ "description": "Routes of OpenVibe.Zone as the OpenVibe contracts describe them (openvibe-contracts 0.263.0): each operation lists the capabilities it performs; a token for the 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"
@@ -277599,6 +277599,271 @@ export interface ReportAiUsageMeResult {
@@ -277599,6 +277599,271 @@ export interface ReportAiUsageMeResult {
totals: {};
totals: {};
}
}
+/** [email protected] (owner: report) */
+/**
+ * report.ai-usage-me-result@2: the AI usage of one person (plan L41 R1). GET /api/v1/me/ai/usage answers for the person their session names and nobody else: the rows of one group (day, week, month, provider, model, surface or paid_by), the totals, what each way of paying cost, two or three plain lines worked out from the numbers, and the source that answered (raw records, the roll-ups, or both). v2 replaces v1's `usage` array and its `input`/`output`/`reasoning`/`cache_read`/`cache_write`/`list_cost_usd`/`cache_saved_usd` names with `rows` and the names the route answers: `input_tokens`, `output_tokens`, `cached_tokens`, `cache_write_tokens`, `cost_usd` and `saved_usd`. The route answers 401 signed out; the subject is the session's, never the query.
+ */
+export interface ReportAiUsageMeResultV2 {
+ /**
+ * The bucket the rows are grouped by; a person may ask for any of the seven.
+ */
+ group: "day" | "week" | "month" | "provider" | "model" | "surface" | "paid_by";
+ /**
+ * One row per bucket, sorted by key. Empty when the window has no calls.
+ */
+ rows: {
+ /**
+ * The bucket's key: a day (YYYY-MM-DD), a week (its Monday), a month (YYYY-MM), a provider, a model, a surface or a payer; 'unknown' when the record has no such value.
+ */
+ key: string;
+ calls: number;
+ /**
+ * The uncached input tokens.
+ */
+ input_tokens: number;
+ output_tokens: number;
+ /**
+ * The input tokens read from a provider cache.
+ */
+ cached_tokens: number;
+ /**
+ * The input tokens written to a provider cache.
+ */
+ cache_write_tokens: number;
+ /**
+ * What the tokens cost at list prices.
+ */
+ cost_usd: number;
+ fee_usd: number;
+ charged_usd: number;
+ /**
+ * What the cache saved against the plain input price.
+ */
+ saved_usd: number;
+ }[];
+ totals: {
+ calls: number;
+ /**
+ * The uncached input tokens.
+ */
+ input_tokens: number;
+ output_tokens: number;
+ /**
+ * The input tokens read from a provider cache.
+ */
+ cached_tokens: number;
+ /**
+ * The input tokens written to a provider cache.
+ */
+ cache_write_tokens: number;
+ /**
+ * What the tokens cost at list prices.
+ */
+ cost_usd: number;
+ fee_usd: number;
+ charged_usd: number;
+ /**
+ * What the cache saved against the plain input price.
+ */
+ saved_usd: number;
+ };
+ /**
+ * What each way of paying cost over the same window; a payer with no calls is absent.
+ */
+ by_paid_by: {
+ own_key?: {
+ calls: number;
+ /**
+ * The uncached input tokens.
+ */
+ input_tokens: number;
+ output_tokens: number;
+ /**
+ * The input tokens read from a provider cache.
+ */
+ cached_tokens: number;
+ /**
+ * The input tokens written to a provider cache.
+ */
+ cache_write_tokens: number;
+ /**
+ * What the tokens cost at list prices.
+ */
+ cost_usd: number;
+ fee_usd: number;
+ charged_usd: number;
+ /**
+ * What the cache saved against the plain input price.
+ */
+ saved_usd: number;
+ };
+ openvibe_key?: {
+ calls: number;
+ /**
+ * The uncached input tokens.
+ */
+ input_tokens: number;
+ output_tokens: number;
+ /**
+ * The input tokens read from a provider cache.
+ */
+ cached_tokens: number;
+ /**
+ * The input tokens written to a provider cache.
+ */
+ cache_write_tokens: number;
+ /**
+ * What the tokens cost at list prices.
+ */
+ cost_usd: number;
+ fee_usd: number;
+ charged_usd: number;
+ /**
+ * What the cache saved against the plain input price.
+ */
+ saved_usd: number;
+ };
+ plan?: {
+ calls: number;
+ /**
+ * The uncached input tokens.
+ */
+ input_tokens: number;
+ output_tokens: number;
+ /**
+ * The input tokens read from a provider cache.
+ */
+ cached_tokens: number;
+ /**
+ * The input tokens written to a provider cache.
+ */
+ cache_write_tokens: number;
+ /**
+ * What the tokens cost at list prices.
+ */
+ cost_usd: number;
+ fee_usd: number;
+ charged_usd: number;
+ /**
+ * What the cache saved against the plain input price.
+ */
+ saved_usd: number;
+ };
+ own_machine?: {
+ calls: number;
+ /**
+ * The uncached input tokens.
+ */
+ input_tokens: number;
+ output_tokens: number;
+ /**
+ * The input tokens read from a provider cache.
+ */
+ cached_tokens: number;
+ /**
+ * The input tokens written to a provider cache.
+ */
+ cache_write_tokens: number;
+ /**
+ * What the tokens cost at list prices.
+ */
+ cost_usd: number;
+ fee_usd: number;
+ charged_usd: number;
+ /**
+ * What the cache saved against the plain input price.
+ */
+ saved_usd: number;
+ };
+ free_tier?: {
+ calls: number;
+ /**
+ * The uncached input tokens.
+ */
+ input_tokens: number;
+ output_tokens: number;
+ /**
+ * The input tokens read from a provider cache.
+ */
+ cached_tokens: number;
+ /**
+ * The input tokens written to a provider cache.
+ */
+ cache_write_tokens: number;
+ /**
+ * What the tokens cost at list prices.
+ */
+ cost_usd: number;
+ fee_usd: number;
+ charged_usd: number;
+ /**
+ * What the cache saved against the plain input price.
+ */
+ saved_usd: number;
+ };
+ network_allowance?: {
+ calls: number;
+ /**
+ * The uncached input tokens.
+ */
+ input_tokens: number;
+ output_tokens: number;
+ /**
+ * The input tokens read from a provider cache.
+ */
+ cached_tokens: number;
+ /**
+ * The input tokens written to a provider cache.
+ */
+ cache_write_tokens: number;
+ /**
+ * What the tokens cost at list prices.
+ */
+ cost_usd: number;
+ fee_usd: number;
+ charged_usd: number;
+ /**
+ * What the cache saved against the plain input price.
+ */
+ saved_usd: number;
+ };
+ org_key?: {
+ calls: number;
+ /**
+ * The uncached input tokens.
+ */
+ input_tokens: number;
+ output_tokens: number;
+ /**
+ * The input tokens read from a provider cache.
+ */
+ cached_tokens: number;
+ /**
+ * The input tokens written to a provider cache.
+ */
+ cache_write_tokens: number;
+ /**
+ * What the tokens cost at list prices.
+ */
+ cost_usd: number;
+ fee_usd: number;
+ charged_usd: number;
+ /**
+ * What the cache saved against the plain input price.
+ */
+ saved_usd: number;
+ };
+ };
+ /**
+ * Two or three plain lines worked out from the numbers, one when the window has no calls; never an AI call.
+ */
+ insights: string[];
+ /**
+ * Which tables answered: raw records inside the 90-day retention, the roll-ups beyond it, or both.
+ */
+ source: "raw" | "rollups" | "raw+rollups";
+}
+
/** [email protected] (owner: bench) */
/** [email protected] (owner: bench) */
/**
/**
* bench.benchmark@1: a versioned, forkable benchmark on OpenVibe.Bench (spec 2026-10-30, stage B1). It holds the tasks, the judges, how they combine into one score, the limits a run may not pass, the default model and harness matrix, and the visibility of the set. A version is immutable once a run names it; a fork records its parent. Holdout tasks are hidden from everyone but the executor.
* bench.benchmark@1: a versioned, forkable benchmark on OpenVibe.Bench (spec 2026-10-30, stage B1). It holds the tasks, the judges, how they combine into one score, the limits a run may not pass, the default model and harness matrix, and the visibility of the set. A version is immutable once a run names it; a fork records its parent. Holdout tasks are hidden from everyone but the executor.
@@ -1,12 +1,12 @@
@@ -1,12 +1,12 @@
{
{
"name": "openvibe-contracts",
"name": "openvibe-contracts",
- "version": "0.262.0",
+ "version": "0.263.0",
"lockfileVersion": 3,
"lockfileVersion": 3,
"requires": true,
"requires": true,
"packages": {
"packages": {
"": {
"": {
"name": "openvibe-contracts",
"name": "openvibe-contracts",
- "version": "0.262.0",
+ "version": "0.263.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.262.0",
+ "version": "0.263.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",