NetworkDockResult network.dock-result@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
network
Visibility
public
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/network/dock-result.v1.json

network.dock-result@1 (the Dock plan 2026-10-30, K-D1): what GET /api/v1/me/dock answers on OpenVibe.Network — the person's Dock state, the counts the pill's status dot is drawn from, and whether those counts are complete.

Fields

FieldTypeRequiredDescriptionConstraints
statenetwork.dock-stateyesThe person's Dock state: the stored one, or the default when they have never opened the Dock.
countsobjectyes
  • no other fields
counts.runningintegeryesHow many of the person's agents are running.
  • minimum 0
counts.waitingintegeryesHow many need the person.
  • minimum 0
counts.unreadintegeryesHow many notifications the person has not read.
  • minimum 0
sources_partialbooleanyesTrue when an authority behind the counts did not answer, so the counts are lower than the truth.

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: default
{
  "state": {
    "open": false,
    "tab": "activity",
    "pinned": false,
    "agent": null,
    "chat": null,
    "place": {
      "phone": {
        "corner": "bottom-right"
      },
      "desktop": {
        "corner": "bottom-right",
        "width": null,
        "height": null
      }
    },
    "updated_at": "2026-10-30T12:00:00Z"
  },
  "counts": {
    "running": 0,
    "waiting": 0,
    "unread": 0
  },
  "sources_partial": false
}
Rejected: extra-key
{
  "state": {
    "open": false,
    "tab": "activity",
    "pinned": false,
    "agent": null,
    "chat": null,
    "place": {
      "phone": {
        "corner": "bottom-right"
      },
      "desktop": {
        "corner": "bottom-right",
        "width": null,
        "height": null
      }
    },
    "updated_at": "2026-10-30T12:00:00Z"
  },
  "counts": {
    "running": 0,
    "waiting": 0,
    "unread": 0
  },
  "sources_partial": false,
  "sources": {
    "actor": "ok"
  }
}
Rejected: negative-count
{
  "state": {
    "open": true,
    "tab": "agent",
    "pinned": true,
    "agent": {
      "service": "codes",
      "id": "tsk_01JAB2C3D4E5F6G7H8J9K0MNPQ"
    },
    "chat": null,
    "place": {
      "phone": {
        "corner": "bottom-left"
      },
      "desktop": {
        "corner": "bottom-left",
        "width": 480,
        "height": 720
      }
    },
    "updated_at": "2026-10-30T12:00:00Z"
  },
  "counts": {
    "running": -1,
    "waiting": 0,
    "unread": 3
  },
  "sources_partial": false
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('network.dock-result@1', value);   // { valid, errors: [{ path, message }] }