Registry↗Dashboard↗

Submission & History

Query past runs and manually submit results. The run* methods auto-submit when tracking is enabled; these methods are for explicit history queries, dry-run previews, and out-of-band submission. All delegate to the SubmissionClient.

4 methods

client.getHistory()

Query run history for a project (most recent first). Throws SdkApiError for transport/auth failures from the submission service.

Requires authentication
projectrequiredstring

Target project name.

optionsoptionalSubmissionQueryOptions

Optional filters.

getHistory(project: string, options?: SubmissionQueryOptions): Promise<RunHistoryEntry[]>
typescript
import { UluOpsClient } from '@uluops/core';

const client = new UluOpsClient({
  apiKey: process.env.ULUOPS_API_KEY,
});

const history = await client.getHistory('my-project', { limit: 10 });
console.log(`${history.length} recent runs`);
Response Type
RunHistoryEntry[]

client.getRun()

Get details for a specific run by its UUID. Throws NotFoundError if no run exists with that id, and SdkApiError for transport/auth failures.

Requires authentication
runIdrequiredstringuuid

The run's UUID.

runIdrequiredstring

Unique run identifier.

runNumberrequirednumber

Run number within the project.

projectIdrequiredstring

Project ID.

dashboardUrlrequiredstring

Dashboard URL for this run.

allGatesPassedrequiredboolean

Whether all gates passed.

averageScorerequirednumber | null

Average score across validators; null for scoreless (generator/executor) runs.

correlationrequiredobject

Issue correlation counts from the submission API (zeroed on a plain get).

getRun(runId: string): Promise<RunSubmissionResponse>
typescript
import { UluOpsClient } from '@uluops/core';

const client = new UluOpsClient({
  apiKey: process.env.ULUOPS_API_KEY,
});

const run = await client.getRun('3f1c…');
console.log(`Run #${run.runNumber} · avg ${run.averageScore}`);
Response Type
// RunSubmissionResponse
{
  runId: string;
  runNumber: number;
  projectId: string;
  dashboardUrl: string;
  allGatesPassed: boolean;
  averageScore: number | null;
  correlation: object;
}

client.previewSubmission()

Preview what a submission would do without saving (dry run). Throws SdkApiError for transport/auth failures.

Requires authentication
projectrequiredstring

Target project name.

workflowTyperequiredstring

Workflow type (agent/command/workflow/pipeline).

resultrequiredExecutionResult

The execution result that would be submitted.

wouldCreaterequiredboolean

Submission would create a new run/issue.

wouldUpdaterequiredboolean

Submission would update existing records.

wouldRegressrequiredboolean

Submission would record a regression.

validationErrorsrequiredstring[]

Any validation errors that would block the submit.

previewSubmission(project: string, workflowType: string, result: ExecutionResult): Promise<{ wouldCreate; wouldUpdate; wouldRegress; validationErrors }>
typescript
import { UluOpsClient } from '@uluops/core';

const client = new UluOpsClient({
  apiKey: process.env.ULUOPS_API_KEY,
});

const result = await client.runCommand('validate', { target: './src' });
const preview = await client.previewSubmission('my-project', 'command', result);
console.log(preview.wouldCreate, preview.validationErrors);
Response Type
// { wouldCreate: boolean; wouldUpdate: boolean; wouldRegress: boolean; validationErrors: string[] }
{
  wouldCreate: boolean;
  wouldUpdate: boolean;
  wouldRegress: boolean;
  validationErrors: string[];
}

client.submitResults()

Manually submit execution results to the submission service — useful when tracking is disabled or you want to control submission yourself. Throws SubmissionError if the service rejects the submission, and SdkApiError for transport/auth failures.

Requires authentication
projectrequiredstring

Target project name.

workflowTyperequiredstring

Workflow type (agent/command/workflow/pipeline).

resultrequiredExecutionResult

The execution result to submit.

runIdrequiredstring

Unique run identifier.

runNumberrequirednumber

Run number within the project.

dashboardUrlrequiredstring

Dashboard URL for this run.

allGatesPassedrequiredboolean

Whether all gates passed.

correlationrequiredobject

Issue correlation counts (new/recurring/regression).

submitResults(project: string, workflowType: string, result: ExecutionResult): Promise<RunSubmissionResponse>
typescript
import { UluOpsClient } from '@uluops/core';

// Tracking off — submit explicitly when you choose to
const client = new UluOpsClient({
  apiKey: process.env.ULUOPS_API_KEY,
  trackingEnabled: false,
});

const result = await client.runCommand('validate', { target: './src' });
const run = await client.submitResults('my-project', 'command', result);
console.log(run.dashboardUrl);
Response Type
// RunSubmissionResponse
{
  runId: string;
  runNumber: number;
  dashboardUrl: string;
  allGatesPassed: boolean;
  correlation: object;
}