ralph-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,540 @@
1
+ export declare const executions: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "executions";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: "id";
7
+ tableName: "executions";
8
+ dataType: "string";
9
+ columnType: "SQLiteText";
10
+ data: string;
11
+ driverParam: string;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {
22
+ length: number | undefined;
23
+ }>;
24
+ project: import("drizzle-orm/sqlite-core").SQLiteColumn<{
25
+ name: "project";
26
+ tableName: "executions";
27
+ dataType: "string";
28
+ columnType: "SQLiteText";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: [string, ...string[]];
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}, {
41
+ length: number | undefined;
42
+ }>;
43
+ branch: import("drizzle-orm/sqlite-core").SQLiteColumn<{
44
+ name: "branch";
45
+ tableName: "executions";
46
+ dataType: "string";
47
+ columnType: "SQLiteText";
48
+ data: string;
49
+ driverParam: string;
50
+ notNull: true;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: [string, ...string[]];
56
+ baseColumn: never;
57
+ identity: undefined;
58
+ generated: undefined;
59
+ }, {}, {
60
+ length: number | undefined;
61
+ }>;
62
+ description: import("drizzle-orm/sqlite-core").SQLiteColumn<{
63
+ name: "description";
64
+ tableName: "executions";
65
+ dataType: "string";
66
+ columnType: "SQLiteText";
67
+ data: string;
68
+ driverParam: string;
69
+ notNull: true;
70
+ hasDefault: false;
71
+ isPrimaryKey: false;
72
+ isAutoincrement: false;
73
+ hasRuntimeDefault: false;
74
+ enumValues: [string, ...string[]];
75
+ baseColumn: never;
76
+ identity: undefined;
77
+ generated: undefined;
78
+ }, {}, {
79
+ length: number | undefined;
80
+ }>;
81
+ prdPath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
82
+ name: "prd_path";
83
+ tableName: "executions";
84
+ dataType: "string";
85
+ columnType: "SQLiteText";
86
+ data: string;
87
+ driverParam: string;
88
+ notNull: true;
89
+ hasDefault: false;
90
+ isPrimaryKey: false;
91
+ isAutoincrement: false;
92
+ hasRuntimeDefault: false;
93
+ enumValues: [string, ...string[]];
94
+ baseColumn: never;
95
+ identity: undefined;
96
+ generated: undefined;
97
+ }, {}, {
98
+ length: number | undefined;
99
+ }>;
100
+ projectRoot: import("drizzle-orm/sqlite-core").SQLiteColumn<{
101
+ name: "project_root";
102
+ tableName: "executions";
103
+ dataType: "string";
104
+ columnType: "SQLiteText";
105
+ data: string;
106
+ driverParam: string;
107
+ notNull: true;
108
+ hasDefault: false;
109
+ isPrimaryKey: false;
110
+ isAutoincrement: false;
111
+ hasRuntimeDefault: false;
112
+ enumValues: [string, ...string[]];
113
+ baseColumn: never;
114
+ identity: undefined;
115
+ generated: undefined;
116
+ }, {}, {
117
+ length: number | undefined;
118
+ }>;
119
+ worktreePath: import("drizzle-orm/sqlite-core").SQLiteColumn<{
120
+ name: "worktree_path";
121
+ tableName: "executions";
122
+ dataType: "string";
123
+ columnType: "SQLiteText";
124
+ data: string;
125
+ driverParam: string;
126
+ notNull: false;
127
+ hasDefault: false;
128
+ isPrimaryKey: false;
129
+ isAutoincrement: false;
130
+ hasRuntimeDefault: false;
131
+ enumValues: [string, ...string[]];
132
+ baseColumn: never;
133
+ identity: undefined;
134
+ generated: undefined;
135
+ }, {}, {
136
+ length: number | undefined;
137
+ }>;
138
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
139
+ name: "status";
140
+ tableName: "executions";
141
+ dataType: "string";
142
+ columnType: "SQLiteText";
143
+ data: "pending" | "running" | "completed" | "failed" | "stopped" | "merging";
144
+ driverParam: string;
145
+ notNull: true;
146
+ hasDefault: true;
147
+ isPrimaryKey: false;
148
+ isAutoincrement: false;
149
+ hasRuntimeDefault: false;
150
+ enumValues: ["pending", "running", "completed", "failed", "stopped", "merging"];
151
+ baseColumn: never;
152
+ identity: undefined;
153
+ generated: undefined;
154
+ }, {}, {
155
+ length: number | undefined;
156
+ }>;
157
+ agentTaskId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
158
+ name: "agent_task_id";
159
+ tableName: "executions";
160
+ dataType: "string";
161
+ columnType: "SQLiteText";
162
+ data: string;
163
+ driverParam: string;
164
+ notNull: false;
165
+ hasDefault: false;
166
+ isPrimaryKey: false;
167
+ isAutoincrement: false;
168
+ hasRuntimeDefault: false;
169
+ enumValues: [string, ...string[]];
170
+ baseColumn: never;
171
+ identity: undefined;
172
+ generated: undefined;
173
+ }, {}, {
174
+ length: number | undefined;
175
+ }>;
176
+ onConflict: import("drizzle-orm/sqlite-core").SQLiteColumn<{
177
+ name: "on_conflict";
178
+ tableName: "executions";
179
+ dataType: "string";
180
+ columnType: "SQLiteText";
181
+ data: "auto_theirs" | "auto_ours" | "notify" | "agent";
182
+ driverParam: string;
183
+ notNull: false;
184
+ hasDefault: true;
185
+ isPrimaryKey: false;
186
+ isAutoincrement: false;
187
+ hasRuntimeDefault: false;
188
+ enumValues: ["auto_theirs", "auto_ours", "notify", "agent"];
189
+ baseColumn: never;
190
+ identity: undefined;
191
+ generated: undefined;
192
+ }, {}, {
193
+ length: number | undefined;
194
+ }>;
195
+ autoMerge: import("drizzle-orm/sqlite-core").SQLiteColumn<{
196
+ name: "auto_merge";
197
+ tableName: "executions";
198
+ dataType: "boolean";
199
+ columnType: "SQLiteBoolean";
200
+ data: boolean;
201
+ driverParam: number;
202
+ notNull: true;
203
+ hasDefault: true;
204
+ isPrimaryKey: false;
205
+ isAutoincrement: false;
206
+ hasRuntimeDefault: false;
207
+ enumValues: undefined;
208
+ baseColumn: never;
209
+ identity: undefined;
210
+ generated: undefined;
211
+ }, {}, {}>;
212
+ notifyOnComplete: import("drizzle-orm/sqlite-core").SQLiteColumn<{
213
+ name: "notify_on_complete";
214
+ tableName: "executions";
215
+ dataType: "boolean";
216
+ columnType: "SQLiteBoolean";
217
+ data: boolean;
218
+ driverParam: number;
219
+ notNull: true;
220
+ hasDefault: true;
221
+ isPrimaryKey: false;
222
+ isAutoincrement: false;
223
+ hasRuntimeDefault: false;
224
+ enumValues: undefined;
225
+ baseColumn: never;
226
+ identity: undefined;
227
+ generated: undefined;
228
+ }, {}, {}>;
229
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
230
+ name: "created_at";
231
+ tableName: "executions";
232
+ dataType: "date";
233
+ columnType: "SQLiteTimestamp";
234
+ data: Date;
235
+ driverParam: number;
236
+ notNull: true;
237
+ hasDefault: true;
238
+ isPrimaryKey: false;
239
+ isAutoincrement: false;
240
+ hasRuntimeDefault: true;
241
+ enumValues: undefined;
242
+ baseColumn: never;
243
+ identity: undefined;
244
+ generated: undefined;
245
+ }, {}, {}>;
246
+ updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
247
+ name: "updated_at";
248
+ tableName: "executions";
249
+ dataType: "date";
250
+ columnType: "SQLiteTimestamp";
251
+ data: Date;
252
+ driverParam: number;
253
+ notNull: true;
254
+ hasDefault: true;
255
+ isPrimaryKey: false;
256
+ isAutoincrement: false;
257
+ hasRuntimeDefault: true;
258
+ enumValues: undefined;
259
+ baseColumn: never;
260
+ identity: undefined;
261
+ generated: undefined;
262
+ }, {}, {}>;
263
+ };
264
+ dialect: "sqlite";
265
+ }>;
266
+ export declare const userStories: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
267
+ name: "user_stories";
268
+ schema: undefined;
269
+ columns: {
270
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
271
+ name: "id";
272
+ tableName: "user_stories";
273
+ dataType: "string";
274
+ columnType: "SQLiteText";
275
+ data: string;
276
+ driverParam: string;
277
+ notNull: true;
278
+ hasDefault: false;
279
+ isPrimaryKey: true;
280
+ isAutoincrement: false;
281
+ hasRuntimeDefault: false;
282
+ enumValues: [string, ...string[]];
283
+ baseColumn: never;
284
+ identity: undefined;
285
+ generated: undefined;
286
+ }, {}, {
287
+ length: number | undefined;
288
+ }>;
289
+ executionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
290
+ name: "execution_id";
291
+ tableName: "user_stories";
292
+ dataType: "string";
293
+ columnType: "SQLiteText";
294
+ data: string;
295
+ driverParam: string;
296
+ notNull: true;
297
+ hasDefault: false;
298
+ isPrimaryKey: false;
299
+ isAutoincrement: false;
300
+ hasRuntimeDefault: false;
301
+ enumValues: [string, ...string[]];
302
+ baseColumn: never;
303
+ identity: undefined;
304
+ generated: undefined;
305
+ }, {}, {
306
+ length: number | undefined;
307
+ }>;
308
+ storyId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
309
+ name: "story_id";
310
+ tableName: "user_stories";
311
+ dataType: "string";
312
+ columnType: "SQLiteText";
313
+ data: string;
314
+ driverParam: string;
315
+ notNull: true;
316
+ hasDefault: false;
317
+ isPrimaryKey: false;
318
+ isAutoincrement: false;
319
+ hasRuntimeDefault: false;
320
+ enumValues: [string, ...string[]];
321
+ baseColumn: never;
322
+ identity: undefined;
323
+ generated: undefined;
324
+ }, {}, {
325
+ length: number | undefined;
326
+ }>;
327
+ title: import("drizzle-orm/sqlite-core").SQLiteColumn<{
328
+ name: "title";
329
+ tableName: "user_stories";
330
+ dataType: "string";
331
+ columnType: "SQLiteText";
332
+ data: string;
333
+ driverParam: string;
334
+ notNull: true;
335
+ hasDefault: false;
336
+ isPrimaryKey: false;
337
+ isAutoincrement: false;
338
+ hasRuntimeDefault: false;
339
+ enumValues: [string, ...string[]];
340
+ baseColumn: never;
341
+ identity: undefined;
342
+ generated: undefined;
343
+ }, {}, {
344
+ length: number | undefined;
345
+ }>;
346
+ description: import("drizzle-orm/sqlite-core").SQLiteColumn<{
347
+ name: "description";
348
+ tableName: "user_stories";
349
+ dataType: "string";
350
+ columnType: "SQLiteText";
351
+ data: string;
352
+ driverParam: string;
353
+ notNull: true;
354
+ hasDefault: false;
355
+ isPrimaryKey: false;
356
+ isAutoincrement: false;
357
+ hasRuntimeDefault: false;
358
+ enumValues: [string, ...string[]];
359
+ baseColumn: never;
360
+ identity: undefined;
361
+ generated: undefined;
362
+ }, {}, {
363
+ length: number | undefined;
364
+ }>;
365
+ acceptanceCriteria: import("drizzle-orm/sqlite-core").SQLiteColumn<{
366
+ name: "acceptance_criteria";
367
+ tableName: "user_stories";
368
+ dataType: "json";
369
+ columnType: "SQLiteTextJson";
370
+ data: string[];
371
+ driverParam: string;
372
+ notNull: true;
373
+ hasDefault: false;
374
+ isPrimaryKey: false;
375
+ isAutoincrement: false;
376
+ hasRuntimeDefault: false;
377
+ enumValues: undefined;
378
+ baseColumn: never;
379
+ identity: undefined;
380
+ generated: undefined;
381
+ }, {}, {
382
+ $type: string[];
383
+ }>;
384
+ priority: import("drizzle-orm/sqlite-core").SQLiteColumn<{
385
+ name: "priority";
386
+ tableName: "user_stories";
387
+ dataType: "number";
388
+ columnType: "SQLiteInteger";
389
+ data: number;
390
+ driverParam: number;
391
+ notNull: true;
392
+ hasDefault: false;
393
+ isPrimaryKey: false;
394
+ isAutoincrement: false;
395
+ hasRuntimeDefault: false;
396
+ enumValues: undefined;
397
+ baseColumn: never;
398
+ identity: undefined;
399
+ generated: undefined;
400
+ }, {}, {}>;
401
+ passes: import("drizzle-orm/sqlite-core").SQLiteColumn<{
402
+ name: "passes";
403
+ tableName: "user_stories";
404
+ dataType: "boolean";
405
+ columnType: "SQLiteBoolean";
406
+ data: boolean;
407
+ driverParam: number;
408
+ notNull: true;
409
+ hasDefault: true;
410
+ isPrimaryKey: false;
411
+ isAutoincrement: false;
412
+ hasRuntimeDefault: false;
413
+ enumValues: undefined;
414
+ baseColumn: never;
415
+ identity: undefined;
416
+ generated: undefined;
417
+ }, {}, {}>;
418
+ notes: import("drizzle-orm/sqlite-core").SQLiteColumn<{
419
+ name: "notes";
420
+ tableName: "user_stories";
421
+ dataType: "string";
422
+ columnType: "SQLiteText";
423
+ data: string;
424
+ driverParam: string;
425
+ notNull: false;
426
+ hasDefault: true;
427
+ isPrimaryKey: false;
428
+ isAutoincrement: false;
429
+ hasRuntimeDefault: false;
430
+ enumValues: [string, ...string[]];
431
+ baseColumn: never;
432
+ identity: undefined;
433
+ generated: undefined;
434
+ }, {}, {
435
+ length: number | undefined;
436
+ }>;
437
+ };
438
+ dialect: "sqlite";
439
+ }>;
440
+ export declare const mergeQueue: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
441
+ name: "merge_queue";
442
+ schema: undefined;
443
+ columns: {
444
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
445
+ name: "id";
446
+ tableName: "merge_queue";
447
+ dataType: "number";
448
+ columnType: "SQLiteInteger";
449
+ data: number;
450
+ driverParam: number;
451
+ notNull: true;
452
+ hasDefault: true;
453
+ isPrimaryKey: true;
454
+ isAutoincrement: false;
455
+ hasRuntimeDefault: false;
456
+ enumValues: undefined;
457
+ baseColumn: never;
458
+ identity: undefined;
459
+ generated: undefined;
460
+ }, {}, {}>;
461
+ executionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
462
+ name: "execution_id";
463
+ tableName: "merge_queue";
464
+ dataType: "string";
465
+ columnType: "SQLiteText";
466
+ data: string;
467
+ driverParam: string;
468
+ notNull: true;
469
+ hasDefault: false;
470
+ isPrimaryKey: false;
471
+ isAutoincrement: false;
472
+ hasRuntimeDefault: false;
473
+ enumValues: [string, ...string[]];
474
+ baseColumn: never;
475
+ identity: undefined;
476
+ generated: undefined;
477
+ }, {}, {
478
+ length: number | undefined;
479
+ }>;
480
+ position: import("drizzle-orm/sqlite-core").SQLiteColumn<{
481
+ name: "position";
482
+ tableName: "merge_queue";
483
+ dataType: "number";
484
+ columnType: "SQLiteInteger";
485
+ data: number;
486
+ driverParam: number;
487
+ notNull: true;
488
+ hasDefault: false;
489
+ isPrimaryKey: false;
490
+ isAutoincrement: false;
491
+ hasRuntimeDefault: false;
492
+ enumValues: undefined;
493
+ baseColumn: never;
494
+ identity: undefined;
495
+ generated: undefined;
496
+ }, {}, {}>;
497
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
498
+ name: "status";
499
+ tableName: "merge_queue";
500
+ dataType: "string";
501
+ columnType: "SQLiteText";
502
+ data: "pending" | "completed" | "failed" | "merging";
503
+ driverParam: string;
504
+ notNull: true;
505
+ hasDefault: true;
506
+ isPrimaryKey: false;
507
+ isAutoincrement: false;
508
+ hasRuntimeDefault: false;
509
+ enumValues: ["pending", "merging", "completed", "failed"];
510
+ baseColumn: never;
511
+ identity: undefined;
512
+ generated: undefined;
513
+ }, {}, {
514
+ length: number | undefined;
515
+ }>;
516
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
517
+ name: "created_at";
518
+ tableName: "merge_queue";
519
+ dataType: "date";
520
+ columnType: "SQLiteTimestamp";
521
+ data: Date;
522
+ driverParam: number;
523
+ notNull: true;
524
+ hasDefault: true;
525
+ isPrimaryKey: false;
526
+ isAutoincrement: false;
527
+ hasRuntimeDefault: true;
528
+ enumValues: undefined;
529
+ baseColumn: never;
530
+ identity: undefined;
531
+ generated: undefined;
532
+ }, {}, {}>;
533
+ };
534
+ dialect: "sqlite";
535
+ }>;
536
+ export type Execution = typeof executions.$inferSelect;
537
+ export type NewExecution = typeof executions.$inferInsert;
538
+ export type UserStory = typeof userStories.$inferSelect;
539
+ export type NewUserStory = typeof userStories.$inferInsert;
540
+ export type MergeQueueItem = typeof mergeQueue.$inferSelect;
@@ -0,0 +1,57 @@
1
+ import { sqliteTable, text, integer } from "drizzle-orm/sqlite-core";
2
+ export const executions = sqliteTable("executions", {
3
+ id: text("id").primaryKey(),
4
+ project: text("project").notNull(),
5
+ branch: text("branch").notNull().unique(),
6
+ description: text("description").notNull(),
7
+ prdPath: text("prd_path").notNull(),
8
+ projectRoot: text("project_root").notNull(),
9
+ worktreePath: text("worktree_path"),
10
+ status: text("status", {
11
+ enum: ["pending", "running", "completed", "failed", "stopped", "merging"],
12
+ })
13
+ .notNull()
14
+ .default("pending"),
15
+ agentTaskId: text("agent_task_id"),
16
+ onConflict: text("on_conflict", {
17
+ enum: ["auto_theirs", "auto_ours", "notify", "agent"],
18
+ }).default("agent"),
19
+ autoMerge: integer("auto_merge", { mode: "boolean" }).notNull().default(false),
20
+ notifyOnComplete: integer("notify_on_complete", { mode: "boolean" }).notNull().default(true),
21
+ createdAt: integer("created_at", { mode: "timestamp" })
22
+ .notNull()
23
+ .$defaultFn(() => new Date()),
24
+ updatedAt: integer("updated_at", { mode: "timestamp" })
25
+ .notNull()
26
+ .$defaultFn(() => new Date()),
27
+ });
28
+ export const userStories = sqliteTable("user_stories", {
29
+ id: text("id").primaryKey(), // composite: executionId + storyId
30
+ executionId: text("execution_id")
31
+ .notNull()
32
+ .references(() => executions.id, { onDelete: "cascade" }),
33
+ storyId: text("story_id").notNull(), // "US-001"
34
+ title: text("title").notNull(),
35
+ description: text("description").notNull(),
36
+ acceptanceCriteria: text("acceptance_criteria", { mode: "json" })
37
+ .notNull()
38
+ .$type(),
39
+ priority: integer("priority").notNull(),
40
+ passes: integer("passes", { mode: "boolean" }).notNull().default(false),
41
+ notes: text("notes").default(""),
42
+ });
43
+ export const mergeQueue = sqliteTable("merge_queue", {
44
+ id: integer("id").primaryKey({ autoIncrement: true }),
45
+ executionId: text("execution_id")
46
+ .notNull()
47
+ .references(() => executions.id, { onDelete: "cascade" }),
48
+ position: integer("position").notNull(),
49
+ status: text("status", {
50
+ enum: ["pending", "merging", "completed", "failed"],
51
+ })
52
+ .notNull()
53
+ .default("pending"),
54
+ createdAt: integer("created_at", { mode: "timestamp" })
55
+ .notNull()
56
+ .$defaultFn(() => new Date()),
57
+ });
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};