@mcoda/db 0.1.8 → 0.1.9
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.
- package/CHANGELOG.md +3 -0
- package/dist/migrations/global/GlobalMigrations.d.ts.map +1 -1
- package/dist/migrations/global/GlobalMigrations.js +76 -0
- package/dist/migrations/workspace/WorkspaceMigrations.d.ts +1 -0
- package/dist/migrations/workspace/WorkspaceMigrations.d.ts.map +1 -1
- package/dist/migrations/workspace/WorkspaceMigrations.js +17 -0
- package/dist/repositories/global/GlobalRepository.d.ts +24 -0
- package/dist/repositories/global/GlobalRepository.d.ts.map +1 -1
- package/dist/repositories/global/GlobalRepository.js +87 -5
- package/dist/repositories/workspace/WorkspaceRepository.d.ts +17 -0
- package/dist/repositories/workspace/WorkspaceRepository.d.ts.map +1 -1
- package/dist/repositories/workspace/WorkspaceRepository.js +90 -5
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalMigrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/global/GlobalMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC;;;GAGG;AACH,qBAAa,gBAAgB;WACd,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"GlobalMigrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/global/GlobalMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC;;;GAGG;AACH,qBAAa,gBAAgB;WACd,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAwZ9C"}
|
|
@@ -15,6 +15,12 @@ export class GlobalMigrations {
|
|
|
15
15
|
reasoning_rating INTEGER,
|
|
16
16
|
best_usage TEXT,
|
|
17
17
|
cost_per_million REAL,
|
|
18
|
+
max_complexity INTEGER,
|
|
19
|
+
rating_samples INTEGER,
|
|
20
|
+
rating_last_score REAL,
|
|
21
|
+
rating_updated_at TEXT,
|
|
22
|
+
complexity_samples INTEGER,
|
|
23
|
+
complexity_updated_at TEXT,
|
|
18
24
|
config_json TEXT,
|
|
19
25
|
created_at TEXT NOT NULL,
|
|
20
26
|
updated_at TEXT NOT NULL
|
|
@@ -98,6 +104,27 @@ export class GlobalMigrations {
|
|
|
98
104
|
);
|
|
99
105
|
|
|
100
106
|
CREATE INDEX IF NOT EXISTS idx_token_usage_command_run_id ON token_usage(command_run_id);
|
|
107
|
+
|
|
108
|
+
CREATE TABLE IF NOT EXISTS agent_run_ratings (
|
|
109
|
+
id TEXT PRIMARY KEY,
|
|
110
|
+
agent_id TEXT NOT NULL REFERENCES agents(id) ON DELETE CASCADE,
|
|
111
|
+
job_id TEXT,
|
|
112
|
+
command_run_id TEXT,
|
|
113
|
+
task_id TEXT,
|
|
114
|
+
task_key TEXT,
|
|
115
|
+
command_name TEXT,
|
|
116
|
+
discipline TEXT,
|
|
117
|
+
complexity INTEGER,
|
|
118
|
+
quality_score REAL,
|
|
119
|
+
tokens_total INTEGER,
|
|
120
|
+
duration_seconds REAL,
|
|
121
|
+
iterations INTEGER,
|
|
122
|
+
total_cost REAL,
|
|
123
|
+
run_score REAL,
|
|
124
|
+
rating_version TEXT,
|
|
125
|
+
raw_review_json TEXT,
|
|
126
|
+
created_at TEXT NOT NULL
|
|
127
|
+
);
|
|
101
128
|
`);
|
|
102
129
|
};
|
|
103
130
|
await createSchema();
|
|
@@ -128,6 +155,12 @@ export class GlobalMigrations {
|
|
|
128
155
|
const hasAgentReasoningRating = agentsInfo.some((col) => col.name === "reasoning_rating");
|
|
129
156
|
const hasAgentBestUsage = agentsInfo.some((col) => col.name === "best_usage");
|
|
130
157
|
const hasAgentCost = agentsInfo.some((col) => col.name === "cost_per_million");
|
|
158
|
+
const hasAgentMaxComplexity = agentsInfo.some((col) => col.name === "max_complexity");
|
|
159
|
+
const hasAgentRatingSamples = agentsInfo.some((col) => col.name === "rating_samples");
|
|
160
|
+
const hasAgentRatingLastScore = agentsInfo.some((col) => col.name === "rating_last_score");
|
|
161
|
+
const hasAgentRatingUpdatedAt = agentsInfo.some((col) => col.name === "rating_updated_at");
|
|
162
|
+
const hasAgentComplexitySamples = agentsInfo.some((col) => col.name === "complexity_samples");
|
|
163
|
+
const hasAgentComplexityUpdatedAt = agentsInfo.some((col) => col.name === "complexity_updated_at");
|
|
131
164
|
if (!hasAgentRating) {
|
|
132
165
|
await db.exec("ALTER TABLE agents ADD COLUMN rating INTEGER");
|
|
133
166
|
}
|
|
@@ -140,6 +173,24 @@ export class GlobalMigrations {
|
|
|
140
173
|
if (!hasAgentCost) {
|
|
141
174
|
await db.exec("ALTER TABLE agents ADD COLUMN cost_per_million REAL");
|
|
142
175
|
}
|
|
176
|
+
if (!hasAgentMaxComplexity) {
|
|
177
|
+
await db.exec("ALTER TABLE agents ADD COLUMN max_complexity INTEGER");
|
|
178
|
+
}
|
|
179
|
+
if (!hasAgentRatingSamples) {
|
|
180
|
+
await db.exec("ALTER TABLE agents ADD COLUMN rating_samples INTEGER");
|
|
181
|
+
}
|
|
182
|
+
if (!hasAgentRatingLastScore) {
|
|
183
|
+
await db.exec("ALTER TABLE agents ADD COLUMN rating_last_score REAL");
|
|
184
|
+
}
|
|
185
|
+
if (!hasAgentRatingUpdatedAt) {
|
|
186
|
+
await db.exec("ALTER TABLE agents ADD COLUMN rating_updated_at TEXT");
|
|
187
|
+
}
|
|
188
|
+
if (!hasAgentComplexitySamples) {
|
|
189
|
+
await db.exec("ALTER TABLE agents ADD COLUMN complexity_samples INTEGER");
|
|
190
|
+
}
|
|
191
|
+
if (!hasAgentComplexityUpdatedAt) {
|
|
192
|
+
await db.exec("ALTER TABLE agents ADD COLUMN complexity_updated_at TEXT");
|
|
193
|
+
}
|
|
143
194
|
await db.exec(`
|
|
144
195
|
UPDATE agents
|
|
145
196
|
SET
|
|
@@ -263,6 +314,22 @@ export class GlobalMigrations {
|
|
|
263
314
|
END
|
|
264
315
|
)
|
|
265
316
|
WHERE rating IS NULL OR reasoning_rating IS NULL OR best_usage IS NULL OR cost_per_million IS NULL;
|
|
317
|
+
`);
|
|
318
|
+
await db.exec(`
|
|
319
|
+
UPDATE agents
|
|
320
|
+
SET
|
|
321
|
+
max_complexity = COALESCE(max_complexity, 5),
|
|
322
|
+
rating_samples = COALESCE(rating_samples, 0),
|
|
323
|
+
rating_last_score = COALESCE(rating_last_score, rating),
|
|
324
|
+
rating_updated_at = COALESCE(rating_updated_at, updated_at),
|
|
325
|
+
complexity_samples = COALESCE(complexity_samples, 0),
|
|
326
|
+
complexity_updated_at = COALESCE(complexity_updated_at, updated_at)
|
|
327
|
+
WHERE max_complexity IS NULL
|
|
328
|
+
OR rating_samples IS NULL
|
|
329
|
+
OR rating_last_score IS NULL
|
|
330
|
+
OR rating_updated_at IS NULL
|
|
331
|
+
OR complexity_samples IS NULL
|
|
332
|
+
OR complexity_updated_at IS NULL;
|
|
266
333
|
`);
|
|
267
334
|
const workspaceDefaultsInfo = await db.all("PRAGMA table_info(workspace_defaults)");
|
|
268
335
|
const hasWorkspaceId = workspaceDefaultsInfo.some((col) => col.name === "workspace_id");
|
|
@@ -315,5 +382,14 @@ export class GlobalMigrations {
|
|
|
315
382
|
await db.exec("ALTER TABLE workspace_defaults ADD COLUMN docdex_scope TEXT");
|
|
316
383
|
}
|
|
317
384
|
}
|
|
385
|
+
const ensureCapabilities = async (slug, capabilities) => {
|
|
386
|
+
const row = (await db.get("SELECT id FROM agents WHERE lower(slug) = ?", slug.toLowerCase()));
|
|
387
|
+
if (!row?.id)
|
|
388
|
+
return;
|
|
389
|
+
for (const capability of capabilities) {
|
|
390
|
+
await db.run("INSERT OR IGNORE INTO agent_capabilities (agent_id, capability) VALUES (?, ?)", row.id, capability);
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
await ensureCapabilities("gateway-router", ["plan", "docdex_query"]);
|
|
318
394
|
}
|
|
319
395
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceMigrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/workspace/WorkspaceMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC;;;GAGG;AACH,qBAAa,mBAAmB;WACjB,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkspaceMigrations.d.ts","sourceRoot":"","sources":["../../../src/migrations/workspace/WorkspaceMigrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC;;;GAGG;AACH,qBAAa,mBAAmB;WACjB,GAAG,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;mBAwPxB,YAAY;CASlC"}
|
|
@@ -196,6 +196,8 @@ export class WorkspaceMigrations {
|
|
|
196
196
|
author_type TEXT NOT NULL,
|
|
197
197
|
author_agent_id TEXT,
|
|
198
198
|
category TEXT,
|
|
199
|
+
slug TEXT,
|
|
200
|
+
status TEXT DEFAULT 'open',
|
|
199
201
|
file TEXT,
|
|
200
202
|
line INTEGER,
|
|
201
203
|
path_hint TEXT,
|
|
@@ -242,5 +244,20 @@ export class WorkspaceMigrations {
|
|
|
242
244
|
metadata_json TEXT
|
|
243
245
|
);
|
|
244
246
|
`);
|
|
247
|
+
await WorkspaceMigrations.ensureColumn(db, "task_comments", "slug TEXT");
|
|
248
|
+
await WorkspaceMigrations.ensureColumn(db, "task_comments", "status TEXT");
|
|
249
|
+
await db.exec(`CREATE INDEX IF NOT EXISTS idx_task_comments_slug ON task_comments(task_id, slug);`);
|
|
250
|
+
await db.exec(`UPDATE task_comments SET status = 'open' WHERE status IS NULL;`);
|
|
251
|
+
}
|
|
252
|
+
static async ensureColumn(db, table, columnDef) {
|
|
253
|
+
try {
|
|
254
|
+
await db.exec(`ALTER TABLE ${table} ADD COLUMN ${columnDef};`);
|
|
255
|
+
}
|
|
256
|
+
catch (error) {
|
|
257
|
+
const message = String(error?.message ?? error);
|
|
258
|
+
if (/duplicate column name/i.test(message))
|
|
259
|
+
return;
|
|
260
|
+
throw error;
|
|
261
|
+
}
|
|
245
262
|
}
|
|
246
263
|
}
|
|
@@ -27,6 +27,28 @@ export interface GlobalTokenUsageInsert {
|
|
|
27
27
|
timestamp: string;
|
|
28
28
|
metadata?: Record<string, unknown>;
|
|
29
29
|
}
|
|
30
|
+
export interface AgentRunRatingInsert {
|
|
31
|
+
agentId: string;
|
|
32
|
+
jobId?: string | null;
|
|
33
|
+
commandRunId?: string | null;
|
|
34
|
+
taskId?: string | null;
|
|
35
|
+
taskKey?: string | null;
|
|
36
|
+
commandName?: string | null;
|
|
37
|
+
discipline?: string | null;
|
|
38
|
+
complexity?: number | null;
|
|
39
|
+
qualityScore?: number | null;
|
|
40
|
+
tokensTotal?: number | null;
|
|
41
|
+
durationSeconds?: number | null;
|
|
42
|
+
iterations?: number | null;
|
|
43
|
+
totalCost?: number | null;
|
|
44
|
+
runScore?: number | null;
|
|
45
|
+
ratingVersion?: string | null;
|
|
46
|
+
rawReview?: Record<string, unknown> | null;
|
|
47
|
+
createdAt: string;
|
|
48
|
+
}
|
|
49
|
+
export interface AgentRunRatingRow extends AgentRunRatingInsert {
|
|
50
|
+
id: string;
|
|
51
|
+
}
|
|
30
52
|
export declare class GlobalRepository {
|
|
31
53
|
private db;
|
|
32
54
|
private connection?;
|
|
@@ -67,5 +89,7 @@ export declare class GlobalRepository {
|
|
|
67
89
|
result?: Record<string, unknown>;
|
|
68
90
|
}): Promise<void>;
|
|
69
91
|
recordTokenUsage(entry: GlobalTokenUsageInsert): Promise<void>;
|
|
92
|
+
insertAgentRunRating(entry: AgentRunRatingInsert): Promise<AgentRunRatingRow>;
|
|
93
|
+
listAgentRunRatings(agentId: string, limit?: number): Promise<AgentRunRatingRow[]>;
|
|
70
94
|
}
|
|
71
95
|
//# sourceMappingURL=GlobalRepository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/global/GlobalRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EACL,KAAK,EACL,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"GlobalRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/global/GlobalRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,12 @@ const mapAgentRow = (row) => ({
|
|
|
10
10
|
reasoningRating: row.reasoning_rating ?? undefined,
|
|
11
11
|
bestUsage: row.best_usage ?? undefined,
|
|
12
12
|
costPerMillion: row.cost_per_million ?? undefined,
|
|
13
|
+
maxComplexity: row.max_complexity ?? undefined,
|
|
14
|
+
ratingSamples: row.rating_samples ?? undefined,
|
|
15
|
+
ratingLastScore: row.rating_last_score ?? undefined,
|
|
16
|
+
ratingUpdatedAt: row.rating_updated_at ?? undefined,
|
|
17
|
+
complexitySamples: row.complexity_samples ?? undefined,
|
|
18
|
+
complexityUpdatedAt: row.complexity_updated_at ?? undefined,
|
|
13
19
|
config: row.config_json ? JSON.parse(row.config_json) : undefined,
|
|
14
20
|
createdAt: row.created_at,
|
|
15
21
|
updatedAt: row.updated_at,
|
|
@@ -30,22 +36,22 @@ export class GlobalRepository {
|
|
|
30
36
|
}
|
|
31
37
|
}
|
|
32
38
|
async listAgents() {
|
|
33
|
-
const rows = await this.db.all("SELECT id, slug, adapter, default_model, rating, reasoning_rating, best_usage, cost_per_million, config_json, created_at, updated_at FROM agents ORDER BY slug ASC");
|
|
39
|
+
const rows = await this.db.all("SELECT id, slug, adapter, default_model, rating, reasoning_rating, best_usage, cost_per_million, max_complexity, rating_samples, rating_last_score, rating_updated_at, complexity_samples, complexity_updated_at, config_json, created_at, updated_at FROM agents ORDER BY slug ASC");
|
|
34
40
|
return rows.map(mapAgentRow);
|
|
35
41
|
}
|
|
36
42
|
async getAgentById(id) {
|
|
37
|
-
const row = await this.db.get("SELECT id, slug, adapter, default_model, rating, reasoning_rating, best_usage, cost_per_million, config_json, created_at, updated_at FROM agents WHERE id = ?", id);
|
|
43
|
+
const row = await this.db.get("SELECT id, slug, adapter, default_model, rating, reasoning_rating, best_usage, cost_per_million, max_complexity, rating_samples, rating_last_score, rating_updated_at, complexity_samples, complexity_updated_at, config_json, created_at, updated_at FROM agents WHERE id = ?", id);
|
|
38
44
|
return row ? mapAgentRow(row) : undefined;
|
|
39
45
|
}
|
|
40
46
|
async getAgentBySlug(slug) {
|
|
41
|
-
const row = await this.db.get("SELECT id, slug, adapter, default_model, rating, reasoning_rating, best_usage, cost_per_million, config_json, created_at, updated_at FROM agents WHERE slug = ?", slug);
|
|
47
|
+
const row = await this.db.get("SELECT id, slug, adapter, default_model, rating, reasoning_rating, best_usage, cost_per_million, max_complexity, rating_samples, rating_last_score, rating_updated_at, complexity_samples, complexity_updated_at, config_json, created_at, updated_at FROM agents WHERE slug = ?", slug);
|
|
42
48
|
return row ? mapAgentRow(row) : undefined;
|
|
43
49
|
}
|
|
44
50
|
async createAgent(input) {
|
|
45
51
|
const now = new Date().toISOString();
|
|
46
52
|
const id = randomUUID();
|
|
47
|
-
await this.db.run(`INSERT INTO agents (id, slug, adapter, default_model, rating, reasoning_rating, best_usage, cost_per_million, config_json, created_at, updated_at)
|
|
48
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, id, input.slug, input.adapter, input.defaultModel ?? null, input.rating ?? null, input.reasoningRating ?? null, input.bestUsage ?? null, input.costPerMillion ?? null, input.config ? JSON.stringify(input.config) : null, now, now);
|
|
53
|
+
await this.db.run(`INSERT INTO agents (id, slug, adapter, default_model, rating, reasoning_rating, best_usage, cost_per_million, max_complexity, rating_samples, rating_last_score, rating_updated_at, complexity_samples, complexity_updated_at, config_json, created_at, updated_at)
|
|
54
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, id, input.slug, input.adapter, input.defaultModel ?? null, input.rating ?? null, input.reasoningRating ?? null, input.bestUsage ?? null, input.costPerMillion ?? null, input.maxComplexity ?? null, input.ratingSamples ?? null, input.ratingLastScore ?? null, input.ratingUpdatedAt ?? null, input.complexitySamples ?? null, input.complexityUpdatedAt ?? null, input.config ? JSON.stringify(input.config) : null, now, now);
|
|
49
55
|
if (input.capabilities) {
|
|
50
56
|
await this.setAgentCapabilities(id, input.capabilities);
|
|
51
57
|
}
|
|
@@ -84,6 +90,30 @@ export class GlobalRepository {
|
|
|
84
90
|
updates.push("cost_per_million = ?");
|
|
85
91
|
params.push(patch.costPerMillion);
|
|
86
92
|
}
|
|
93
|
+
if (patch.maxComplexity !== undefined) {
|
|
94
|
+
updates.push("max_complexity = ?");
|
|
95
|
+
params.push(patch.maxComplexity);
|
|
96
|
+
}
|
|
97
|
+
if (patch.ratingSamples !== undefined) {
|
|
98
|
+
updates.push("rating_samples = ?");
|
|
99
|
+
params.push(patch.ratingSamples);
|
|
100
|
+
}
|
|
101
|
+
if (patch.ratingLastScore !== undefined) {
|
|
102
|
+
updates.push("rating_last_score = ?");
|
|
103
|
+
params.push(patch.ratingLastScore);
|
|
104
|
+
}
|
|
105
|
+
if (patch.ratingUpdatedAt !== undefined) {
|
|
106
|
+
updates.push("rating_updated_at = ?");
|
|
107
|
+
params.push(patch.ratingUpdatedAt);
|
|
108
|
+
}
|
|
109
|
+
if (patch.complexitySamples !== undefined) {
|
|
110
|
+
updates.push("complexity_samples = ?");
|
|
111
|
+
params.push(patch.complexitySamples);
|
|
112
|
+
}
|
|
113
|
+
if (patch.complexityUpdatedAt !== undefined) {
|
|
114
|
+
updates.push("complexity_updated_at = ?");
|
|
115
|
+
params.push(patch.complexityUpdatedAt);
|
|
116
|
+
}
|
|
87
117
|
if (patch.config !== undefined) {
|
|
88
118
|
updates.push("config_json = ?");
|
|
89
119
|
params.push(patch.config ? JSON.stringify(patch.config) : null);
|
|
@@ -278,4 +308,56 @@ export class GlobalRepository {
|
|
|
278
308
|
cost_estimate, duration_seconds, timestamp, metadata_json
|
|
279
309
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, id, entry.agentId ?? null, entry.commandRunId ?? null, entry.modelName ?? null, entry.tokensPrompt ?? null, entry.tokensCompletion ?? null, entry.tokensTotal ?? null, entry.costEstimate ?? null, entry.durationSeconds ?? null, entry.timestamp, entry.metadata ? JSON.stringify(entry.metadata) : null);
|
|
280
310
|
}
|
|
311
|
+
async insertAgentRunRating(entry) {
|
|
312
|
+
const id = randomUUID();
|
|
313
|
+
await this.db.run(`INSERT INTO agent_run_ratings (
|
|
314
|
+
id,
|
|
315
|
+
agent_id,
|
|
316
|
+
job_id,
|
|
317
|
+
command_run_id,
|
|
318
|
+
task_id,
|
|
319
|
+
task_key,
|
|
320
|
+
command_name,
|
|
321
|
+
discipline,
|
|
322
|
+
complexity,
|
|
323
|
+
quality_score,
|
|
324
|
+
tokens_total,
|
|
325
|
+
duration_seconds,
|
|
326
|
+
iterations,
|
|
327
|
+
total_cost,
|
|
328
|
+
run_score,
|
|
329
|
+
rating_version,
|
|
330
|
+
raw_review_json,
|
|
331
|
+
created_at
|
|
332
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, id, entry.agentId, entry.jobId ?? null, entry.commandRunId ?? null, entry.taskId ?? null, entry.taskKey ?? null, entry.commandName ?? null, entry.discipline ?? null, entry.complexity ?? null, entry.qualityScore ?? null, entry.tokensTotal ?? null, entry.durationSeconds ?? null, entry.iterations ?? null, entry.totalCost ?? null, entry.runScore ?? null, entry.ratingVersion ?? null, entry.rawReview ? JSON.stringify(entry.rawReview) : null, entry.createdAt);
|
|
333
|
+
return { ...entry, id };
|
|
334
|
+
}
|
|
335
|
+
async listAgentRunRatings(agentId, limit = 50) {
|
|
336
|
+
const rows = await this.db.all(`SELECT id, agent_id, job_id, command_run_id, task_id, task_key, command_name, discipline, complexity, quality_score,
|
|
337
|
+
tokens_total, duration_seconds, iterations, total_cost, run_score, rating_version, raw_review_json, created_at
|
|
338
|
+
FROM agent_run_ratings
|
|
339
|
+
WHERE agent_id = ?
|
|
340
|
+
ORDER BY datetime(created_at) DESC
|
|
341
|
+
LIMIT ?`, agentId, limit);
|
|
342
|
+
return rows.map((row) => ({
|
|
343
|
+
id: row.id,
|
|
344
|
+
agentId: row.agent_id,
|
|
345
|
+
jobId: row.job_id ?? null,
|
|
346
|
+
commandRunId: row.command_run_id ?? null,
|
|
347
|
+
taskId: row.task_id ?? null,
|
|
348
|
+
taskKey: row.task_key ?? null,
|
|
349
|
+
commandName: row.command_name ?? null,
|
|
350
|
+
discipline: row.discipline ?? null,
|
|
351
|
+
complexity: row.complexity ?? null,
|
|
352
|
+
qualityScore: row.quality_score ?? null,
|
|
353
|
+
tokensTotal: row.tokens_total ?? null,
|
|
354
|
+
durationSeconds: row.duration_seconds ?? null,
|
|
355
|
+
iterations: row.iterations ?? null,
|
|
356
|
+
totalCost: row.total_cost ?? null,
|
|
357
|
+
runScore: row.run_score ?? null,
|
|
358
|
+
ratingVersion: row.rating_version ?? null,
|
|
359
|
+
rawReview: row.raw_review_json ? JSON.parse(row.raw_review_json) : null,
|
|
360
|
+
createdAt: row.created_at,
|
|
361
|
+
}));
|
|
362
|
+
}
|
|
281
363
|
}
|
|
@@ -195,6 +195,8 @@ export interface TaskCommentInsert {
|
|
|
195
195
|
authorType: "agent" | "human";
|
|
196
196
|
authorAgentId?: string | null;
|
|
197
197
|
category?: string | null;
|
|
198
|
+
slug?: string | null;
|
|
199
|
+
status?: string | null;
|
|
198
200
|
file?: string | null;
|
|
199
201
|
line?: number | null;
|
|
200
202
|
pathHint?: string | null;
|
|
@@ -235,6 +237,7 @@ export declare class WorkspaceRepository {
|
|
|
235
237
|
private serialize;
|
|
236
238
|
withTransaction<T>(fn: () => Promise<T>): Promise<T>;
|
|
237
239
|
getProjectByKey(key: string): Promise<ProjectRow | undefined>;
|
|
240
|
+
getProjectById(id: string): Promise<ProjectRow | undefined>;
|
|
238
241
|
createProjectIfMissing(input: {
|
|
239
242
|
key: string;
|
|
240
243
|
name?: string;
|
|
@@ -264,6 +267,7 @@ export declare class WorkspaceRepository {
|
|
|
264
267
|
}): Promise<void>;
|
|
265
268
|
getTaskById(taskId: string): Promise<TaskRow | undefined>;
|
|
266
269
|
getTaskByKey(taskKey: string): Promise<TaskRow | undefined>;
|
|
270
|
+
listTasksByMetadataValue(projectId: string, metadataKey: string, metadataValue: string): Promise<TaskRow[]>;
|
|
267
271
|
getTasksByIds(taskIds: string[]): Promise<TaskRow[]>;
|
|
268
272
|
listEpicKeys(projectId: string): Promise<string[]>;
|
|
269
273
|
listStoryKeys(epicId: string): Promise<string[]>;
|
|
@@ -296,6 +300,7 @@ export declare class WorkspaceRepository {
|
|
|
296
300
|
}>>;
|
|
297
301
|
createTaskRun(record: TaskRunInsert): Promise<TaskRunRow>;
|
|
298
302
|
getTaskLock(taskId: string): Promise<TaskLockRow | undefined>;
|
|
303
|
+
cleanupExpiredTaskLocks(nowIso?: string): Promise<string[]>;
|
|
299
304
|
tryAcquireTaskLock(taskId: string, taskRunId: string, jobId?: string | null, ttlSeconds?: number): Promise<{
|
|
300
305
|
acquired: boolean;
|
|
301
306
|
lock?: TaskLockRow;
|
|
@@ -329,7 +334,19 @@ export declare class WorkspaceRepository {
|
|
|
329
334
|
listTaskComments(taskId: string, options?: {
|
|
330
335
|
sourceCommands?: string[];
|
|
331
336
|
limit?: number;
|
|
337
|
+
slug?: string | string[];
|
|
338
|
+
resolved?: boolean;
|
|
332
339
|
}): Promise<TaskCommentRow[]>;
|
|
340
|
+
resolveTaskComment(params: {
|
|
341
|
+
taskId: string;
|
|
342
|
+
slug: string;
|
|
343
|
+
resolvedAt: string;
|
|
344
|
+
resolvedBy?: string | null;
|
|
345
|
+
}): Promise<void>;
|
|
346
|
+
reopenTaskComment(params: {
|
|
347
|
+
taskId: string;
|
|
348
|
+
slug: string;
|
|
349
|
+
}): Promise<void>;
|
|
333
350
|
createTaskReview(record: TaskReviewInsert): Promise<TaskReviewRow>;
|
|
334
351
|
getLatestTaskReview(taskId: string): Promise<TaskReviewRow | undefined>;
|
|
335
352
|
recordTokenUsage(entry: TokenUsageInsert): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workspace/WorkspaceRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkspaceRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workspace/WorkspaceRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,20 @@ export class WorkspaceRepository {
|
|
|
91
91
|
updatedAt: row.updated_at,
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
|
+
async getProjectById(id) {
|
|
95
|
+
const row = await this.db.get(`SELECT id, key, name, description, metadata_json, created_at, updated_at FROM projects WHERE id = ?`, id);
|
|
96
|
+
if (!row)
|
|
97
|
+
return undefined;
|
|
98
|
+
return {
|
|
99
|
+
id: row.id,
|
|
100
|
+
key: row.key,
|
|
101
|
+
name: row.name ?? undefined,
|
|
102
|
+
description: row.description ?? undefined,
|
|
103
|
+
metadata: row.metadata_json ? JSON.parse(row.metadata_json) : undefined,
|
|
104
|
+
createdAt: row.created_at,
|
|
105
|
+
updatedAt: row.updated_at,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
94
108
|
async createProjectIfMissing(input) {
|
|
95
109
|
const existing = await this.getProjectByKey(input.key);
|
|
96
110
|
if (existing)
|
|
@@ -328,6 +342,34 @@ export class WorkspaceRepository {
|
|
|
328
342
|
updatedAt: row.updated_at,
|
|
329
343
|
};
|
|
330
344
|
}
|
|
345
|
+
async listTasksByMetadataValue(projectId, metadataKey, metadataValue) {
|
|
346
|
+
const rows = await this.db.all(`SELECT id, project_id, epic_id, user_story_id, key, title, description, type, status, story_points, priority, assigned_agent_id, assignee_human, vcs_branch, vcs_base_branch, vcs_last_commit_sha, metadata_json, openapi_version_at_creation, created_at, updated_at
|
|
347
|
+
FROM tasks WHERE project_id = ?`, projectId);
|
|
348
|
+
return rows
|
|
349
|
+
.map((row) => ({
|
|
350
|
+
id: row.id,
|
|
351
|
+
projectId: row.project_id,
|
|
352
|
+
epicId: row.epic_id,
|
|
353
|
+
userStoryId: row.user_story_id,
|
|
354
|
+
key: row.key,
|
|
355
|
+
title: row.title,
|
|
356
|
+
description: row.description ?? undefined,
|
|
357
|
+
type: row.type ?? undefined,
|
|
358
|
+
status: row.status,
|
|
359
|
+
storyPoints: row.story_points ?? undefined,
|
|
360
|
+
priority: row.priority ?? undefined,
|
|
361
|
+
assignedAgentId: row.assigned_agent_id ?? undefined,
|
|
362
|
+
assigneeHuman: row.assignee_human ?? undefined,
|
|
363
|
+
vcsBranch: row.vcs_branch ?? undefined,
|
|
364
|
+
vcsBaseBranch: row.vcs_base_branch ?? undefined,
|
|
365
|
+
vcsLastCommitSha: row.vcs_last_commit_sha ?? undefined,
|
|
366
|
+
metadata: row.metadata_json ? JSON.parse(row.metadata_json) : undefined,
|
|
367
|
+
openapiVersionAtCreation: row.openapi_version_at_creation ?? undefined,
|
|
368
|
+
createdAt: row.created_at,
|
|
369
|
+
updatedAt: row.updated_at,
|
|
370
|
+
}))
|
|
371
|
+
.filter((task) => task.metadata?.[metadataKey] === metadataValue);
|
|
372
|
+
}
|
|
331
373
|
async getTasksByIds(taskIds) {
|
|
332
374
|
if (!taskIds.length)
|
|
333
375
|
return [];
|
|
@@ -570,6 +612,18 @@ export class WorkspaceRepository {
|
|
|
570
612
|
expiresAt: row.expires_at,
|
|
571
613
|
};
|
|
572
614
|
}
|
|
615
|
+
async cleanupExpiredTaskLocks(nowIso = new Date().toISOString()) {
|
|
616
|
+
return this.withTransaction(async () => {
|
|
617
|
+
const rows = await this.db.all(`SELECT t.key as task_key, l.task_id as task_id
|
|
618
|
+
FROM task_locks l
|
|
619
|
+
LEFT JOIN tasks t ON t.id = l.task_id
|
|
620
|
+
WHERE l.expires_at < ?`, nowIso);
|
|
621
|
+
if (!rows.length)
|
|
622
|
+
return [];
|
|
623
|
+
await this.db.run(`DELETE FROM task_locks WHERE expires_at < ?`, nowIso);
|
|
624
|
+
return rows.map((row) => row.task_key ?? row.task_id);
|
|
625
|
+
});
|
|
626
|
+
}
|
|
573
627
|
async tryAcquireTaskLock(taskId, taskRunId, jobId, ttlSeconds = 3600) {
|
|
574
628
|
const nowIso = new Date().toISOString();
|
|
575
629
|
const expiresAt = new Date(Date.now() + ttlSeconds * 1000).toISOString();
|
|
@@ -581,7 +635,13 @@ export class WorkspaceRepository {
|
|
|
581
635
|
job_id = excluded.job_id,
|
|
582
636
|
acquired_at = excluded.acquired_at,
|
|
583
637
|
expires_at = excluded.expires_at
|
|
584
|
-
WHERE task_locks.expires_at <
|
|
638
|
+
WHERE task_locks.expires_at < ?
|
|
639
|
+
OR NOT EXISTS (
|
|
640
|
+
SELECT 1
|
|
641
|
+
FROM task_runs
|
|
642
|
+
WHERE task_runs.id = task_locks.task_run_id
|
|
643
|
+
AND task_runs.status = 'running'
|
|
644
|
+
)`, taskId, taskRunId, jobId ?? null, nowIso, expiresAt, nowIso);
|
|
585
645
|
if (result?.changes && result.changes > 0) {
|
|
586
646
|
return {
|
|
587
647
|
acquired: true,
|
|
@@ -736,9 +796,9 @@ export class WorkspaceRepository {
|
|
|
736
796
|
}
|
|
737
797
|
async createTaskComment(record) {
|
|
738
798
|
const id = randomUUID();
|
|
739
|
-
await this.db.run(`INSERT INTO task_comments (id, task_id, task_run_id, job_id, source_command, author_type, author_agent_id, category, file, line, path_hint, body, metadata_json, created_at, resolved_at, resolved_by)
|
|
740
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, id, record.taskId, record.taskRunId ?? null, record.jobId ?? null, record.sourceCommand, record.authorType, record.authorAgentId ?? null, record.category ?? null, record.file ?? null, record.line ?? null, record.pathHint ?? null, record.body, record.metadata ? JSON.stringify(record.metadata) : null, record.createdAt, record.resolvedAt ?? null, record.resolvedBy ?? null);
|
|
741
|
-
return { ...record, id };
|
|
799
|
+
await this.db.run(`INSERT INTO task_comments (id, task_id, task_run_id, job_id, source_command, author_type, author_agent_id, category, slug, status, file, line, path_hint, body, metadata_json, created_at, resolved_at, resolved_by)
|
|
800
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`, id, record.taskId, record.taskRunId ?? null, record.jobId ?? null, record.sourceCommand, record.authorType, record.authorAgentId ?? null, record.category ?? null, record.slug ?? null, record.status ?? "open", record.file ?? null, record.line ?? null, record.pathHint ?? null, record.body, record.metadata ? JSON.stringify(record.metadata) : null, record.createdAt, record.resolvedAt ?? null, record.resolvedBy ?? null);
|
|
801
|
+
return { ...record, id, status: record.status ?? "open" };
|
|
742
802
|
}
|
|
743
803
|
async listTaskComments(taskId, options = {}) {
|
|
744
804
|
const clauses = ["task_id = ?"];
|
|
@@ -747,9 +807,22 @@ export class WorkspaceRepository {
|
|
|
747
807
|
clauses.push(`source_command IN (${options.sourceCommands.map(() => "?").join(", ")})`);
|
|
748
808
|
params.push(...options.sourceCommands);
|
|
749
809
|
}
|
|
810
|
+
if (options.slug) {
|
|
811
|
+
const slugs = Array.isArray(options.slug) ? options.slug : [options.slug];
|
|
812
|
+
if (slugs.length) {
|
|
813
|
+
clauses.push(`slug IN (${slugs.map(() => "?").join(", ")})`);
|
|
814
|
+
params.push(...slugs);
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
if (options.resolved === true) {
|
|
818
|
+
clauses.push("resolved_at IS NOT NULL");
|
|
819
|
+
}
|
|
820
|
+
else if (options.resolved === false) {
|
|
821
|
+
clauses.push("resolved_at IS NULL");
|
|
822
|
+
}
|
|
750
823
|
const where = clauses.length ? `WHERE ${clauses.join(" AND ")}` : "";
|
|
751
824
|
const limitClause = options.limit ? `LIMIT ${options.limit}` : "";
|
|
752
|
-
const rows = await this.db.all(`SELECT id, task_id, task_run_id, job_id, source_command, author_type, author_agent_id, category, file, line, path_hint, body, metadata_json, created_at, resolved_at, resolved_by
|
|
825
|
+
const rows = await this.db.all(`SELECT id, task_id, task_run_id, job_id, source_command, author_type, author_agent_id, category, slug, status, file, line, path_hint, body, metadata_json, created_at, resolved_at, resolved_by
|
|
753
826
|
FROM task_comments
|
|
754
827
|
${where}
|
|
755
828
|
ORDER BY datetime(created_at) DESC
|
|
@@ -763,6 +836,8 @@ export class WorkspaceRepository {
|
|
|
763
836
|
authorType: row.author_type,
|
|
764
837
|
authorAgentId: row.author_agent_id ?? undefined,
|
|
765
838
|
category: row.category ?? undefined,
|
|
839
|
+
slug: row.slug ?? undefined,
|
|
840
|
+
status: row.status ?? undefined,
|
|
766
841
|
file: row.file ?? undefined,
|
|
767
842
|
line: row.line ?? undefined,
|
|
768
843
|
pathHint: row.path_hint ?? undefined,
|
|
@@ -773,6 +848,16 @@ export class WorkspaceRepository {
|
|
|
773
848
|
resolvedBy: row.resolved_by ?? undefined,
|
|
774
849
|
}));
|
|
775
850
|
}
|
|
851
|
+
async resolveTaskComment(params) {
|
|
852
|
+
await this.db.run(`UPDATE task_comments
|
|
853
|
+
SET resolved_at = ?, resolved_by = ?, status = ?
|
|
854
|
+
WHERE task_id = ? AND slug = ?`, params.resolvedAt, params.resolvedBy ?? null, "resolved", params.taskId, params.slug);
|
|
855
|
+
}
|
|
856
|
+
async reopenTaskComment(params) {
|
|
857
|
+
await this.db.run(`UPDATE task_comments
|
|
858
|
+
SET resolved_at = NULL, resolved_by = NULL, status = ?
|
|
859
|
+
WHERE task_id = ? AND slug = ?`, "open", params.taskId, params.slug);
|
|
860
|
+
}
|
|
776
861
|
async createTaskReview(record) {
|
|
777
862
|
const id = randomUUID();
|
|
778
863
|
await this.db.run(`INSERT INTO task_reviews (id, task_id, job_id, agent_id, model_name, decision, summary, findings_json, test_recommendations_json, metadata_json, created_at, created_by)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcoda/db",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "SQLite-backed storage layer for mcoda.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"sqlite": "^5.1.1",
|
|
34
34
|
"sqlite3": "^5.1.7",
|
|
35
|
-
"@mcoda/shared": "0.1.
|
|
35
|
+
"@mcoda/shared": "0.1.9"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "tsc -p tsconfig.json",
|