@cat-factory/node-server 0.95.2 → 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 +7 -7
@@ -0,0 +1,391 @@
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 { subscriptionVendorSchema } from '@cat-factory/contracts';
7
+ import { decodeEnum } from '@cat-factory/server';
8
+ import { and, eq, lt, sql } from 'drizzle-orm';
9
+ import { incidentEnrichmentConnections, observabilityConnections, packageRegistryConnections, releaseHealthConfigs, subscriptionQuotaCycles, testSecrets, } from '../../db/schema.js';
10
+ export class DrizzleObservabilityConnectionRepository {
11
+ db;
12
+ constructor(db) {
13
+ this.db = db;
14
+ }
15
+ async get(workspaceId) {
16
+ const rows = await this.db
17
+ .select()
18
+ .from(observabilityConnections)
19
+ .where(eq(observabilityConnections.workspace_id, workspaceId))
20
+ .limit(1);
21
+ const row = rows[0];
22
+ if (!row)
23
+ return null;
24
+ return {
25
+ workspaceId: row.workspace_id,
26
+ provider: row.provider,
27
+ credentials: row.credentials,
28
+ summary: row.summary,
29
+ createdAt: row.created_at,
30
+ updatedAt: row.updated_at,
31
+ };
32
+ }
33
+ async upsert(record) {
34
+ const values = {
35
+ workspace_id: record.workspaceId,
36
+ provider: record.provider,
37
+ credentials: record.credentials,
38
+ summary: record.summary,
39
+ created_at: record.createdAt,
40
+ updated_at: record.updatedAt,
41
+ };
42
+ await this.db
43
+ .insert(observabilityConnections)
44
+ .values(values)
45
+ .onConflictDoUpdate({
46
+ target: observabilityConnections.workspace_id,
47
+ set: {
48
+ provider: values.provider,
49
+ credentials: values.credentials,
50
+ summary: values.summary,
51
+ updated_at: values.updated_at,
52
+ },
53
+ });
54
+ }
55
+ async delete(workspaceId) {
56
+ await this.db
57
+ .delete(observabilityConnections)
58
+ .where(eq(observabilityConnections.workspace_id, workspaceId));
59
+ }
60
+ }
61
+ /**
62
+ * Postgres-backed modeled subscription quota-cycle counters (the Drizzle mirror of the
63
+ * Worker's `D1SubscriptionQuotaCycleRepository`, migration 0047), column-for-column so
64
+ * behaviour matches across stores.
65
+ */
66
+ export class DrizzleSubscriptionQuotaCycleRepository {
67
+ db;
68
+ constructor(db) {
69
+ this.db = db;
70
+ }
71
+ async recordUsage(key, usage, at, windowMs) {
72
+ // Windowed UPSERT (mirrors the D1 repo): INSERT anchors a fresh window at `at`; on
73
+ // conflict, an active window (younger than `windowMs`) accumulates and a stale one
74
+ // resets to `at`. Every SET RHS reads the row's pre-update values, so referencing
75
+ // `window_started_at` in the counter branches is safe though it's also reassigned.
76
+ const cols = subscriptionQuotaCycles;
77
+ const active = sql `(${at} - ${cols.window_started_at} < ${windowMs})`;
78
+ await this.db
79
+ .insert(cols)
80
+ .values({
81
+ id: key.id,
82
+ scope: key.scope,
83
+ scope_id: key.scopeId,
84
+ vendor: key.vendor,
85
+ window_kind: key.windowKind,
86
+ window_started_at: at,
87
+ input_tokens: usage.inputTokens,
88
+ output_tokens: usage.outputTokens,
89
+ request_count: 1,
90
+ updated_at: at,
91
+ })
92
+ .onConflictDoUpdate({
93
+ target: [cols.scope, cols.scope_id, cols.vendor, cols.window_kind],
94
+ set: {
95
+ window_started_at: sql `CASE WHEN ${active} THEN ${cols.window_started_at} ELSE ${at} END`,
96
+ input_tokens: sql `CASE WHEN ${active} THEN ${cols.input_tokens} ELSE 0 END + ${usage.inputTokens}`,
97
+ output_tokens: sql `CASE WHEN ${active} THEN ${cols.output_tokens} ELSE 0 END + ${usage.outputTokens}`,
98
+ request_count: sql `CASE WHEN ${active} THEN ${cols.request_count} ELSE 0 END + 1`,
99
+ updated_at: at,
100
+ },
101
+ });
102
+ }
103
+ async listByScopeVendor(scope, scopeId, vendor) {
104
+ const rows = await this.db
105
+ .select()
106
+ .from(subscriptionQuotaCycles)
107
+ .where(and(eq(subscriptionQuotaCycles.scope, scope), eq(subscriptionQuotaCycles.scope_id, scopeId), eq(subscriptionQuotaCycles.vendor, vendor)));
108
+ return rows.map((row) => ({
109
+ id: row.id,
110
+ scope: row.scope,
111
+ scopeId: row.scope_id,
112
+ vendor: decodeEnum(subscriptionVendorSchema, row.vendor, {
113
+ table: 'subscription_quota_cycles',
114
+ column: 'vendor',
115
+ id: row.id,
116
+ }),
117
+ windowKind: row.window_kind,
118
+ windowStartedAt: row.window_started_at,
119
+ inputTokens: row.input_tokens,
120
+ outputTokens: row.output_tokens,
121
+ requestCount: row.request_count,
122
+ updatedAt: row.updated_at,
123
+ }));
124
+ }
125
+ async deleteOlderThan(epochMs) {
126
+ const deleted = await this.db
127
+ .delete(subscriptionQuotaCycles)
128
+ .where(lt(subscriptionQuotaCycles.window_started_at, epochMs))
129
+ .returning({ id: subscriptionQuotaCycles.id });
130
+ return deleted.length;
131
+ }
132
+ }
133
+ /**
134
+ * A workspace's private package-registry connection over Postgres (the Drizzle mirror
135
+ * of the Worker's `D1PackageRegistryConnectionRepository`, migration 0034). One row per
136
+ * workspace; the registry entries are stored as ONE sealed JSON array (encrypted by the
137
+ * caller), with a non-secret `summary` blob for display.
138
+ */
139
+ export class DrizzlePackageRegistryConnectionRepository {
140
+ db;
141
+ constructor(db) {
142
+ this.db = db;
143
+ }
144
+ async get(workspaceId) {
145
+ const rows = await this.db
146
+ .select()
147
+ .from(packageRegistryConnections)
148
+ .where(eq(packageRegistryConnections.workspace_id, workspaceId))
149
+ .limit(1);
150
+ const row = rows[0];
151
+ if (!row)
152
+ return null;
153
+ return {
154
+ workspaceId: row.workspace_id,
155
+ entries: row.entries,
156
+ summary: row.summary,
157
+ createdAt: row.created_at,
158
+ updatedAt: row.updated_at,
159
+ };
160
+ }
161
+ async upsert(record) {
162
+ const values = {
163
+ workspace_id: record.workspaceId,
164
+ entries: record.entries,
165
+ summary: record.summary,
166
+ created_at: record.createdAt,
167
+ updated_at: record.updatedAt,
168
+ };
169
+ await this.db
170
+ .insert(packageRegistryConnections)
171
+ .values(values)
172
+ .onConflictDoUpdate({
173
+ target: packageRegistryConnections.workspace_id,
174
+ set: {
175
+ entries: values.entries,
176
+ summary: values.summary,
177
+ updated_at: values.updated_at,
178
+ },
179
+ });
180
+ }
181
+ async delete(workspaceId) {
182
+ await this.db
183
+ .delete(packageRegistryConnections)
184
+ .where(eq(packageRegistryConnections.workspace_id, workspaceId));
185
+ }
186
+ }
187
+ /**
188
+ * A workspace's incident-enrichment connection over Postgres (the Drizzle mirror of the
189
+ * Worker's `D1IncidentEnrichmentConnectionRepository`, migration 0013). One row per
190
+ * workspace; both PagerDuty + incident.io credentials live in ONE sealed JSON blob
191
+ * (encrypted by the caller), with a non-secret `summary` presence blob.
192
+ */
193
+ export class DrizzleIncidentEnrichmentConnectionRepository {
194
+ db;
195
+ constructor(db) {
196
+ this.db = db;
197
+ }
198
+ async get(workspaceId) {
199
+ const rows = await this.db
200
+ .select()
201
+ .from(incidentEnrichmentConnections)
202
+ .where(eq(incidentEnrichmentConnections.workspace_id, workspaceId))
203
+ .limit(1);
204
+ const row = rows[0];
205
+ if (!row)
206
+ return null;
207
+ return {
208
+ workspaceId: row.workspace_id,
209
+ credentials: row.credentials,
210
+ summary: row.summary,
211
+ createdAt: row.created_at,
212
+ updatedAt: row.updated_at,
213
+ };
214
+ }
215
+ async upsert(record) {
216
+ const values = {
217
+ workspace_id: record.workspaceId,
218
+ credentials: record.credentials,
219
+ summary: record.summary,
220
+ created_at: record.createdAt,
221
+ updated_at: record.updatedAt,
222
+ };
223
+ await this.db
224
+ .insert(incidentEnrichmentConnections)
225
+ .values(values)
226
+ .onConflictDoUpdate({
227
+ target: incidentEnrichmentConnections.workspace_id,
228
+ set: {
229
+ credentials: values.credentials,
230
+ summary: values.summary,
231
+ updated_at: values.updated_at,
232
+ },
233
+ });
234
+ }
235
+ async delete(workspaceId) {
236
+ await this.db
237
+ .delete(incidentEnrichmentConnections)
238
+ .where(eq(incidentEnrichmentConnections.workspace_id, workspaceId));
239
+ }
240
+ }
241
+ /**
242
+ * Per-account (deployment-wide) settings over Postgres (the Drizzle mirror of the Worker's
243
+ * `D1AccountSettingsRepository`, migration 0014). One row per account; `config` + `summary`
244
+ * are non-secret JSON, the ONE sealed `secrets_cipher` blob is encrypted by the caller.
245
+ */
246
+ function parseReleaseIds(json) {
247
+ try {
248
+ const parsed = JSON.parse(json);
249
+ return Array.isArray(parsed) ? parsed.map((x) => String(x)) : [];
250
+ }
251
+ catch {
252
+ return [];
253
+ }
254
+ }
255
+ function rowToReleaseHealthConfig(row) {
256
+ return {
257
+ workspaceId: row.workspace_id,
258
+ blockId: row.block_id,
259
+ monitorIds: parseReleaseIds(row.monitor_ids),
260
+ sloIds: parseReleaseIds(row.slo_ids),
261
+ envTag: row.env_tag,
262
+ createdAt: row.created_at,
263
+ updatedAt: row.updated_at,
264
+ };
265
+ }
266
+ /**
267
+ * Per-block monitor/SLO mapping for the post-release-health gate over Postgres (the
268
+ * Drizzle mirror of the Worker's `D1ReleaseHealthConfigRepository`, migration 0003).
269
+ */
270
+ export class DrizzleReleaseHealthConfigRepository {
271
+ db;
272
+ constructor(db) {
273
+ this.db = db;
274
+ }
275
+ async getByBlock(workspaceId, blockId) {
276
+ const rows = await this.db
277
+ .select()
278
+ .from(releaseHealthConfigs)
279
+ .where(and(eq(releaseHealthConfigs.workspace_id, workspaceId), eq(releaseHealthConfigs.block_id, blockId)))
280
+ .limit(1);
281
+ return rows[0] ? rowToReleaseHealthConfig(rows[0]) : null;
282
+ }
283
+ async listByWorkspace(workspaceId) {
284
+ const rows = await this.db
285
+ .select()
286
+ .from(releaseHealthConfigs)
287
+ .where(eq(releaseHealthConfigs.workspace_id, workspaceId))
288
+ .orderBy(releaseHealthConfigs.block_id);
289
+ return rows.map(rowToReleaseHealthConfig);
290
+ }
291
+ async upsert(record) {
292
+ const values = {
293
+ workspace_id: record.workspaceId,
294
+ block_id: record.blockId,
295
+ monitor_ids: JSON.stringify(record.monitorIds),
296
+ slo_ids: JSON.stringify(record.sloIds),
297
+ env_tag: record.envTag,
298
+ created_at: record.createdAt,
299
+ updated_at: record.updatedAt,
300
+ };
301
+ await this.db
302
+ .insert(releaseHealthConfigs)
303
+ .values(values)
304
+ .onConflictDoUpdate({
305
+ target: [releaseHealthConfigs.workspace_id, releaseHealthConfigs.block_id],
306
+ set: {
307
+ monitor_ids: values.monitor_ids,
308
+ slo_ids: values.slo_ids,
309
+ env_tag: values.env_tag,
310
+ updated_at: values.updated_at,
311
+ },
312
+ });
313
+ }
314
+ async delete(workspaceId, blockId) {
315
+ await this.db
316
+ .delete(releaseHealthConfigs)
317
+ .where(and(eq(releaseHealthConfigs.workspace_id, workspaceId), eq(releaseHealthConfigs.block_id, blockId)));
318
+ }
319
+ }
320
+ /**
321
+ * A service frame's sensitive test credentials over Postgres (the Drizzle mirror of the
322
+ * Worker's `D1TestSecretsRepository`, migration 0044). At most one row per (workspace, block);
323
+ * `credentials` is a sealed envelope of the `TestSecretEntry[]` JSON, `summary` a non-secret
324
+ * `TestSecretRef[]` display blob.
325
+ */
326
+ export class DrizzleTestSecretsRepository {
327
+ db;
328
+ constructor(db) {
329
+ this.db = db;
330
+ }
331
+ async getByBlock(workspaceId, blockId) {
332
+ const rows = await this.db
333
+ .select()
334
+ .from(testSecrets)
335
+ .where(and(eq(testSecrets.workspace_id, workspaceId), eq(testSecrets.block_id, blockId)))
336
+ .limit(1);
337
+ const row = rows[0];
338
+ if (!row)
339
+ return null;
340
+ return {
341
+ workspaceId: row.workspace_id,
342
+ blockId: row.block_id,
343
+ credentials: row.credentials,
344
+ summary: row.summary,
345
+ createdAt: row.created_at,
346
+ updatedAt: row.updated_at,
347
+ };
348
+ }
349
+ async listByWorkspace(workspaceId) {
350
+ const rows = await this.db
351
+ .select()
352
+ .from(testSecrets)
353
+ .where(eq(testSecrets.workspace_id, workspaceId))
354
+ .orderBy(testSecrets.block_id);
355
+ return rows.map((row) => ({
356
+ workspaceId: row.workspace_id,
357
+ blockId: row.block_id,
358
+ credentials: row.credentials,
359
+ summary: row.summary,
360
+ createdAt: row.created_at,
361
+ updatedAt: row.updated_at,
362
+ }));
363
+ }
364
+ async upsert(record) {
365
+ const values = {
366
+ workspace_id: record.workspaceId,
367
+ block_id: record.blockId,
368
+ credentials: record.credentials,
369
+ summary: record.summary,
370
+ created_at: record.createdAt,
371
+ updated_at: record.updatedAt,
372
+ };
373
+ await this.db
374
+ .insert(testSecrets)
375
+ .values(values)
376
+ .onConflictDoUpdate({
377
+ target: [testSecrets.workspace_id, testSecrets.block_id],
378
+ set: {
379
+ credentials: values.credentials,
380
+ summary: values.summary,
381
+ updated_at: values.updated_at,
382
+ },
383
+ });
384
+ }
385
+ async deleteByBlock(workspaceId, blockId) {
386
+ await this.db
387
+ .delete(testSecrets)
388
+ .where(and(eq(testSecrets.workspace_id, workspaceId), eq(testSecrets.block_id, blockId)));
389
+ }
390
+ }
391
+ //# sourceMappingURL=connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../../src/repositories/drizzle/connections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { AgentFailure, AgentRunRef, AgentRunRepository, Clock, DueSchedule, ExecutionInstance, ExecutionRepository, LiveRunSummary, Pipeline, PipelineRepository, PipelineSchedule, PipelineScheduleRepository, RunRef, ScheduleRun, StaleAgentRun } from '@cat-factory/kernel';
2
+ import type { DrizzleDb } from '../../db/client.js';
3
+ export declare class DrizzlePipelineRepository implements PipelineRepository {
4
+ private readonly db;
5
+ constructor(db: DrizzleDb);
6
+ listByWorkspace(workspaceId: string): Promise<Pipeline[]>;
7
+ get(workspaceId: string, id: string): Promise<Pipeline | null>;
8
+ insert(workspaceId: string, pipeline: Pipeline): Promise<void>;
9
+ update(workspaceId: string, pipeline: Pipeline): Promise<void>;
10
+ delete(workspaceId: string, id: string): Promise<void>;
11
+ }
12
+ /** Execution runs live as `kind='execution'` rows of the unified agent_runs table. */
13
+ export declare class DrizzleExecutionRepository implements ExecutionRepository {
14
+ private readonly db;
15
+ private readonly clock;
16
+ constructor(db: DrizzleDb, clock: Clock);
17
+ private readonly isExecution;
18
+ listByWorkspace(workspaceId: string): Promise<ExecutionInstance[]>;
19
+ listLive(workspaceId: string): Promise<LiveRunSummary[]>;
20
+ listByService(serviceId: string): Promise<ExecutionInstance[]>;
21
+ listByServices(serviceIds: string[]): Promise<ExecutionInstance[]>;
22
+ get(workspaceId: string, id: string): Promise<ExecutionInstance | null>;
23
+ getByBlock(workspaceId: string, blockId: string): Promise<ExecutionInstance | null>;
24
+ upsert(workspaceId: string, execution: ExecutionInstance): Promise<void>;
25
+ insertLive(workspaceId: string, execution: ExecutionInstance, opts?: {
26
+ replaceId?: string;
27
+ }): Promise<boolean>;
28
+ compareAndSwap(workspaceId: string, execution: ExecutionInstance): Promise<boolean>;
29
+ deleteByBlock(workspaceId: string, blockId: string): Promise<void>;
30
+ listStale(olderThanEpochMs: number): Promise<RunRef[]>;
31
+ markFailed(workspaceId: string, id: string, failure: AgentFailure): Promise<void>;
32
+ }
33
+ export declare class DrizzleAgentRunRepository implements AgentRunRepository {
34
+ private readonly db;
35
+ constructor(db: DrizzleDb);
36
+ getRef(workspaceId: string, id: string): Promise<AgentRunRef | null>;
37
+ listStale(olderThanEpochMs: number): Promise<StaleAgentRun[]>;
38
+ listPausedExecutions(): Promise<AgentRunRef[]>;
39
+ liveRunIds(ids: string[]): Promise<string[]>;
40
+ }
41
+ export declare class DrizzlePipelineScheduleRepository implements PipelineScheduleRepository {
42
+ private readonly db;
43
+ constructor(db: DrizzleDb);
44
+ private values;
45
+ get(workspaceId: string, id: string): Promise<PipelineSchedule | null>;
46
+ getByBlock(workspaceId: string, blockId: string): Promise<PipelineSchedule | null>;
47
+ list(workspaceId: string): Promise<PipelineSchedule[]>;
48
+ listByService(serviceId: string): Promise<PipelineSchedule[]>;
49
+ listByServices(serviceIds: string[]): Promise<PipelineSchedule[]>;
50
+ listDue(asOf: number): Promise<DueSchedule[]>;
51
+ upsert(workspaceId: string, schedule: PipelineSchedule): Promise<void>;
52
+ remove(workspaceId: string, id: string): Promise<void>;
53
+ insertRun(workspaceId: string, run: ScheduleRun): Promise<void>;
54
+ updateRun(workspaceId: string, runId: string, patch: Partial<Pick<ScheduleRun, 'status' | 'finishedAt' | 'outcome' | 'executionId'>>): Promise<void>;
55
+ listRuns(workspaceId: string, scheduleId: string): Promise<ScheduleRun[]>;
56
+ pruneRunsBefore(before: number): Promise<number>;
57
+ }
58
+ //# sourceMappingURL=execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/execution.ts"],"names":[],"mappings":"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"}