feat: Add description field and auto-spawn discuss agent on initiative creation
This commit is contained in:
@@ -5,14 +5,16 @@
|
||||
import { TRPCError } from '@trpc/server';
|
||||
import { z } from 'zod';
|
||||
import type { ProcedureBuilder } from '../trpc.js';
|
||||
import { requireInitiativeRepository, requireProjectRepository, requireTaskRepository } from './_helpers.js';
|
||||
import { requireAgentManager, requireInitiativeRepository, requireProjectRepository, requireTaskRepository } from './_helpers.js';
|
||||
import { deriveInitiativeActivity } from './initiative-activity.js';
|
||||
import { buildDiscussPrompt } from '../../agent/prompts/index.js';
|
||||
|
||||
export function initiativeProcedures(publicProcedure: ProcedureBuilder) {
|
||||
return {
|
||||
createInitiative: publicProcedure
|
||||
.input(z.object({
|
||||
name: z.string().min(1),
|
||||
description: z.string().optional(),
|
||||
branch: z.string().nullable().optional(),
|
||||
projectIds: z.array(z.string().min(1)).min(1).optional(),
|
||||
executionMode: z.enum(['yolo', 'review_per_phase']).optional(),
|
||||
@@ -55,6 +57,34 @@ export function initiativeProcedures(publicProcedure: ProcedureBuilder) {
|
||||
});
|
||||
}
|
||||
|
||||
// Auto-spawn discuss agent when description is provided
|
||||
if (input.description?.trim() && ctx.agentManager && ctx.taskRepository) {
|
||||
try {
|
||||
const taskRepo = requireTaskRepository(ctx);
|
||||
const agentManager = requireAgentManager(ctx);
|
||||
|
||||
const task = await taskRepo.create({
|
||||
initiativeId: initiative.id,
|
||||
name: `Discuss: ${initiative.name}`,
|
||||
description: input.description.trim(),
|
||||
category: 'discuss',
|
||||
status: 'in_progress',
|
||||
});
|
||||
|
||||
const prompt = buildDiscussPrompt();
|
||||
|
||||
agentManager.spawn({
|
||||
taskId: task.id,
|
||||
prompt,
|
||||
mode: 'discuss',
|
||||
initiativeId: initiative.id,
|
||||
inputContext: { initiative },
|
||||
});
|
||||
} catch {
|
||||
// Fire-and-forget — don't fail initiative creation if agent spawn fails
|
||||
}
|
||||
}
|
||||
|
||||
return initiative;
|
||||
}),
|
||||
|
||||
|
||||
Reference in New Issue
Block a user