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.
Parameters
projectrequiredstringTarget project name.
optionsoptionalSubmissionQueryOptionsOptional filters.
getHistory(project: string, options?: SubmissionQueryOptions): Promise<RunHistoryEntry[]>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`);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.
Parameters
runIdrequiredstringuuidThe run's UUID.
Return Fields
runIdrequiredstringUnique run identifier.
runNumberrequirednumberRun number within the project.
projectIdrequiredstringProject ID.
dashboardUrlrequiredstringDashboard URL for this run.
allGatesPassedrequiredbooleanWhether all gates passed.
averageScorerequirednumber | nullAverage score across validators; null for scoreless (generator/executor) runs.
correlationrequiredobjectIssue correlation counts from the submission API (zeroed on a plain get).
getRun(runId: string): Promise<RunSubmissionResponse>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}`);// 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.
Parameters
projectrequiredstringTarget project name.
workflowTyperequiredstringWorkflow type (agent/command/workflow/pipeline).
resultrequiredExecutionResultThe execution result that would be submitted.
Return Fields
wouldCreaterequiredbooleanSubmission would create a new run/issue.
wouldUpdaterequiredbooleanSubmission would update existing records.
wouldRegressrequiredbooleanSubmission 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 }>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);// { 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.
Parameters
projectrequiredstringTarget project name.
workflowTyperequiredstringWorkflow type (agent/command/workflow/pipeline).
resultrequiredExecutionResultThe execution result to submit.
Return Fields
runIdrequiredstringUnique run identifier.
runNumberrequirednumberRun number within the project.
dashboardUrlrequiredstringDashboard URL for this run.
allGatesPassedrequiredbooleanWhether all gates passed.
correlationrequiredobjectIssue correlation counts (new/recurring/regression).
submitResults(project: string, workflowType: string, result: ExecutionResult): Promise<RunSubmissionResponse>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);// RunSubmissionResponse
{
runId: string;
runNumber: number;
dashboardUrl: string;
allGatesPassed: boolean;
correlation: object;
}