diff --git a/apps/server/db/schema.ts b/apps/server/db/schema.ts index 3889111..bbdfc36 100644 --- a/apps/server/db/schema.ts +++ b/apps/server/db/schema.ts @@ -262,7 +262,7 @@ export const agents = sqliteTable('agents', { }) .notNull() .default('idle'), - mode: text('mode', { enum: ['execute', 'discuss', 'plan', 'detail', 'refine', 'chat'] }) + mode: text('mode', { enum: ['execute', 'discuss', 'plan', 'detail', 'refine', 'chat', 'errand'] }) .notNull() .default('execute'), pid: integer('pid'), @@ -629,3 +629,35 @@ export const reviewComments = sqliteTable('review_comments', { export type ReviewComment = InferSelectModel; export type NewReviewComment = InferInsertModel; + +// ============================================================================ +// ERRANDS +// ============================================================================ + +export const errands = sqliteTable('errands', { + id: text('id').primaryKey(), + description: text('description').notNull(), + branch: text('branch').notNull(), + baseBranch: text('base_branch').notNull().default('main'), + agentId: text('agent_id').references(() => agents.id, { onDelete: 'set null' }), + projectId: text('project_id').references(() => projects.id, { onDelete: 'cascade' }), + status: text('status', { + enum: ['active', 'pending_review', 'conflict', 'merged', 'abandoned'], + }).notNull().default('active'), + createdAt: integer('created_at', { mode: 'timestamp' }).notNull(), + updatedAt: integer('updated_at', { mode: 'timestamp' }).notNull(), +}); + +export const errandsRelations = relations(errands, ({ one }) => ({ + agent: one(agents, { + fields: [errands.agentId], + references: [agents.id], + }), + project: one(projects, { + fields: [errands.projectId], + references: [projects.id], + }), +})); + +export type Errand = InferSelectModel; +export type NewErrand = InferInsertModel; diff --git a/apps/server/drizzle/meta/_journal.json b/apps/server/drizzle/meta/_journal.json index 6e91f90..cf73e84 100644 --- a/apps/server/drizzle/meta/_journal.json +++ b/apps/server/drizzle/meta/_journal.json @@ -246,6 +246,13 @@ "when": 1772496000000, "tag": "0034_add_task_retry_count", "breakpoints": true + }, + { + "idx": 35, + "version": "6", + "when": 1772796561474, + "tag": "0035_faulty_human_fly", + "breakpoints": true } ] } \ No newline at end of file