@cat-factory/node-server 0.95.1 → 0.96.1

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.
Files changed (52) hide show
  1. package/dist/container.d.ts.map +1 -1
  2. package/dist/container.js +16 -5
  3. package/dist/container.js.map +1 -1
  4. package/dist/repositories/drizzle/_shared.d.ts +2 -0
  5. package/dist/repositories/drizzle/_shared.d.ts.map +1 -0
  6. package/dist/repositories/drizzle/_shared.js +11 -0
  7. package/dist/repositories/drizzle/_shared.js.map +1 -0
  8. package/dist/repositories/drizzle/accounts.d.ts +62 -0
  9. package/dist/repositories/drizzle/accounts.d.ts.map +1 -0
  10. package/dist/repositories/drizzle/accounts.js +438 -0
  11. package/dist/repositories/drizzle/accounts.js.map +1 -0
  12. package/dist/repositories/drizzle/board.d.ts +74 -0
  13. package/dist/repositories/drizzle/board.d.ts.map +1 -0
  14. package/dist/repositories/drizzle/board.js +489 -0
  15. package/dist/repositories/drizzle/board.js.map +1 -0
  16. package/dist/repositories/drizzle/connections.d.ts +84 -0
  17. package/dist/repositories/drizzle/connections.d.ts.map +1 -0
  18. package/dist/repositories/drizzle/connections.js +391 -0
  19. package/dist/repositories/drizzle/connections.js.map +1 -0
  20. package/dist/repositories/drizzle/execution.d.ts +58 -0
  21. package/dist/repositories/drizzle/execution.d.ts.map +1 -0
  22. package/dist/repositories/drizzle/execution.js +585 -0
  23. package/dist/repositories/drizzle/execution.js.map +1 -0
  24. package/dist/repositories/drizzle/initiatives.d.ts +54 -0
  25. package/dist/repositories/drizzle/initiatives.d.ts.map +1 -0
  26. package/dist/repositories/drizzle/initiatives.js +343 -0
  27. package/dist/repositories/drizzle/initiatives.js.map +1 -0
  28. package/dist/repositories/drizzle/kaizen.d.ts +34 -0
  29. package/dist/repositories/drizzle/kaizen.d.ts.map +1 -0
  30. package/dist/repositories/drizzle/kaizen.js +192 -0
  31. package/dist/repositories/drizzle/kaizen.js.map +1 -0
  32. package/dist/repositories/drizzle/reviews.d.ts +75 -0
  33. package/dist/repositories/drizzle/reviews.d.ts.map +1 -0
  34. package/dist/repositories/drizzle/reviews.js +449 -0
  35. package/dist/repositories/drizzle/reviews.js.map +1 -0
  36. package/dist/repositories/drizzle/sandbox.d.ts +61 -0
  37. package/dist/repositories/drizzle/sandbox.d.ts.map +1 -0
  38. package/dist/repositories/drizzle/sandbox.js +370 -0
  39. package/dist/repositories/drizzle/sandbox.js.map +1 -0
  40. package/dist/repositories/drizzle/settings.d.ts +76 -0
  41. package/dist/repositories/drizzle/settings.d.ts.map +1 -0
  42. package/dist/repositories/drizzle/settings.js +377 -0
  43. package/dist/repositories/drizzle/settings.js.map +1 -0
  44. package/dist/repositories/drizzle/telemetry.d.ts +60 -0
  45. package/dist/repositories/drizzle/telemetry.d.ts.map +1 -0
  46. package/dist/repositories/drizzle/telemetry.js +559 -0
  47. package/dist/repositories/drizzle/telemetry.js.map +1 -0
  48. package/dist/repositories/drizzle.d.ts +6 -113
  49. package/dist/repositories/drizzle.d.ts.map +1 -1
  50. package/dist/repositories/drizzle.js +20 -4118
  51. package/dist/repositories/drizzle.js.map +1 -1
  52. package/package.json +20 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kaizen.js","sourceRoot":"","sources":["../../../src/repositories/drizzle/kaizen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import type { BrainstormSession, BrainstormSessionRepository, BrainstormStage, ClarityReview, ClarityReviewRepository, ConsensusSession, ConsensusSessionRepository, DocInterviewRepository, DocInterviewSession, RequirementReview, RequirementReviewRepository } from '@cat-factory/kernel';
