Reduce server console polling load
This commit is contained in:
@@ -37,6 +37,7 @@ import type {
|
||||
JobCreateRequest,
|
||||
JobListResponse,
|
||||
JobResponse,
|
||||
JobState,
|
||||
LlmConfigSuggestionRequest,
|
||||
LlmConfigSuggestionResponse,
|
||||
LogStreamCursorRequest,
|
||||
@@ -59,6 +60,7 @@ import type {
|
||||
RunDistributionGenerateRequest,
|
||||
RunDistributionResponse,
|
||||
RunEndpointListResponse,
|
||||
RunEndpointStatus,
|
||||
RunUpdateJobResponse,
|
||||
RunUpdateJobListResponse,
|
||||
RunUpdateRequest,
|
||||
@@ -142,6 +144,16 @@ export interface PlatformEventStream {
|
||||
close(): void;
|
||||
}
|
||||
|
||||
interface RunEndpointListFilter {
|
||||
status?: RunEndpointStatus;
|
||||
}
|
||||
|
||||
interface JobListFilter {
|
||||
runEndpointId?: string;
|
||||
state?: JobState;
|
||||
states?: JobState[];
|
||||
}
|
||||
|
||||
export class PlatformApiClient {
|
||||
constructor(private readonly baseUrl = "/api/v1", private readonly sessionTokenProvider: () => string | null = () => platformApiSessionToken) {}
|
||||
|
||||
@@ -241,13 +253,12 @@ export class PlatformApiClient {
|
||||
});
|
||||
}
|
||||
|
||||
async listRunEndpoints(): Promise<RunEndpointListResponse> {
|
||||
return this.request<RunEndpointListResponse>("/run/endpoints");
|
||||
async listRunEndpoints(filter: RunEndpointListFilter = {}): Promise<RunEndpointListResponse> {
|
||||
return this.request<RunEndpointListResponse>(`/run/endpoints${runEndpointQuery(filter)}`);
|
||||
}
|
||||
|
||||
async listJobs(serverInstanceId?: string): Promise<JobListResponse> {
|
||||
const params = serverInstanceId ? `?serverInstanceId=${encodeURIComponent(serverInstanceId)}` : "";
|
||||
return this.request<JobListResponse>(`/jobs${params}`);
|
||||
async listJobs(serverInstanceId?: string, filter: JobListFilter = {}): Promise<JobListResponse> {
|
||||
return this.request<JobListResponse>(`/jobs${jobListQuery(serverInstanceId, filter)}`);
|
||||
}
|
||||
|
||||
async listArtifacts(filter: ArtifactFilterRequest = {}): Promise<ArtifactListResponse> {
|
||||
@@ -901,6 +912,23 @@ function artifactQuery(filter: ArtifactFilterRequest): string {
|
||||
return query ? `?${query}` : "";
|
||||
}
|
||||
|
||||
function runEndpointQuery(filter: RunEndpointListFilter): string {
|
||||
const params = new URLSearchParams();
|
||||
if (filter.status) params.set("status", filter.status);
|
||||
const query = params.toString();
|
||||
return query ? `?${query}` : "";
|
||||
}
|
||||
|
||||
function jobListQuery(serverInstanceId: string | undefined, filter: JobListFilter): string {
|
||||
const params = new URLSearchParams();
|
||||
if (serverInstanceId) params.set("serverInstanceId", serverInstanceId);
|
||||
if (filter.runEndpointId) params.set("runEndpointId", filter.runEndpointId);
|
||||
if (filter.state) params.set("state", filter.state);
|
||||
if (filter.states?.length) params.set("states", filter.states.join(","));
|
||||
const query = params.toString();
|
||||
return query ? `?${query}` : "";
|
||||
}
|
||||
|
||||
function serverFileListQuery(request: Partial<ServerFileListRequest>): string {
|
||||
const params = new URLSearchParams();
|
||||
if (request.directoryKey) params.set("directoryKey", request.directoryKey);
|
||||
|
||||
Reference in New Issue
Block a user