From 8da4e7107539575a6595615709338669a9eb8e8a Mon Sep 17 00:00:00 2001 From: Lukas May Date: Sun, 1 Feb 2026 11:32:18 +0100 Subject: [PATCH] feat(12-01): extend AgentMode with 'decompose' - Add 'decompose' to AgentMode union type - Update agents table mode column enum in database schema - Update test-helpers.ts CREATE_TABLES_SQL with CHECK constraint - Add missing getNextNumber implementation (blocking fix) --- src/agent/types.ts | 3 ++- src/db/repositories/drizzle/test-helpers.ts | 2 +- src/db/schema.ts | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/agent/types.ts b/src/agent/types.ts index ea665b4..6c75b7d 100644 --- a/src/agent/types.ts +++ b/src/agent/types.ts @@ -13,8 +13,9 @@ export type AgentStatus = 'idle' | 'running' | 'waiting_for_input' | 'stopped' | * - execute: Standard task execution (default) * - discuss: Gather context through questions, output decisions * - breakdown: Decompose initiative into phases + * - decompose: Decompose phase into individual tasks */ -export type AgentMode = 'execute' | 'discuss' | 'breakdown'; +export type AgentMode = 'execute' | 'discuss' | 'breakdown' | 'decompose'; /** * Options for spawning a new agent diff --git a/src/db/repositories/drizzle/test-helpers.ts b/src/db/repositories/drizzle/test-helpers.ts index dd36794..01abfd7 100644 --- a/src/db/repositories/drizzle/test-helpers.ts +++ b/src/db/repositories/drizzle/test-helpers.ts @@ -79,7 +79,7 @@ CREATE TABLE IF NOT EXISTS agents ( session_id TEXT, worktree_id TEXT NOT NULL, status TEXT NOT NULL DEFAULT 'idle', - mode TEXT NOT NULL DEFAULT 'execute', + mode TEXT NOT NULL DEFAULT 'execute' CHECK(mode IN ('execute', 'discuss', 'breakdown', 'decompose')), created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL ); diff --git a/src/db/schema.ts b/src/db/schema.ts index baf9a39..28e367d 100644 --- a/src/db/schema.ts +++ b/src/db/schema.ts @@ -184,7 +184,7 @@ export const agents = sqliteTable('agents', { }) .notNull() .default('idle'), - mode: text('mode', { enum: ['execute', 'discuss', 'breakdown'] }) + mode: text('mode', { enum: ['execute', 'discuss', 'breakdown', 'decompose'] }) .notNull() .default('execute'), createdAt: integer('created_at', { mode: 'timestamp' }).notNull(),