All contracts

Workspace operations / JSON Schema

Workspai Renderer-Neutral Activity Board

A bounded renderer-neutral projection for IDE, web, terminal, SVG and capture consumers. It preserves observed run data without becoming verification evidence.

Schema version
workspace-activity-board.v1
Contract path
contracts/workspace-activity-board.v1.json
Publication
json-schema
Defined fields
43
Artifact bindings
0

Why this contract exists

Architecture role

Defines a versioned interoperability boundary used by Workspai and contract-aware consumers.

Consumption boundary

  • Workspai CLI
  • Workspace Intelligence consumers
  • IDEs and agents

Related commands

Commands are linked only when the runtime contract identifies a direct production relationship. Supporting contracts may be consumed without having a single producer command.

This is a supporting, capability, cache, compatibility, or consumer contract. It has no single direct producer command in the canonical Workspace Intelligence execution registry.

Produced artifacts

These durable files are emitted by registered commands and validated against this contract.

No canonical file artifact is registered for this contract. It may describe capabilities, embedded data, runtime exchange, or supporting state instead of a standalone report.

Field reference

Every declared schema property or published capability path is listed here. Required means the contract declares or publishes that field at the shown boundary.

Field pathTypeRequiredMeaningConstraints
$defs.boardRun.activebooleanYesDefines the active value at this contract boundary.
$defs.boardRun.activeBlockCountintegerYesDefines the activeblockcount value at this contract boundary.minimum: 0
$defs.boardRun.commandLabelstringYesDefines the commandlabel value at this contract boundary.minLength: 1
$defs.boardRun.edgesarrayYesDefines the edges value at this contract boundary.
$defs.boardRun.edges[].fromBlockIdstringYesDefines the fromblockid value at this contract boundary.minLength: 1
$defs.boardRun.edges[].idstringYesDefines the id value at this contract boundary.minLength: 1
$defs.boardRun.edges[].inferredbooleanYesDefines the inferred value at this contract boundary.
$defs.boardRun.edges[].kindenumYesDefines the kind value at this contract boundary.enum: sequence, parallel, gate, handoff
$defs.boardRun.edges[].ordernumberYesDefines the order value at this contract boundary.
$defs.boardRun.edges[].statusreferenceYesDefines the status value at this contract boundary.ref: workspace-activity-monitor-snapshot.v1.json#/$defs/status
$defs.boardRun.edges[].toBlockIdstringYesDefines the toblockid value at this contract boundary.minLength: 1
$defs.boardRun.edges[].updatedAtstringYesDefines the updatedat value at this contract boundary.format: date-time
$defs.boardRun.locationLabelstringYesDefines the locationlabel value at this contract boundary.minLength: 1
$defs.boardRun.nodesarrayYesDefines the nodes value at this contract boundary.
$defs.boardRun.nodes[].attemptintegerNoDefines the attempt value at this contract boundary.minimum: 1
$defs.boardRun.nodes[].attemptsarrayYesDefines the attempts value at this contract boundary.
$defs.boardRun.nodes[].durationMsnumberNoDefines the durationms value at this contract boundary.minimum: 0
$defs.boardRun.nodes[].evidenceBindingsarrayNoDefines the evidencebindings value at this contract boundary.
$defs.boardRun.nodes[].groupstringNoDefines the group value at this contract boundary.minLength: 1
$defs.boardRun.nodes[].idstringYesDefines the id value at this contract boundary.minLength: 1
$defs.boardRun.nodes[].labelstringYesDefines the label value at this contract boundary.minLength: 1
$defs.boardRun.nodes[].layoutHintenumNoDefines the layouthint value at this contract boundary.enum: source, process, gate, sink
$defs.boardRun.nodes[].ordernumberYesDefines the order value at this contract boundary.
$defs.boardRun.nodes[].parentIdstringNoDefines the parentid value at this contract boundary.minLength: 1
$defs.boardRun.nodes[].progressreferenceNoDefines the progress value at this contract boundary.ref: workspace-activity-monitor-snapshot.v1.json#/$defs/progress
$defs.boardRun.nodes[].rootbooleanYesDefines the root value at this contract boundary.
$defs.boardRun.nodes[].statusreferenceYesDefines the status value at this contract boundary.ref: workspace-activity-monitor-snapshot.v1.json#/$defs/status
$defs.boardRun.nodes[].updatedAtstringYesDefines the updatedat value at this contract boundary.format: date-time
$defs.boardRun.runreferenceYesDefines the run value at this contract boundary.ref: workspace-activity-monitor-snapshot.v1.json#/$defs/run
$defs.boardRun.scopereferenceYesDefines the scope value at this contract boundary.ref: workspace-activity-monitor-snapshot.v1.json#/$defs/scope
$defs.boardRun.warningCountintegerYesDefines the warningcount value at this contract boundary.minimum: 0
activeRunCountintegerYesDefines the activeruncount value at this contract boundary.minimum: 0
diagnosticsarrayYesDefines the diagnostics value at this contract boundary.
failedRunCountintegerYesDefines the failedruncount value at this contract boundary.minimum: 0
generatedAtstringYesDefines the generatedat value at this contract boundary.format: date-time
globalbooleanYesDefines the global value at this contract boundary.
healthyRunCountintegerYesDefines the healthyruncount value at this contract boundary.minimum: 0
runsarrayYesDefines the runs value at this contract boundary.
schemaVersionstringYesDefines the schemaversion value at this contract boundary.const: "workspace-activity-board.v1"
scopeCountintegerYesDefines the scopecount value at this contract boundary.minimum: 0
scopeLabelstringYesDefines the scopelabel value at this contract boundary.minLength: 1
selectedRunIdstringNoDefines the selectedrunid value at this contract boundary.minLength: 1
warningRunCountintegerYesDefines the warningruncount value at this contract boundary.minimum: 0

