---
title: "openvibe-sdk/reports · OpenVibe.Services"
canonical: "https://openvibe.services/docs/sdk/reports"
updated: null
---

# openvibe-sdk/reports · OpenVibe.Services

HTML: [openvibe-sdk/reports · OpenVibe.Services](https://openvibe.services/docs/sdk/reports)

# `openvibe-sdk/reports`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

From `types/reports.d.ts` (server only). Declarations are shown verbatim.

## type ReportSource

~~~~
export type ReportSource = 'codes' | 'actor' | 'desk' | 'node';
~~~~

## type ReportOutcome

~~~~
export type ReportOutcome = 'done' | 'stopped' | 'failed';
~~~~

## type ReportVisibility

~~~~
export type ReportVisibility = 'private' | 'unlisted' | 'public';
~~~~

## interface ReportTask

~~~~
export interface ReportTask {
    ref: string;
    title: string;
    url?: string;
}
~~~~

## interface ReportStep

~~~~
export interface ReportStep {
    at?: string | Date;
    title: string;
    status?: 'started' | 'passed' | 'failed' | 'skipped';
    detail?: string;
    tests?: { passed: number; failed: number };
    cost_usd?: number;
}
~~~~

## interface ReportOutput

~~~~
export interface ReportOutput {
    kind?: 'pr' | 'file' | 'page' | 'deploy' | 'clip' | 'vod';
    title: string;
    url?: string;
    state?: string;
}
~~~~

## interface SessionReportWrite

~~~~
export interface SessionReportWrite {
    source: ReportSource;
    task: ReportTask;
    summary: string;
    outcome?: ReportOutcome;
    visibility?: ReportVisibility;
    worked_seconds?: number;
    cost_usd?: number;
    started_at?: string;
    ended_at?: string;
    timeline?: ReportStep[];
    outputs?: ReportOutput[];
    highlights?: string[];
    proof?: {
        tests?: { passed: number; failed: number };
        screenshots?: string[];
        review?: { verdict: string; notes?: string };
    };
}
~~~~

## interface ReportsClient

~~~~
export interface ReportsClient {
    /** Write a session report → { id, url, created }. Private unless visibility says otherwise. */
    write(report: SessionReportWrite, opts?: Opts): Promise<{ id: string; url: string; created: boolean }>;
    /** One report the caller may see. */
    read(id: string, opts?: Opts): Promise<Record<string, unknown>>;
}
~~~~

## function createReportsClient

~~~~
export declare function createReportsClient(client: object, opts?: { baseUrl?: string }): ReportsClient;
~~~~

## function cleanReport

~~~~
export declare function cleanReport(report?: SessionReportWrite): Record<string, unknown>;
~~~~
