feat: register report workflow in daemon (analyst+renderer)

This commit is contained in:
2026-04-18 09:09:10 +00:00
parent 25591e2c21
commit 695dac8106
2 changed files with 14 additions and 4 deletions
+12 -2
View File
@@ -20,6 +20,9 @@ import { createMetaWorkflow } from '../workflows/meta.js';
import { createCursorRunner } from '../workflows/roles/agent-executor.js';
import { createMetaCoderRole } from '../workflows/roles/meta-coder-cursor.js';
import { createMetaTesterRole } from '../workflows/roles/meta-tester.js';
import { createReportWorkflow } from '../workflows/report.js';
import { createAnalystRole } from '../workflows/roles/analyst-llm.js';
import { createRendererRole } from '../workflows/roles/renderer-template.js';
import { createWorkflowRule } from '../workflows/workflow-rule-adapter.js';
// ── Config ─────────────────────────────────────────────────────
@@ -81,9 +84,16 @@ const metaWf = createMetaWorkflow({
});
const metaRule = createWorkflowRule(metaWf, store, logStore);
// 3. Report workflow (analyst → renderer)
const reportWf = createReportWorkflow({
analystFn: createAnalystRole(llm),
rendererFn: createRendererRole(),
});
const reportRule = createWorkflowRule(reportWf, store, logStore);
// ── Ticker ─────────────────────────────────────────────────────
const tick = createWorkflowTicker([codingRule, metaRule]);
const tick = createWorkflowTicker([codingRule, metaRule, reportRule]);
console.log('🍊 Pulse Workflow Daemon started');
console.log(` Repo: ${REPO_DIR}`);
@@ -92,7 +102,7 @@ console.log(` Store: ${DATA_DIR}/workflows.db`);
console.log(
` Tick: adaptive ${BASE_TICK_MS / 1000}s → ${MAX_TICK_MS / 1000}s (×${BACKOFF_FACTOR})`,
);
console.log(` Workflows: coding, meta`);
console.log(` Workflows: coding, meta, report`);
console.log('');
// ── Adaptive Tick Loop ─────────────────────────────────────────
@@ -23,11 +23,11 @@ export function createMetaTesterRole(opts: {
remote?: string;
/** git branch (default: main) */
branch?: string;
/** max ticks for e2e run (default: 50) */
/** max ticks for e2e run (default: 100;下限 20 以覆盖 ping-pong 静默 + 较长 workflow) */
maxTicks?: number;
}): Role<MetaTesterMeta> {
const branch = opts.branch ?? 'main';
const maxTicks = opts.maxTicks ?? 50;
const maxTicks = Math.max(opts.maxTicks ?? 100, 20);
return async (
chain: WorkflowMessage[],