@silvana-one/coordination
Version:
Silvana Coordination Client
58 lines (57 loc) • 1.46 kB
TypeScript
import { Transaction } from "@mysten/sui/transactions";
export type JobStatus = {
type: "Pending";
} | {
type: "Running";
} | {
type: "Failed";
error: string;
};
export interface Job {
id: string;
jobId: number;
description?: string;
developer: string;
agent: string;
agentMethod: string;
app: string;
appInstance: string;
appInstanceMethod: string;
sequences?: number[];
data: Uint8Array;
status: JobStatus;
attempts: number;
createdAt: number;
updatedAt: number;
}
export interface CreateJobParams {
jobs: string;
description?: string;
developer: string;
agent: string;
agentMethod: string;
app: string;
appInstance: string;
appInstanceMethod: string;
sequences?: number[];
data: Uint8Array;
}
export declare class JobManager {
private readonly jobs;
constructor(params: {
jobs: string;
});
static createJobs(maxAttempts?: number): Transaction;
createJob(params: CreateJobParams): Transaction;
startJob(jobId: number): Transaction;
completeJob(jobId: number): Transaction;
failJob(params: {
jobId: number;
error: string;
}): Transaction;
updateMaxAttempts(maxAttempts: number): Transaction;
getJob(jobId: number): Promise<Job | undefined>;
getPendingJobs(): Promise<number[]>;
getNextPendingJob(): Promise<number | undefined>;
getMaxAttempts(): Promise<number>;
}