import { startSdk } from '@start9labs/start-sdk' import { sdk } from '../sdk' /** * Returns the latest report as a copyable result, so you can read it straight * from the StartOS service page without opening the Web UI. The job runner saves * the most recent report (consolidated if synthesis is on, else the panel * digest) to /data/reports/latest.md on the StartOS host — no Spark round-trip. */ export const latestReport = sdk.Action.withoutInput( 'latest-report', async ({ effects }) => ({ name: 'View Latest Report', description: 'Show the most recent review report produced by the panel.', warning: null, allowedStatuses: 'any', group: null, visibility: 'enabled', }), async ({ effects }) => { const mounts = sdk.Mounts.of().mountVolume({ volumeId: 'main', mountpoint: '/data', subpath: null, readonly: true, }) let report: string try { const { stdout } = await startSdk.runCommand( effects, { imageId: 'main' }, ['sh', '-c', 'cat /data/reports/latest.md 2>/dev/null || echo "(no report yet — drop documents in the inbox and run a review)"'], { mounts, env: { BM_DATA_DIR: '/data' } }, 'latest-report', ) report = (stdout?.toString() || '').trim() || '(no report yet)' } catch (e: any) { report = 'Could not read report: ' + (e?.message || String(e)) } return { version: '1', title: 'Latest Boardroom Map Report', message: 'The panel\'s most recent review.', result: { type: 'single', value: report, copyable: true, qr: false, masked: false }, } }, )