openvibers/openvibe.contracts Commits

Contracts 0.143.0: a watch action can run the owner's personal agent (#99)

OP OpenVibers committed 11 Oct 2026 · 489ec3c2bf · 37 files, +1258 −131

`watch.watch@1`: a new action kind, `actor-agent` (`agent_id` and an optional `note`). It runs one of the watch owner's personal agents on OpenVibe.Actor (`actor.agent.run`, Contracts 0.140.0), with the firing as the run's input after the note. This closes the plan's loop, Watch → Actor, for personal agents. Fixtures: one valid action, one with a bad agent id.

Suite: 18697 checks passed. compat vs v0.142.0: no breaking changes.

Changes

ddiff --git a/CHANGELOG.md b/CHANGELOG.md
iindex afc8802f..3c549a1a 100644
---- a/CHANGELOG.md
++++ b/CHANGELOG.md
@@@ -4,6 +4,11 @@ All notable changes to `openvibe-contracts`. Releases are git tags (`vX.Y.Z`) th
from `https://codeload.github.com/OpenVibers/OpenVibe.Contracts/tar.gz/refs/tags/<tag>`. Before v0.30.0,
the notes were in the tag and commit messages (`git tag -n1`).
++## 0.143.0 — 2026-10-11
++
++- `watch.watch@1` (and the watch write schemas that list actions): an action of kind `actor-agent` runs one of the watch
++ owner's personal agents on OpenVibe.Actor (`actor.agent.run`) with the firing as its input after an optional note.
++
## 0.142.0 — 2026-10-11
- Games milestone M3 (scripted mods): `games.script.run` and the per-mod script bindings `games.players.read`,
ddiff --git a/contracts/watch/watch.v1.json b/contracts/watch/watch.v1.json
iindex 96ac5228..0f50b16c 100644
---- a/contracts/watch/watch.v1.json
++++ b/contracts/watch/watch.v1.json
@@@ -5,98 +5,672 @@
"description": "watch.watch@1: a user-defined persistent observation (plan T18). It names a source (a push event, a webhook, a conditional HTTP URL, a feed or API, a local Node probe, or an expensive Run check), how a value is extracted, how it is compared with the last observation, the condition that fires, the actions it wakes, its budget and its retention. Carrier preference is binding: an event or webhook source is used when one exists, then ETag/Last-Modified, then a feed, then an API, and browser polling through Run only when none works. A price or stock is 'as of' the observation, null when it stated none.",
"type": "object",
"additionalProperties": false,
-- "required": ["id", "owner", "status", "source", "extraction", "condition", "action", "created_at", "updated_at"],
++ "required": [
++ "id",
++ "owner",
++ "status",
++ "source",
++ "extraction",
++ "condition",
++ "action",
++ "created_at",
++ "updated_at"
++ ],
"properties": {
-- "id": { "type": "string", "pattern": "^wch_[0-9A-HJKMNP-TV-Z]{26}$" },
-- "project_id": { "type": ["string", "null"], "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$" },
-- "owner": { "type": "string", "description": "The acting person or agent the watch belongs to: usr_…, agt_… or svc:…." },
-- "name": { "type": "string", "minLength": 1, "maxLength": 120 },
-- "labels": { "type": "object", "additionalProperties": { "type": "string", "maxLength": 60 } },
-- "status": { "enum": ["active", "paused", "disabled", "failed"] },
-- "source": { "$ref": "#/$defs/source" },
-- "cadence": { "$ref": "#/$defs/cadence" },
-- "extraction": { "$ref": "#/$defs/extraction" },
-- "comparison": { "$ref": "#/$defs/comparison" },
-- "condition": { "$ref": "#/$defs/condition" },
-- "action": { "type": "array", "minItems": 1, "maxItems": 8, "items": { "$ref": "#/$defs/action" } },
-- "budget": { "$ref": "#/$defs/budget" },
-- "retention": { "$ref": "#/$defs/retention" },
-- "health": { "type": ["object", "null"], "additionalProperties": true },
-- "created_at": { "type": "string", "format": "date-time" },
-- "updated_at": { "type": "string", "format": "date-time" }
++ "id": {
++ "type": "string",
++ "pattern": "^wch_[0-9A-HJKMNP-TV-Z]{26}$"
++ },
++ "project_id": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$"
++ },
++ "owner": {
++ "type": "string",
++ "description": "The acting person or agent the watch belongs to: usr_…, agt_… or svc:…."
++ },
++ "name": {
++ "type": "string",
++ "minLength": 1,
++ "maxLength": 120
++ },
++ "labels": {
++ "type": "object",
++ "additionalProperties": {
++ "type": "string",
++ "maxLength": 60
++ }
++ },
++ "status": {
++ "enum": [
++ "active",
++ "paused",
++ "disabled",
++ "failed"
++ ]
++ },
++ "source": {
++ "$ref": "#/$defs/source"
++ },
++ "cadence": {
++ "$ref": "#/$defs/cadence"
++ },
++ "extraction": {
++ "$ref": "#/$defs/extraction"
++ },
++ "comparison": {
++ "$ref": "#/$defs/comparison"
++ },
++ "condition": {
++ "$ref": "#/$defs/condition"
++ },
++ "action": {
++ "type": "array",
++ "minItems": 1,
++ "maxItems": 8,
++ "items": {
++ "$ref": "#/$defs/action"
++ }
++ },
++ "budget": {
++ "$ref": "#/$defs/budget"
++ },
++ "retention": {
++ "$ref": "#/$defs/retention"
++ },
++ "health": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": true
++ },
++ "created_at": {
++ "type": "string",
++ "format": "date-time"
++ },
++ "updated_at": {
++ "type": "string",
++ "format": "date-time"
++ }
},
"$defs": {
"auth": {
"type": "object",
-- "required": ["mode"],
++ "required": [
++ "mode"
++ ],
"additionalProperties": false,
"properties": {
-- "mode": { "enum": ["none", "header", "bearer", "query"] },
-- "env": { "type": ["string", "null"], "pattern": "^WATCH_CRED_[A-Z0-9_]{2,60}$", "description": "The name of the environment variable holding the credential; Watch reads it by name at fetch time and never stores the value." },
-- "header": { "type": ["string", "null"] },
-- "param": { "type": ["string", "null"] }
++ "mode": {
++ "enum": [
++ "none",
++ "header",
++ "bearer",
++ "query"
++ ]
++ },
++ "env": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "pattern": "^WATCH_CRED_[A-Z0-9_]{2,60}$",
++ "description": "The name of the environment variable holding the credential; Watch reads it by name at fetch time and never stores the value."
++ },
++ "header": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "param": {
++ "type": [
++ "string",
++ "null"
++ ]
++ }
}
},
"source": {
"oneOf": [
-- { "type": "object", "required": ["kind"], "additionalProperties": false,
-- "properties": { "kind": { "const": "webhook" }, "endpoint": { "type": "string", "pattern": "^/internal/hooks/" } } },
-- { "type": "object", "required": ["kind", "pattern"], "additionalProperties": false,
-- "properties": { "kind": { "const": "event" }, "pattern": { "type": "string", "pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_*]+){1,}$" },
-- "filter": { "type": ["object", "null"], "additionalProperties": { "type": ["string", "number", "boolean", "null"] } } } },
-- { "type": "object", "required": ["kind", "url"], "additionalProperties": false,
-- "properties": { "kind": { "enum": ["http", "feed", "api"] }, "url": { "type": "string", "format": "uri", "pattern": "^https?://" },
-- "method": { "enum": ["GET", "HEAD"] }, "format": { "enum": ["rss", "atom", "json", null] },
-- "items_path": { "type": ["string", "null"] }, "fields": { "type": ["object", "null"], "additionalProperties": { "type": "string" } },
-- "auth": { "$ref": "#/$defs/auth" }, "headers": { "type": "object", "additionalProperties": { "type": "string" } },
-- "conditional": { "type": "boolean", "description": "Send If-None-Match / If-Modified-Since from the stored ETag/Last-Modified when the server gave one." } } },
-- { "type": "object", "required": ["kind", "node_id", "probe"], "additionalProperties": false,
-- "properties": { "kind": { "const": "node" }, "node_id": { "type": "string" }, "probe": { "type": "object", "additionalProperties": true } } },
-- { "type": "object", "required": ["kind", "runtime", "steps"], "additionalProperties": false,
-- "properties": { "kind": { "const": "run" }, "runtime": { "enum": ["browser", "code", "desktop"] },
-- "url": { "type": ["string", "null"], "format": "uri" }, "steps": { "type": "array", "minItems": 1, "items": { "type": "object", "additionalProperties": true } },
-- "workload": { "$ref": "../platform/workload-requirements.v1.json" } } }
++ {
++ "type": "object",
++ "required": [
++ "kind"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "webhook"
++ },
++ "endpoint": {
++ "type": "string",
++ "pattern": "^/internal/hooks/"
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "pattern"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "event"
++ },
++ "pattern": {
++ "type": "string",
++ "pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_*]+){1,}$"
++ },
++ "filter": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": {
++ "type": [
++ "string",
++ "number",
++ "boolean",
++ "null"
++ ]
++ }
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "url"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "enum": [
++ "http",
++ "feed",
++ "api"
++ ]
++ },
++ "url": {
++ "type": "string",
++ "format": "uri",
++ "pattern": "^https?://"
++ },
++ "method": {
++ "enum": [
++ "GET",
++ "HEAD"
++ ]
++ },
++ "format": {
++ "enum": [
++ "rss",
++ "atom",
++ "json",
++ null
++ ]
++ },
++ "items_path": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "fields": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": {
++ "type": "string"
++ }
++ },
++ "auth": {
++ "$ref": "#/$defs/auth"
++ },
++ "headers": {
++ "type": "object",
++ "additionalProperties": {
++ "type": "string"
++ }
++ },
++ "conditional": {
++ "type": "boolean",
++ "description": "Send If-None-Match / If-Modified-Since from the stored ETag/Last-Modified when the server gave one."
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "node_id",
++ "probe"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "node"
++ },
++ "node_id": {
++ "type": "string"
++ },
++ "probe": {
++ "type": "object",
++ "additionalProperties": true
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "runtime",
++ "steps"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "run"
++ },
++ "runtime": {
++ "enum": [
++ "browser",
++ "code",
++ "desktop"
++ ]
++ },
++ "url": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "format": "uri"
++ },
++ "steps": {
++ "type": "array",
++ "minItems": 1,
++ "items": {
++ "type": "object",
++ "additionalProperties": true
++ }
++ },
++ "workload": {
++ "$ref": "../platform/workload-requirements.v1.json"
++ }
++ }
++ }
]
},
"cadence": {
-- "type": ["object", "null"], "additionalProperties": false,
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": false,
"description": "Required for http/feed/api/node sources; null for event/webhook sources (they never poll).",
-- "properties": { "every_sec": { "type": "integer", "minimum": 30, "maximum": 2592000 }, "jitter_sec": { "type": "integer", "minimum": 0, "maximum": 3600 }, "timezone": { "type": ["string", "null"] } }
++ "properties": {
++ "every_sec": {
++ "type": "integer",
++ "minimum": 30,
++ "maximum": 2592000
++ },
++ "jitter_sec": {
++ "type": "integer",
++ "minimum": 0,
++ "maximum": 3600
++ },
++ "timezone": {
++ "type": [
++ "string",
++ "null"
++ ]
++ }
++ }
},
"extraction": {
-- "type": "object", "additionalProperties": false,
-- "properties": { "kind": { "enum": ["text", "html", "json", "regex", "css", "jsonpath", "ai"] },
-- "selector": { "type": ["string", "null"] }, "fields": { "type": ["object", "null"], "additionalProperties": { "type": "string" } },
-- "value_path": { "type": ["string", "null"] }, "ai": { "type": ["object", "null"], "additionalProperties": true } }
++ "type": "object",
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "enum": [
++ "text",
++ "html",
++ "json",
++ "regex",
++ "css",
++ "jsonpath",
++ "ai"
++ ]
++ },
++ "selector": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "fields": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": {
++ "type": "string"
++ }
++ },
++ "value_path": {
++ "type": [
++ "string",
++ "null"
++ ]
++ },
++ "ai": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": true
++ }
++ }
},
"comparison": {
-- "type": ["object", "null"], "additionalProperties": false,
-- "properties": { "mode": { "enum": ["changed", "threshold", "none"] }, "tolerance": { "type": ["number", "null"] }, "percent": { "type": ["number", "null"] } }
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "mode": {
++ "enum": [
++ "changed",
++ "threshold",
++ "none"
++ ]
++ },
++ "tolerance": {
++ "type": [
++ "number",
++ "null"
++ ]
++ },
++ "percent": {
++ "type": [
++ "number",
++ "null"
++ ]
++ }
++ }
},
"condition": {
-- "type": "object", "additionalProperties": false,
-- "properties": { "op": { "enum": ["changed", "gt", "gte", "lt", "lte", "eq", "ne", "contains", "matches", "exists", "absent"] },
-- "value": { "type": ["string", "number", "null"] }, "for_sec": { "type": ["integer", "null"], "minimum": 0 } }
-- },
-- "action": { "oneOf": [
-- { "type": "object", "required": ["kind"], "additionalProperties": false,
-- "properties": { "kind": { "const": "notification" }, "category": { "enum": ["service", "social", "system"] }, "priority": { "enum": ["low", "normal", "high", "critical"] } } },
-- { "type": "object", "required": ["kind", "event_type"], "additionalProperties": false,
-- "properties": { "kind": { "const": "event" }, "event_type": { "type": "string" }, "payload": { "type": ["object", "null"], "additionalProperties": true } } },
-- { "type": "object", "required": ["kind", "url", "secret_env"], "additionalProperties": false,
-- "properties": { "kind": { "const": "webhook" }, "url": { "type": "string", "format": "uri", "pattern": "^https://" }, "secret_env": { "type": "string", "pattern": "^WATCH_HOOK_[A-Z0-9_]{2,60}$" } } },
-- { "type": "object", "required": ["kind", "brief"], "additionalProperties": false,
-- "properties": { "kind": { "const": "actor-task" }, "brief": { "type": "string", "maxLength": 8000 }, "budget_usd": { "type": ["number", "null"] } } },
-- { "type": "object", "required": ["kind", "repo", "brief"], "additionalProperties": false,
-- "properties": { "kind": { "const": "codes-run" }, "repo": { "type": "string" }, "brief": { "type": "string", "maxLength": 8000 } } },
-- { "type": "object", "required": ["kind", "runtime", "command"], "additionalProperties": false,
-- "properties": { "kind": { "const": "run-job" }, "runtime": { "enum": ["function", "code", "browser", "linux"] }, "command": { "type": "string" }, "workload": { "type": ["object", "null"], "additionalProperties": true } } } ] },
++ "type": "object",
++ "additionalProperties": false,
++ "properties": {
++ "op": {
++ "enum": [
++ "changed",
++ "gt",
++ "gte",
++ "lt",
++ "lte",
++ "eq",
++ "ne",
++ "contains",
++ "matches",
++ "exists",
++ "absent"
++ ]
++ },
++ "value": {
++ "type": [
++ "string",
++ "number",
++ "null"
++ ]
++ },
++ "for_sec": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 0
++ }
++ }
++ },
++ "action": {
++ "oneOf": [
++ {
++ "type": "object",
++ "required": [
++ "kind"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "notification"
++ },
++ "category": {
++ "enum": [
++ "service",
++ "social",
++ "system"
++ ]
++ },
++ "priority": {
++ "enum": [
++ "low",
++ "normal",
++ "high",
++ "critical"
++ ]
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "event_type"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "event"
++ },
++ "event_type": {
++ "type": "string"
++ },
++ "payload": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": true
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "url",
++ "secret_env"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "webhook"
++ },
++ "url": {
++ "type": "string",
++ "format": "uri",
++ "pattern": "^https://"
++ },
++ "secret_env": {
++ "type": "string",
++ "pattern": "^WATCH_HOOK_[A-Z0-9_]{2,60}$"
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "brief"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "actor-task"
++ },
++ "brief": {
++ "type": "string",
++ "maxLength": 8000
++ },
++ "budget_usd": {
++ "type": [
++ "number",
++ "null"
++ ]
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "agent_id"
++ ],
++ "additionalProperties": false,
++ "description": "Run one of the watch owner's personal agents on OpenVibe.Actor (actor.agent.run, Actor 0.140.0 contracts): the firing is the run's input, after the optional note. The agent must belong to the watch's owner; its own budgets and daily cap apply.",
++ "properties": {
++ "kind": {
++ "const": "actor-agent"
++ },
++ "agent_id": {
++ "type": "string",
++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
++ },
++ "note": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 2000
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "repo",
++ "brief"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "codes-run"
++ },
++ "repo": {
++ "type": "string"
++ },
++ "brief": {
++ "type": "string",
++ "maxLength": 8000
++ }
++ }
++ },
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "runtime",
++ "command"
++ ],
++ "additionalProperties": false,
++ "properties": {
++ "kind": {
++ "const": "run-job"
++ },
++ "runtime": {
++ "enum": [
++ "function",
++ "code",
++ "browser",
++ "linux"
++ ]
++ },
++ "command": {
++ "type": "string"
++ },
++ "workload": {
++ "type": [
++ "object",
++ "null"
++ ],
++ "additionalProperties": true
++ }
++ }
++ }
++ ]
++ },
"budget": {
-- "type": "object", "additionalProperties": false,
-- "properties": { "checks_per_day": { "type": ["integer", "null"], "minimum": 1 }, "usd_per_month": { "type": ["number", "null"], "minimum": 0 },
-- "max_runtime_ms": { "type": ["integer", "null"], "minimum": 100 }, "max_bytes": { "type": ["integer", "null"], "minimum": 1024 } }
++ "type": "object",
++ "additionalProperties": false,
++ "properties": {
++ "checks_per_day": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ },
++ "usd_per_month": {
++ "type": [
++ "number",
++ "null"
++ ],
++ "minimum": 0
++ },
++ "max_runtime_ms": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 100
++ },
++ "max_bytes": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1024
++ }
++ }
},
-- "retention": { "type": "object", "additionalProperties": false,
-- "properties": { "observations_days": { "type": ["integer", "null"], "minimum": 1 }, "keep_snapshots": { "type": "boolean" } } }
++ "retention": {
++ "type": "object",
++ "additionalProperties": false,
++ "properties": {
++ "observations_days": {
++ "type": [
++ "integer",
++ "null"
++ ],
++ "minimum": 1
++ },
++ "keep_snapshots": {
++ "type": "boolean"
++ }
++ }
++ }
}
}
ddiff --git a/fixtures/watch.watch/invalid/actor-agent-bad-id.json b/fixtures/watch.watch/invalid/actor-agent-bad-id.json
nnew file mode 100644
iindex 00000000..867ef072
---- /dev/null
++++ b/fixtures/watch.watch/invalid/actor-agent-bad-id.json
@@@ -0,0 +1,67 @@
++{
++ "id": "wch_01JAB2C3D4E5F6G7H8J9K0MNPQ",
++ "project_id": null,
++ "owner": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR",
++ "name": "Steam Deck OLED price",
++ "labels": {
++ "topic": "hardware"
++ },
++ "status": "active",
++ "source": {
++ "kind": "api",
++ "url": "https://openvibe.deals/api/offers/steam-deck-oled",
++ "method": "GET",
++ "format": "json",
++ "items_path": "offers",
++ "fields": {
++ "price": "price",
++ "currency": "currency"
++ },
++ "auth": {
++ "mode": "none"
++ },
++ "headers": {},
++ "conditional": true
++ },
++ "cadence": {
++ "every_sec": 3600,
++ "jitter_sec": 60,
++ "timezone": null
++ },
++ "extraction": {
++ "kind": "jsonpath",
++ "selector": null,
++ "fields": null,
++ "value_path": "$.offers[0].price",
++ "ai": null
++ },
++ "comparison": {
++ "mode": "threshold",
++ "tolerance": 0.01,
++ "percent": null
++ },
++ "condition": {
++ "op": "lt",
++ "value": 199,
++ "for_sec": null
++ },
++ "action": [
++ {
++ "kind": "actor-agent",
++ "agent_id": "agent-1"
++ }
++ ],
++ "budget": {
++ "checks_per_day": 100,
++ "usd_per_month": 0,
++ "max_runtime_ms": 20000,
++ "max_bytes": 5242880
++ },
++ "retention": {
++ "observations_days": 90,
++ "keep_snapshots": false
++ },
++ "health": null,
++ "created_at": "2026-10-05T08:00:00.000Z",
++ "updated_at": "2026-10-05T08:00:00.000Z"
++}
ddiff --git a/fixtures/watch.watch/valid/actor-agent.json b/fixtures/watch.watch/valid/actor-agent.json
nnew file mode 100644
iindex 00000000..f16f9662
---- /dev/null
++++ b/fixtures/watch.watch/valid/actor-agent.json
@@@ -0,0 +1,71 @@
++{
++ "id": "wch_01JAB2C3D4E5F6G7H8J9K0MNPQ",
++ "project_id": null,
++ "owner": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR",
++ "name": "Steam Deck OLED price",
++ "labels": {
++ "topic": "hardware"
++ },
++ "status": "active",
++ "source": {
++ "kind": "api",
++ "url": "https://openvibe.deals/api/offers/steam-deck-oled",
++ "method": "GET",
++ "format": "json",
++ "items_path": "offers",
++ "fields": {
++ "price": "price",
++ "currency": "currency"
++ },
++ "auth": {
++ "mode": "none"
++ },
++ "headers": {},
++ "conditional": true
++ },
++ "cadence": {
++ "every_sec": 3600,
++ "jitter_sec": 60,
++ "timezone": null
++ },
++ "extraction": {
++ "kind": "jsonpath",
++ "selector": null,
++ "fields": null,
++ "value_path": "$.offers[0].price",
++ "ai": null
++ },
++ "comparison": {
++ "mode": "threshold",
++ "tolerance": 0.01,
++ "percent": null
++ },
++ "condition": {
++ "op": "lt",
++ "value": 199,
++ "for_sec": null
++ },
++ "action": [
++ {
++ "kind": "notification"
++ },
++ {
++ "kind": "actor-agent",
++ "agent_id": "agt_01M4C49CW34NGX7TR2TNRVFWNW",
++ "note": "Summarise what changed and whether it matters to me."
++ }
++ ],
++ "budget": {
++ "checks_per_day": 100,
++ "usd_per_month": 0,
++ "max_runtime_ms": 20000,
++ "max_bytes": 5242880
++ },
++ "retention": {
++ "observations_days": 90,
++ "keep_snapshots": false
++ },
++ "health": null,
++ "created_at": "2026-10-05T08:00:00.000Z",
++ "updated_at": "2026-10-05T08:00:00.000Z"
++}
ddiff --git a/generated/json-schema/bundle.json b/generated/json-schema/bundle.json
iindex 486537a3..5c4fba85 100644
---- a/generated/json-schema/bundle.json
++++ b/generated/json-schema/bundle.json
@@@ -47185,6 +47185,31 @@
}
}
},
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "agent_id"
++ ],
++ "additionalProperties": false,
++ "description": "Run one of the watch owner's personal agents on OpenVibe.Actor (actor.agent.run, Actor 0.140.0 contracts): the firing is the run's input, after the optional note. The agent must belong to the watch's owner; its own budgets and daily cap apply.",
++ "properties": {
++ "kind": {
++ "const": "actor-agent"
++ },
++ "agent_id": {
++ "type": "string",
++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
++ },
++ "note": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 2000
++ }
++ }
++ },
{
"type": "object",
"required": [
ddiff --git a/generated/openapi/actor.json b/generated/openapi/actor.json
iindex 1241e2f1..84af2351 100644
---- a/generated/openapi/actor.json
++++ b/generated/openapi/actor.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Actor API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/ai.json b/generated/openapi/ai.json
iindex 9ce5e82f..1afd6ec3 100644
---- a/generated/openapi/ai.json
++++ b/generated/openapi/ai.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.AI API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/billing.json b/generated/openapi/billing.json
iindex e09c8584..868a06fb 100644
---- a/generated/openapi/billing.json
++++ b/generated/openapi/billing.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Billing API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/blog.json b/generated/openapi/blog.json
iindex 60dc19d1..a6185bb0 100644
---- a/generated/openapi/blog.json
++++ b/generated/openapi/blog.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Blog API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/bot.json b/generated/openapi/bot.json
iindex 4d20322f..6fbec4f6 100644
---- a/generated/openapi/bot.json
++++ b/generated/openapi/bot.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Bot API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/chat.json b/generated/openapi/chat.json
iindex c3311ebc..afb7e6bb 100644
---- a/generated/openapi/chat.json
++++ b/generated/openapi/chat.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Chat API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/community.json b/generated/openapi/community.json
iindex a2c48f52..9dc278e3 100644
---- a/generated/openapi/community.json
++++ b/generated/openapi/community.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Community API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/coupons.json b/generated/openapi/coupons.json
iindex 550cfc37..e52aca88 100644
---- a/generated/openapi/coupons.json
++++ b/generated/openapi/coupons.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Coupons API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/deals.json b/generated/openapi/deals.json
iindex af13b336..31f4fbbd 100644
---- a/generated/openapi/deals.json
++++ b/generated/openapi/deals.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Deals API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/events.json b/generated/openapi/events.json
iindex 4790a731..8588160d 100644
---- a/generated/openapi/events.json
++++ b/generated/openapi/events.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Events API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/food.json b/generated/openapi/food.json
iindex c1516e95..5aff48f5 100644
---- a/generated/openapi/food.json
++++ b/generated/openapi/food.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Food API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/games.json b/generated/openapi/games.json
iindex db95a0f4..89a38169 100644
---- a/generated/openapi/games.json
++++ b/generated/openapi/games.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Games API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/host.json b/generated/openapi/host.json
iindex 01515655..e6b207fc 100644
---- a/generated/openapi/host.json
++++ b/generated/openapi/host.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Host API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/inventory.json b/generated/openapi/inventory.json
iindex 1e93367d..06282119 100644
---- a/generated/openapi/inventory.json
++++ b/generated/openapi/inventory.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Inventory API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/live.json b/generated/openapi/live.json
iindex cfe0b602..6437a57f 100644
---- a/generated/openapi/live.json
++++ b/generated/openapi/live.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Live API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/media.json b/generated/openapi/media.json
iindex 4582a205..993edb58 100644
---- a/generated/openapi/media.json
++++ b/generated/openapi/media.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Media API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/network.json b/generated/openapi/network.json
iindex f217295b..227361f0 100644
---- a/generated/openapi/network.json
++++ b/generated/openapi/network.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Network API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/news.json b/generated/openapi/news.json
iindex f0cbacd8..3753646d 100644
---- a/generated/openapi/news.json
++++ b/generated/openapi/news.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.News API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/openre.json b/generated/openapi/openre.json
iindex 39753af3..eceabdd6 100644
---- a/generated/openapi/openre.json
++++ b/generated/openapi/openre.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenRestream API",
-- "version": "0.142.0",
-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/reviews.json b/generated/openapi/reviews.json
iindex f9d04439..b65eea06 100644
---- a/generated/openapi/reviews.json
++++ b/generated/openapi/reviews.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Reviews API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/run.json b/generated/openapi/run.json
iindex 23d4d39d..652759e6 100644
---- a/generated/openapi/run.json
++++ b/generated/openapi/run.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Run API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/search.json b/generated/openapi/search.json
iindex 06c53642..937601c0 100644
---- a/generated/openapi/search.json
++++ b/generated/openapi/search.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Search API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/services.json b/generated/openapi/services.json
iindex 154113b9..49e5e12e 100644
---- a/generated/openapi/services.json
++++ b/generated/openapi/services.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Services API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/sources.json b/generated/openapi/sources.json
iindex 92090819..00f2b657 100644
---- a/generated/openapi/sources.json
++++ b/generated/openapi/sources.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Sources API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tips.json b/generated/openapi/tips.json
iindex 77b5ff22..6347eebb 100644
---- a/generated/openapi/tips.json
++++ b/generated/openapi/tips.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tips API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/tools.json b/generated/openapi/tools.json
iindex 8522acc7..50c31ca0 100644
---- a/generated/openapi/tools.json
++++ b/generated/openapi/tools.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Tools API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/trade.json b/generated/openapi/trade.json
iindex 41f03ce2..c280ab02 100644
---- a/generated/openapi/trade.json
++++ b/generated/openapi/trade.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Trade API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/vip.json b/generated/openapi/vip.json
iindex 48c33043..23ea5fbd 100644
---- a/generated/openapi/vip.json
++++ b/generated/openapi/vip.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.VIP API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/openapi/watch.json b/generated/openapi/watch.json
iindex 763cd86f..f2723dea 100644
---- a/generated/openapi/watch.json
++++ b/generated/openapi/watch.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Watch API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the 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"
@@@ -2084,6 +2084,31 @@
}
}
},
++ {
++ "type": "object",
++ "required": [
++ "kind",
++ "agent_id"
++ ],
++ "additionalProperties": false,
++ "description": "Run one of the watch owner's personal agents on OpenVibe.Actor (actor.agent.run, Actor 0.140.0 contracts): the firing is the run's input, after the optional note. The agent must belong to the watch's owner; its own budgets and daily cap apply.",
++ "properties": {
++ "kind": {
++ "const": "actor-agent"
++ },
++ "agent_id": {
++ "type": "string",
++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
++ },
++ "note": {
++ "type": [
++ "string",
++ "null"
++ ],
++ "maxLength": 2000
++ }
++ }
++ },
{
"type": "object",
"required": [
ddiff --git a/generated/openapi/wiki.json b/generated/openapi/wiki.json
iindex 8ac268ab..65b8a790 100644
---- a/generated/openapi/wiki.json
++++ b/generated/openapi/wiki.json
@@@ -3,8 +3,8 @@
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"info": {
"title": "OpenVibe.Wiki API",
-- "version": "0.142.0",
-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.142.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
++ "version": "0.143.0",
++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.143.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
"license": {
"name": "MIT",
"identifier": "MIT"
ddiff --git a/generated/typescript/index.d.ts b/generated/typescript/index.d.ts
iindex 27506f25..9b0271dd 100644
---- a/generated/typescript/index.d.ts
++++ b/generated/typescript/index.d.ts
@@@ -46491,6 +46491,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46529,6 +46534,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46566,6 +46576,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46605,6 +46620,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46642,6 +46662,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46679,6 +46704,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46718,6 +46748,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46755,6 +46790,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46792,6 +46832,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46829,6 +46874,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46868,6 +46918,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46905,6 +46960,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46942,6 +47002,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -46979,6 +47044,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47016,6 +47086,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47055,6 +47130,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47092,6 +47172,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47129,6 +47214,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47166,6 +47256,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47203,6 +47298,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47240,6 +47340,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47279,6 +47384,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47316,6 +47426,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47353,6 +47468,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47390,6 +47510,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47427,6 +47552,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47464,6 +47594,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47501,6 +47636,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47540,6 +47680,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47577,6 +47722,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47614,6 +47764,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47651,6 +47806,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47688,6 +47848,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47725,6 +47890,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47762,6 +47932,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47799,6 +47974,11 @@ export interface Watch {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47959,6 +48139,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -47997,6 +48182,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48034,6 +48224,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48073,6 +48268,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48110,6 +48310,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48147,6 +48352,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48186,6 +48396,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48223,6 +48438,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48260,6 +48480,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48297,6 +48522,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48336,6 +48566,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48373,6 +48608,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48410,6 +48650,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48447,6 +48692,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48484,6 +48734,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48523,6 +48778,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48560,6 +48820,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48597,6 +48862,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48634,6 +48904,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48671,6 +48946,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48708,6 +48988,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48747,6 +49032,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48784,6 +49074,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48821,6 +49116,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48858,6 +49158,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48895,6 +49200,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48932,6 +49242,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -48969,6 +49284,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -49008,6 +49328,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -49045,6 +49370,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -49082,6 +49412,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -49119,6 +49454,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -49156,6 +49496,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -49193,6 +49538,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -49230,6 +49580,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
@@@ -49267,6 +49622,11 @@ export interface WatchRequest {
brief: string;
budget_usd?: number | null;
}
++ | {
++ kind: "actor-agent";
++ agent_id: string;
++ note?: string | null;
++ }
| {
kind: "codes-run";
repo: string;
ddiff --git a/package.json b/package.json
iindex 5c3d3d1d..bec625cc 100644
---- a/package.json
++++ b/package.json
@@@ -1,6 +1,6 @@
{
"name": "openvibe-contracts",
-- "version": "0.142.0",
++ "version": "0.143.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",