"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createJob = createJob;
exports.getJob = getJob;
exports.updateJob = updateJob;
exports.listJobs = listJobs;
const uuid_1 = require("uuid");
// ---------------------------------------------------------------------------
// In-memory store (swap for Redis/DB if scaling horizontally)
// ---------------------------------------------------------------------------
const store = new Map();
function createJob(agent, task, repo) {
    const job = {
        id: (0, uuid_1.v4)(),
        agent,
        task,
        repo,
        status: 'queued',
        progress: 'Job queued',
        toolCalls: [],
        createdAt: new Date().toISOString(),
        updatedAt: new Date().toISOString()
    };
    store.set(job.id, job);
    return job;
}
function getJob(id) {
    return store.get(id);
}
function updateJob(id, updates) {
    const job = store.get(id);
    if (!job)
        return undefined;
    const updated = { ...job, ...updates, id, updatedAt: new Date().toISOString() };
    store.set(id, updated);
    return updated;
}
function listJobs(limit = 50) {
    const all = Array.from(store.values());
    return all
        .sort((a, b) => b.createdAt.localeCompare(a.createdAt))
        .slice(0, limit);
}
