diff --git a/package.json b/package.json index b3cbab2..c1bd829 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,8 @@ "test": "vitest run", "test:watch": "vitest", "migrate": "ts-node-esm src/backend/db/migrate.ts", - "workflow:run": "ts-node scripts/run-workflow.ts" + "workflow:run": "ts-node scripts/run-workflow.ts", + "workflow:schedule": "ts-node scripts/schedule-workflow.ts" }, "dependencies": { "express": "^4.18.2", diff --git a/scripts/morning-report.ts b/scripts/morning-report.ts index 2e6c8cc..ab81510 100644 --- a/scripts/morning-report.ts +++ b/scripts/morning-report.ts @@ -1,5 +1,5 @@ -import { WorkflowStatusManager } from '../src/backend/services/WorkflowStatusManager'; -import { getPendingPhaseUpdates } from '../src/backend/services/PhaseUpdateQueue'; +import { WorkflowStatusManager } from '../src/backend/services/WorkflowStatusManager.ts'; +import { getPendingPhaseUpdates } from '../src/backend/services/PhaseUpdateQueue.ts'; import { exec as execCb } from 'child_process'; import { promisify } from 'util'; diff --git a/scripts/schedule-workflow.ts b/scripts/schedule-workflow.ts new file mode 100644 index 0000000..8dfc0dc --- /dev/null +++ b/scripts/schedule-workflow.ts @@ -0,0 +1,16 @@ +#!/usr/bin/env ts-node +import { runWorkflow } from './run-workflow.ts'; +import { generateMorningReport } from './morning-report.ts'; + +export async function runScheduledWorkflow(): Promise { + await runWorkflow({ mode: 'resume' }); + await generateMorningReport(); +} + +if (import.meta.url === `file://${process.argv[1]}`) { + runScheduledWorkflow().catch((error) => { + const message = error instanceof Error ? error.message : String(error); + console.error(`[workflow:schedule] failed: ${message}`); + process.exitCode = 1; + }); +}