ActorAsk actor.ask@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- actor
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/actor/ask.v1.json
One question or action waiting for the owner of a personal Actor. An answer never grants permission for a different action.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes |
| |
actor | string | yes |
| |
goal | string | yes |
| |
kind | enum | yes |
| |
text | string | yes |
| |
options | array of string | yes |
| |
created | string | yes |
| |
answered | one of | yes | ||
screen_url | string | null | The Actor page where its person can take over the screen; not a credential. |
| |
evidence | object | null |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: answered
{
"id": "ask_01K6R3A1B2C3D4E5F6G7H8J9KF",
"actor": "act_01K6R3A1B2C3D4E5F6G7H8J9KF",
"goal": "agl_01K6R3A1B2C3D4E5F6G7H8J9KF",
"kind": "approve_action",
"text": "Send this application?",
"options": [
"Approve",
"Decline"
],
"created": "2026-11-09T09:00:00.000Z",
"answered": {
"at": "2026-11-09T09:01:00.000Z",
"decision": "answer",
"text": "Approve"
}
}Valid: pending
{
"id": "ask_01K6R3A1B2C3D4E5F6G7H8J9KF",
"actor": "act_01K6R3A1B2C3D4E5F6G7H8J9KF",
"goal": "agl_01K6R3A1B2C3D4E5F6G7H8J9KF",
"kind": "approve_action",
"text": "Send this application?",
"options": [
"Approve",
"Decline"
],
"created": "2026-11-09T09:00:00.000Z",
"answered": null
}Valid: sign-in
{
"id": "ask_01K6R3A1B2C3D4E5F6G7H8J9KF",
"actor": "act_01K6R3A1B2C3D4E5F6G7H8J9KF",
"goal": "agl_01K6R3A1B2C3D4E5F6G7H8J9KF",
"kind": "sign_in",
"text": "Send this application?",
"options": [
"Sign in on its screen",
"Done"
],
"created": "2026-11-09T09:00:00.000Z",
"answered": null,
"screen_url": "/you?screen=1",
"evidence": {
"text": "Sign in to the site on your Actor’s screen."
}
}Rejected: answer-without-time
{
"id": "ask_01K6R3A1B2C3D4E5F6G7H8J9KF",
"actor": "act_01K6R3A1B2C3D4E5F6G7H8J9KF",
"goal": "agl_01K6R3A1B2C3D4E5F6G7H8J9KF",
"kind": "approve_action",
"text": "Send this application?",
"options": [
"Approve",
"Decline"
],
"created": "2026-11-09T09:00:00.000Z",
"answered": {
"decision": "answer"
}
}Rejected: empty-text
{
"id": "ask_01K6R3A1B2C3D4E5F6G7H8J9KF",
"actor": "act_01K6R3A1B2C3D4E5F6G7H8J9KF",
"goal": "agl_01K6R3A1B2C3D4E5F6G7H8J9KF",
"kind": "approve_action",
"text": "",
"options": [
"Approve",
"Decline"
],
"created": "2026-11-09T09:00:00.000Z",
"answered": null
}Rejected: unknown-kind
{
"id": "ask_01K6R3A1B2C3D4E5F6G7H8J9KF",
"actor": "act_01K6R3A1B2C3D4E5F6G7H8J9KF",
"goal": "agl_01K6R3A1B2C3D4E5F6G7H8J9KF",
"kind": "run_anything",
"text": "Send this application?",
"options": [
"Approve",
"Decline"
],
"created": "2026-11-09T09:00:00.000Z",
"answered": null
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('actor.ask@1', value); // { valid, errors: [{ path, message }] }