218d12b8d7
- /cron/[id]: job details, prompt, output history from filesystem - Cron list items now link to detail pages - Skills render SKILL.md as proper markdown (headings, code, tables) - Cron output proxy reads from ~/.hermes/cron/output/
30 lines
924 B
TypeScript
30 lines
924 B
TypeScript
import { NextRequest, NextResponse } from "next/server";
|
|
import { promises as fs } from "fs";
|
|
import path from "path";
|
|
|
|
const OUTPUT_DIR = process.env.HERMES_CRON_OUTPUT || "/home/hermes/.hermes/cron/output";
|
|
|
|
export async function GET(_req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
|
|
const { id } = await params;
|
|
const jobDir = path.join(OUTPUT_DIR, id);
|
|
|
|
try {
|
|
const files = await fs.readdir(jobDir);
|
|
const outputs = await Promise.all(
|
|
files
|
|
.filter((f) => f.endsWith(".md"))
|
|
.sort()
|
|
.reverse()
|
|
.slice(0, 20)
|
|
.map(async (f) => {
|
|
const content = await fs.readFile(path.join(jobDir, f), "utf-8");
|
|
const timestamp = f.replace(".md", "").replace(/_/g, " ");
|
|
return { timestamp, content };
|
|
})
|
|
);
|
|
return NextResponse.json({ outputs });
|
|
} catch {
|
|
return NextResponse.json({ outputs: [] });
|
|
}
|
|
}
|