openvibe-sdk/vision
Generated at from
openvibe-contracts v0.222.0 and
openvibe-sdk v0.73.0.
From types/vision.d.ts (both). Declarations are shown verbatim.
export export const DEFAULT_AUDIENCE: string;
The audience a Vision token is minted for: `openvibe.vision`.
export const DEFAULT_AUDIENCE: string;type VisionImage
An image as bytes, a data URL or a public URL.
export type VisionImage = Blob | ArrayBuffer | ArrayBufferView | string;interface VisionReceipt
export interface VisionReceipt {
engine: 'local' | 'routed' | 'local+routed' | 'local+routed description';
model: string | null;
cost_usd: number;
ms: number;
confidence: number | null;
retention: string;
}interface VisionAnswerRow
export interface VisionAnswerRow {
id: string;
task: 'ask' | 'describe' | 'identify' | 'count' | 'translate' | 'ocr' | 'compare';
question?: string | null;
mode: 'auto' | 'local' | 'ai';
source: 'upload' | 'url' | 'data';
source_url?: string | null;
image_sha256: string;
image_mime: string;
image_bytes: number;
text: string | null;
answer: Record<string, unknown>;
model: string | null;
provider: string | null;
route: string | null;
reason: string | null;
engine?: string | null;
confidence?: number | null;
cost_usd: number;
latency_ms: number;
created_at: string;
}interface VisionCompareSample
export interface VisionCompareSample {
engine: 'local' | 'ai';
requested_model?: string | null;
model?: string | null;
provider?: string | null;
route?: string | null;
ok: boolean;
text: string | null;
cost_usd: number;
latency_ms: number;
error_code?: string | null;
}interface VisionAnswerResult
export interface VisionAnswerResult {
answer: VisionAnswerRow;
compare?: VisionCompareSample[];
local?: { ok: boolean; model: string | null; confidence: number | null; error_code: string | null };
}interface VisionConsent
export interface VisionConsent {
id: string;
feature: 'verify' | 'find' | 'cast' | 'library';
scope: string;
text_version: string;
granted_at: string;
revoked_at: string | null;
}interface VisionConsentGrant
export interface VisionConsentGrant {
feature: 'verify' | 'find' | 'cast' | 'library';
scope: string;
text_version: string;
granted_at: string;
}interface VisionConsentRequest
export interface VisionConsentRequest {
signed_name: string;
text_version: string;
channel?: string;
adult?: boolean;
region?: string;
}interface VisionFaceTag
export interface VisionFaceTag {
id: string;
channel: string;
media_ref: string;
created_at: string;
}interface VisionFaceDetection
export interface VisionFaceDetection {
count: number;
boxes: Array<{ x: number; y: number; width: number; height: number; score: number }>;
}interface VisionFaceLibraryGroup
export interface VisionFaceLibraryGroup {
id: string;
media_id: string;
group_id: string;
label: string | null;
excluded: boolean;
created_at: string;
}interface VisionUiCheckFinding
export interface VisionUiCheckFinding {
kind: 'overflow' | 'cut_off' | 'contrast' | 'overlap' | 'layering';
severity: 'high' | 'medium' | 'low';
selector: string;
detail: string;
evidence?: Record<string, unknown>;
}interface VisionUiCheckResult
export interface VisionUiCheckResult {
check: {
id: string;
source: 'html' | 'url' | 'screenshot';
url?: string | null;
image_sha256?: string | null;
viewport: { w: number; h: number };
engine: 'static-html' | 'screenshot';
findings: VisionUiCheckFinding[];
summary?: Record<string, unknown>;
counts?: Record<string, number>;
severity?: Record<string, number>;
warnings?: string[];
summary_text?: string;
created_at: string;
};
}interface VisionModels
export interface VisionModels {
ai: boolean;
configured: string[];
offered: unknown[];
local: string[];
note: string;
}interface VisionBenchmarks
export interface VisionBenchmarks {
count: number;
benchmarks: Array<{
task: string;
engine: 'local' | 'ai';
provider: string | null;
model: string | null;
samples: number;
avg_latency_ms: number;
avg_cost_usd: number;
min_cost_usd: number;
max_latency_ms: number;
}>;
}interface VisionClientOptions
export interface VisionClientOptions {
baseUrl?: string;
audience?: string;
}interface VisionClient
export interface VisionClient {
ask(image: VisionImage, o?: { question?: string; task?: string; mode?: 'auto' | 'local' | 'ai'; lang?: string; model?: string }, opts?: { filename?: string; contentType?: string }): Promise<VisionAnswerResult>;
describe(image: VisionImage, o?: { question?: string; task?: string; mode?: 'auto' | 'local' | 'ai'; lang?: string; model?: string }, opts?: { filename?: string; contentType?: string }): Promise<VisionAnswerResult>;
ocr(image: VisionImage, o?: { lang?: string; fallback?: boolean; model?: string }, opts?: { filename?: string; contentType?: string }): Promise<VisionAnswerResult>;
compare(image: VisionImage, o?: { task?: string; question?: string; models?: string[]; lang?: string }, opts?: { filename?: string; contentType?: string }): Promise<VisionAnswerResult>;
alt(image: VisionImage, opts?: { filename?: string; contentType?: string }): Promise<{ answer: { alt_text: string; editable: true; receipt: VisionReceipt } }>;
index(image: VisionImage, itemId: string, o?: { resultUrl?: string }, opts?: { filename?: string; contentType?: string }): Promise<{ answer: { item_id: string; receipt: VisionReceipt } }>;
find(query: VisionImage, opts?: { filename?: string; contentType?: string }): Promise<{ answer: { results: Array<{ item_id: string; result_url: string | null; score: number }>; receipt: VisionReceipt } }>;
receipt(image: VisionImage, o?: { fallback?: boolean }, opts?: { filename?: string; contentType?: string }): Promise<{ answer: { store: string | null; items: Array<{ name: string; qty: number; price: number }>; total: number | null; raw_text?: string; receipt: VisionReceipt } }>;
product(image: VisionImage, o?: { allow_rerank?: boolean }, opts?: { filename?: string; contentType?: string }): Promise<{ answer: { description: string; embedding: number[]; offers: Array<{ source: string; title: string; url: string; price?: number | null; score?: number }>; warnings: string[]; receipt: VisionReceipt } }>;
watch(image: VisionImage, classes: string[], o?: { previousImage?: string; sourceRef?: string }, opts?: { filename?: string; contentType?: string }): Promise<{ answer: { detections: Array<{ class: string; confidence: number; box?: { x: number; y: number; width: number; height: number } | null }>; receipt: VisionReceipt } }>;
moments(frames: Array<{ timestamp_ms: number; image?: string; image_url?: string }>, prompts?: string[]): Promise<{ answer: { scene_changes: Array<{ timestamp_ms: number; kind: 'scene_change' }>; candidate_moments: Array<{ timestamp_ms: number; prompt: string; score: number }>; receipt: VisionReceipt } }>;
uiCheck(source?: { html?: string; url?: string; image?: VisionImage; imageUrl?: string; viewport?: { w: number; h: number } }): Promise<VisionUiCheckResult>;
models(): Promise<VisionModels>;
benchmarks(o?: { task?: string; limit?: number }): Promise<VisionBenchmarks>;
answer(id: string): Promise<VisionAnswerRow>;
uiCheckById(id: string): Promise<VisionUiCheckResult>;
mcp(message: unknown, o?: { protocolVersion?: string }): Promise<unknown>;
protectedResource(): Promise<{ resource: string; authorization_servers: string[]; scopes_supported: string[]; bearer_methods_supported: string[]; resource_documentation?: string }>;
face: {
detect(image: VisionImage, opts?: { filename?: string; contentType?: string }): Promise<VisionFaceDetection>;
blur(image: VisionImage, opts?: { filename?: string; contentType?: string }): Promise<{ bytes: ArrayBuffer; contentType: string | null; faceCount: number }>;
texts(): Promise<Record<'verify' | 'find' | 'cast' | 'library', { version: string; text: string }>>;
consents(): Promise<VisionConsent[]>;
grant(feature: 'verify' | 'find' | 'cast' | 'library', body: VisionConsentRequest): Promise<VisionConsentGrant>;
revoke(feature: string, o?: { channel?: string }): Promise<{ feature: string; scope: string; revoked_at: string; revoked_by: 'subject'; erased: true }>;
enrol(feature: 'verify' | 'find' | 'cast', image: VisionImage, o?: { channel?: string }, opts?: { filename?: string; contentType?: string }): Promise<{ enrolled: true; feature: string; scope: string; liveness: 'not_checked' }>;
verify(image: VisionImage, opts?: { filename?: string; contentType?: string }): Promise<{ score: number; match: boolean; threshold: number; liveness: 'not_checked' | 'checked' }>;
upload(image: VisionImage, opts?: { filename?: string; contentType?: string }): Promise<{ id: string; private_link: string; face_count: number }>;
media(id: string): Promise<{ bytes: ArrayBuffer; contentType: string | null }>;
find(): Promise<{ results: Array<{ private_link: string; score: number }> }>;
tags(): Promise<VisionFaceTag[]>;
cluster(region: string): Promise<VisionFaceLibraryGroup[]>;
groups(): Promise<VisionFaceLibraryGroup[]>;
correct(action: 'exclude' | 'merge' | 'split', ids: string[]): Promise<{ action: 'exclude' | 'merge' | 'split'; updated: number }>;
};
}export export function createVisionClient(client: unknown, options?
export function createVisionClient(client: unknown, options?: VisionClientOptions): VisionClient;