feat(worker): render PDF security reports via Typst (#421)

This commit is contained in:
ezl-keygraph
2026-08-12 15:06:43 +05:30
committed by GitHub
parent d4cc2ab974
commit 1ae0a142f8
18 changed files with 1168 additions and 27 deletions
+2 -2
View File
@@ -13,7 +13,7 @@ import { buildEnvFlags, loadEnv, resolveHostPiAuthPath, shouldUsePiAuth, validat
import { getWorkspacesDir, initHome } from '../home.js';
import { isLocal } from '../mode.js';
import { resolveModelSpec } from '../model-spec.js';
import { FINAL_REPORT_FILENAME, INTERNAL_DIR, resolveConfig, resolveRepo, resolveRunFile } from '../paths.js';
import { FINAL_REPORT_PDF_FILENAME, INTERNAL_DIR, resolveConfig, resolveRepo, resolveRunFile } from '../paths.js';
import { displaySplash } from '../splash.js';
import { stdoutIsTerminal } from '../tty.js';
@@ -249,7 +249,7 @@ function printInfo(
workspacesDir: string,
): void {
const logsCmd = isLocal() ? `./shannon logs ${workspace}` : `npx @keygraph/shannon logs ${workspace}`;
const reportPath = path.join(workspacesDir, workspace, FINAL_REPORT_FILENAME);
const reportPath = path.join(workspacesDir, workspace, FINAL_REPORT_PDF_FILENAME);
console.log(' Scan started — it runs in the background, so you can close this terminal.');
console.log('');
+3 -3
View File
@@ -23,10 +23,10 @@ export interface MountPair {
export const INTERNAL_DIR = '.shannon';
/**
* Filename of the human-facing final report surfaced at the run directory root.
* Must match FINAL_REPORT_FILENAME in the worker package.
* Filename of the human-facing PDF report surfaced at the run directory root.
* Must match FINAL_REPORT_PDF_FILENAME in the worker package.
*/
export const FINAL_REPORT_FILENAME = 'Security-Assessment-Report.md';
export const FINAL_REPORT_PDF_FILENAME = 'Security-Assessment-Report.pdf';
/**
* Resolve a run-directory file (e.g. session.json, workflow.log), preferring the