expose list and fetch runs ipc

This commit is contained in:
Ramnique Singh 2026-01-16 09:48:11 +05:30
parent 8c4bb7a73a
commit 32572813e2
3 changed files with 30 additions and 2 deletions

View file

@ -287,6 +287,12 @@ export function setupIpcHandlers() {
await runsCore.stop(args.runId);
return { success: true };
},
'runs:fetch': async (_event, args) => {
return runsCore.fetchRun(args.runId);
},
'runs:list': async (_event, args) => {
return runsCore.listRuns(args.cursor);
},
'oauth:connect': async (_event, args) => {
return await connectProvider(args.provider);
},

View file

@ -1,7 +1,7 @@
import z from "zod";
import container from "../di/container.js";
import { IMessageQueue } from "../application/lib/message-queue.js";
import { AskHumanResponseEvent, ToolPermissionResponseEvent, CreateRunOptions, Run, ToolPermissionAuthorizePayload, AskHumanResponsePayload } from "@x/shared/dist/runs.js";
import { AskHumanResponseEvent, ToolPermissionResponseEvent, CreateRunOptions, Run, ListRunsResponse, ToolPermissionAuthorizePayload, AskHumanResponsePayload } from "@x/shared/dist/runs.js";
import { IRunsRepo } from "./repo.js";
import { IAgentRuntime } from "../agents/runtime.js";
import { IBus } from "../application/lib/bus.js";
@ -49,4 +49,14 @@ export async function replyToHumanInputRequest(runId: string, ev: z.infer<typeof
export async function stop(runId: string): Promise<void> {
console.log(`Stopping run ${runId}`);
throw new Error('Not implemented');
}
export async function fetchRun(runId: string): Promise<z.infer<typeof Run>> {
const repo = container.resolve<IRunsRepo>('runsRepo');
return repo.fetch(runId);
}
export async function listRuns(cursor?: string): Promise<z.infer<typeof ListRunsResponse>> {
const repo = container.resolve<IRunsRepo>('runsRepo');
return repo.list(cursor);
}

View file

@ -1,7 +1,7 @@
import { z } from 'zod';
import { RelPath, Encoding, Stat, DirEntry, ReaddirOptions, ReadFileResult, WorkspaceChangeEvent, WriteFileOptions, WriteFileResult, RemoveOptions } from './workspace.js';
import { ListToolsResponse } from './mcp.js';
import { AskHumanResponsePayload, CreateRunOptions, Run, ToolPermissionAuthorizePayload } from './runs.js';
import { AskHumanResponsePayload, CreateRunOptions, Run, ListRunsResponse, ToolPermissionAuthorizePayload } from './runs.js';
// ============================================================================
// Runtime Validation Schemas (Single Source of Truth)
@ -156,6 +156,18 @@ const ipcSchemas = {
success: z.literal(true),
}),
},
'runs:fetch': {
req: z.object({
runId: z.string(),
}),
res: Run,
},
'runs:list': {
req: z.object({
cursor: z.string().optional(),
}),
res: ListRunsResponse,
},
'runs:events': {
req: z.null(),
res: z.null(),