2
+ import type { DrizzleDb } from '../../db/client.js';
3
+ /**
4
+ * Requirements reviews over Postgres (the Drizzle mirror of the Worker's
5
+ * `D1RequirementReviewRepository`, migration 0021). The reviewed items live as a JSON
6
+ * array in `items`; the service keeps at most one live review per block (it deletes
7
+ * the block's prior review before inserting a fresh one), so `getByBlock` returns the
8
+ * latest. Behaviourally identical to the D1 repo so the cross-runtime conformance
9
+ * suite asserts the same requirements-rework substitution against both stores.
10
+ */
11
+ export declare class DrizzleRequirementReviewRepository implements RequirementReviewRepository {
12
+ private readonly db;
13
+ constructor(db: DrizzleDb);
14
+ getByBlock(workspaceId: string, blockId: string): Promise<RequirementReview | null>;
15
+ get(workspaceId: string, id: string): Promise<RequirementReview | null>;
16
+ upsert(workspaceId: string, review: RequirementReview): Promise<void>;
17
+ deleteByBlock(workspaceId: string, blockId: string): Promise<void>;
18
+ }
19
+ /**
20
+ * Interactive document-interview sessions over Postgres (the Drizzle mirror of the Worker's
21
+ * `D1DocInterviewRepository`, migration 0040). The Q&A live as a JSON array in `qa`; the service
22
+ * keeps at most one live session per block, so `getByBlock` returns the latest. Behaviourally
23
+ * identical to the D1 repo so the cross-runtime conformance suite asserts the same interview
24
+ * brief substitution against both stores.
25
+ */
26
+ export declare class DrizzleDocInterviewRepository implements DocInterviewRepository {
27
+ private readonly db;
28
+ constructor(db: DrizzleDb);
29
+ getByBlock(workspaceId: string, blockId: string): Promise<DocInterviewSession | null>;
30
+ get(workspaceId: string, id: string): Promise<DocInterviewSession | null>;
31
+ upsert(workspaceId: string, session: DocInterviewSession): Promise<void>;
32
+ deleteByBlock(workspaceId: string, blockId: string): Promise<void>;
33
+ }
34
+ /**
35
+ * Consensus session transcripts (`consensus_sessions`), the Drizzle/Postgres mirror of
36
+ * {@link D1ConsensusSessionRepository}. One row per (execution, step); the
37
+ * participants/rounds/dissent live as JSON columns, upserted as the process streams.
38
+ */
39
+ export declare class DrizzleConsensusSessionRepository implements ConsensusSessionRepository {
40
+ private readonly db;
41
+ constructor(db: DrizzleDb);
42
+ get(workspaceId: string, id: string): Promise<ConsensusSession | null>;
43
+ getByStep(workspaceId: string, executionId: string, stepIndex: number): Promise<ConsensusSession | null>;
44
+ getByBlock(workspaceId: string, blockId: string): Promise<ConsensusSession | null>;
45
+ upsert(workspaceId: string, session: ConsensusSession): Promise<void>;
46
+ }
47
+ /**
48
+ * Clarity (bug-report triage) reviews over Postgres — the Drizzle mirror of the Worker's
49
+ * `D1ClarityReviewRepository`. Behaviourally identical to the D1 repo so the cross-runtime
50
+ * conformance suite asserts the same clarified-brief substitution against both stores.
51
+ */
52
+ export declare class DrizzleClarityReviewRepository implements ClarityReviewRepository {
53
+ private readonly db;
54
+ constructor(db: DrizzleDb);
55
+ getByBlock(workspaceId: string, blockId: string): Promise<ClarityReview | null>;
56
+ get(workspaceId: string, id: string): Promise<ClarityReview | null>;
57
+ upsert(workspaceId: string, review: ClarityReview): Promise<void>;
58
+ deleteByBlock(workspaceId: string, blockId: string): Promise<void>;
59
+ }
60
+ /**
61
+ * Brainstorm (structured-dialogue) sessions over Postgres — the Drizzle mirror of the Worker's
62
+ * `D1BrainstormSessionRepository`. Behaviourally identical so the cross-runtime conformance
63
+ * suite asserts the same per-stage round-trip and brainstorm direction handoff against both
64
+ * stores. Keyed per (block, stage): a block may hold a live `requirements` AND `architecture`
65
+ * session at once.
66
+ */
67
+ export declare class DrizzleBrainstormSessionRepository implements BrainstormSessionRepository {
68
+ private readonly db;
69
+ constructor(db: DrizzleDb);
70
+ getByBlockStage(workspaceId: string, blockId: string, stage: BrainstormStage): Promise<BrainstormSession | null>;
71
+ get(workspaceId: string, id: string): Promise<BrainstormSession | null>;
72
+ upsert(workspaceId: string, session: BrainstormSession): Promise<void>;
73
+ deleteByBlockStage(workspaceId: string, blockId: string, stage: BrainstormStage): Promise<void>;
74
+ }
75
+ //# sourceMappingURL=reviews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/reviews.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,449 @@
1
+ // Drizzle/Postgres implementations of the core kernel repository ports, split by
2
+ // domain (mirrors the Cloudflare D1 per-repository layout). The row<->domain mapping
3
+ // is the SAME shared mapping the D1 repos use (@cat-factory/server), so behaviour
4
+ // matches across stores; this layer only owns the Drizzle queries. Assembled into the
5
+ // CoreRepositories set by ./drizzle.ts (the barrel).
6
+ import { parseJsonArray } from './_shared.js';
7
+ import { and, desc, eq } from 'drizzle-orm';
8
+ import { brainstormSessions, clarityReviews, consensusSessions, docInterviewSessions, requirementReviews, } from '../../db/schema.js';
9
+ function rowToRequirementReview(row) {
10
+ return {
11
+ id: row.id,
12
+ blockId: row.block_id,
13
+ status: row.status,
14
+ items: parseJsonArray(row.items),
15
+ model: row.model,
16
+ incorporatedRequirements: row.incorporated_requirements,
17
+ iteration: row.iteration,
18
+ maxIterations: row.max_iterations,
19
+ recommendations: parseJsonArray(row.recommendations ?? '[]'),
20
+ createdAt: row.created_at,
21
+ updatedAt: row.updated_at,
22
+ };
23
+ }
24
+ /**
25
+ * Requirements reviews over Postgres (the Drizzle mirror of the Worker's
26
+ * `D1RequirementReviewRepository`, migration 0021). The reviewed items live as a JSON
27
+ * array in `items`; the service keeps at most one live review per block (it deletes
28
+ * the block's prior review before inserting a fresh one), so `getByBlock` returns the
29
+ * latest. Behaviourally identical to the D1 repo so the cross-runtime conformance
30
+ * suite asserts the same requirements-rework substitution against both stores.
31
+ */
32
+ export class DrizzleRequirementReviewRepository {
33
+ db;
34
+ constructor(db) {
35
+ this.db = db;
36
+ }
37
+ async getByBlock(workspaceId, blockId) {
38
+ const rows = await this.db
39
+ .select()
40
+ .from(requirementReviews)
41
+ .where(and(eq(requirementReviews.workspace_id, workspaceId), eq(requirementReviews.block_id, blockId)))
42
+ .orderBy(desc(requirementReviews.created_at))
43
+ .limit(1);
44
+ return rows[0] ? rowToRequirementReview(rows[0]) : null;
45
+ }
46
+ async get(workspaceId, id) {
47
+ const rows = await this.db
48
+ .select()
49
+ .from(requirementReviews)
50
+ .where(and(eq(requirementReviews.workspace_id, workspaceId), eq(requirementReviews.id, id)))
51
+ .limit(1);
52
+ return rows[0] ? rowToRequirementReview(rows[0]) : null;
53
+ }
54
+ async upsert(workspaceId, review) {
55
+ const values = {
56
+ workspace_id: workspaceId,
57
+ id: review.id,
58
+ block_id: review.blockId,
59
+ status: review.status,
60
+ items: JSON.stringify(review.items),
61
+ model: review.model,
62
+ incorporated_requirements: review.incorporatedRequirements,
63
+ iteration: review.iteration ?? 1,
64
+ max_iterations: review.maxIterations ?? 1,
65
+ recommendations: JSON.stringify(review.recommendations ?? []),
66
+ created_at: review.createdAt,
67
+ updated_at: review.updatedAt,
68
+ };
69
+ await this.db
70
+ .insert(requirementReviews)
71
+ .values(values)
72
+ .onConflictDoUpdate({
73
+ target: [requirementReviews.workspace_id, requirementReviews.id],
74
+ set: {
75
+ block_id: values.block_id,
76
+ status: values.status,
77
+ items: values.items,
78
+ model: values.model,
79
+ incorporated_requirements: values.incorporated_requirements,
80
+ iteration: values.iteration,
81
+ max_iterations: values.max_iterations,
82
+ recommendations: values.recommendations,
83
+ updated_at: values.updated_at,
84
+ },
85
+ });
86
+ }
87
+ async deleteByBlock(workspaceId, blockId) {
88
+ await this.db
89
+ .delete(requirementReviews)
90
+ .where(and(eq(requirementReviews.workspace_id, workspaceId), eq(requirementReviews.block_id, blockId)));
91
+ }
92
+ }
93
+ function rowToDocInterviewSession(row) {
94
+ return {
95
+ id: row.id,
96
+ blockId: row.block_id,
97
+ status: row.status,
98
+ round: row.round,
99
+ maxRounds: row.max_rounds,
100
+ qa: parseJsonArray(row.qa),
101
+ brief: row.brief,
102
+ model: row.model,
103
+ createdAt: row.created_at,
104
+ updatedAt: row.updated_at,
105
+ };
106
+ }
107
+ /**
108
+ * Interactive document-interview sessions over Postgres (the Drizzle mirror of the Worker's
109
+ * `D1DocInterviewRepository`, migration 0040). The Q&A live as a JSON array in `qa`; the service
110
+ * keeps at most one live session per block, so `getByBlock` returns the latest. Behaviourally
111
+ * identical to the D1 repo so the cross-runtime conformance suite asserts the same interview
112
+ * brief substitution against both stores.
113
+ */
114
+ export class DrizzleDocInterviewRepository {
115
+ db;
116
+ constructor(db) {
117
+ this.db = db;
118
+ }
119
+ async getByBlock(workspaceId, blockId) {
120
+ const rows = await this.db
121
+ .select()
122
+ .from(docInterviewSessions)
123
+ .where(and(eq(docInterviewSessions.workspace_id, workspaceId), eq(docInterviewSessions.block_id, blockId)))
124
+ .orderBy(desc(docInterviewSessions.created_at))
125
+ .limit(1);
126
+ return rows[0] ? rowToDocInterviewSession(rows[0]) : null;
127
+ }
128
+ async get(workspaceId, id) {
129
+ const rows = await this.db
130
+ .select()
131
+ .from(docInterviewSessions)
132
+ .where(and(eq(docInterviewSessions.workspace_id, workspaceId), eq(docInterviewSessions.id, id)))
133
+ .limit(1);
134
+ return rows[0] ? rowToDocInterviewSession(rows[0]) : null;
135
+ }
136
+ async upsert(workspaceId, session) {
137
+ const values = {
138
+ workspace_id: workspaceId,
139
+ id: session.id,
140
+ block_id: session.blockId,
141
+ status: session.status,
142
+ round: session.round,
143
+ max_rounds: session.maxRounds,
144
+ qa: JSON.stringify(session.qa ?? []),
145
+ brief: session.brief,
146
+ model: session.model,
147
+ created_at: session.createdAt,
148
+ updated_at: session.updatedAt,
149
+ };
150
+ await this.db
151
+ .insert(docInterviewSessions)
152
+ .values(values)
153
+ .onConflictDoUpdate({
154
+ target: [docInterviewSessions.workspace_id, docInterviewSessions.id],
155
+ set: {
156
+ block_id: values.block_id,
157
+ status: values.status,
158
+ round: values.round,
159
+ max_rounds: values.max_rounds,
160
+ qa: values.qa,
161
+ brief: values.brief,
162
+ model: values.model,
163
+ updated_at: values.updated_at,
164
+ },
165
+ });
166
+ }
167
+ async deleteByBlock(workspaceId, blockId) {
168
+ await this.db
169
+ .delete(docInterviewSessions)
170
+ .where(and(eq(docInterviewSessions.workspace_id, workspaceId), eq(docInterviewSessions.block_id, blockId)));
171
+ }
172
+ }
173
+ function rowToConsensusSession(row) {
174
+ return {
175
+ id: row.id,
176
+ blockId: row.block_id,
177
+ executionId: row.execution_id,
178
+ stepIndex: row.step_index,
179
+ agentKind: row.agent_kind,
180
+ strategy: row.strategy,
181
+ status: row.status,
182
+ participants: parseJsonArray(row.participants),
183
+ rounds: parseJsonArray(row.rounds),
184
+ synthesis: row.synthesis,
185
+ confidence: row.confidence,
186
+ dissent: parseJsonArray(row.dissent),
187
+ error: row.error,
188
+ createdAt: row.created_at,
189
+ updatedAt: row.updated_at,
190
+ };
191
+ }
192
+ function rowToClarityReview(row) {
193
+ let items = [];
194
+ try {
195
+ const parsed = JSON.parse(row.items);
196
+ if (Array.isArray(parsed))
197
+ items = parsed;
198
+ }
199
+ catch {
200
+ items = [];
201
+ }
202
+ return {
203
+ id: row.id,
204
+ blockId: row.block_id,
205
+ status: row.status,
206
+ items,
207
+ model: row.model,
208
+ clarifiedReport: row.clarified_report,
209
+ iteration: row.iteration,
210
+ maxIterations: row.max_iterations,
211
+ createdAt: row.created_at,
212
+ updatedAt: row.updated_at,
213
+ };
214
+ }
215
+ /**
216
+ * Consensus session transcripts (`consensus_sessions`), the Drizzle/Postgres mirror of
217
+ * {@link D1ConsensusSessionRepository}. One row per (execution, step); the
218
+ * participants/rounds/dissent live as JSON columns, upserted as the process streams.
219
+ */
220
+ export class DrizzleConsensusSessionRepository {
221
+ db;
222
+ constructor(db) {
223
+ this.db = db;
224
+ }
225
+ async get(workspaceId, id) {
226
+ const rows = await this.db
227
+ .select()
228
+ .from(consensusSessions)
229
+ .where(and(eq(consensusSessions.workspace_id, workspaceId), eq(consensusSessions.id, id)))
230
+ .limit(1);
231
+ return rows[0] ? rowToConsensusSession(rows[0]) : null;
232
+ }
233
+ async getByStep(workspaceId, executionId, stepIndex) {
234
+ const rows = await this.db
235
+ .select()
236
+ .from(consensusSessions)
237
+ .where(and(eq(consensusSessions.workspace_id, workspaceId), eq(consensusSessions.execution_id, executionId), eq(consensusSessions.step_index, stepIndex)))
238
+ .orderBy(desc(consensusSessions.created_at))
239
+ .limit(1);
240
+ return rows[0] ? rowToConsensusSession(rows[0]) : null;
241
+ }
242
+ async getByBlock(workspaceId, blockId) {
243
+ const rows = await this.db
244
+ .select()
245
+ .from(consensusSessions)
246
+ .where(and(eq(consensusSessions.workspace_id, workspaceId), eq(consensusSessions.block_id, blockId)))
247
+ .orderBy(desc(consensusSessions.created_at))
248
+ .limit(1);
249
+ return rows[0] ? rowToConsensusSession(rows[0]) : null;
250
+ }
251
+ async upsert(workspaceId, session) {
252
+ const values = {
253
+ workspace_id: workspaceId,
254
+ id: session.id,
255
+ block_id: session.blockId,
256
+ execution_id: session.executionId,
257
+ step_index: session.stepIndex,
258
+ agent_kind: session.agentKind,
259
+ strategy: session.strategy,
260
+ status: session.status,
261
+ participants: JSON.stringify(session.participants),
262
+ rounds: JSON.stringify(session.rounds),
263
+ synthesis: session.synthesis,
264
+ confidence: session.confidence ?? null,
265
+ dissent: JSON.stringify(session.dissent ?? []),
266
+ error: session.error ?? null,
267
+ created_at: session.createdAt,
268
+ updated_at: session.updatedAt,
269
+ };
270
+ await this.db
271
+ .insert(consensusSessions)
272
+ .values(values)
273
+ .onConflictDoUpdate({
274
+ target: [consensusSessions.workspace_id, consensusSessions.id],
275
+ set: {
276
+ block_id: values.block_id,
277
+ execution_id: values.execution_id,
278
+ step_index: values.step_index,
279
+ agent_kind: values.agent_kind,
280
+ strategy: values.strategy,
281
+ status: values.status,
282
+ participants: values.participants,
283
+ rounds: values.rounds,
284
+ synthesis: values.synthesis,
285
+ confidence: values.confidence,
286
+ dissent: values.dissent,
287
+ error: values.error,
288
+ updated_at: values.updated_at,
289
+ },
290
+ });
291
+ }
292
+ }
293
+ /**
294
+ * Clarity (bug-report triage) reviews over Postgres — the Drizzle mirror of the Worker's
295
+ * `D1ClarityReviewRepository`. Behaviourally identical to the D1 repo so the cross-runtime
296
+ * conformance suite asserts the same clarified-brief substitution against both stores.
297
+ */
298
+ export class DrizzleClarityReviewRepository {
299
+ db;
300
+ constructor(db) {
301
+ this.db = db;
302
+ }
303
+ async getByBlock(workspaceId, blockId) {
304
+ const rows = await this.db
305
+ .select()
306
+ .from(clarityReviews)
307
+ .where(and(eq(clarityReviews.workspace_id, workspaceId), eq(clarityReviews.block_id, blockId)))
308
+ .orderBy(desc(clarityReviews.created_at))
309
+ .limit(1);
310
+ return rows[0] ? rowToClarityReview(rows[0]) : null;
311
+ }
312
+ async get(workspaceId, id) {
313
+ const rows = await this.db
314
+ .select()
315
+ .from(clarityReviews)
316
+ .where(and(eq(clarityReviews.workspace_id, workspaceId), eq(clarityReviews.id, id)))
317
+ .limit(1);
318
+ return rows[0] ? rowToClarityReview(rows[0]) : null;
319
+ }
320
+ async upsert(workspaceId, review) {
321
+ const values = {
322
+ workspace_id: workspaceId,
323
+ id: review.id,
324
+ block_id: review.blockId,
325
+ status: review.status,
326
+ items: JSON.stringify(review.items),
327
+ model: review.model,
328
+ clarified_report: review.clarifiedReport,
329
+ iteration: review.iteration ?? 1,
330
+ max_iterations: review.maxIterations ?? 1,
331
+ created_at: review.createdAt,
332
+ updated_at: review.updatedAt,
333
+ };
334
+ await this.db
335
+ .insert(clarityReviews)
336
+ .values(values)
337
+ .onConflictDoUpdate({
338
+ target: [clarityReviews.workspace_id, clarityReviews.id],
339
+ set: {
340
+ block_id: values.block_id,
341
+ status: values.status,
342
+ items: values.items,
343
+ model: values.model,
344
+ clarified_report: values.clarified_report,
345
+ iteration: values.iteration,
346
+ max_iterations: values.max_iterations,
347
+ updated_at: values.updated_at,
348
+ },
349
+ });
350
+ }
351
+ async deleteByBlock(workspaceId, blockId) {
352
+ await this.db
353
+ .delete(clarityReviews)
354
+ .where(and(eq(clarityReviews.workspace_id, workspaceId), eq(clarityReviews.block_id, blockId)));
355
+ }
356
+ }
357
+ function rowToBrainstormSession(row) {
358
+ let items = [];
359
+ try {
360
+ const parsed = JSON.parse(row.items);
361
+ if (Array.isArray(parsed))
362
+ items = parsed;
363
+ }
364
+ catch {
365
+ items = [];
366
+ }
367
+ return {
368
+ id: row.id,
369
+ blockId: row.block_id,
370
+ stage: row.stage,
371
+ status: row.status,
372
+ items,
373
+ model: row.model,
374
+ convergedDirection: row.converged_direction,
375
+ iteration: row.iteration,
376
+ maxIterations: row.max_iterations,
377
+ createdAt: row.created_at,
378
+ updatedAt: row.updated_at,
379
+ };
380
+ }
381
+ /**
382
+ * Brainstorm (structured-dialogue) sessions over Postgres — the Drizzle mirror of the Worker's
383
+ * `D1BrainstormSessionRepository`. Behaviourally identical so the cross-runtime conformance
384
+ * suite asserts the same per-stage round-trip and brainstorm direction handoff against both
385
+ * stores. Keyed per (block, stage): a block may hold a live `requirements` AND `architecture`
386
+ * session at once.
387
+ */
388
+ export class DrizzleBrainstormSessionRepository {
389
+ db;
390
+ constructor(db) {
391
+ this.db = db;
392
+ }
393
+ async getByBlockStage(workspaceId, blockId, stage) {
394
+ const rows = await this.db
395
+ .select()
396
+ .from(brainstormSessions)
397
+ .where(and(eq(brainstormSessions.workspace_id, workspaceId), eq(brainstormSessions.block_id, blockId), eq(brainstormSessions.stage, stage)))
398
+ .orderBy(desc(brainstormSessions.created_at))
399
+ .limit(1);
400
+ return rows[0] ? rowToBrainstormSession(rows[0]) : null;
401
+ }
402
+ async get(workspaceId, id) {
403
+ const rows = await this.db
404
+ .select()
405
+ .from(brainstormSessions)
406
+ .where(and(eq(brainstormSessions.workspace_id, workspaceId), eq(brainstormSessions.id, id)))
407
+ .limit(1);
408
+ return rows[0] ? rowToBrainstormSession(rows[0]) : null;
409
+ }
410
+ async upsert(workspaceId, session) {
411
+ const values = {
412
+ workspace_id: workspaceId,
413
+ id: session.id,
414
+ block_id: session.blockId,
415
+ stage: session.stage,
416
+ status: session.status,
417
+ items: JSON.stringify(session.items),
418
+ model: session.model,
419
+ converged_direction: session.convergedDirection,
420
+ iteration: session.iteration ?? 1,
421
+ max_iterations: session.maxIterations ?? 1,
422
+ created_at: session.createdAt,
423
+ updated_at: session.updatedAt,
424
+ };
425
+ await this.db
426
+ .insert(brainstormSessions)
427
+ .values(values)
428
+ .onConflictDoUpdate({
429
+ target: [brainstormSessions.workspace_id, brainstormSessions.id],
430
+ set: {
431
+ block_id: values.block_id,
432
+ stage: values.stage,
433
+ status: values.status,
434
+ items: values.items,
435
+ model: values.model,
436
+ converged_direction: values.converged_direction,
437
+ iteration: values.iteration,
438
+ max_iterations: values.max_iterations,
439
+ updated_at: values.updated_at,
440
+ },
441
+ });
442
+ }
443
+ async deleteByBlockStage(workspaceId, blockId, stage) {
444
+ await this.db
445
+ .delete(brainstormSessions)
446
+ .where(and(eq(brainstormSessions.workspace_id, workspaceId), eq(brainstormSessions.block_id, blockId), eq(brainstormSessions.stage, stage)));
447
+ }
448
+ }
449
+ //# sourceMappingURL=reviews.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviews.js","sourceRoot":"","sources":["../../../src/repositories/drizzle/reviews.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { SandboxExperiment, SandboxExperimentRepository, SandboxExperimentStatus, SandboxFixture, SandboxFixtureRepository, SandboxGrade, SandboxGradeRepository, SandboxPromptVersion, SandboxPromptVersionRepository, SandboxRun, SandboxRunRepository, SandboxRunStatus } from '@cat-factory/kernel';
2
+ import type { DrizzleDb } from '../../db/client.js';
3
+ export declare class DrizzleSandboxPromptVersionRepository implements SandboxPromptVersionRepository {
4
+ private readonly db;
5
+ constructor(db: DrizzleDb);
6
+ get(workspaceId: string, id: string): Promise<SandboxPromptVersion | null>;
7
+ list(workspaceId: string): Promise<SandboxPromptVersion[]>;
8
+ listByKind(workspaceId: string, agentKind: string): Promise<SandboxPromptVersion[]>;
9
+ upsert(workspaceId: string, version: SandboxPromptVersion): Promise<void>;
10
+ archive(workspaceId: string, id: string, at: number): Promise<void>;
11
+ }
12
+ export declare class DrizzleSandboxFixtureRepository implements SandboxFixtureRepository {
13
+ private readonly db;
14
+ constructor(db: DrizzleDb);
15
+ get(workspaceId: string, id: string): Promise<SandboxFixture | null>;
16
+ list(workspaceId: string): Promise<SandboxFixture[]>;
17
+ upsert(workspaceId: string, fixture: SandboxFixture): Promise<void>;
18
+ remove(workspaceId: string, id: string): Promise<void>;
19
+ }
20
+ export declare class DrizzleSandboxExperimentRepository implements SandboxExperimentRepository {
21
+ private readonly db;
22
+ constructor(db: DrizzleDb);
23
+ get(workspaceId: string, id: string): Promise<SandboxExperiment | null>;
24
+ list(workspaceId: string): Promise<SandboxExperiment[]>;
25
+ upsert(workspaceId: string, experiment: SandboxExperiment): Promise<void>;
26
+ setStatus(workspaceId: string, id: string, status: SandboxExperimentStatus): Promise<void>;
27
+ claimForRun(workspaceId: string, id: string): Promise<boolean>;
28
+ }
29
+ export declare class DrizzleSandboxRunRepository implements SandboxRunRepository {
30
+ private readonly db;
31
+ constructor(db: DrizzleDb);
32
+ get(workspaceId: string, id: string): Promise<SandboxRun | null>;
33
+ listByExperiment(workspaceId: string, experimentId: string): Promise<SandboxRun[]>;
34
+ listQueued(workspaceId: string, experimentId: string): Promise<SandboxRun[]>;
35
+ upsert(workspaceId: string, run: SandboxRun): Promise<void>;
36
+ setStatus(workspaceId: string, id: string, status: SandboxRunStatus): Promise<void>;
37
+ removeByExperiment(workspaceId: string, experimentId: string): Promise<void>;
38
+ }
39
+ export declare class DrizzleSandboxGradeRepository implements SandboxGradeRepository {
40
+ private readonly db;
41
+ constructor(db: DrizzleDb);
42
+ getByRun(workspaceId: string, runId: string): Promise<SandboxGrade | null>;
43
+ listByExperiment(workspaceId: string, experimentId: string): Promise<SandboxGrade[]>;
44
+ upsert(workspaceId: string, grade: SandboxGrade): Promise<void>;
45
+ removeByExperiment(workspaceId: string, experimentId: string): Promise<void>;
46
+ }
47
+ /**
48
+ * The Sandbox's persistence as one spreadable mixin (the Drizzle analogue of the
49
+ * Worker's `selectSandboxDeps`). The Node container spreads `...createDrizzleSandboxDeps(db)`
50
+ * into its dependencies so the container body never enumerates the Sandbox repos — the
51
+ * knowledge of which repos exist lives here, next to their implementations. Typed by the
52
+ * kernel ports (not `CoreDependencies`) so this module stays free of the orchestration import.
53
+ */
54
+ export declare function createDrizzleSandboxDeps(db: DrizzleDb): {
55
+ sandboxPromptVersionRepository: SandboxPromptVersionRepository;
56
+ sandboxFixtureRepository: SandboxFixtureRepository;
57
+ sandboxExperimentRepository: SandboxExperimentRepository;
58
+ sandboxRunRepository: SandboxRunRepository;
59
+ sandboxGradeRepository: SandboxGradeRepository;
60
+ };
61
+ //# sourceMappingURL=sandbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/sandbox.ts"],"names":[],"mappings":"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"}