openvibers/openvibe.contracts Commits
Contracts 0.140.0: actor.agent.manage and actor.agent.run (personal agents) (#96)
Changes
@@@ -4,6 +4,13 @@ All notable changes to `openvibe-contracts`. Releases are git tags (`vX.Y.Z`) thfrom `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.140.0 — 2026-10-11++++- `actor.agent.manage` and `actor.agent.run` (active), with `actor.agent-manage-request@1`, `actor.agent-manage-result@1`++ and `actor.agent-run-request@1`: OpenVibe.Actor's personal agents under `/api/v1/me/agents` (standing instructions,++ a memory the person controls, a schedule; every run an ordinary task, `platform.task@1`). `/api/v1/agents` stays the++ public catalog of agent systems (`actor.agent.read`).++## 0.139.0 — 2026-10-11- `host.catalog.manage` (active, staff only) with `host.catalog-manage-request@1` and `host.catalog-manage-result@1`:nnew file mode 100644@@@ -0,0 +1,88 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/actor/agent-manage-request.v1.json",++ "title": "ActorAgentManageRequest",++ "description": "actor.agent-manage-request@1: bodies of actor.agent.manage on OpenVibe.Actor. POST /api/v1/me/agents { name, instructions, mode?, budget_per_run_usd?, daily_runs_max?, schedule?, schedule_at?, schedule_dow?, status? } creates a personal agent (10 per person: 429 actor.agent.limit); PATCH /api/v1/me/agents/:id takes any subset. POST /api/v1/me/agents/:id/memory { text } adds a note (1–1000 characters; 50 notes, the oldest agent-written note goes first, a person's note never automatically) and PATCH /api/v1/me/agents/:id/memory/:mem { text } edits one. Unknown fields are 422 actor.agent.invalid; another person's agent is 404 actor.agent.not_found.",++ "anyOf": [++ {++ "type": "object",++ "additionalProperties": false,++ "properties": {++ "name": {++ "type": "string",++ "minLength": 1,++ "maxLength": 60++ },++ "instructions": {++ "type": "string",++ "minLength": 1,++ "maxLength": 4000++ },++ "mode": {++ "enum": [++ "balanced",++ "cheapest",++ "best",++ "fastest",++ "private"++ ]++ },++ "budget_per_run_usd": {++ "type": "number",++ "exclusiveMinimum": 0,++ "description": "At most the person's per-task allowance."++ },++ "daily_runs_max": {++ "type": "integer",++ "minimum": 1,++ "maximum": 24++ },++ "schedule": {++ "enum": [++ "off",++ "hourly",++ "daily",++ "weekly"++ ]++ },++ "schedule_at": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",++ "description": "HH:MM UTC, for daily and weekly."++ },++ "schedule_dow": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0,++ "maximum": 6,++ "description": "0 is Sunday; for weekly."++ },++ "status": {++ "enum": [++ "active",++ "paused"++ ]++ }++ }++ },++ {++ "type": "object",++ "additionalProperties": false,++ "required": [++ "text"++ ],++ "properties": {++ "text": {++ "type": "string",++ "minLength": 1,++ "maxLength": 1000++ }++ }++ }++ ]++}nnew file mode 100644@@@ -0,0 +1,304 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/actor/agent-manage-result.v1.json",++ "title": "ActorAgentManageResult",++ "description": "actor.agent-manage-result@1: GET /api/v1/me/agents → { agents }; an agent (create 201, read, update); GET …/memory → { memory } (newest first); a note (create 201, update). DELETE answers 204 with no body.",++ "anyOf": [++ {++ "type": "object",++ "required": [++ "agents"++ ],++ "properties": {++ "agents": {++ "type": "array",++ "items": {++ "type": "object",++ "required": [++ "id",++ "name",++ "instructions",++ "mode",++ "schedule",++ "status"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "owner": {++ "type": "string"++ },++ "name": {++ "type": "string",++ "minLength": 1,++ "maxLength": 60++ },++ "instructions": {++ "type": "string",++ "minLength": 1,++ "maxLength": 4000++ },++ "mode": {++ "enum": [++ "balanced",++ "cheapest",++ "best",++ "fastest",++ "private"++ ]++ },++ "budget_per_run_usd": {++ "type": "number",++ "exclusiveMinimum": 0,++ "description": "At most the person's per-task allowance."++ },++ "daily_runs_max": {++ "type": "integer",++ "minimum": 1,++ "maximum": 24++ },++ "schedule": {++ "enum": [++ "off",++ "hourly",++ "daily",++ "weekly"++ ]++ },++ "schedule_at": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",++ "description": "HH:MM UTC, for daily and weekly."++ },++ "schedule_dow": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0,++ "maximum": 6,++ "description": "0 is Sunday; for weekly."++ },++ "status": {++ "enum": [++ "active",++ "paused"++ ]++ },++ "next_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_skip_reason": {++ "type": [++ "string",++ "null"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ }++ }++ }++ },++ {++ "type": "object",++ "required": [++ "memory"++ ],++ "properties": {++ "memory": {++ "type": "array",++ "items": {++ "type": "object",++ "required": [++ "id",++ "text",++ "origin"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "agent_id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "text": {++ "type": "string"++ },++ "origin": {++ "enum": [++ "person",++ "agent"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ }++ }++ }++ },++ {++ "type": "object",++ "required": [++ "id",++ "name",++ "instructions",++ "mode",++ "schedule",++ "status"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "owner": {++ "type": "string"++ },++ "name": {++ "type": "string",++ "minLength": 1,++ "maxLength": 60++ },++ "instructions": {++ "type": "string",++ "minLength": 1,++ "maxLength": 4000++ },++ "mode": {++ "enum": [++ "balanced",++ "cheapest",++ "best",++ "fastest",++ "private"++ ]++ },++ "budget_per_run_usd": {++ "type": "number",++ "exclusiveMinimum": 0,++ "description": "At most the person's per-task allowance."++ },++ "daily_runs_max": {++ "type": "integer",++ "minimum": 1,++ "maximum": 24++ },++ "schedule": {++ "enum": [++ "off",++ "hourly",++ "daily",++ "weekly"++ ]++ },++ "schedule_at": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",++ "description": "HH:MM UTC, for daily and weekly."++ },++ "schedule_dow": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0,++ "maximum": 6,++ "description": "0 is Sunday; for weekly."++ },++ "status": {++ "enum": [++ "active",++ "paused"++ ]++ },++ "next_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_skip_reason": {++ "type": [++ "string",++ "null"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ },++ {++ "type": "object",++ "required": [++ "id",++ "text",++ "origin"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "agent_id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "text": {++ "type": "string"++ },++ "origin": {++ "enum": [++ "person",++ "agent"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ }++ ]++}nnew file mode 100644@@@ -0,0 +1,14 @@++{++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/actor/agent-run-request.v1.json",++ "title": "ActorAgentRunRequest",++ "description": "actor.agent-run-request@1: POST /api/v1/me/agents/:id/run { input? } runs the agent now as an ordinary Actor task (its instructions, then its memory, then the input), under the same free tier, budget and daily limits as the person's own tasks, plus the agent's daily_runs_max (429 actor.agent.limit). Answered 201 with the task (platform.task@1). GET /api/v1/me/agents/:id/runs lists its tasks, newest first.",++ "type": "object",++ "additionalProperties": false,++ "properties": {++ "input": {++ "type": "string",++ "maxLength": 8000++ }++ }++}@@@ -6360,6 +6360,33 @@"status": "active","adr": "ADR-044"},++ {++ "id": "actor.agent-manage-request",++ "version": "1.0.0",++ "owner": "actor",++ "schema": "actor/agent-manage-request.v1.json",++ "visibility": "public",++ "compatibility": "backward",++ "status": "active"++ },++ {++ "id": "actor.agent-manage-result",++ "version": "1.0.0",++ "owner": "actor",++ "schema": "actor/agent-manage-result.v1.json",++ "visibility": "public",++ "compatibility": "backward",++ "status": "active"++ },++ {++ "id": "actor.agent-run-request",++ "version": "1.0.0",++ "owner": "actor",++ "schema": "actor/agent-run-request.v1.json",++ "visibility": "public",++ "compatibility": "backward",++ "status": "active"++ },{"id": "actor.task-event","version": "1.0.0",nnew file mode 100644@@@ -0,0 +1,3 @@++{++ "schedule_at": "7:30pm"++}nnew file mode 100644@@@ -0,0 +1,3 @@++{++ "text": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"++}nnew file mode 100644@@@ -0,0 +1,4 @@++{++ "name": "x",++ "priority": 1++}nnew file mode 100644@@@ -0,0 +1,6 @@++{++ "name": "Morning briefing",++ "instructions": "Summarise what shipped on OpenVibe yesterday in five bullets.",++ "schedule": "daily",++ "schedule_at": "07:30"++}nnew file mode 100644@@@ -0,0 +1,3 @@++{++ "text": "I prefer bullet points."++}nnew file mode 100644@@@ -0,0 +1,3 @@++{++ "status": "paused"++}nnew file mode 100644@@@ -0,0 +1,9 @@++{++ "memory": [++ {++ "id": "mem_01M4C49CWJCFYGJS3T7NFZFQYX",++ "text": "x",++ "origin": "model"++ }++ ]++}nnew file mode 100644@@@ -0,0 +1 @@++{}nnew file mode 100644@@@ -0,0 +1,13 @@++{++ "agents": [++ {++ "id": "agt_01M4C49CW34NGX7TR2TNRVFWNW",++ "name": "Morning briefing",++ "instructions": "Summarise.",++ "mode": "balanced",++ "schedule": "daily",++ "schedule_at": "07:30",++ "status": "active"++ }++ ]++}nnew file mode 100644@@@ -0,0 +1,9 @@++{++ "memory": [++ {++ "id": "mem_01M4C49CWJCFYGJS3T7NFZFQYX",++ "text": "I prefer bullet points.",++ "origin": "person"++ }++ ]++}nnew file mode 100644@@@ -0,0 +1,4 @@++{++ "input": "x",++ "agent": "openai"++}nnew file mode 100644@@@ -0,0 +1,3 @@++{++ "input": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"++}nnew file mode 100644@@@ -0,0 +1 @@++{}nnew file mode 100644@@@ -0,0 +1,3 @@++{++ "input": "Focus on Live."++}@@@ -73689,6 +73689,427 @@]}},++ "actor.agent-manage-request": {++ "version": "1.0.0",++ "owner": "actor",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/actor/agent-manage-request.v1.json",++ "title": "ActorAgentManageRequest",++ "description": "actor.agent-manage-request@1: bodies of actor.agent.manage on OpenVibe.Actor. POST /api/v1/me/agents { name, instructions, mode?, budget_per_run_usd?, daily_runs_max?, schedule?, schedule_at?, schedule_dow?, status? } creates a personal agent (10 per person: 429 actor.agent.limit); PATCH /api/v1/me/agents/:id takes any subset. POST /api/v1/me/agents/:id/memory { text } adds a note (1–1000 characters; 50 notes, the oldest agent-written note goes first, a person's note never automatically) and PATCH /api/v1/me/agents/:id/memory/:mem { text } edits one. Unknown fields are 422 actor.agent.invalid; another person's agent is 404 actor.agent.not_found.",++ "anyOf": [++ {++ "type": "object",++ "additionalProperties": false,++ "properties": {++ "name": {++ "type": "string",++ "minLength": 1,++ "maxLength": 60++ },++ "instructions": {++ "type": "string",++ "minLength": 1,++ "maxLength": 4000++ },++ "mode": {++ "enum": [++ "balanced",++ "cheapest",++ "best",++ "fastest",++ "private"++ ]++ },++ "budget_per_run_usd": {++ "type": "number",++ "exclusiveMinimum": 0,++ "description": "At most the person's per-task allowance."++ },++ "daily_runs_max": {++ "type": "integer",++ "minimum": 1,++ "maximum": 24++ },++ "schedule": {++ "enum": [++ "off",++ "hourly",++ "daily",++ "weekly"++ ]++ },++ "schedule_at": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",++ "description": "HH:MM UTC, for daily and weekly."++ },++ "schedule_dow": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0,++ "maximum": 6,++ "description": "0 is Sunday; for weekly."++ },++ "status": {++ "enum": [++ "active",++ "paused"++ ]++ }++ }++ },++ {++ "type": "object",++ "additionalProperties": false,++ "required": [++ "text"++ ],++ "properties": {++ "text": {++ "type": "string",++ "minLength": 1,++ "maxLength": 1000++ }++ }++ }++ ]++ }++ },++ "actor.agent-manage-result": {++ "version": "1.0.0",++ "owner": "actor",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/actor/agent-manage-result.v1.json",++ "title": "ActorAgentManageResult",++ "description": "actor.agent-manage-result@1: GET /api/v1/me/agents → { agents }; an agent (create 201, read, update); GET …/memory → { memory } (newest first); a note (create 201, update). DELETE answers 204 with no body.",++ "anyOf": [++ {++ "type": "object",++ "required": [++ "agents"++ ],++ "properties": {++ "agents": {++ "type": "array",++ "items": {++ "type": "object",++ "required": [++ "id",++ "name",++ "instructions",++ "mode",++ "schedule",++ "status"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "owner": {++ "type": "string"++ },++ "name": {++ "type": "string",++ "minLength": 1,++ "maxLength": 60++ },++ "instructions": {++ "type": "string",++ "minLength": 1,++ "maxLength": 4000++ },++ "mode": {++ "enum": [++ "balanced",++ "cheapest",++ "best",++ "fastest",++ "private"++ ]++ },++ "budget_per_run_usd": {++ "type": "number",++ "exclusiveMinimum": 0,++ "description": "At most the person's per-task allowance."++ },++ "daily_runs_max": {++ "type": "integer",++ "minimum": 1,++ "maximum": 24++ },++ "schedule": {++ "enum": [++ "off",++ "hourly",++ "daily",++ "weekly"++ ]++ },++ "schedule_at": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",++ "description": "HH:MM UTC, for daily and weekly."++ },++ "schedule_dow": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0,++ "maximum": 6,++ "description": "0 is Sunday; for weekly."++ },++ "status": {++ "enum": [++ "active",++ "paused"++ ]++ },++ "next_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_skip_reason": {++ "type": [++ "string",++ "null"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ }++ }++ }++ },++ {++ "type": "object",++ "required": [++ "memory"++ ],++ "properties": {++ "memory": {++ "type": "array",++ "items": {++ "type": "object",++ "required": [++ "id",++ "text",++ "origin"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "agent_id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "text": {++ "type": "string"++ },++ "origin": {++ "enum": [++ "person",++ "agent"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ }++ }++ }++ },++ {++ "type": "object",++ "required": [++ "id",++ "name",++ "instructions",++ "mode",++ "schedule",++ "status"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "owner": {++ "type": "string"++ },++ "name": {++ "type": "string",++ "minLength": 1,++ "maxLength": 60++ },++ "instructions": {++ "type": "string",++ "minLength": 1,++ "maxLength": 4000++ },++ "mode": {++ "enum": [++ "balanced",++ "cheapest",++ "best",++ "fastest",++ "private"++ ]++ },++ "budget_per_run_usd": {++ "type": "number",++ "exclusiveMinimum": 0,++ "description": "At most the person's per-task allowance."++ },++ "daily_runs_max": {++ "type": "integer",++ "minimum": 1,++ "maximum": 24++ },++ "schedule": {++ "enum": [++ "off",++ "hourly",++ "daily",++ "weekly"++ ]++ },++ "schedule_at": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",++ "description": "HH:MM UTC, for daily and weekly."++ },++ "schedule_dow": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0,++ "maximum": 6,++ "description": "0 is Sunday; for weekly."++ },++ "status": {++ "enum": [++ "active",++ "paused"++ ]++ },++ "next_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_skip_reason": {++ "type": [++ "string",++ "null"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ },++ {++ "type": "object",++ "required": [++ "id",++ "text",++ "origin"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "agent_id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "text": {++ "type": "string"++ },++ "origin": {++ "enum": [++ "person",++ "agent"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ }++ ]++ }++ },++ "actor.agent-run-request": {++ "version": "1.0.0",++ "owner": "actor",++ "status": "active",++ "schema": {++ "$schema": "https://json-schema.org/draft/2020-12/schema",++ "$id": "https://openvibe.network/contracts/actor/agent-run-request.v1.json",++ "title": "ActorAgentRunRequest",++ "description": "actor.agent-run-request@1: POST /api/v1/me/agents/:id/run { input? } runs the agent now as an ordinary Actor task (its instructions, then its memory, then the input), under the same free tier, budget and daily limits as the person's own tasks, plus the agent's daily_runs_max (429 actor.agent.limit). Answered 201 with the task (platform.task@1). GET /api/v1/me/agents/:id/runs lists its tasks, newest first.",++ "type": "object",++ "additionalProperties": false,++ "properties": {++ "input": {++ "type": "string",++ "maxLength": 8000++ }++ }++ }++ },"actor.task-event": {"version": "1.0.0","owner": "actor",@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Actor API",-- "version": "0.139.0",-- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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"@@@ -62,6 +62,742 @@}}},++ "/api/v1/me/agents": {++ "get": {++ "operationId": "get_api_v1_me_agents",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "x-openvibe-input": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ },++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ },++ "post": {++ "operationId": "post_api_v1_me_agents",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "requestBody": {++ "required": false,++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ }++ }++ }++ },++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ }++ },++ "/api/v1/me/agents/{id}": {++ "delete": {++ "operationId": "delete_api_v1_me_agents_id",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "x-openvibe-input": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ },++ "get": {++ "operationId": "get_api_v1_me_agents_id",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "x-openvibe-input": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ },++ "patch": {++ "operationId": "patch_api_v1_me_agents_id",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "requestBody": {++ "required": false,++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ }++ }++ }++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ }++ },++ "/api/v1/me/agents/{id}/memory": {++ "delete": {++ "operationId": "delete_api_v1_me_agents_id_memory",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "x-openvibe-input": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ },++ "get": {++ "operationId": "get_api_v1_me_agents_id_memory",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "x-openvibe-input": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ },++ "post": {++ "operationId": "post_api_v1_me_agents_id_memory",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "requestBody": {++ "required": false,++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ }++ }++ }++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ }++ },++ "/api/v1/me/agents/{id}/memory/{mem}": {++ "delete": {++ "operationId": "delete_api_v1_me_agents_id_memory_mem",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "x-openvibe-input": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ },++ {++ "name": "mem",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ },++ "patch": {++ "operationId": "patch_api_v1_me_agents_id_memory_mem",++ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",++ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.manage"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.manage"++ ]++ }++ ],++ "requestBody": {++ "required": false,++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-request.v1"++ }++ }++ }++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ },++ {++ "name": "mem",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-manage-result.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ }++ },++ "/api/v1/me/agents/{id}/run": {++ "post": {++ "operationId": "post_api_v1_me_agents_id_run",++ "summary": "Run one of your personal agents now, and list its runs.",++ "description": "**actor.agent.run** (public): Run one of your personal agents now, and list its runs. A run is an ordinary Actor task (platform.task@1) under the same routing, checking, metering, free tier and budgets as a task you give directly, plus the agent's own daily run cap; scheduled runs use the same path.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.run"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.run"++ ]++ }++ ],++ "requestBody": {++ "required": false,++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/actor.agent-run-request.v1"++ }++ }++ }++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/platform.task.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ }++ },++ "/api/v1/me/agents/{id}/runs": {++ "get": {++ "operationId": "get_api_v1_me_agents_id_runs",++ "summary": "Run one of your personal agents now, and list its runs.",++ "description": "**actor.agent.run** (public): Run one of your personal agents now, and list its runs. A run is an ordinary Actor task (platform.task@1) under the same routing, checking, metering, free tier and budgets as a task you give directly, plus the agent's own daily run cap; scheduled runs use the same path.",++ "tags": [++ "actor.agent"++ ],++ "x-openvibe-capabilities": [++ "actor.agent.run"++ ],++ "x-openvibe-visibility": [++ "public"++ ],++ "x-openvibe-quota-class": "actor-task",++ "security": [++ {++ "openvibeToken": [++ "actor.agent.run"++ ]++ }++ ],++ "x-openvibe-input": {++ "$ref": "#/components/schemas/actor.agent-run-request.v1"++ },++ "parameters": [++ {++ "name": "id",++ "in": "path",++ "required": true,++ "schema": {++ "type": "string"++ }++ },++ {++ "name": "input",++ "in": "query",++ "required": false,++ "schema": {++ "type": "string",++ "maxLength": 8000++ }++ }++ ],++ "responses": {++ "2XX": {++ "description": "Success",++ "content": {++ "application/json": {++ "schema": {++ "$ref": "#/components/schemas/platform.task.v1"++ }++ }++ }++ },++ "default": {++ "description": "An error (RFC 9457 problem details)",++ "content": {++ "application/problem+json": {++ "schema": {++ "$ref": "#/components/schemas/errors.problem.v1"++ }++ }++ }++ }++ }++ }++ },"/api/v1/resources": {"get": {"operationId": "get_api_v1_resources",@@@ -612,6 +1348,406 @@}}},++ "actor.agent-manage-request.v1": {++ "title": "ActorAgentManageRequest",++ "description": "actor.agent-manage-request@1: bodies of actor.agent.manage on OpenVibe.Actor. POST /api/v1/me/agents { name, instructions, mode?, budget_per_run_usd?, daily_runs_max?, schedule?, schedule_at?, schedule_dow?, status? } creates a personal agent (10 per person: 429 actor.agent.limit); PATCH /api/v1/me/agents/:id takes any subset. POST /api/v1/me/agents/:id/memory { text } adds a note (1–1000 characters; 50 notes, the oldest agent-written note goes first, a person's note never automatically) and PATCH /api/v1/me/agents/:id/memory/:mem { text } edits one. Unknown fields are 422 actor.agent.invalid; another person's agent is 404 actor.agent.not_found.",++ "anyOf": [++ {++ "type": "object",++ "additionalProperties": false,++ "properties": {++ "name": {++ "type": "string",++ "minLength": 1,++ "maxLength": 60++ },++ "instructions": {++ "type": "string",++ "minLength": 1,++ "maxLength": 4000++ },++ "mode": {++ "enum": [++ "balanced",++ "cheapest",++ "best",++ "fastest",++ "private"++ ]++ },++ "budget_per_run_usd": {++ "type": "number",++ "exclusiveMinimum": 0,++ "description": "At most the person's per-task allowance."++ },++ "daily_runs_max": {++ "type": "integer",++ "minimum": 1,++ "maximum": 24++ },++ "schedule": {++ "enum": [++ "off",++ "hourly",++ "daily",++ "weekly"++ ]++ },++ "schedule_at": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",++ "description": "HH:MM UTC, for daily and weekly."++ },++ "schedule_dow": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0,++ "maximum": 6,++ "description": "0 is Sunday; for weekly."++ },++ "status": {++ "enum": [++ "active",++ "paused"++ ]++ }++ }++ },++ {++ "type": "object",++ "additionalProperties": false,++ "required": [++ "text"++ ],++ "properties": {++ "text": {++ "type": "string",++ "minLength": 1,++ "maxLength": 1000++ }++ }++ }++ ]++ },++ "actor.agent-manage-result.v1": {++ "title": "ActorAgentManageResult",++ "description": "actor.agent-manage-result@1: GET /api/v1/me/agents → { agents }; an agent (create 201, read, update); GET …/memory → { memory } (newest first); a note (create 201, update). DELETE answers 204 with no body.",++ "anyOf": [++ {++ "type": "object",++ "required": [++ "agents"++ ],++ "properties": {++ "agents": {++ "type": "array",++ "items": {++ "type": "object",++ "required": [++ "id",++ "name",++ "instructions",++ "mode",++ "schedule",++ "status"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "owner": {++ "type": "string"++ },++ "name": {++ "type": "string",++ "minLength": 1,++ "maxLength": 60++ },++ "instructions": {++ "type": "string",++ "minLength": 1,++ "maxLength": 4000++ },++ "mode": {++ "enum": [++ "balanced",++ "cheapest",++ "best",++ "fastest",++ "private"++ ]++ },++ "budget_per_run_usd": {++ "type": "number",++ "exclusiveMinimum": 0,++ "description": "At most the person's per-task allowance."++ },++ "daily_runs_max": {++ "type": "integer",++ "minimum": 1,++ "maximum": 24++ },++ "schedule": {++ "enum": [++ "off",++ "hourly",++ "daily",++ "weekly"++ ]++ },++ "schedule_at": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",++ "description": "HH:MM UTC, for daily and weekly."++ },++ "schedule_dow": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0,++ "maximum": 6,++ "description": "0 is Sunday; for weekly."++ },++ "status": {++ "enum": [++ "active",++ "paused"++ ]++ },++ "next_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_skip_reason": {++ "type": [++ "string",++ "null"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ }++ }++ }++ },++ {++ "type": "object",++ "required": [++ "memory"++ ],++ "properties": {++ "memory": {++ "type": "array",++ "items": {++ "type": "object",++ "required": [++ "id",++ "text",++ "origin"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "agent_id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "text": {++ "type": "string"++ },++ "origin": {++ "enum": [++ "person",++ "agent"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ }++ }++ }++ },++ {++ "type": "object",++ "required": [++ "id",++ "name",++ "instructions",++ "mode",++ "schedule",++ "status"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "owner": {++ "type": "string"++ },++ "name": {++ "type": "string",++ "minLength": 1,++ "maxLength": 60++ },++ "instructions": {++ "type": "string",++ "minLength": 1,++ "maxLength": 4000++ },++ "mode": {++ "enum": [++ "balanced",++ "cheapest",++ "best",++ "fastest",++ "private"++ ]++ },++ "budget_per_run_usd": {++ "type": "number",++ "exclusiveMinimum": 0,++ "description": "At most the person's per-task allowance."++ },++ "daily_runs_max": {++ "type": "integer",++ "minimum": 1,++ "maximum": 24++ },++ "schedule": {++ "enum": [++ "off",++ "hourly",++ "daily",++ "weekly"++ ]++ },++ "schedule_at": {++ "type": [++ "string",++ "null"++ ],++ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",++ "description": "HH:MM UTC, for daily and weekly."++ },++ "schedule_dow": {++ "type": [++ "integer",++ "null"++ ],++ "minimum": 0,++ "maximum": 6,++ "description": "0 is Sunday; for weekly."++ },++ "status": {++ "enum": [++ "active",++ "paused"++ ]++ },++ "next_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_run_at": {++ "type": [++ "string",++ "null"++ ]++ },++ "last_skip_reason": {++ "type": [++ "string",++ "null"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ },++ {++ "type": "object",++ "required": [++ "id",++ "text",++ "origin"++ ],++ "properties": {++ "id": {++ "type": "string",++ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "agent_id": {++ "type": "string",++ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"++ },++ "text": {++ "type": "string"++ },++ "origin": {++ "enum": [++ "person",++ "agent"++ ]++ },++ "created_at": {++ "type": "string"++ },++ "updated_at": {++ "type": "string"++ }++ }++ }++ ]++ },++ "actor.agent-run-request.v1": {++ "title": "ActorAgentRunRequest",++ "description": "actor.agent-run-request@1: POST /api/v1/me/agents/:id/run { input? } runs the agent now as an ordinary Actor task (its instructions, then its memory, then the input), under the same free tier, budget and daily limits as the person's own tasks, plus the agent's daily_runs_max (429 actor.agent.limit). Answered 201 with the task (platform.task@1). GET /api/v1/me/agents/:id/runs lists its tasks, newest first.",++ "type": "object",++ "additionalProperties": false,++ "properties": {++ "input": {++ "type": "string",++ "maxLength": 8000++ }++ }++ },"actor.task-create-request.v1": {"title": "ActorTaskCreateRequest","description": "actor.task-create-request@1: the body of POST /api/v1/tasks on OpenVibe.Actor (capability actor.task.create), the creation subset of platform.task@1. TASK is the instruction in plain words. MODE is the planner objective (default balanced). BUDGET caps what this task may cost (per_task_usd) and what the caller's tasks may cost in one UTC day (per_day_usd); either may be left out for the person's free-allowance defaults, and a value above the person's tier is refused 422 actor.budget.over_tier, never silently lowered. AGENT pins one agent system by its id from GET /api/v1/agents (routing still checks that it can take the task). IDEMPOTENCY_KEY: a repeat from the same requester within 24 h with an identical body answers the first task (200), with a different body 409 actor.idempotency.conflict. WEBHOOKS (at most 8): each an https URL and the state changes to deliver there (the names of platform.task@1 `state`). Actor signs every delivery with a secret it mints for the task, returned once as `webhook_secret` in the answer that created it (and in an idempotent repeat), and POSTs actor.task-webhook@1 through its egress guard: public addresses only, ports 443 or 8443, no credentials in the URL, never a redirect. A URL that cannot be delivered to is refused 422 actor.webhook.refused. A project secret named by reference (platform.task@1 `secret_ref`) is not accepted yet.",@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.AI API",-- "version": "0.139.0",-- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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"@@@ -5,8 +5,8 @@"service": "actor","name": "OpenVibe.Actor","origin": "https://openvibe.actor",-- "operations": 9,-- "capabilities": 5++ "operations": 21,++ "capabilities": 7},{"service": "ai",@@@ -3,8 +3,8 @@"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema","info": {"title": "OpenVibe.Inventory API",-- "version": "0.139.0",-- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",-- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",++ "version": "0.140.0",++ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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"@@@ -60603,6 +60603,123 @@ export interface ActorTaskCreateRequest {];}++/** [email protected] (owner: actor) */++/**++ * actor.agent-manage-request@1: bodies of actor.agent.manage on OpenVibe.Actor. POST /api/v1/me/agents { name, instructions, mode?, budget_per_run_usd?, daily_runs_max?, schedule?, schedule_at?, schedule_dow?, status? } creates a personal agent (10 per person: 429 actor.agent.limit); PATCH /api/v1/me/agents/:id takes any subset. POST /api/v1/me/agents/:id/memory { text } adds a note (1–1000 characters; 50 notes, the oldest agent-written note goes first, a person's note never automatically) and PATCH /api/v1/me/agents/:id/memory/:mem { text } edits one. Unknown fields are 422 actor.agent.invalid; another person's agent is 404 actor.agent.not_found.++ */++export type ActorAgentManageRequest =++ | {++ name?: string;++ instructions?: string;++ mode?: "balanced" | "cheapest" | "best" | "fastest" | "private";++ /**++ * At most the person's per-task allowance.++ */++ budget_per_run_usd?: number;++ daily_runs_max?: number;++ schedule?: "off" | "hourly" | "daily" | "weekly";++ /**++ * HH:MM UTC, for daily and weekly.++ */++ schedule_at?: string | null;++ /**++ * 0 is Sunday; for weekly.++ */++ schedule_dow?: number | null;++ status?: "active" | "paused";++ }++ | {++ text: string;++ };++++/** [email protected] (owner: actor) */++/**++ * actor.agent-manage-result@1: GET /api/v1/me/agents → { agents }; an agent (create 201, read, update); GET …/memory → { memory } (newest first); a note (create 201, update). DELETE answers 204 with no body.++ */++export type ActorAgentManageResult =++ | {++ agents: {++ id: string;++ owner?: string;++ name: string;++ instructions: string;++ mode: "balanced" | "cheapest" | "best" | "fastest" | "private";++ /**++ * At most the person's per-task allowance.++ */++ budget_per_run_usd?: number;++ daily_runs_max?: number;++ schedule: "off" | "hourly" | "daily" | "weekly";++ /**++ * HH:MM UTC, for daily and weekly.++ */++ schedule_at?: string | null;++ /**++ * 0 is Sunday; for weekly.++ */++ schedule_dow?: number | null;++ status: "active" | "paused";++ next_run_at?: string | null;++ last_run_at?: string | null;++ last_skip_reason?: string | null;++ created_at?: string;++ updated_at?: string;++ }[];++ }++ | {++ memory: {++ id: string;++ agent_id?: string;++ text: string;++ origin: "person" | "agent";++ created_at?: string;++ updated_at?: string;++ }[];++ }++ | {++ id: string;++ owner?: string;++ name: string;++ instructions: string;++ mode: "balanced" | "cheapest" | "best" | "fastest" | "private";++ /**++ * At most the person's per-task allowance.++ */++ budget_per_run_usd?: number;++ daily_runs_max?: number;++ schedule: "off" | "hourly" | "daily" | "weekly";++ /**++ * HH:MM UTC, for daily and weekly.++ */++ schedule_at?: string | null;++ /**++ * 0 is Sunday; for weekly.++ */++ schedule_dow?: number | null;++ status: "active" | "paused";++ next_run_at?: string | null;++ last_run_at?: string | null;++ last_skip_reason?: string | null;++ created_at?: string;++ updated_at?: string;++ }++ | {++ id: string;++ agent_id?: string;++ text: string;++ origin: "person" | "agent";++ created_at?: string;++ updated_at?: string;++ };++++/** [email protected] (owner: actor) */++/**++ * actor.agent-run-request@1: POST /api/v1/me/agents/:id/run { input? } runs the agent now as an ordinary Actor task (its instructions, then its memory, then the input), under the same free tier, budget and daily limits as the person's own tasks, plus the agent's daily_runs_max (429 actor.agent.limit). Answered 201 with the task (platform.task@1). GET /api/v1/me/agents/:id/runs lists its tasks, newest first.++ */++export interface ActorAgentRunRequest {++ input?: string;++}++/** [email protected] (owner: actor) *//*** actor.task-event@1: one event on a task's live stream (GET /api/v1/tasks/:id/events, text/event-stream; the SSE id is SEQ, so a reader resumes with Last-Event-ID). KIND is run.job-stream-event@1's three, as platform.task@1 progress names them: state (the task moved to STATE), output (one step of the agent's work: AGENT says what it is doing in TEXT, or calls TOOL with a short INPUT summary, or a tool answered), end (the task ended in STATE; nothing follows). Events are best-effort; the task record (GET /api/v1/tasks/:id) is the source of truth.nnew file mode 100644@@@ -0,0 +1,31 @@++{++ "id": "actor.agent.manage",++ "version": "1.0",++ "owner": "actor",++ "status": "active",++ "visibility": "public",++ "sensitive": true,++ "description": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",++ "inputSchema": "actor.agent-manage-request@1",++ "outputSchema": "actor.agent-manage-result@1",++ "permissions": [++ "actor:agents:manage"++ ],++ "resourceConstraints": [++ "owner"++ ],++ "quotaClass": "actor-task",++ "events": [],++ "implementedBy": [++ "GET /api/v1/me/agents",++ "POST /api/v1/me/agents",++ "GET /api/v1/me/agents/:id",++ "PATCH /api/v1/me/agents/:id",++ "DELETE /api/v1/me/agents/:id",++ "GET /api/v1/me/agents/:id/memory",++ "POST /api/v1/me/agents/:id/memory",++ "PATCH /api/v1/me/agents/:id/memory/:mem",++ "DELETE /api/v1/me/agents/:id/memory/:mem",++ "DELETE /api/v1/me/agents/:id/memory"++ ]++}nnew file mode 100644@@@ -0,0 +1,23 @@++{++ "id": "actor.agent.run",++ "version": "1.0",++ "owner": "actor",++ "status": "active",++ "visibility": "public",++ "sensitive": true,++ "description": "Run one of your personal agents now, and list its runs. A run is an ordinary Actor task (platform.task@1) under the same routing, checking, metering, free tier and budgets as a task you give directly, plus the agent's own daily run cap; scheduled runs use the same path.",++ "inputSchema": "actor.agent-run-request@1",++ "outputSchema": "platform.task@1",++ "permissions": [++ "actor:agents:run"++ ],++ "resourceConstraints": [++ "owner"++ ],++ "quotaClass": "actor-task",++ "events": [],++ "implementedBy": [++ "POST /api/v1/me/agents/:id/run",++ "GET /api/v1/me/agents/:id/runs"++ ]++}@@@ -20,7 +20,9 @@"actor.task.read","actor.task.list","actor.agent.read",-- "actor.resource.read"++ "actor.resource.read",++ "actor.agent.manage",++ "actor.agent.run"],"eventsProduced": [],"eventsConsumed": [@@@ -1,6 +1,6 @@{"name": "openvibe-contracts",-- "version": "0.139.0",++ "version": "0.140.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",
@@ -4,6 +4,13 @@ All notable changes to `openvibe-contracts`. Releases are git tags (`vX.Y.Z`) th
@@ -4,6 +4,13 @@ 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,
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`).
the notes were in the tag and commit messages (`git tag -n1`).
+## 0.140.0 — 2026-10-11
+
+- `actor.agent.manage` and `actor.agent.run` (active), with `actor.agent-manage-request@1`, `actor.agent-manage-result@1`
+ and `actor.agent-run-request@1`: OpenVibe.Actor's personal agents under `/api/v1/me/agents` (standing instructions,
+ a memory the person controls, a schedule; every run an ordinary task, `platform.task@1`). `/api/v1/agents` stays the
+ public catalog of agent systems (`actor.agent.read`).
+
## 0.139.0 — 2026-10-11
## 0.139.0 — 2026-10-11
- `host.catalog.manage` (active, staff only) with `host.catalog-manage-request@1` and `host.catalog-manage-result@1`:
- `host.catalog.manage` (active, staff only) with `host.catalog-manage-request@1` and `host.catalog-manage-result@1`:
new file mode 100644
new file mode 100644
@@ -0,0 +1,88 @@
@@ -0,0 +1,88 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/actor/agent-manage-request.v1.json",
+ "title": "ActorAgentManageRequest",
+ "description": "actor.agent-manage-request@1: bodies of actor.agent.manage on OpenVibe.Actor. POST /api/v1/me/agents { name, instructions, mode?, budget_per_run_usd?, daily_runs_max?, schedule?, schedule_at?, schedule_dow?, status? } creates a personal agent (10 per person: 429 actor.agent.limit); PATCH /api/v1/me/agents/:id takes any subset. POST /api/v1/me/agents/:id/memory { text } adds a note (1–1000 characters; 50 notes, the oldest agent-written note goes first, a person's note never automatically) and PATCH /api/v1/me/agents/:id/memory/:mem { text } edits one. Unknown fields are 422 actor.agent.invalid; another person's agent is 404 actor.agent.not_found.",
+ "anyOf": [
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 60
+ },
+ "instructions": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 4000
+ },
+ "mode": {
+ "enum": [
+ "balanced",
+ "cheapest",
+ "best",
+ "fastest",
+ "private"
+ ]
+ },
+ "budget_per_run_usd": {
+ "type": "number",
+ "exclusiveMinimum": 0,
+ "description": "At most the person's per-task allowance."
+ },
+ "daily_runs_max": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 24
+ },
+ "schedule": {
+ "enum": [
+ "off",
+ "hourly",
+ "daily",
+ "weekly"
+ ]
+ },
+ "schedule_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
+ "description": "HH:MM UTC, for daily and weekly."
+ },
+ "schedule_dow": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 6,
+ "description": "0 is Sunday; for weekly."
+ },
+ "status": {
+ "enum": [
+ "active",
+ "paused"
+ ]
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "required": [
+ "text"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 1000
+ }
+ }
+ }
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,304 @@
@@ -0,0 +1,304 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/actor/agent-manage-result.v1.json",
+ "title": "ActorAgentManageResult",
+ "description": "actor.agent-manage-result@1: GET /api/v1/me/agents → { agents }; an agent (create 201, read, update); GET …/memory → { memory } (newest first); a note (create 201, update). DELETE answers 204 with no body.",
+ "anyOf": [
+ {
+ "type": "object",
+ "required": [
+ "agents"
+ ],
+ "properties": {
+ "agents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "instructions",
+ "mode",
+ "schedule",
+ "status"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 60
+ },
+ "instructions": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 4000
+ },
+ "mode": {
+ "enum": [
+ "balanced",
+ "cheapest",
+ "best",
+ "fastest",
+ "private"
+ ]
+ },
+ "budget_per_run_usd": {
+ "type": "number",
+ "exclusiveMinimum": 0,
+ "description": "At most the person's per-task allowance."
+ },
+ "daily_runs_max": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 24
+ },
+ "schedule": {
+ "enum": [
+ "off",
+ "hourly",
+ "daily",
+ "weekly"
+ ]
+ },
+ "schedule_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
+ "description": "HH:MM UTC, for daily and weekly."
+ },
+ "schedule_dow": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 6,
+ "description": "0 is Sunday; for weekly."
+ },
+ "status": {
+ "enum": [
+ "active",
+ "paused"
+ ]
+ },
+ "next_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_skip_reason": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "memory"
+ ],
+ "properties": {
+ "memory": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "id",
+ "text",
+ "origin"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "agent_id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "text": {
+ "type": "string"
+ },
+ "origin": {
+ "enum": [
+ "person",
+ "agent"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "instructions",
+ "mode",
+ "schedule",
+ "status"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 60
+ },
+ "instructions": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 4000
+ },
+ "mode": {
+ "enum": [
+ "balanced",
+ "cheapest",
+ "best",
+ "fastest",
+ "private"
+ ]
+ },
+ "budget_per_run_usd": {
+ "type": "number",
+ "exclusiveMinimum": 0,
+ "description": "At most the person's per-task allowance."
+ },
+ "daily_runs_max": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 24
+ },
+ "schedule": {
+ "enum": [
+ "off",
+ "hourly",
+ "daily",
+ "weekly"
+ ]
+ },
+ "schedule_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
+ "description": "HH:MM UTC, for daily and weekly."
+ },
+ "schedule_dow": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 6,
+ "description": "0 is Sunday; for weekly."
+ },
+ "status": {
+ "enum": [
+ "active",
+ "paused"
+ ]
+ },
+ "next_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_skip_reason": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "id",
+ "text",
+ "origin"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "agent_id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "text": {
+ "type": "string"
+ },
+ "origin": {
+ "enum": [
+ "person",
+ "agent"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/actor/agent-run-request.v1.json",
+ "title": "ActorAgentRunRequest",
+ "description": "actor.agent-run-request@1: POST /api/v1/me/agents/:id/run { input? } runs the agent now as an ordinary Actor task (its instructions, then its memory, then the input), under the same free tier, budget and daily limits as the person's own tasks, plus the agent's daily_runs_max (429 actor.agent.limit). Answered 201 with the task (platform.task@1). GET /api/v1/me/agents/:id/runs lists its tasks, newest first.",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "input": {
+ "type": "string",
+ "maxLength": 8000
+ }
+ }
+}
@@ -6360,6 +6360,33 @@
@@ -6360,6 +6360,33 @@
"status": "active",
"status": "active",
"adr": "ADR-044"
"adr": "ADR-044"
},
},
+ {
+ "id": "actor.agent-manage-request",
+ "version": "1.0.0",
+ "owner": "actor",
+ "schema": "actor/agent-manage-request.v1.json",
+ "visibility": "public",
+ "compatibility": "backward",
+ "status": "active"
+ },
+ {
+ "id": "actor.agent-manage-result",
+ "version": "1.0.0",
+ "owner": "actor",
+ "schema": "actor/agent-manage-result.v1.json",
+ "visibility": "public",
+ "compatibility": "backward",
+ "status": "active"
+ },
+ {
+ "id": "actor.agent-run-request",
+ "version": "1.0.0",
+ "owner": "actor",
+ "schema": "actor/agent-run-request.v1.json",
+ "visibility": "public",
+ "compatibility": "backward",
+ "status": "active"
+ },
{
{
"id": "actor.task-event",
"id": "actor.task-event",
"version": "1.0.0",
"version": "1.0.0",
new file mode 100644
new file mode 100644
@@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
+{
+ "schedule_at": "7:30pm"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
+{
+ "text": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
+{
+ "name": "x",
+ "priority": 1
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
+{
+ "name": "Morning briefing",
+ "instructions": "Summarise what shipped on OpenVibe yesterday in five bullets.",
+ "schedule": "daily",
+ "schedule_at": "07:30"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
+{
+ "text": "I prefer bullet points."
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
+{
+ "status": "paused"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
+{
+ "memory": [
+ {
+ "id": "mem_01M4C49CWJCFYGJS3T7NFZFQYX",
+ "text": "x",
+ "origin": "model"
+ }
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1 @@
@@ -0,0 +1 @@
+{}
new file mode 100644
new file mode 100644
@@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
+{
+ "agents": [
+ {
+ "id": "agt_01M4C49CW34NGX7TR2TNRVFWNW",
+ "name": "Morning briefing",
+ "instructions": "Summarise.",
+ "mode": "balanced",
+ "schedule": "daily",
+ "schedule_at": "07:30",
+ "status": "active"
+ }
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
+{
+ "memory": [
+ {
+ "id": "mem_01M4C49CWJCFYGJS3T7NFZFQYX",
+ "text": "I prefer bullet points.",
+ "origin": "person"
+ }
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
+{
+ "input": "x",
+ "agent": "openai"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
+{
+ "input": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1 @@
@@ -0,0 +1 @@
+{}
new file mode 100644
new file mode 100644
@@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
+{
+ "input": "Focus on Live."
+}
@@ -73689,6 +73689,427 @@
@@ -73689,6 +73689,427 @@
]
]
}
}
},
},
+ "actor.agent-manage-request": {
+ "version": "1.0.0",
+ "owner": "actor",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/actor/agent-manage-request.v1.json",
+ "title": "ActorAgentManageRequest",
+ "description": "actor.agent-manage-request@1: bodies of actor.agent.manage on OpenVibe.Actor. POST /api/v1/me/agents { name, instructions, mode?, budget_per_run_usd?, daily_runs_max?, schedule?, schedule_at?, schedule_dow?, status? } creates a personal agent (10 per person: 429 actor.agent.limit); PATCH /api/v1/me/agents/:id takes any subset. POST /api/v1/me/agents/:id/memory { text } adds a note (1–1000 characters; 50 notes, the oldest agent-written note goes first, a person's note never automatically) and PATCH /api/v1/me/agents/:id/memory/:mem { text } edits one. Unknown fields are 422 actor.agent.invalid; another person's agent is 404 actor.agent.not_found.",
+ "anyOf": [
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 60
+ },
+ "instructions": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 4000
+ },
+ "mode": {
+ "enum": [
+ "balanced",
+ "cheapest",
+ "best",
+ "fastest",
+ "private"
+ ]
+ },
+ "budget_per_run_usd": {
+ "type": "number",
+ "exclusiveMinimum": 0,
+ "description": "At most the person's per-task allowance."
+ },
+ "daily_runs_max": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 24
+ },
+ "schedule": {
+ "enum": [
+ "off",
+ "hourly",
+ "daily",
+ "weekly"
+ ]
+ },
+ "schedule_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
+ "description": "HH:MM UTC, for daily and weekly."
+ },
+ "schedule_dow": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 6,
+ "description": "0 is Sunday; for weekly."
+ },
+ "status": {
+ "enum": [
+ "active",
+ "paused"
+ ]
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "required": [
+ "text"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 1000
+ }
+ }
+ }
+ ]
+ }
+ },
+ "actor.agent-manage-result": {
+ "version": "1.0.0",
+ "owner": "actor",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/actor/agent-manage-result.v1.json",
+ "title": "ActorAgentManageResult",
+ "description": "actor.agent-manage-result@1: GET /api/v1/me/agents → { agents }; an agent (create 201, read, update); GET …/memory → { memory } (newest first); a note (create 201, update). DELETE answers 204 with no body.",
+ "anyOf": [
+ {
+ "type": "object",
+ "required": [
+ "agents"
+ ],
+ "properties": {
+ "agents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "instructions",
+ "mode",
+ "schedule",
+ "status"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 60
+ },
+ "instructions": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 4000
+ },
+ "mode": {
+ "enum": [
+ "balanced",
+ "cheapest",
+ "best",
+ "fastest",
+ "private"
+ ]
+ },
+ "budget_per_run_usd": {
+ "type": "number",
+ "exclusiveMinimum": 0,
+ "description": "At most the person's per-task allowance."
+ },
+ "daily_runs_max": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 24
+ },
+ "schedule": {
+ "enum": [
+ "off",
+ "hourly",
+ "daily",
+ "weekly"
+ ]
+ },
+ "schedule_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
+ "description": "HH:MM UTC, for daily and weekly."
+ },
+ "schedule_dow": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 6,
+ "description": "0 is Sunday; for weekly."
+ },
+ "status": {
+ "enum": [
+ "active",
+ "paused"
+ ]
+ },
+ "next_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_skip_reason": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "memory"
+ ],
+ "properties": {
+ "memory": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "id",
+ "text",
+ "origin"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "agent_id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "text": {
+ "type": "string"
+ },
+ "origin": {
+ "enum": [
+ "person",
+ "agent"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "instructions",
+ "mode",
+ "schedule",
+ "status"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 60
+ },
+ "instructions": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 4000
+ },
+ "mode": {
+ "enum": [
+ "balanced",
+ "cheapest",
+ "best",
+ "fastest",
+ "private"
+ ]
+ },
+ "budget_per_run_usd": {
+ "type": "number",
+ "exclusiveMinimum": 0,
+ "description": "At most the person's per-task allowance."
+ },
+ "daily_runs_max": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 24
+ },
+ "schedule": {
+ "enum": [
+ "off",
+ "hourly",
+ "daily",
+ "weekly"
+ ]
+ },
+ "schedule_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
+ "description": "HH:MM UTC, for daily and weekly."
+ },
+ "schedule_dow": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 6,
+ "description": "0 is Sunday; for weekly."
+ },
+ "status": {
+ "enum": [
+ "active",
+ "paused"
+ ]
+ },
+ "next_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_skip_reason": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "id",
+ "text",
+ "origin"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "agent_id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "text": {
+ "type": "string"
+ },
+ "origin": {
+ "enum": [
+ "person",
+ "agent"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "actor.agent-run-request": {
+ "version": "1.0.0",
+ "owner": "actor",
+ "status": "active",
+ "schema": {
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://openvibe.network/contracts/actor/agent-run-request.v1.json",
+ "title": "ActorAgentRunRequest",
+ "description": "actor.agent-run-request@1: POST /api/v1/me/agents/:id/run { input? } runs the agent now as an ordinary Actor task (its instructions, then its memory, then the input), under the same free tier, budget and daily limits as the person's own tasks, plus the agent's daily_runs_max (429 actor.agent.limit). Answered 201 with the task (platform.task@1). GET /api/v1/me/agents/:id/runs lists its tasks, newest first.",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "input": {
+ "type": "string",
+ "maxLength": 8000
+ }
+ }
+ }
+ },
"actor.task-event": {
"actor.task-event": {
"version": "1.0.0",
"version": "1.0.0",
"owner": "actor",
"owner": "actor",
@@ -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.139.0",
- "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Actor as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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"
@@ -62,6 +62,742 @@
@@ -62,6 +62,742 @@
}
}
}
}
},
},
+ "/api/v1/me/agents": {
+ "get": {
+ "operationId": "get_api_v1_me_agents",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "x-openvibe-input": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ },
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "post_api_v1_me_agents",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ }
+ }
+ }
+ },
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/me/agents/{id}": {
+ "delete": {
+ "operationId": "delete_api_v1_me_agents_id",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "x-openvibe-input": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "operationId": "get_api_v1_me_agents_id",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "x-openvibe-input": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "patch": {
+ "operationId": "patch_api_v1_me_agents_id",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/me/agents/{id}/memory": {
+ "delete": {
+ "operationId": "delete_api_v1_me_agents_id_memory",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "x-openvibe-input": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "get": {
+ "operationId": "get_api_v1_me_agents_id_memory",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "x-openvibe-input": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "post": {
+ "operationId": "post_api_v1_me_agents_id_memory",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/me/agents/{id}/memory/{mem}": {
+ "delete": {
+ "operationId": "delete_api_v1_me_agents_id_memory_mem",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "x-openvibe-input": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "mem",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ },
+ "patch": {
+ "operationId": "patch_api_v1_me_agents_id_memory_mem",
+ "summary": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete wh",
+ "description": "**actor.agent.manage** (public): Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.manage"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.manage"
+ ]
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-request.v1"
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "mem",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-manage-result.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/me/agents/{id}/run": {
+ "post": {
+ "operationId": "post_api_v1_me_agents_id_run",
+ "summary": "Run one of your personal agents now, and list its runs.",
+ "description": "**actor.agent.run** (public): Run one of your personal agents now, and list its runs. A run is an ordinary Actor task (platform.task@1) under the same routing, checking, metering, free tier and budgets as a task you give directly, plus the agent's own daily run cap; scheduled runs use the same path.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.run"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.run"
+ ]
+ }
+ ],
+ "requestBody": {
+ "required": false,
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/actor.agent-run-request.v1"
+ }
+ }
+ }
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/platform.task.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "/api/v1/me/agents/{id}/runs": {
+ "get": {
+ "operationId": "get_api_v1_me_agents_id_runs",
+ "summary": "Run one of your personal agents now, and list its runs.",
+ "description": "**actor.agent.run** (public): Run one of your personal agents now, and list its runs. A run is an ordinary Actor task (platform.task@1) under the same routing, checking, metering, free tier and budgets as a task you give directly, plus the agent's own daily run cap; scheduled runs use the same path.",
+ "tags": [
+ "actor.agent"
+ ],
+ "x-openvibe-capabilities": [
+ "actor.agent.run"
+ ],
+ "x-openvibe-visibility": [
+ "public"
+ ],
+ "x-openvibe-quota-class": "actor-task",
+ "security": [
+ {
+ "openvibeToken": [
+ "actor.agent.run"
+ ]
+ }
+ ],
+ "x-openvibe-input": {
+ "$ref": "#/components/schemas/actor.agent-run-request.v1"
+ },
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "required": true,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "input",
+ "in": "query",
+ "required": false,
+ "schema": {
+ "type": "string",
+ "maxLength": 8000
+ }
+ }
+ ],
+ "responses": {
+ "2XX": {
+ "description": "Success",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/platform.task.v1"
+ }
+ }
+ }
+ },
+ "default": {
+ "description": "An error (RFC 9457 problem details)",
+ "content": {
+ "application/problem+json": {
+ "schema": {
+ "$ref": "#/components/schemas/errors.problem.v1"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
"/api/v1/resources": {
"/api/v1/resources": {
"get": {
"get": {
"operationId": "get_api_v1_resources",
"operationId": "get_api_v1_resources",
@@ -612,6 +1348,406 @@
@@ -612,6 +1348,406 @@
}
}
}
}
},
},
+ "actor.agent-manage-request.v1": {
+ "title": "ActorAgentManageRequest",
+ "description": "actor.agent-manage-request@1: bodies of actor.agent.manage on OpenVibe.Actor. POST /api/v1/me/agents { name, instructions, mode?, budget_per_run_usd?, daily_runs_max?, schedule?, schedule_at?, schedule_dow?, status? } creates a personal agent (10 per person: 429 actor.agent.limit); PATCH /api/v1/me/agents/:id takes any subset. POST /api/v1/me/agents/:id/memory { text } adds a note (1–1000 characters; 50 notes, the oldest agent-written note goes first, a person's note never automatically) and PATCH /api/v1/me/agents/:id/memory/:mem { text } edits one. Unknown fields are 422 actor.agent.invalid; another person's agent is 404 actor.agent.not_found.",
+ "anyOf": [
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 60
+ },
+ "instructions": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 4000
+ },
+ "mode": {
+ "enum": [
+ "balanced",
+ "cheapest",
+ "best",
+ "fastest",
+ "private"
+ ]
+ },
+ "budget_per_run_usd": {
+ "type": "number",
+ "exclusiveMinimum": 0,
+ "description": "At most the person's per-task allowance."
+ },
+ "daily_runs_max": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 24
+ },
+ "schedule": {
+ "enum": [
+ "off",
+ "hourly",
+ "daily",
+ "weekly"
+ ]
+ },
+ "schedule_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
+ "description": "HH:MM UTC, for daily and weekly."
+ },
+ "schedule_dow": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 6,
+ "description": "0 is Sunday; for weekly."
+ },
+ "status": {
+ "enum": [
+ "active",
+ "paused"
+ ]
+ }
+ }
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "required": [
+ "text"
+ ],
+ "properties": {
+ "text": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 1000
+ }
+ }
+ }
+ ]
+ },
+ "actor.agent-manage-result.v1": {
+ "title": "ActorAgentManageResult",
+ "description": "actor.agent-manage-result@1: GET /api/v1/me/agents → { agents }; an agent (create 201, read, update); GET …/memory → { memory } (newest first); a note (create 201, update). DELETE answers 204 with no body.",
+ "anyOf": [
+ {
+ "type": "object",
+ "required": [
+ "agents"
+ ],
+ "properties": {
+ "agents": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "instructions",
+ "mode",
+ "schedule",
+ "status"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 60
+ },
+ "instructions": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 4000
+ },
+ "mode": {
+ "enum": [
+ "balanced",
+ "cheapest",
+ "best",
+ "fastest",
+ "private"
+ ]
+ },
+ "budget_per_run_usd": {
+ "type": "number",
+ "exclusiveMinimum": 0,
+ "description": "At most the person's per-task allowance."
+ },
+ "daily_runs_max": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 24
+ },
+ "schedule": {
+ "enum": [
+ "off",
+ "hourly",
+ "daily",
+ "weekly"
+ ]
+ },
+ "schedule_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
+ "description": "HH:MM UTC, for daily and weekly."
+ },
+ "schedule_dow": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 6,
+ "description": "0 is Sunday; for weekly."
+ },
+ "status": {
+ "enum": [
+ "active",
+ "paused"
+ ]
+ },
+ "next_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_skip_reason": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "memory"
+ ],
+ "properties": {
+ "memory": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "id",
+ "text",
+ "origin"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "agent_id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "text": {
+ "type": "string"
+ },
+ "origin": {
+ "enum": [
+ "person",
+ "agent"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "instructions",
+ "mode",
+ "schedule",
+ "status"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "owner": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 60
+ },
+ "instructions": {
+ "type": "string",
+ "minLength": 1,
+ "maxLength": 4000
+ },
+ "mode": {
+ "enum": [
+ "balanced",
+ "cheapest",
+ "best",
+ "fastest",
+ "private"
+ ]
+ },
+ "budget_per_run_usd": {
+ "type": "number",
+ "exclusiveMinimum": 0,
+ "description": "At most the person's per-task allowance."
+ },
+ "daily_runs_max": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 24
+ },
+ "schedule": {
+ "enum": [
+ "off",
+ "hourly",
+ "daily",
+ "weekly"
+ ]
+ },
+ "schedule_at": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
+ "description": "HH:MM UTC, for daily and weekly."
+ },
+ "schedule_dow": {
+ "type": [
+ "integer",
+ "null"
+ ],
+ "minimum": 0,
+ "maximum": 6,
+ "description": "0 is Sunday; for weekly."
+ },
+ "status": {
+ "enum": [
+ "active",
+ "paused"
+ ]
+ },
+ "next_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_run_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "last_skip_reason": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "required": [
+ "id",
+ "text",
+ "origin"
+ ],
+ "properties": {
+ "id": {
+ "type": "string",
+ "pattern": "^mem_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "agent_id": {
+ "type": "string",
+ "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$"
+ },
+ "text": {
+ "type": "string"
+ },
+ "origin": {
+ "enum": [
+ "person",
+ "agent"
+ ]
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "updated_at": {
+ "type": "string"
+ }
+ }
+ }
+ ]
+ },
+ "actor.agent-run-request.v1": {
+ "title": "ActorAgentRunRequest",
+ "description": "actor.agent-run-request@1: POST /api/v1/me/agents/:id/run { input? } runs the agent now as an ordinary Actor task (its instructions, then its memory, then the input), under the same free tier, budget and daily limits as the person's own tasks, plus the agent's daily_runs_max (429 actor.agent.limit). Answered 201 with the task (platform.task@1). GET /api/v1/me/agents/:id/runs lists its tasks, newest first.",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "input": {
+ "type": "string",
+ "maxLength": 8000
+ }
+ }
+ },
"actor.task-create-request.v1": {
"actor.task-create-request.v1": {
"title": "ActorTaskCreateRequest",
"title": "ActorTaskCreateRequest",
"description": "actor.task-create-request@1: the body of POST /api/v1/tasks on OpenVibe.Actor (capability actor.task.create), the creation subset of platform.task@1. TASK is the instruction in plain words. MODE is the planner objective (default balanced). BUDGET caps what this task may cost (per_task_usd) and what the caller's tasks may cost in one UTC day (per_day_usd); either may be left out for the person's free-allowance defaults, and a value above the person's tier is refused 422 actor.budget.over_tier, never silently lowered. AGENT pins one agent system by its id from GET /api/v1/agents (routing still checks that it can take the task). IDEMPOTENCY_KEY: a repeat from the same requester within 24 h with an identical body answers the first task (200), with a different body 409 actor.idempotency.conflict. WEBHOOKS (at most 8): each an https URL and the state changes to deliver there (the names of platform.task@1 `state`). Actor signs every delivery with a secret it mints for the task, returned once as `webhook_secret` in the answer that created it (and in an idempotent repeat), and POSTs actor.task-webhook@1 through its egress guard: public addresses only, ports 443 or 8443, no credentials in the URL, never a redirect. A URL that cannot be delivered to is refused 422 actor.webhook.refused. A project secret named by reference (platform.task@1 `secret_ref`) is not accepted yet.",
"description": "actor.task-create-request@1: the body of POST /api/v1/tasks on OpenVibe.Actor (capability actor.task.create), the creation subset of platform.task@1. TASK is the instruction in plain words. MODE is the planner objective (default balanced). BUDGET caps what this task may cost (per_task_usd) and what the caller's tasks may cost in one UTC day (per_day_usd); either may be left out for the person's free-allowance defaults, and a value above the person's tier is refused 422 actor.budget.over_tier, never silently lowered. AGENT pins one agent system by its id from GET /api/v1/agents (routing still checks that it can take the task). IDEMPOTENCY_KEY: a repeat from the same requester within 24 h with an identical body answers the first task (200), with a different body 409 actor.idempotency.conflict. WEBHOOKS (at most 8): each an https URL and the state changes to deliver there (the names of platform.task@1 `state`). Actor signs every delivery with a secret it mints for the task, returned once as `webhook_secret` in the answer that created it (and in an idempotent repeat), and POSTs actor.task-webhook@1 through its egress guard: public addresses only, ports 443 or 8443, no credentials in the URL, never a redirect. A URL that cannot be delivered to is refused 422 actor.webhook.refused. A project secret named by reference (platform.task@1 `secret_ref`) is not accepted yet.",
@@ -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.139.0",
- "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.AI as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Billing as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Blog as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Bot as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Chat as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Community as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Coupons as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Deals as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Events as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Food as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Games as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Host as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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"
@@ -5,8 +5,8 @@
@@ -5,8 +5,8 @@
"service": "actor",
"service": "actor",
"name": "OpenVibe.Actor",
"name": "OpenVibe.Actor",
"origin": "https://openvibe.actor",
"origin": "https://openvibe.actor",
- "operations": 9,
- "capabilities": 5
+ "operations": 21,
+ "capabilities": 7
},
},
{
{
"service": "ai",
"service": "ai",
@@ -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.139.0",
- "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Inventory as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Live as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Media as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Network as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.News as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenRestream as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Reviews as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Run as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Search as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Services as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Sources as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Tips as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Tools as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Trade as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.VIP as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Watch as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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.139.0",
- "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.139.0): each operation lists the capabilities it performs; a token for the service's audience must carry one of them unless the route is open. Generated by openvibe-contracts lib/openapi.js; do not edit.",
+ "version": "0.140.0",
+ "description": "Routes of OpenVibe.Wiki as the OpenVibe contracts describe them (openvibe-contracts 0.140.0): each operation lists the capabilities it performs; a token for the 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"
@@ -60603,6 +60603,123 @@ export interface ActorTaskCreateRequest {
@@ -60603,6 +60603,123 @@ export interface ActorTaskCreateRequest {
];
];
}
}
+/** [email protected] (owner: actor) */
+/**
+ * actor.agent-manage-request@1: bodies of actor.agent.manage on OpenVibe.Actor. POST /api/v1/me/agents { name, instructions, mode?, budget_per_run_usd?, daily_runs_max?, schedule?, schedule_at?, schedule_dow?, status? } creates a personal agent (10 per person: 429 actor.agent.limit); PATCH /api/v1/me/agents/:id takes any subset. POST /api/v1/me/agents/:id/memory { text } adds a note (1–1000 characters; 50 notes, the oldest agent-written note goes first, a person's note never automatically) and PATCH /api/v1/me/agents/:id/memory/:mem { text } edits one. Unknown fields are 422 actor.agent.invalid; another person's agent is 404 actor.agent.not_found.
+ */
+export type ActorAgentManageRequest =
+ | {
+ name?: string;
+ instructions?: string;
+ mode?: "balanced" | "cheapest" | "best" | "fastest" | "private";
+ /**
+ * At most the person's per-task allowance.
+ */
+ budget_per_run_usd?: number;
+ daily_runs_max?: number;
+ schedule?: "off" | "hourly" | "daily" | "weekly";
+ /**
+ * HH:MM UTC, for daily and weekly.
+ */
+ schedule_at?: string | null;
+ /**
+ * 0 is Sunday; for weekly.
+ */
+ schedule_dow?: number | null;
+ status?: "active" | "paused";
+ }
+ | {
+ text: string;
+ };
+
+/** [email protected] (owner: actor) */
+/**
+ * actor.agent-manage-result@1: GET /api/v1/me/agents → { agents }; an agent (create 201, read, update); GET …/memory → { memory } (newest first); a note (create 201, update). DELETE answers 204 with no body.
+ */
+export type ActorAgentManageResult =
+ | {
+ agents: {
+ id: string;
+ owner?: string;
+ name: string;
+ instructions: string;
+ mode: "balanced" | "cheapest" | "best" | "fastest" | "private";
+ /**
+ * At most the person's per-task allowance.
+ */
+ budget_per_run_usd?: number;
+ daily_runs_max?: number;
+ schedule: "off" | "hourly" | "daily" | "weekly";
+ /**
+ * HH:MM UTC, for daily and weekly.
+ */
+ schedule_at?: string | null;
+ /**
+ * 0 is Sunday; for weekly.
+ */
+ schedule_dow?: number | null;
+ status: "active" | "paused";
+ next_run_at?: string | null;
+ last_run_at?: string | null;
+ last_skip_reason?: string | null;
+ created_at?: string;
+ updated_at?: string;
+ }[];
+ }
+ | {
+ memory: {
+ id: string;
+ agent_id?: string;
+ text: string;
+ origin: "person" | "agent";
+ created_at?: string;
+ updated_at?: string;
+ }[];
+ }
+ | {
+ id: string;
+ owner?: string;
+ name: string;
+ instructions: string;
+ mode: "balanced" | "cheapest" | "best" | "fastest" | "private";
+ /**
+ * At most the person's per-task allowance.
+ */
+ budget_per_run_usd?: number;
+ daily_runs_max?: number;
+ schedule: "off" | "hourly" | "daily" | "weekly";
+ /**
+ * HH:MM UTC, for daily and weekly.
+ */
+ schedule_at?: string | null;
+ /**
+ * 0 is Sunday; for weekly.
+ */
+ schedule_dow?: number | null;
+ status: "active" | "paused";
+ next_run_at?: string | null;
+ last_run_at?: string | null;
+ last_skip_reason?: string | null;
+ created_at?: string;
+ updated_at?: string;
+ }
+ | {
+ id: string;
+ agent_id?: string;
+ text: string;
+ origin: "person" | "agent";
+ created_at?: string;
+ updated_at?: string;
+ };
+
+/** [email protected] (owner: actor) */
+/**
+ * actor.agent-run-request@1: POST /api/v1/me/agents/:id/run { input? } runs the agent now as an ordinary Actor task (its instructions, then its memory, then the input), under the same free tier, budget and daily limits as the person's own tasks, plus the agent's daily_runs_max (429 actor.agent.limit). Answered 201 with the task (platform.task@1). GET /api/v1/me/agents/:id/runs lists its tasks, newest first.
+ */
+export interface ActorAgentRunRequest {
+ input?: string;
+}
+
/** [email protected] (owner: actor) */
/** [email protected] (owner: actor) */
/**
/**
* actor.task-event@1: one event on a task's live stream (GET /api/v1/tasks/:id/events, text/event-stream; the SSE id is SEQ, so a reader resumes with Last-Event-ID). KIND is run.job-stream-event@1's three, as platform.task@1 progress names them: state (the task moved to STATE), output (one step of the agent's work: AGENT says what it is doing in TEXT, or calls TOOL with a short INPUT summary, or a tool answered), end (the task ended in STATE; nothing follows). Events are best-effort; the task record (GET /api/v1/tasks/:id) is the source of truth.
* actor.task-event@1: one event on a task's live stream (GET /api/v1/tasks/:id/events, text/event-stream; the SSE id is SEQ, so a reader resumes with Last-Event-ID). KIND is run.job-stream-event@1's three, as platform.task@1 progress names them: state (the task moved to STATE), output (one step of the agent's work: AGENT says what it is doing in TEXT, or calls TOOL with a short INPUT summary, or a tool answered), end (the task ended in STATE; nothing follows). Events are best-effort; the task record (GET /api/v1/tasks/:id) is the source of truth.
new file mode 100644
new file mode 100644
@@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
+{
+ "id": "actor.agent.manage",
+ "version": "1.0",
+ "owner": "actor",
+ "status": "active",
+ "visibility": "public",
+ "sensitive": true,
+ "description": "Keep your personal agents on OpenVibe.Actor: create, read, change and delete an agent (standing instructions, mode, a budget per run, a daily run cap and a schedule), and read, add, edit and delete what it remembers, or forget everything. A person's agents are theirs alone; another person's agent is 404.",
+ "inputSchema": "actor.agent-manage-request@1",
+ "outputSchema": "actor.agent-manage-result@1",
+ "permissions": [
+ "actor:agents:manage"
+ ],
+ "resourceConstraints": [
+ "owner"
+ ],
+ "quotaClass": "actor-task",
+ "events": [],
+ "implementedBy": [
+ "GET /api/v1/me/agents",
+ "POST /api/v1/me/agents",
+ "GET /api/v1/me/agents/:id",
+ "PATCH /api/v1/me/agents/:id",
+ "DELETE /api/v1/me/agents/:id",
+ "GET /api/v1/me/agents/:id/memory",
+ "POST /api/v1/me/agents/:id/memory",
+ "PATCH /api/v1/me/agents/:id/memory/:mem",
+ "DELETE /api/v1/me/agents/:id/memory/:mem",
+ "DELETE /api/v1/me/agents/:id/memory"
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
+{
+ "id": "actor.agent.run",
+ "version": "1.0",
+ "owner": "actor",
+ "status": "active",
+ "visibility": "public",
+ "sensitive": true,
+ "description": "Run one of your personal agents now, and list its runs. A run is an ordinary Actor task (platform.task@1) under the same routing, checking, metering, free tier and budgets as a task you give directly, plus the agent's own daily run cap; scheduled runs use the same path.",
+ "inputSchema": "actor.agent-run-request@1",
+ "outputSchema": "platform.task@1",
+ "permissions": [
+ "actor:agents:run"
+ ],
+ "resourceConstraints": [
+ "owner"
+ ],
+ "quotaClass": "actor-task",
+ "events": [],
+ "implementedBy": [
+ "POST /api/v1/me/agents/:id/run",
+ "GET /api/v1/me/agents/:id/runs"
+ ]
+}
@@ -20,7 +20,9 @@
@@ -20,7 +20,9 @@
"actor.task.read",
"actor.task.read",
"actor.task.list",
"actor.task.list",
"actor.agent.read",
"actor.agent.read",
- "actor.resource.read"
+ "actor.resource.read",
+ "actor.agent.manage",
+ "actor.agent.run"
],
],
"eventsProduced": [],
"eventsProduced": [],
"eventsConsumed": [
"eventsConsumed": [
@@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
{
{
"name": "openvibe-contracts",
"name": "openvibe-contracts",
- "version": "0.139.0",
+ "version": "0.140.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",