feat: Add validation action and orchestrator for CCW Loop

- Implemented the VALIDATE action to run tests, check coverage, and generate reports.
- Created orchestrator for managing CCW Loop execution using Codex subagent pattern.
- Defined state schema for unified loop state management.
- Updated action catalog with new actions and their specifications.
- Enhanced CLI and issue routes to support new features and data structures.
- Improved documentation for Codex subagent design principles and action flow.
This commit is contained in:
catlog22
2026-01-22 22:32:37 +08:00
parent c0c1a2eb92
commit 2819f3597f
15 changed files with 3149 additions and 6 deletions

View File

@@ -302,7 +302,7 @@ export async function handleCliRoutes(ctx: RouteContext): Promise<boolean> {
if (req.method === 'PUT') {
handlePostRequest(req, res, async (body: unknown) => {
try {
const updates = body as { enabled?: boolean; primaryModel?: string; secondaryModel?: string; tags?: string[] };
const updates = body as { enabled?: boolean; primaryModel?: string; secondaryModel?: string; tags?: string[]; envFile?: string | null };
const updated = updateToolConfig(initialPath, tool, updates);
// Broadcast config updated event

View File

@@ -212,20 +212,22 @@ function getIssueDetail(issuesDir: string, issueId: string) {
function enrichIssues(issues: any[], issuesDir: string) {
return issues.map(issue => {
const solutions = readSolutionsJsonl(issuesDir, issue.id);
let taskCount = 0;
let tasks: any[] = [];
// Get task count from bound solution
// Get tasks from bound solution
if (issue.bound_solution_id) {
const boundSol = solutions.find(s => s.id === issue.bound_solution_id);
if (boundSol?.tasks) {
taskCount = boundSol.tasks.length;
tasks = boundSol.tasks;
}
}
return {
...issue,
solutions, // Add full solutions array
tasks, // Add full tasks array
solution_count: solutions.length,
task_count: taskCount
task_count: tasks.length
};
});
}