@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,377 @@
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 { and, eq, inArray, sql } from 'drizzle-orm';
7
+ import { accountSettings, localSettings, modelPresets, trackerSettings, userSettings, workspaceSettings, } from '../../db/schema.js';
8
+ export class DrizzleUserSettingsRepository {
9
+ db;
10
+ constructor(db) {
11
+ this.db = db;
12
+ }
13
+ async get(userId) {
14
+ const [row] = await this.db.select().from(userSettings).where(eq(userSettings.user_id, userId));
15
+ return row ? { spendMonthlyLimit: row.spend_monthly_limit } : null;
16
+ }
17
+ async upsert(userId, settings) {
18
+ await this.db
19
+ .insert(userSettings)
20
+ .values({
21
+ user_id: userId,
22
+ spend_monthly_limit: settings.spendMonthlyLimit ?? null,
23
+ updated_at: Date.now(),
24
+ })
25
+ .onConflictDoUpdate({
26
+ target: userSettings.user_id,
27
+ set: { spend_monthly_limit: settings.spendMonthlyLimit ?? null, updated_at: Date.now() },
28
+ });
29
+ }
30
+ }
31
+ function rowToModelPreset(row) {
32
+ let overrides = {};
33
+ try {
34
+ const parsed = JSON.parse(row.overrides);
35
+ if (parsed && typeof parsed === 'object')
36
+ overrides = parsed;
37
+ }
38
+ catch {
39
+ // A malformed JSON column degrades to no overrides (base model applies to all).
40
+ }
41
+ return {
42
+ id: row.id,
43
+ name: row.name,
44
+ baseModelId: row.base_model_id,
45
+ overrides,
46
+ isDefault: row.is_default === 1,
47
+ ...(row.version != null ? { version: row.version } : {}),
48
+ createdAt: row.created_at,
49
+ };
50
+ }
51
+ /**
52
+ * Per-workspace model presets over Postgres (the Drizzle mirror of the Worker's
53
+ * `D1ModelPresetRepository`, migration 0006). A preset is one `base_model_id` applied
54
+ * to every agent kind plus per-kind `overrides` (a JSON column). Enforces the
55
+ * single-default invariant: promoting a preset to default demotes every other in the
56
+ * workspace before the upsert. The default preset cannot be removed. Behaviourally
57
+ * identical to the D1 repo so the cross-runtime conformance suite asserts the same
58
+ * preset resolution.
59
+ */
60
+ export class DrizzleModelPresetRepository {
61
+ db;
62
+ constructor(db) {
63
+ this.db = db;
64
+ }
65
+ async get(workspaceId, id) {
66
+ const rows = await this.db
67
+ .select()
68
+ .from(modelPresets)
69
+ .where(and(eq(modelPresets.workspace_id, workspaceId), eq(modelPresets.id, id)))
70
+ .limit(1);
71
+ return rows[0] ? rowToModelPreset(rows[0]) : null;
72
+ }
73
+ async list(workspaceId) {
74
+ const rows = await this.db
75
+ .select()
76
+ .from(modelPresets)
77
+ .where(eq(modelPresets.workspace_id, workspaceId))
78
+ .orderBy(modelPresets.created_at);
79
+ return rows.map(rowToModelPreset);
80
+ }
81
+ async getDefault(workspaceId) {
82
+ const rows = await this.db
83
+ .select()
84
+ .from(modelPresets)
85
+ .where(and(eq(modelPresets.workspace_id, workspaceId), eq(modelPresets.is_default, 1)))
86
+ .orderBy(modelPresets.created_at)
87
+ .limit(1);
88
+ return rows[0] ? rowToModelPreset(rows[0]) : null;
89
+ }
90
+ async upsert(workspaceId, preset) {
91
+ const values = {
92
+ workspace_id: workspaceId,
93
+ id: preset.id,
94
+ name: preset.name,
95
+ base_model_id: preset.baseModelId,
96
+ overrides: JSON.stringify(preset.overrides),
97
+ is_default: preset.isDefault ? 1 : 0,
98
+ version: preset.version ?? null,
99
+ created_at: preset.createdAt,
100
+ };
101
+ // Demote + upsert run in one transaction so the single-default invariant can never
102
+ // be observed broken (zero or two defaults) by a concurrent reader or partial failure.
103
+ await this.db.transaction(async (tx) => {
104
+ if (preset.isDefault) {
105
+ await tx
106
+ .update(modelPresets)
107
+ .set({ is_default: 0 })
108
+ .where(and(eq(modelPresets.workspace_id, workspaceId), sql `${modelPresets.id} <> ${preset.id}`));
109
+ }
110
+ await tx
111
+ .insert(modelPresets)
112
+ .values(values)
113
+ .onConflictDoUpdate({
114
+ target: [modelPresets.workspace_id, modelPresets.id],
115
+ set: {
116
+ name: values.name,
117
+ base_model_id: values.base_model_id,
118
+ overrides: values.overrides,
119
+ is_default: values.is_default,
120
+ version: values.version,
121
+ },
122
+ });
123
+ });
124
+ }
125
+ async remove(workspaceId, id) {
126
+ await this.db
127
+ .delete(modelPresets)
128
+ .where(and(eq(modelPresets.workspace_id, workspaceId), eq(modelPresets.id, id), eq(modelPresets.is_default, 0)));
129
+ }
130
+ }
131
+ /**
132
+ * A workspace's default service-fragment selection — one row per workspace in
133
+ * `workspace_fragment_defaults`, the fragment ids stored as a JSON array (mirror of the
134
+ * D1 `D1ServiceFragmentDefaultsRepository`). `set` upserts the whole list.
135
+ */
136
+ export class DrizzleTrackerSettingsRepository {
137
+ db;
138
+ constructor(db) {
139
+ this.db = db;
140
+ }
141
+ async get(workspaceId) {
142
+ const [row] = await this.db
143
+ .select()
144
+ .from(trackerSettings)
145
+ .where(eq(trackerSettings.workspace_id, workspaceId));
146
+ if (!row)
147
+ return null;
148
+ return {
149
+ tracker: row.tracker ?? null,
150
+ jiraProjectKey: row.jira_project_key,
151
+ linearTeamId: row.linear_team_id,
152
+ writebackCommentOnPrOpen: row.writeback_comment_on_pr_open === 1,
153
+ writebackResolveOnMerge: row.writeback_resolve_on_merge === 1,
154
+ updatedAt: row.updated_at,
155
+ };
156
+ }
157
+ async put(workspaceId, settings) {
158
+ await this.db
159
+ .insert(trackerSettings)
160
+ .values({
161
+ workspace_id: workspaceId,
162
+ tracker: settings.tracker,
163
+ jira_project_key: settings.jiraProjectKey,
164
+ linear_team_id: settings.linearTeamId,
165
+ writeback_comment_on_pr_open: settings.writebackCommentOnPrOpen ? 1 : 0,
166
+ writeback_resolve_on_merge: settings.writebackResolveOnMerge ? 1 : 0,
167
+ updated_at: settings.updatedAt,
168
+ })
169
+ .onConflictDoUpdate({
170
+ target: trackerSettings.workspace_id,
171
+ set: {
172
+ tracker: settings.tracker,
173
+ jira_project_key: settings.jiraProjectKey,
174
+ linear_team_id: settings.linearTeamId,
175
+ writeback_comment_on_pr_open: settings.writebackCommentOnPrOpen ? 1 : 0,
176
+ writeback_resolve_on_merge: settings.writebackResolveOnMerge ? 1 : 0,
177
+ updated_at: settings.updatedAt,
178
+ },
179
+ });
180
+ }
181
+ }
182
+ function rowToWorkspaceSettings(row) {
183
+ let perType = null;
184
+ if (row.task_limit_per_type) {
185
+ try {
186
+ perType = JSON.parse(row.task_limit_per_type);
187
+ }
188
+ catch {
189
+ perType = null;
190
+ }
191
+ }
192
+ return {
193
+ waitingEscalationMinutes: row.waiting_escalation_minutes,
194
+ taskLimitMode: row.task_limit_mode,
195
+ taskLimitShared: row.task_limit_shared,
196
+ taskLimitPerType: perType,
197
+ storeAgentContext: row.store_agent_context === 1,
198
+ artifactRetentionDays: row.artifact_retention_days,
199
+ kaizenEnabled: row.kaizen_enabled === 1,
200
+ delegateAgentsToRunnerPool: row.delegate_agents_to_runner_pool === 1,
201
+ spendCurrency: row.spend_currency,
202
+ spendMonthlyLimit: row.spend_monthly_limit,
203
+ };
204
+ }
205
+ /**
206
+ * Per-workspace runtime settings over Postgres (the Drizzle mirror of the Worker's
207
+ * `D1WorkspaceSettingsRepository`, migration 0004). One row per workspace; the service
208
+ * lazily seeds the default, so an absent row reads as null. Per-type task limits are a
209
+ * JSON column.
210
+ */
211
+ export class DrizzleWorkspaceSettingsRepository {
212
+ db;
213
+ constructor(db) {
214
+ this.db = db;
215
+ }
216
+ async get(workspaceId) {
217
+ const rows = await this.db
218
+ .select()
219
+ .from(workspaceSettings)
220
+ .where(eq(workspaceSettings.workspace_id, workspaceId))
221
+ .limit(1);
222
+ const row = rows[0];
223
+ return row ? rowToWorkspaceSettings(row) : null;
224
+ }
225
+ async listByWorkspaceIds(workspaceIds) {
226
+ const out = new Map();
227
+ if (workspaceIds.length === 0)
228
+ return out;
229
+ for (let i = 0; i < workspaceIds.length; i += 500) {
230
+ const rows = await this.db
231
+ .select()
232
+ .from(workspaceSettings)
233
+ .where(inArray(workspaceSettings.workspace_id, workspaceIds.slice(i, i + 500)));
234
+ for (const row of rows)
235
+ out.set(row.workspace_id, rowToWorkspaceSettings(row));
236
+ }
237
+ return out;
238
+ }
239
+ async upsert(workspaceId, settings) {
240
+ const values = {
241
+ workspace_id: workspaceId,
242
+ waiting_escalation_minutes: settings.waitingEscalationMinutes,
243
+ task_limit_mode: settings.taskLimitMode,
244
+ task_limit_shared: settings.taskLimitShared,
245
+ task_limit_per_type: settings.taskLimitPerType
246
+ ? JSON.stringify(settings.taskLimitPerType)
247
+ : null,
248
+ store_agent_context: settings.storeAgentContext ? 1 : 0,
249
+ artifact_retention_days: settings.artifactRetentionDays,
250
+ kaizen_enabled: settings.kaizenEnabled ? 1 : 0,
251
+ delegate_agents_to_runner_pool: settings.delegateAgentsToRunnerPool ? 1 : 0,
252
+ spend_currency: settings.spendCurrency,
253
+ spend_monthly_limit: settings.spendMonthlyLimit,
254
+ };
255
+ await this.db
256
+ .insert(workspaceSettings)
257
+ .values(values)
258
+ .onConflictDoUpdate({
259
+ target: [workspaceSettings.workspace_id],
260
+ set: {
261
+ waiting_escalation_minutes: values.waiting_escalation_minutes,
262
+ task_limit_mode: values.task_limit_mode,
263
+ task_limit_shared: values.task_limit_shared,
264
+ task_limit_per_type: values.task_limit_per_type,
265
+ store_agent_context: values.store_agent_context,
266
+ artifact_retention_days: values.artifact_retention_days,
267
+ kaizen_enabled: values.kaizen_enabled,
268
+ delegate_agents_to_runner_pool: values.delegate_agents_to_runner_pool,
269
+ spend_currency: values.spend_currency,
270
+ spend_monthly_limit: values.spend_monthly_limit,
271
+ },
272
+ });
273
+ }
274
+ }
275
+ /**
276
+ * A workspace's observability connection over Postgres (the Drizzle mirror of the Worker's
277
+ * `D1ObservabilityConnectionRepository`, migration 0007). One row per workspace; the
278
+ * provider-specific credentials are stored as a sealed JSON blob (encrypted by the caller),
279
+ * with a non-secret `summary` blob for display.
280
+ */
281
+ export class DrizzleAccountSettingsRepository {
282
+ db;
283
+ constructor(db) {
284
+ this.db = db;
285
+ }
286
+ async getByAccount(accountId) {
287
+ const rows = await this.db
288
+ .select()
289
+ .from(accountSettings)
290
+ .where(eq(accountSettings.account_id, accountId))
291
+ .limit(1);
292
+ const row = rows[0];
293
+ if (!row)
294
+ return null;
295
+ return {
296
+ accountId: row.account_id,
297
+ config: row.config,
298
+ secretsCipher: row.secrets_cipher,
299
+ summary: row.summary,
300
+ createdAt: row.created_at,
301
+ updatedAt: row.updated_at,
302
+ };
303
+ }
304
+ async upsert(record) {
305
+ const values = {
306
+ account_id: record.accountId,
307
+ config: record.config,
308
+ secrets_cipher: record.secretsCipher,
309
+ summary: record.summary,
310
+ created_at: record.createdAt,
311
+ updated_at: record.updatedAt,
312
+ };
313
+ await this.db
314
+ .insert(accountSettings)
315
+ .values(values)
316
+ .onConflictDoUpdate({
317
+ target: accountSettings.account_id,
318
+ set: {
319
+ config: values.config,
320
+ secrets_cipher: values.secrets_cipher,
321
+ summary: values.summary,
322
+ updated_at: values.updated_at,
323
+ },
324
+ });
325
+ }
326
+ async listAll() {
327
+ const rows = await this.db.select().from(accountSettings);
328
+ return rows.map((row) => ({
329
+ accountId: row.account_id,
330
+ config: row.config,
331
+ secretsCipher: row.secrets_cipher,
332
+ summary: row.summary,
333
+ createdAt: row.created_at,
334
+ updatedAt: row.updated_at,
335
+ }));
336
+ }
337
+ }
338
+ /** The fixed key for the local-mode settings singleton row (one developer's machine). */
339
+ const LOCAL_SETTINGS_ID = 'local';
340
+ /**
341
+ * The local-mode operational settings singleton (warm-pool sizing + per-repo checkout
342
+ * reuse), replacing the old `LOCAL_POOL_*` / `HARNESS_*` env vars. One row, addressed by a
343
+ * fixed id. Local-mode-only — there is no D1 mirror (the warm pool is the local Docker
344
+ * runner's differentiator).
345
+ */
346
+ export class DrizzleLocalSettingsRepository {
347
+ db;
348
+ constructor(db) {
349
+ this.db = db;
350
+ }
351
+ async get() {
352
+ const rows = await this.db
353
+ .select()
354
+ .from(localSettings)
355
+ .where(eq(localSettings.id, LOCAL_SETTINGS_ID))
356
+ .limit(1);
357
+ const row = rows[0];
358
+ if (!row)
359
+ return null;
360
+ return { config: row.config, createdAt: row.created_at, updatedAt: row.updated_at };
361
+ }
362
+ async upsert(record) {
363
+ await this.db
364
+ .insert(localSettings)
365
+ .values({
366
+ id: LOCAL_SETTINGS_ID,
367
+ config: record.config,
368
+ created_at: record.createdAt,
369
+ updated_at: record.updatedAt,
370
+ })
371
+ .onConflictDoUpdate({
372
+ target: localSettings.id,
373
+ set: { config: record.config, updated_at: record.updatedAt },
374
+ });
375
+ }
376
+ }
377
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/repositories/drizzle/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { AgentContextSnapshot, AgentContextSnapshotRepository, AgentSearchQuery, AgentSearchQueryRepository, BinaryArtifactMetadataStore, BinaryArtifactRecord, LlmCallMetric, LlmCallMetricRepository, LlmCallMetricSummary, LlmPromptChainTip, ProvisioningLogQuery, ProvisioningLogRecord, ProvisioningLogRepository, TokenUsageRecord, TokenUsageRepository, TokenUsageTotals, UsageBreakdownRow } from '@cat-factory/kernel';
2
+ import type { DrizzleDb } from '../../db/client.js';
3
+ export declare class DrizzleTokenUsageRepository implements TokenUsageRepository {
4
+ private readonly db;
5
+ constructor(db: DrizzleDb);
6
+ record(usage: TokenUsageRecord): Promise<void>;
7
+ usageBreakdownForWorkspace(workspaceId: string, epochMs: number): Promise<UsageBreakdownRow[]>;
8
+ totalsSince(epochMs: number): Promise<TokenUsageTotals>;
9
+ totalsSinceForWorkspace(workspaceId: string, epochMs: number): Promise<TokenUsageTotals>;
10
+ totalsSinceForAccount(accountId: string, epochMs: number): Promise<TokenUsageTotals>;
11
+ totalsSinceForUser(userId: string, epochMs: number): Promise<TokenUsageTotals>;
12
+ deleteOlderThan(epochMs: number): Promise<number>;
13
+ }
14
+ export declare class DrizzleLlmCallMetricRepository implements LlmCallMetricRepository {
15
+ private readonly db;
16
+ constructor(db: DrizzleDb);
17
+ record(metric: LlmCallMetric): Promise<void>;
18
+ latestChainTip(workspaceId: string, executionId: string, agentKind: string): Promise<LlmPromptChainTip | null>;
19
+ listByExecution(workspaceId: string, executionId: string, limit?: number, agentKind?: string): Promise<LlmCallMetric[]>;
20
+ summarizeByExecution(workspaceId: string, executionId: string): Promise<LlmCallMetricSummary[]>;
21
+ deleteOlderThan(epochMs: number): Promise<number>;
22
+ }
23
+ export declare class DrizzleAgentContextSnapshotRepository implements AgentContextSnapshotRepository {
24
+ private readonly db;
25
+ constructor(db: DrizzleDb);
26
+ record(snapshot: AgentContextSnapshot): Promise<void>;
27
+ listByExecution(workspaceId: string, executionId: string): Promise<AgentContextSnapshot[]>;
28
+ deleteOlderThan(epochMs: number): Promise<number>;
29
+ }
30
+ export declare class DrizzleAgentSearchQueryRepository implements AgentSearchQueryRepository {
31
+ private readonly db;
32
+ constructor(db: DrizzleDb);
33
+ record(query: AgentSearchQuery): Promise<void>;
34
+ listByExecution(workspaceId: string, executionId: string): Promise<AgentSearchQuery[]>;
35
+ deleteOlderThan(epochMs: number): Promise<number>;
36
+ }
37
+ /** Drizzle/Postgres metadata store for binary artifacts (mirror of D1 migration 0017). */
38
+ export declare class DrizzleBinaryArtifactMetadataStore implements BinaryArtifactMetadataStore {
39
+ private readonly db;
40
+ constructor(db: DrizzleDb);
41
+ insert(record: BinaryArtifactRecord): Promise<void>;
42
+ get(workspaceId: string, id: string): Promise<BinaryArtifactRecord | null>;
43
+ listByExecution(workspaceId: string, executionId: string): Promise<BinaryArtifactRecord[]>;
44
+ countByExecution(workspaceId: string, executionId: string): Promise<number>;
45
+ listByBlock(workspaceId: string, blockId: string): Promise<BinaryArtifactRecord[]>;
46
+ delete(workspaceId: string, id: string): Promise<void>;
47
+ listOlderThan(workspaceId: string, olderThan: number): Promise<BinaryArtifactRecord[]>;
48
+ deleteOlderThan(workspaceId: string, olderThan: number): Promise<number>;
49
+ listByWorkspace(workspaceId: string): Promise<BinaryArtifactRecord[]>;
50
+ deleteByWorkspace(workspaceId: string): Promise<number>;
51
+ }
52
+ /** Drizzle/Postgres provisioning-log sink, in its own `provisioning` schema. */
53
+ export declare class DrizzleProvisioningLogRepository implements ProvisioningLogRepository {
54
+ private readonly db;
55
+ constructor(db: DrizzleDb);
56
+ append(record: ProvisioningLogRecord): Promise<void>;
57
+ list(workspaceId: string, query?: ProvisioningLogQuery): Promise<ProvisioningLogRecord[]>;
58
+ deleteOlderThan(epochMs: number): Promise<number>;
59
+ }
60
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/telemetry.ts"],"names":[],"mappings":"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"}