Canonical machine-readable definition

The raw synchronized contract remains authoritative. The educational sections above are projections of this definition.

Show raw JSON
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://workspai.dev/contracts/workspace-activity-board.v1.json",
  "title": "Workspai Renderer-Neutral Activity Board",
  "description": "A bounded renderer-neutral projection for IDE, web, terminal, SVG and capture consumers. It preserves observed run data without becoming verification evidence.",
  "type": "object",
  "required": [
    "schemaVersion",
    "scopeLabel",
    "generatedAt",
    "activeRunCount",
    "healthyRunCount",
    "warningRunCount",
    "failedRunCount",
    "runs",
    "diagnostics",
    "global",
    "scopeCount"
  ],
  "properties": {
    "schemaVersion": {
      "const": "workspace-activity-board.v1"
    },
    "scopeLabel": {
      "type": "string",
      "minLength": 1
    },
    "generatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "activeRunCount": {
      "type": "integer",
      "minimum": 0
    },
    "healthyRunCount": {
      "type": "integer",
      "minimum": 0
    },
    "warningRunCount": {
      "type": "integer",
      "minimum": 0
    },
    "failedRunCount": {
      "type": "integer",
      "minimum": 0
    },
    "selectedRunId": {
      "type": "string",
      "minLength": 1
    },
    "runs": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/boardRun"
      }
    },
    "diagnostics": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "global": {
      "type": "boolean"
    },
    "scopeCount": {
      "type": "integer",
      "minimum": 0
    }
  },
  "additionalProperties": false,
  "$defs": {
    "boardRun": {
      "type": "object",
      "required": [
        "run",
        "commandLabel",
        "active",
        "nodes",
        "edges",
        "activeBlockCount",
        "warningCount",
        "scope",
        "locationLabel"
      ],
      "properties": {
        "run": {
          "$ref": "workspace-activity-monitor-snapshot.v1.json#/$defs/run"
        },
        "commandLabel": {
          "type": "string",
          "minLength": 1
        },
        "active": {
          "type": "boolean"
        },
        "nodes": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "label",
              "status",
              "order",
              "updatedAt",
              "attempts",
              "root"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "label": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "$ref": "workspace-activity-monitor-snapshot.v1.json#/$defs/status"
              },
              "order": {
                "type": "number"
              },
              "parentId": {
                "type": "string",
                "minLength": 1
              },
              "progress": {
                "$ref": "workspace-activity-monitor-snapshot.v1.json#/$defs/progress"
              },
              "durationMs": {
                "type": "number",
                "minimum": 0
              },
              "layoutHint": {
                "enum": [
                  "source",
                  "process",
                  "gate",
                  "sink"
                ]
              },
              "group": {
                "type": "string",
                "minLength": 1
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "attempt": {
                "type": "integer",
                "minimum": 1
              },
              "attempts": {
                "type": "array",
                "items": {
                  "$ref": "workspace-activity-monitor-snapshot.v1.json#/$defs/attempt"
                }
              },
              "evidenceBindings": {
                "type": "array",
                "items": {
                  "$ref": "workspace-activity-monitor-snapshot.v1.json#/$defs/evidenceBinding"
                }
              },
              "root": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          }
        },
        "edges": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "fromBlockId",
              "toBlockId",
              "kind",
              "status",
              "order",
              "updatedAt",
              "inferred"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "fromBlockId": {
                "type": "string",
                "minLength": 1
              },
              "toBlockId": {
                "type": "string",
                "minLength": 1
              },
              "kind": {
                "enum": [
                  "sequence",
                  "parallel",
                  "gate",
                  "handoff"
                ]
              },
              "status": {
                "$ref": "workspace-activity-monitor-snapshot.v1.json#/$defs/status"
              },
              "order": {
                "type": "number"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              },
              "inferred": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          }
        },
        "activeBlockCount": {
          "type": "integer",
          "minimum": 0
        },
        "warningCount": {
          "type": "integer",
          "minimum": 0
        },
        "scope": {
          "$ref": "workspace-activity-monitor-snapshot.v1.json#/$defs/scope"
        },
        "locationLabel": {
          "type": "string",
          "minLength": 1
        }
      },
      "additionalProperties": false
    }
  }
}