@mcoda/db 0.1.4

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,341 @@
1
+ import { Database } from "sqlite";
2
+ import { Connection } from "../../sqlite/connection.js";
3
+ export type JobStatus = "queued" | "running" | "paused" | "completed" | "failed" | "cancelled" | "partial";
4
+ export type CommandStatus = "running" | "succeeded" | "failed";
5
+ export type TaskRunStatus = "queued" | "running" | "succeeded" | "failed" | "cancelled";
6
+ export interface ProjectRow {
7
+ id: string;
8
+ key: string;
9
+ name?: string;
10
+ description?: string;
11
+ metadata?: Record<string, unknown>;
12
+ createdAt: string;
13
+ updatedAt: string;
14
+ }
15
+ export interface EpicInsert {
16
+ projectId: string;
17
+ key: string;
18
+ title: string;
19
+ description: string;
20
+ storyPointsTotal?: number | null;
21
+ priority?: number | null;
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ export interface EpicRow extends EpicInsert {
25
+ id: string;
26
+ createdAt: string;
27
+ updatedAt: string;
28
+ }
29
+ export interface StoryInsert {
30
+ projectId: string;
31
+ epicId: string;
32
+ key: string;
33
+ title: string;
34
+ description: string;
35
+ acceptanceCriteria?: string | null;
36
+ storyPointsTotal?: number | null;
37
+ priority?: number | null;
38
+ metadata?: Record<string, unknown>;
39
+ }
40
+ export interface StoryRow extends StoryInsert {
41
+ id: string;
42
+ createdAt: string;
43
+ updatedAt: string;
44
+ }
45
+ export interface TaskInsert {
46
+ projectId: string;
47
+ epicId: string;
48
+ userStoryId: string;
49
+ key: string;
50
+ title: string;
51
+ description: string;
52
+ type?: string | null;
53
+ status: string;
54
+ storyPoints?: number | null;
55
+ priority?: number | null;
56
+ assignedAgentId?: string | null;
57
+ assigneeHuman?: string | null;
58
+ vcsBranch?: string | null;
59
+ vcsBaseBranch?: string | null;
60
+ vcsLastCommitSha?: string | null;
61
+ metadata?: Record<string, unknown>;
62
+ openapiVersionAtCreation?: string | null;
63
+ }
64
+ export interface TaskRow extends TaskInsert {
65
+ id: string;
66
+ createdAt: string;
67
+ updatedAt: string;
68
+ }
69
+ export interface TaskDependencyInsert {
70
+ taskId: string;
71
+ dependsOnTaskId: string;
72
+ relationType: string;
73
+ }
74
+ export interface TaskDependencyRow extends TaskDependencyInsert {
75
+ id: string;
76
+ createdAt: string;
77
+ updatedAt: string;
78
+ }
79
+ export interface JobInsert {
80
+ workspaceId: string;
81
+ type: string;
82
+ state: JobStatus;
83
+ commandName?: string;
84
+ payload?: Record<string, unknown>;
85
+ totalItems?: number | null;
86
+ processedItems?: number | null;
87
+ lastCheckpoint?: string | null;
88
+ }
89
+ export interface JobRow extends JobInsert {
90
+ id: string;
91
+ createdAt: string;
92
+ updatedAt: string;
93
+ completedAt?: string | null;
94
+ errorSummary?: string | null;
95
+ }
96
+ export interface CommandRunInsert {
97
+ workspaceId: string;
98
+ commandName: string;
99
+ jobId?: string | null;
100
+ taskIds?: string[];
101
+ gitBranch?: string | null;
102
+ gitBaseBranch?: string | null;
103
+ startedAt: string;
104
+ status: CommandStatus;
105
+ spProcessed?: number | null;
106
+ }
107
+ export interface CommandRunRow extends CommandRunInsert {
108
+ id: string;
109
+ completedAt?: string | null;
110
+ errorSummary?: string | null;
111
+ durationSeconds?: number | null;
112
+ }
113
+ export interface TaskRunInsert {
114
+ taskId: string;
115
+ command: string;
116
+ status: TaskRunStatus;
117
+ jobId?: string | null;
118
+ commandRunId?: string | null;
119
+ agentId?: string | null;
120
+ startedAt: string;
121
+ finishedAt?: string | null;
122
+ storyPointsAtRun?: number | null;
123
+ spPerHourEffective?: number | null;
124
+ gitBranch?: string | null;
125
+ gitBaseBranch?: string | null;
126
+ gitCommitSha?: string | null;
127
+ runContext?: Record<string, unknown>;
128
+ }
129
+ export interface TaskRunRow extends TaskRunInsert {
130
+ id: string;
131
+ }
132
+ export interface TaskLockRow {
133
+ taskId: string;
134
+ taskRunId: string;
135
+ jobId?: string;
136
+ acquiredAt: string;
137
+ expiresAt: string;
138
+ }
139
+ export interface TaskQaRunInsert {
140
+ taskId: string;
141
+ taskRunId?: string | null;
142
+ jobId?: string | null;
143
+ commandRunId?: string | null;
144
+ agentId?: string | null;
145
+ modelName?: string | null;
146
+ source: string;
147
+ mode?: string | null;
148
+ profileName?: string | null;
149
+ runner?: string | null;
150
+ rawOutcome?: string | null;
151
+ recommendation?: string | null;
152
+ evidenceUrl?: string | null;
153
+ artifacts?: string[] | null;
154
+ rawResult?: Record<string, unknown> | null;
155
+ startedAt?: string | null;
156
+ finishedAt?: string | null;
157
+ metadata?: Record<string, unknown> | null;
158
+ createdAt?: string;
159
+ }
160
+ export interface TaskQaRunRow extends TaskQaRunInsert {
161
+ id: string;
162
+ }
163
+ export interface TokenUsageInsert {
164
+ workspaceId: string;
165
+ agentId?: string | null;
166
+ modelName?: string | null;
167
+ jobId?: string | null;
168
+ commandRunId?: string | null;
169
+ taskRunId?: string | null;
170
+ taskId?: string | null;
171
+ projectId?: string | null;
172
+ epicId?: string | null;
173
+ userStoryId?: string | null;
174
+ tokensPrompt?: number | null;
175
+ tokensCompletion?: number | null;
176
+ tokensTotal?: number | null;
177
+ costEstimate?: number | null;
178
+ durationSeconds?: number | null;
179
+ timestamp: string;
180
+ metadata?: Record<string, unknown>;
181
+ }
182
+ export interface TaskRevisionInsert {
183
+ taskId: string;
184
+ jobId?: string | null;
185
+ commandRunId?: string | null;
186
+ snapshotBefore?: Record<string, unknown> | null;
187
+ snapshotAfter?: Record<string, unknown> | null;
188
+ createdAt: string;
189
+ }
190
+ export interface TaskCommentInsert {
191
+ taskId: string;
192
+ taskRunId?: string | null;
193
+ jobId?: string | null;
194
+ sourceCommand: string;
195
+ authorType: "agent" | "human";
196
+ authorAgentId?: string | null;
197
+ category?: string | null;
198
+ file?: string | null;
199
+ line?: number | null;
200
+ pathHint?: string | null;
201
+ body: string;
202
+ metadata?: Record<string, unknown> | null;
203
+ createdAt: string;
204
+ resolvedAt?: string | null;
205
+ resolvedBy?: string | null;
206
+ }
207
+ export interface TaskCommentRow extends TaskCommentInsert {
208
+ id: string;
209
+ }
210
+ export interface TaskReviewInsert {
211
+ taskId: string;
212
+ jobId?: string | null;
213
+ agentId?: string | null;
214
+ modelName?: string | null;
215
+ decision: string;
216
+ summary?: string | null;
217
+ findingsJson?: Record<string, unknown> | unknown[] | null;
218
+ testRecommendationsJson?: string[] | null;
219
+ metadata?: Record<string, unknown> | null;
220
+ createdAt: string;
221
+ createdBy?: string | null;
222
+ }
223
+ export interface TaskReviewRow extends TaskReviewInsert {
224
+ id: string;
225
+ }
226
+ export declare class WorkspaceRepository {
227
+ private db;
228
+ private connection?;
229
+ private static txLocks;
230
+ private workspaceKey;
231
+ constructor(db: Database, connection?: Connection | undefined);
232
+ static create(cwd?: string): Promise<WorkspaceRepository>;
233
+ close(): Promise<void>;
234
+ getDb(): Database;
235
+ private serialize;
236
+ withTransaction<T>(fn: () => Promise<T>): Promise<T>;
237
+ getProjectByKey(key: string): Promise<ProjectRow | undefined>;
238
+ createProjectIfMissing(input: {
239
+ key: string;
240
+ name?: string;
241
+ description?: string;
242
+ }): Promise<ProjectRow>;
243
+ insertEpics(epics: EpicInsert[], useTransaction?: boolean): Promise<EpicRow[]>;
244
+ insertStories(stories: StoryInsert[], useTransaction?: boolean): Promise<StoryRow[]>;
245
+ insertTasks(tasks: TaskInsert[], useTransaction?: boolean): Promise<TaskRow[]>;
246
+ updateStoryPointsTotal(storyId: string, total: number | null): Promise<void>;
247
+ updateEpicStoryPointsTotal(epicId: string, total: number | null): Promise<void>;
248
+ insertTaskDependencies(deps: TaskDependencyInsert[], useTransaction?: boolean): Promise<TaskDependencyRow[]>;
249
+ deleteTaskDependenciesForTask(taskId: string): Promise<void>;
250
+ deleteProjectBacklog(projectId: string, useTransaction?: boolean): Promise<void>;
251
+ updateTask(taskId: string, updates: {
252
+ title?: string;
253
+ description?: string | null;
254
+ type?: string | null;
255
+ status?: string;
256
+ storyPoints?: number | null;
257
+ priority?: number | null;
258
+ metadata?: Record<string, unknown> | null;
259
+ assignedAgentId?: string | null;
260
+ assigneeHuman?: string | null;
261
+ vcsBranch?: string | null;
262
+ vcsBaseBranch?: string | null;
263
+ vcsLastCommitSha?: string | null;
264
+ }): Promise<void>;
265
+ getTaskById(taskId: string): Promise<TaskRow | undefined>;
266
+ getTaskByKey(taskKey: string): Promise<TaskRow | undefined>;
267
+ getTasksByIds(taskIds: string[]): Promise<TaskRow[]>;
268
+ listEpicKeys(projectId: string): Promise<string[]>;
269
+ listStoryKeys(epicId: string): Promise<string[]>;
270
+ listTaskKeys(userStoryId: string): Promise<string[]>;
271
+ createJob(record: JobInsert): Promise<JobRow>;
272
+ listJobs(): Promise<JobRow[]>;
273
+ getJob(id: string): Promise<JobRow | undefined>;
274
+ updateJobState(id: string, update: Partial<JobInsert> & {
275
+ state?: JobStatus;
276
+ errorSummary?: string | null;
277
+ completedAt?: string | null;
278
+ }): Promise<void>;
279
+ createCommandRun(record: CommandRunInsert): Promise<CommandRunRow>;
280
+ setCommandRunJobId(id: string, jobId: string): Promise<void>;
281
+ completeCommandRun(id: string, update: {
282
+ status: CommandStatus;
283
+ completedAt: string;
284
+ errorSummary?: string | null;
285
+ durationSeconds?: number | null;
286
+ spProcessed?: number | null;
287
+ }): Promise<void>;
288
+ getTasksWithRelations(taskIds: string[]): Promise<Array<TaskRow & {
289
+ epicKey: string;
290
+ storyKey: string;
291
+ epicTitle?: string;
292
+ epicDescription?: string;
293
+ storyTitle?: string;
294
+ storyDescription?: string;
295
+ acceptanceCriteria?: string[];
296
+ }>>;
297
+ createTaskRun(record: TaskRunInsert): Promise<TaskRunRow>;
298
+ getTaskLock(taskId: string): Promise<TaskLockRow | undefined>;
299
+ tryAcquireTaskLock(taskId: string, taskRunId: string, jobId?: string | null, ttlSeconds?: number): Promise<{
300
+ acquired: boolean;
301
+ lock?: TaskLockRow;
302
+ }>;
303
+ releaseTaskLock(taskId: string, taskRunId: string): Promise<void>;
304
+ refreshTaskLock(taskId: string, taskRunId: string, ttlSeconds?: number): Promise<boolean>;
305
+ createTaskQaRun(record: TaskQaRunInsert): Promise<TaskQaRunRow>;
306
+ listTaskQaRuns(taskId: string): Promise<TaskQaRunRow[]>;
307
+ listTaskQaRunsForJob(taskIds: string[], jobId: string): Promise<TaskQaRunRow[]>;
308
+ insertTaskLog(entry: {
309
+ taskRunId: string;
310
+ sequence: number;
311
+ timestamp: string;
312
+ level?: string | null;
313
+ source?: string | null;
314
+ message?: string | null;
315
+ details?: Record<string, unknown> | null;
316
+ }): Promise<void>;
317
+ updateTaskRun(id: string, update: {
318
+ status?: TaskRunStatus;
319
+ finishedAt?: string | null;
320
+ gitBranch?: string | null;
321
+ gitBaseBranch?: string | null;
322
+ gitCommitSha?: string | null;
323
+ storyPointsAtRun?: number | null;
324
+ spPerHourEffective?: number | null;
325
+ runContext?: Record<string, unknown> | null;
326
+ }): Promise<void>;
327
+ getTaskDependencies(taskIds: string[]): Promise<TaskDependencyRow[]>;
328
+ createTaskComment(record: TaskCommentInsert): Promise<TaskCommentRow>;
329
+ listTaskComments(taskId: string, options?: {
330
+ sourceCommands?: string[];
331
+ limit?: number;
332
+ }): Promise<TaskCommentRow[]>;
333
+ createTaskReview(record: TaskReviewInsert): Promise<TaskReviewRow>;
334
+ getLatestTaskReview(taskId: string): Promise<TaskReviewRow | undefined>;
335
+ recordTokenUsage(entry: TokenUsageInsert): Promise<void>;
336
+ insertTaskRevision(record: TaskRevisionInsert): Promise<void>;
337
+ getEpicByKey(projectId: string, key: string): Promise<EpicRow | undefined>;
338
+ getStoryByKey(epicId: string, key: string): Promise<StoryRow | undefined>;
339
+ getStoryByProjectAndKey(projectId: string, key: string): Promise<StoryRow | undefined>;
340
+ }
341
+ //# sourceMappingURL=WorkspaceRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workspace/WorkspaceRepository.ts"],"names":[],"mappings":"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"}