openvibers/openvibe.contracts Commits
v0.29.0: OpenVibe.AI is alpha — ai.run.create, ai.run.read, ai.workflow.manage, ai.provider.manage, ai.usage.read
Changes
nnew file mode 100644@@@ -0,0 +1,27 @@++{++ "id": "ai.provider.manage",++ "version": "1.0",++ "owner": "ai",++ "status": "active",++ "visibility": "internal",++ "description": "Register, update, enable and disable providers and models (secrets only as env references, never values), reset circuit breakers, set quotas and purge the cache.",++ "permissions": [++ "ai:admin"++ ],++ "resourceConstraints": [++ "none"++ ],++ "quotaClass": "ai-admin",++ "events": [],++ "implementedBy": [++ "POST /api/v1/providers",++ "PATCH /api/v1/providers/:key",++ "POST /api/v1/providers/:key/disable",++ "POST /api/v1/providers/:key/enable",++ "POST /api/v1/providers/:key/reset",++ "POST /api/v1/models",++ "PATCH /api/v1/models/:provider/:model",++ "POST /api/v1/quotas",++ "DELETE /api/v1/cache"++ ]++}nnew file mode 100644@@@ -0,0 +1,30 @@++{++ "id": "ai.run.create",++ "version": "1.0",++ "owner": "ai",++ "status": "active",++ "visibility": "first-party",++ "description": "Create workflow runs (POST /api/v1/runs and the direct chat/generate/summarize/classify/extract/enrich/embed operations), cancel or retry the caller's own runs and attach citations to them. A token's `ns` claim limits which workflow namespaces it may run (live.*, wiki.*, ...). Quotas are checked before any provider call.",++ "permissions": [++ "ai:run"++ ],++ "resourceConstraints": [++ "namespace",++ "owner"++ ],++ "quotaClass": "ai-run",++ "events": [],++ "implementedBy": [++ "POST /api/v1/runs",++ "POST /api/v1/runs/:id/cancel",++ "POST /api/v1/runs/:id/retry",++ "POST /api/v1/runs/:id/citations",++ "POST /api/v1/chat",++ "POST /api/v1/generate",++ "POST /api/v1/summarize",++ "POST /api/v1/classify",++ "POST /api/v1/extract",++ "POST /api/v1/enrich",++ "POST /api/v1/embed"++ ]++}nnew file mode 100644@@@ -0,0 +1,21 @@++{++ "id": "ai.run.read",++ "version": "1.0",++ "owner": "ai",++ "status": "active",++ "visibility": "first-party",++ "description": "Read the caller's own runs, their citations and request-log metadata (hashes, tokens, latency; never raw prompts).",++ "permissions": [++ "ai:read"++ ],++ "resourceConstraints": [++ "owner"++ ],++ "quotaClass": "ai-read",++ "events": [],++ "implementedBy": [++ "GET /api/v1/runs",++ "GET /api/v1/runs/:id",++ "GET /api/v1/runs/:id/citations"++ ]++}nnew file mode 100644@@@ -0,0 +1,26 @@++{++ "id": "ai.usage.read",++ "version": "1.0",++ "owner": "ai",++ "status": "active",++ "visibility": "internal",++ "description": "Read usage, quota windows, request logs, the audit log, cache statistics, the admin summary and any caller's runs.",++ "permissions": [++ "ai:read"++ ],++ "resourceConstraints": [++ "none"++ ],++ "quotaClass": "ai-read",++ "events": [],++ "implementedBy": [++ "GET /api/v1/status",++ "GET /api/v1/usage",++ "GET /api/v1/quotas",++ "GET /api/v1/requests",++ "GET /api/v1/audit",++ "GET /api/v1/cache",++ "GET /api/v1/providers",++ "GET /api/v1/models"++ ]++}nnew file mode 100644@@@ -0,0 +1,24 @@++{++ "id": "ai.workflow.manage",++ "version": "1.0",++ "owner": "ai",++ "status": "active",++ "visibility": "internal",++ "description": "Create new versions of prompt templates, workflow definitions and routing profiles, and change their lifecycle status (draft, active, deprecated, archived; routes active/disabled). Every change is audited; edits never overwrite a version.",++ "permissions": [++ "ai:admin"++ ],++ "resourceConstraints": [++ "none"++ ],++ "quotaClass": "ai-admin",++ "events": [],++ "implementedBy": [++ "POST /api/v1/templates/:key/versions",++ "POST /api/v1/templates/:key/versions/:version/status",++ "POST /api/v1/workflows/:key/versions",++ "POST /api/v1/workflows/:key/versions/:version/status",++ "POST /api/v1/routes/:key/versions",++ "POST /api/v1/routes/:key/versions/:version/status"++ ]++}@@@ -1,16 +1,27 @@{"version": "0.1.0","contractRanges": {-- "openvibe-contracts": "^0.1.0"++ "openvibe-contracts": ">=0.6.0 <1.0.0"},"id": "ai","name": "OpenVibe.AI",-- "status": "placeholder",++ "status": "alpha","repository": "OpenVibers/OpenVibe.AI",-- "domains": [],-- "capabilities": [],++ "domains": [++ "ai.openvibe.network"++ ],++ "publicOrigin": "https://ai.openvibe.network",++ "health": "/api/health",++ "ready": "/api/ready",++ "capabilities": [++ "ai.run.create",++ "ai.run.read",++ "ai.workflow.manage",++ "ai.provider.manage",++ "ai.usage.read"++ ],"eventsProduced": [],"eventsConsumed": [],"namespacesOwned": [],-- "notes": "Providers, models, routing, prompt templates, workflows, runs, citations, cache and quotas for every product. Charter only; no runtime."++ "notes": "Providers, models, routing profiles, versioned prompt templates and workflows, runs, request logs, citations, scoped cache, quotas and audit. Workflow output is a draft/evidence package attributed to workflow + model + run. ai.run.queued|succeeded|failed|cached events follow once the Events client is wired in."}@@@ -1,6 +1,6 @@{"name": "openvibe-contracts",-- "version": "0.28.0",++ "version": "0.29.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",
new file mode 100644
new file mode 100644
@@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
+{
+ "id": "ai.provider.manage",
+ "version": "1.0",
+ "owner": "ai",
+ "status": "active",
+ "visibility": "internal",
+ "description": "Register, update, enable and disable providers and models (secrets only as env references, never values), reset circuit breakers, set quotas and purge the cache.",
+ "permissions": [
+ "ai:admin"
+ ],
+ "resourceConstraints": [
+ "none"
+ ],
+ "quotaClass": "ai-admin",
+ "events": [],
+ "implementedBy": [
+ "POST /api/v1/providers",
+ "PATCH /api/v1/providers/:key",
+ "POST /api/v1/providers/:key/disable",
+ "POST /api/v1/providers/:key/enable",
+ "POST /api/v1/providers/:key/reset",
+ "POST /api/v1/models",
+ "PATCH /api/v1/models/:provider/:model",
+ "POST /api/v1/quotas",
+ "DELETE /api/v1/cache"
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
+{
+ "id": "ai.run.create",
+ "version": "1.0",
+ "owner": "ai",
+ "status": "active",
+ "visibility": "first-party",
+ "description": "Create workflow runs (POST /api/v1/runs and the direct chat/generate/summarize/classify/extract/enrich/embed operations), cancel or retry the caller's own runs and attach citations to them. A token's `ns` claim limits which workflow namespaces it may run (live.*, wiki.*, ...). Quotas are checked before any provider call.",
+ "permissions": [
+ "ai:run"
+ ],
+ "resourceConstraints": [
+ "namespace",
+ "owner"
+ ],
+ "quotaClass": "ai-run",
+ "events": [],
+ "implementedBy": [
+ "POST /api/v1/runs",
+ "POST /api/v1/runs/:id/cancel",
+ "POST /api/v1/runs/:id/retry",
+ "POST /api/v1/runs/:id/citations",
+ "POST /api/v1/chat",
+ "POST /api/v1/generate",
+ "POST /api/v1/summarize",
+ "POST /api/v1/classify",
+ "POST /api/v1/extract",
+ "POST /api/v1/enrich",
+ "POST /api/v1/embed"
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
+{
+ "id": "ai.run.read",
+ "version": "1.0",
+ "owner": "ai",
+ "status": "active",
+ "visibility": "first-party",
+ "description": "Read the caller's own runs, their citations and request-log metadata (hashes, tokens, latency; never raw prompts).",
+ "permissions": [
+ "ai:read"
+ ],
+ "resourceConstraints": [
+ "owner"
+ ],
+ "quotaClass": "ai-read",
+ "events": [],
+ "implementedBy": [
+ "GET /api/v1/runs",
+ "GET /api/v1/runs/:id",
+ "GET /api/v1/runs/:id/citations"
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
+{
+ "id": "ai.usage.read",
+ "version": "1.0",
+ "owner": "ai",
+ "status": "active",
+ "visibility": "internal",
+ "description": "Read usage, quota windows, request logs, the audit log, cache statistics, the admin summary and any caller's runs.",
+ "permissions": [
+ "ai:read"
+ ],
+ "resourceConstraints": [
+ "none"
+ ],
+ "quotaClass": "ai-read",
+ "events": [],
+ "implementedBy": [
+ "GET /api/v1/status",
+ "GET /api/v1/usage",
+ "GET /api/v1/quotas",
+ "GET /api/v1/requests",
+ "GET /api/v1/audit",
+ "GET /api/v1/cache",
+ "GET /api/v1/providers",
+ "GET /api/v1/models"
+ ]
+}
new file mode 100644
new file mode 100644
@@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
+{
+ "id": "ai.workflow.manage",
+ "version": "1.0",
+ "owner": "ai",
+ "status": "active",
+ "visibility": "internal",
+ "description": "Create new versions of prompt templates, workflow definitions and routing profiles, and change their lifecycle status (draft, active, deprecated, archived; routes active/disabled). Every change is audited; edits never overwrite a version.",
+ "permissions": [
+ "ai:admin"
+ ],
+ "resourceConstraints": [
+ "none"
+ ],
+ "quotaClass": "ai-admin",
+ "events": [],
+ "implementedBy": [
+ "POST /api/v1/templates/:key/versions",
+ "POST /api/v1/templates/:key/versions/:version/status",
+ "POST /api/v1/workflows/:key/versions",
+ "POST /api/v1/workflows/:key/versions/:version/status",
+ "POST /api/v1/routes/:key/versions",
+ "POST /api/v1/routes/:key/versions/:version/status"
+ ]
+}
@@ -1,16 +1,27 @@
@@ -1,16 +1,27 @@
{
{
"version": "0.1.0",
"version": "0.1.0",
"contractRanges": {
"contractRanges": {
- "openvibe-contracts": "^0.1.0"
+ "openvibe-contracts": ">=0.6.0 <1.0.0"
},
},
"id": "ai",
"id": "ai",
"name": "OpenVibe.AI",
"name": "OpenVibe.AI",
- "status": "placeholder",
+ "status": "alpha",
"repository": "OpenVibers/OpenVibe.AI",
"repository": "OpenVibers/OpenVibe.AI",
- "domains": [],
- "capabilities": [],
+ "domains": [
+ "ai.openvibe.network"
+ ],
+ "publicOrigin": "https://ai.openvibe.network",
+ "health": "/api/health",
+ "ready": "/api/ready",
+ "capabilities": [
+ "ai.run.create",
+ "ai.run.read",
+ "ai.workflow.manage",
+ "ai.provider.manage",
+ "ai.usage.read"
+ ],
"eventsProduced": [],
"eventsProduced": [],
"eventsConsumed": [],
"eventsConsumed": [],
"namespacesOwned": [],
"namespacesOwned": [],
- "notes": "Providers, models, routing, prompt templates, workflows, runs, citations, cache and quotas for every product. Charter only; no runtime."
+ "notes": "Providers, models, routing profiles, versioned prompt templates and workflows, runs, request logs, citations, scoped cache, quotas and audit. Workflow output is a draft/evidence package attributed to workflow + model + run. ai.run.queued|succeeded|failed|cached events follow once the Events client is wired in."
}
}
@@ -1,6 +1,6 @@
@@ -1,6 +1,6 @@
{
{
"name": "openvibe-contracts",
"name": "openvibe-contracts",
- "version": "0.28.0",
+ "version": "0.29.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",