@proofhound/db 0.1.6

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 (112) hide show
  1. package/LICENSE +190 -0
  2. package/dist/clean-test-residue.d.ts +2 -0
  3. package/dist/clean-test-residue.d.ts.map +1 -0
  4. package/dist/clean-test-residue.js +59 -0
  5. package/dist/clean-test-residue.js.map +1 -0
  6. package/dist/client.d.ts +5 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +87 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/ensure-e2e-database.d.ts +2 -0
  11. package/dist/ensure-e2e-database.d.ts.map +1 -0
  12. package/dist/ensure-e2e-database.js +87 -0
  13. package/dist/ensure-e2e-database.js.map +1 -0
  14. package/dist/fixtures/dev/connectors.d.ts +72 -0
  15. package/dist/fixtures/dev/connectors.d.ts.map +1 -0
  16. package/dist/fixtures/dev/connectors.js +90 -0
  17. package/dist/fixtures/dev/connectors.js.map +1 -0
  18. package/dist/fixtures/dev/experiments.d.ts +48 -0
  19. package/dist/fixtures/dev/experiments.d.ts.map +1 -0
  20. package/dist/fixtures/dev/experiments.js +1168 -0
  21. package/dist/fixtures/dev/experiments.js.map +1 -0
  22. package/dist/fixtures/dev/models.d.ts +20 -0
  23. package/dist/fixtures/dev/models.d.ts.map +1 -0
  24. package/dist/fixtures/dev/models.js +60 -0
  25. package/dist/fixtures/dev/models.js.map +1 -0
  26. package/dist/fixtures/dev/optimizations.d.ts +62 -0
  27. package/dist/fixtures/dev/optimizations.d.ts.map +1 -0
  28. package/dist/fixtures/dev/optimizations.js +124 -0
  29. package/dist/fixtures/dev/optimizations.js.map +1 -0
  30. package/dist/fixtures/dev/prompts.d.ts +31 -0
  31. package/dist/fixtures/dev/prompts.d.ts.map +1 -0
  32. package/dist/fixtures/dev/prompts.js +115 -0
  33. package/dist/fixtures/dev/prompts.js.map +1 -0
  34. package/dist/fixtures/dev/tokens.d.ts +10 -0
  35. package/dist/fixtures/dev/tokens.d.ts.map +1 -0
  36. package/dist/fixtures/dev/tokens.js +28 -0
  37. package/dist/fixtures/dev/tokens.js.map +1 -0
  38. package/dist/index.d.ts +3 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +44 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/migrate.d.ts +2 -0
  43. package/dist/migrate.d.ts.map +1 -0
  44. package/dist/migrate.js +34 -0
  45. package/dist/migrate.js.map +1 -0
  46. package/dist/migrations/0000_woozy_thunderbolt.sql +688 -0
  47. package/dist/migrations/0001_webhook_token_scope.sql +28 -0
  48. package/dist/migrations/0002_tokens_table_unify_scope.sql +50 -0
  49. package/dist/migrations/0003_models_auto_concurrency.sql +4 -0
  50. package/dist/migrations/0004_webhook_token_attribution.sql +4 -0
  51. package/dist/migrations/0005_same_thor_girl.sql +34 -0
  52. package/dist/reset.d.ts +2 -0
  53. package/dist/reset.d.ts.map +1 -0
  54. package/dist/reset.js +78 -0
  55. package/dist/reset.js.map +1 -0
  56. package/dist/schema/index.d.ts +5 -0
  57. package/dist/schema/index.d.ts.map +1 -0
  58. package/dist/schema/index.js +23 -0
  59. package/dist/schema/index.js.map +1 -0
  60. package/dist/schema/ph_assets/index.d.ts +2012 -0
  61. package/dist/schema/ph_assets/index.d.ts.map +1 -0
  62. package/dist/schema/ph_assets/index.js +272 -0
  63. package/dist/schema/ph_assets/index.js.map +1 -0
  64. package/dist/schema/ph_core/index.d.ts +424 -0
  65. package/dist/schema/ph_core/index.d.ts.map +1 -0
  66. package/dist/schema/ph_core/index.js +69 -0
  67. package/dist/schema/ph_core/index.js.map +1 -0
  68. package/dist/schema/ph_releases/_schema.d.ts +2 -0
  69. package/dist/schema/ph_releases/_schema.d.ts.map +1 -0
  70. package/dist/schema/ph_releases/_schema.js +8 -0
  71. package/dist/schema/ph_releases/_schema.js.map +1 -0
  72. package/dist/schema/ph_releases/annotation-tasks.d.ts +263 -0
  73. package/dist/schema/ph_releases/annotation-tasks.d.ts.map +1 -0
  74. package/dist/schema/ph_releases/annotation-tasks.js +38 -0
  75. package/dist/schema/ph_releases/annotation-tasks.js.map +1 -0
  76. package/dist/schema/ph_releases/canary-releases.d.ts +672 -0
  77. package/dist/schema/ph_releases/canary-releases.d.ts.map +1 -0
  78. package/dist/schema/ph_releases/canary-releases.js +91 -0
  79. package/dist/schema/ph_releases/canary-releases.js.map +1 -0
  80. package/dist/schema/ph_releases/index.d.ts +6 -0
  81. package/dist/schema/ph_releases/index.d.ts.map +1 -0
  82. package/dist/schema/ph_releases/index.js +24 -0
  83. package/dist/schema/ph_releases/index.js.map +1 -0
  84. package/dist/schema/ph_releases/production-release-events.d.ts +527 -0
  85. package/dist/schema/ph_releases/production-release-events.d.ts.map +1 -0
  86. package/dist/schema/ph_releases/production-release-events.js +86 -0
  87. package/dist/schema/ph_releases/production-release-events.js.map +1 -0
  88. package/dist/schema/ph_releases/release-lines.d.ts +1442 -0
  89. package/dist/schema/ph_releases/release-lines.d.ts.map +1 -0
  90. package/dist/schema/ph_releases/release-lines.js +203 -0
  91. package/dist/schema/ph_releases/release-lines.js.map +1 -0
  92. package/dist/schema/ph_runs/_schema.d.ts +2 -0
  93. package/dist/schema/ph_runs/_schema.d.ts.map +1 -0
  94. package/dist/schema/ph_runs/_schema.js +6 -0
  95. package/dist/schema/ph_runs/_schema.js.map +1 -0
  96. package/dist/schema/ph_runs/experiments.d.ts +984 -0
  97. package/dist/schema/ph_runs/experiments.d.ts.map +1 -0
  98. package/dist/schema/ph_runs/experiments.js +134 -0
  99. package/dist/schema/ph_runs/experiments.js.map +1 -0
  100. package/dist/schema/ph_runs/index.d.ts +1027 -0
  101. package/dist/schema/ph_runs/index.d.ts.map +1 -0
  102. package/dist/schema/ph_runs/index.js +135 -0
  103. package/dist/schema/ph_runs/index.js.map +1 -0
  104. package/dist/seed-dev.d.ts +2 -0
  105. package/dist/seed-dev.d.ts.map +1 -0
  106. package/dist/seed-dev.js +605 -0
  107. package/dist/seed-dev.js.map +1 -0
  108. package/dist/seed.d.ts +2 -0
  109. package/dist/seed.d.ts.map +1 -0
  110. package/dist/seed.js +13 -0
  111. package/dist/seed.js.map +1 -0
  112. package/package.json +60 -0
@@ -0,0 +1,605 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Dev seed: writes the current dev environment's local data snapshot.
5
+ *
6
+ * The OSS self-hosted edition creates a single local project as the data boundary; it does not create members, roles, platform connectors, or org governance data.
7
+ */
8
+ const node_crypto_1 = require("node:crypto");
9
+ const node_path_1 = require("node:path");
10
+ const crypto_1 = require("@proofhound/crypto");
11
+ const shared_1 = require("@proofhound/shared");
12
+ const drizzle_orm_1 = require("drizzle-orm");
13
+ const client_1 = require("./client");
14
+ const schema_1 = require("./schema");
15
+ const tokens_1 = require("./fixtures/dev/tokens");
16
+ const connectors_1 = require("./fixtures/dev/connectors");
17
+ const experiments_1 = require("./fixtures/dev/experiments");
18
+ const models_1 = require("./fixtures/dev/models");
19
+ const optimizations_1 = require("./fixtures/dev/optimizations");
20
+ const prompts_1 = require("./fixtures/dev/prompts");
21
+ const PRODUCTION_ENV_NAMES = new Set(['prod', 'production']);
22
+ const DEV_MODEL_API_KEY_PLACEHOLDER = 'dev-seed-placeholder-api-key';
23
+ const LOCAL_ACTOR_ID = '00000000-0000-4000-8000-000000000001';
24
+ function getCurrentEnvironment() {
25
+ return (process.env['APP_ENV'] ?? process.env['NODE_ENV'] ?? 'development').toLowerCase();
26
+ }
27
+ function getConnectorShape(kind) {
28
+ if (kind === 'webhook-input')
29
+ return { direction: 'input', type: 'webhook' };
30
+ return {
31
+ direction: kind.endsWith('-input') ? 'input' : 'output',
32
+ type: kind.startsWith('redis-') ? 'redis' : 'kafka',
33
+ };
34
+ }
35
+ async function setPromptVersionsFreezeGuard(executor, mode) {
36
+ await executor.execute(mode === 'disable'
37
+ ? (0, drizzle_orm_1.sql) `
38
+ DO $$
39
+ BEGIN
40
+ IF EXISTS (
41
+ SELECT 1
42
+ FROM pg_trigger
43
+ WHERE tgrelid = 'ph_assets.prompt_versions'::regclass
44
+ AND tgname = 'prompt_versions_freeze_guard'
45
+ AND NOT tgisinternal
46
+ ) THEN
47
+ EXECUTE 'ALTER TABLE ph_assets.prompt_versions DISABLE TRIGGER prompt_versions_freeze_guard';
48
+ END IF;
49
+ END $$;
50
+ `
51
+ : (0, drizzle_orm_1.sql) `
52
+ DO $$
53
+ BEGIN
54
+ IF EXISTS (
55
+ SELECT 1
56
+ FROM pg_trigger
57
+ WHERE tgrelid = 'ph_assets.prompt_versions'::regclass
58
+ AND tgname = 'prompt_versions_freeze_guard'
59
+ AND NOT tgisinternal
60
+ ) THEN
61
+ EXECUTE 'ALTER TABLE ph_assets.prompt_versions ENABLE TRIGGER prompt_versions_freeze_guard';
62
+ END IF;
63
+ END $$;
64
+ `);
65
+ }
66
+ async function main() {
67
+ try {
68
+ process.loadEnvFile((0, node_path_1.resolve)(process.cwd(), '../../.env'));
69
+ }
70
+ catch {
71
+ // OK in CI.
72
+ }
73
+ if (process.env['SEED_PROFILE'] !== 'dev' && process.env['ALLOW_DEV_SEED'] !== 'true') {
74
+ console.error('❌ Dev seed must be explicitly enabled: SEED_PROFILE=dev pnpm db:seed:dev');
75
+ process.exit(1);
76
+ }
77
+ const currentEnvironment = getCurrentEnvironment();
78
+ if (process.env['ALLOW_DEV_SEED'] !== 'true' && PRODUCTION_ENV_NAMES.has(currentEnvironment)) {
79
+ console.error(`❌ Dev seed refuses to write to the ${currentEnvironment} environment`);
80
+ console.error(' If you really need to write, explicitly set ALLOW_DEV_SEED=true');
81
+ process.exit(1);
82
+ }
83
+ const databaseUrl = process.env['DATABASE_URL'];
84
+ if (!databaseUrl) {
85
+ console.error('❌ DATABASE_URL must be configured');
86
+ process.exit(1);
87
+ }
88
+ const modelApiKeyEncryptionKey = process.env['MODEL_API_KEY_ENCRYPTION_KEY'];
89
+ const db = (0, client_1.createDbClient)(databaseUrl);
90
+ console.warn(`\n🌱 Writing the dev data snapshot to the ${currentEnvironment} environment as the local actor`);
91
+ await db
92
+ .insert(schema_1.projects)
93
+ .values({
94
+ id: shared_1.LOCAL_PROJECT_ID,
95
+ name: 'Local Project',
96
+ description: 'Self-hosted single-project data boundary',
97
+ type: 'classification',
98
+ status: 'active',
99
+ createdBy: LOCAL_ACTOR_ID,
100
+ })
101
+ .onConflictDoUpdate({
102
+ target: schema_1.projects.id,
103
+ set: {
104
+ name: 'Local Project',
105
+ description: 'Self-hosted single-project data boundary',
106
+ type: 'classification',
107
+ status: 'active',
108
+ archivedAt: null,
109
+ deletedAt: null,
110
+ updatedAt: new Date(),
111
+ },
112
+ });
113
+ const fixtureDatasetIds = experiments_1.DEV_EXPERIMENT_DATASETS.map((d) => d.id);
114
+ const fixtureModelIds = models_1.DEV_MODELS.map((m) => m.id);
115
+ const fixturePromptIds = prompts_1.DEV_PROMPTS.map((p) => p.id);
116
+ const fixtureExperimentIds = experiments_1.DEV_EXPERIMENTS.map((e) => e.id);
117
+ const fixtureOptimizationIds = optimizations_1.DEV_OPTIMIZATIONS.map((a) => a.id);
118
+ const fixtureConnectorIds = connectors_1.DEV_CONNECTORS.map((c) => c.id);
119
+ await db.delete(schema_1.runResults);
120
+ await db.delete(schema_1.optimizationRoundSteps);
121
+ await db
122
+ .update(schema_1.optimizations)
123
+ .set({ sourceExperimentId: null, updatedAt: new Date() })
124
+ .where((0, drizzle_orm_1.notInArray)(schema_1.optimizations.id, fixtureOptimizationIds));
125
+ await db
126
+ .update(schema_1.experiments)
127
+ .set({ optimizationId: null, roundIndex: null, updatedAt: new Date() })
128
+ .where((0, drizzle_orm_1.sql) `${schema_1.experiments.optimizationId} IS NOT NULL`);
129
+ await db.delete(schema_1.experiments).where((0, drizzle_orm_1.notInArray)(schema_1.experiments.id, fixtureExperimentIds));
130
+ await db.delete(schema_1.optimizations).where((0, drizzle_orm_1.notInArray)(schema_1.optimizations.id, fixtureOptimizationIds));
131
+ await db.transaction(async (tx) => {
132
+ await setPromptVersionsFreezeGuard(tx, 'disable');
133
+ await tx.delete(schema_1.promptVersionLabels);
134
+ await tx.delete(schema_1.promptVersions).where((0, drizzle_orm_1.notInArray)(schema_1.promptVersions.promptId, fixturePromptIds));
135
+ await tx.delete(schema_1.prompts).where((0, drizzle_orm_1.notInArray)(schema_1.prompts.id, fixturePromptIds));
136
+ await setPromptVersionsFreezeGuard(tx, 'enable');
137
+ });
138
+ await db.delete(schema_1.datasetSamples).where((0, drizzle_orm_1.notInArray)(schema_1.datasetSamples.datasetId, fixtureDatasetIds));
139
+ await db.delete(schema_1.datasets).where((0, drizzle_orm_1.notInArray)(schema_1.datasets.id, fixtureDatasetIds));
140
+ await db.delete(schema_1.connectors).where((0, drizzle_orm_1.notInArray)(schema_1.connectors.id, fixtureConnectorIds));
141
+ await db.delete(schema_1.models).where((0, drizzle_orm_1.notInArray)(schema_1.models.id, fixtureModelIds));
142
+ let seededDevModels = false;
143
+ if (!modelApiKeyEncryptionKey) {
144
+ const existingDevModels = await db
145
+ .select({ id: schema_1.models.id })
146
+ .from(schema_1.models)
147
+ .where((0, drizzle_orm_1.inArray)(schema_1.models.id, models_1.DEV_MODELS.map((fixture) => fixture.id)));
148
+ if (existingDevModels.length === models_1.DEV_MODELS.length) {
149
+ console.warn('⚠️ MODEL_API_KEY_ENCRYPTION_KEY is not configured; reusing existing model data');
150
+ seededDevModels = true;
151
+ }
152
+ else {
153
+ console.warn('⚠️ Skipping model data: MODEL_API_KEY_ENCRYPTION_KEY is not configured');
154
+ }
155
+ }
156
+ else {
157
+ let warnedMissingModelProbeKey = false;
158
+ for (const fixture of models_1.DEV_MODELS) {
159
+ const rawApiKey = process.env['MODEL_PROBE_API_KEY']?.trim();
160
+ const apiKey = rawApiKey && rawApiKey.length > 0 ? rawApiKey : DEV_MODEL_API_KEY_PLACEHOLDER;
161
+ const apiKeyEncrypted = (0, crypto_1.encryptApiKey)(apiKey, modelApiKeyEncryptionKey);
162
+ if (apiKey === DEV_MODEL_API_KEY_PLACEHOLDER && !warnedMissingModelProbeKey) {
163
+ console.warn('⚠️ MODEL_PROBE_API_KEY is not configured; model connectivity tests using the placeholder credential will fail');
164
+ warnedMissingModelProbeKey = true;
165
+ }
166
+ await db
167
+ .insert(schema_1.models)
168
+ .values({
169
+ id: fixture.id,
170
+ projectId: shared_1.LOCAL_PROJECT_ID,
171
+ name: fixture.name,
172
+ providerType: fixture.providerType,
173
+ providerModelId: fixture.providerModelId,
174
+ endpoint: fixture.endpoint,
175
+ apiKeyEncrypted,
176
+ contextWindowTokens: fixture.contextWindowTokens,
177
+ rpmLimit: fixture.rpmLimit,
178
+ tpmLimit: fixture.tpmLimit,
179
+ concurrencyLimit: fixture.concurrencyLimit,
180
+ inputTokenPricePerMillion: fixture.inputTokenPricePerMillion,
181
+ outputTokenPricePerMillion: fixture.outputTokenPricePerMillion,
182
+ capabilities: fixture.capabilities,
183
+ extraBody: fixture.extraBody ?? {},
184
+ isActive: fixture.isActive,
185
+ lastProbedAt: null,
186
+ lastProbeError: null,
187
+ createdBy: LOCAL_ACTOR_ID,
188
+ })
189
+ .onConflictDoUpdate({
190
+ target: schema_1.models.id,
191
+ set: {
192
+ name: fixture.name,
193
+ projectId: shared_1.LOCAL_PROJECT_ID,
194
+ providerType: fixture.providerType,
195
+ providerModelId: fixture.providerModelId,
196
+ endpoint: fixture.endpoint,
197
+ apiKeyEncrypted,
198
+ contextWindowTokens: fixture.contextWindowTokens,
199
+ rpmLimit: fixture.rpmLimit,
200
+ tpmLimit: fixture.tpmLimit,
201
+ concurrencyLimit: fixture.concurrencyLimit,
202
+ inputTokenPricePerMillion: fixture.inputTokenPricePerMillion,
203
+ outputTokenPricePerMillion: fixture.outputTokenPricePerMillion,
204
+ capabilities: fixture.capabilities,
205
+ extraBody: fixture.extraBody ?? {},
206
+ isActive: fixture.isActive,
207
+ deletedAt: null,
208
+ updatedAt: new Date(),
209
+ },
210
+ });
211
+ }
212
+ console.warn(`✅ Model data ready: ${models_1.DEV_MODELS.length} models`);
213
+ seededDevModels = true;
214
+ }
215
+ // The connector must be written before the webhook token: the webhook token is reverse-linked via the foreign key connector_id
216
+ // (ph_core.tokens, scope='webhook' AND connector_id=<connector.id>); see docs/specs/06-database-schema.md §3.2 / §4.5
217
+ for (const fixture of connectors_1.DEV_CONNECTORS) {
218
+ const shape = getConnectorShape(fixture.kind);
219
+ await db
220
+ .insert(schema_1.connectors)
221
+ .values({
222
+ id: fixture.id,
223
+ projectId: shared_1.LOCAL_PROJECT_ID,
224
+ name: fixture.name,
225
+ description: fixture.description,
226
+ direction: shape.direction,
227
+ type: shape.type,
228
+ config: fixture.config,
229
+ configEncrypted: null,
230
+ webhookPath: fixture.kind === 'webhook-input' ? fixture.webhookPath : null,
231
+ ipWhitelist: null,
232
+ createdBy: LOCAL_ACTOR_ID,
233
+ })
234
+ .onConflictDoUpdate({
235
+ target: schema_1.connectors.id,
236
+ set: {
237
+ name: fixture.name,
238
+ projectId: shared_1.LOCAL_PROJECT_ID,
239
+ description: fixture.description,
240
+ direction: shape.direction,
241
+ type: shape.type,
242
+ config: fixture.config,
243
+ configEncrypted: null,
244
+ webhookPath: fixture.kind === 'webhook-input' ? fixture.webhookPath : null,
245
+ ipWhitelist: null,
246
+ deletedAt: null,
247
+ updatedAt: new Date(),
248
+ },
249
+ });
250
+ }
251
+ console.warn(`✅ Connector data ready: ${connectors_1.DEV_CONNECTORS.length} records`);
252
+ for (const fixture of tokens_1.DEV_TOKENS) {
253
+ const tokenHash = (0, node_crypto_1.createHash)('sha256').update(fixture.plaintext).digest('hex');
254
+ await db
255
+ .insert(schema_1.tokens)
256
+ .values({
257
+ id: fixture.id,
258
+ scope: 'webhook',
259
+ projectId: shared_1.LOCAL_PROJECT_ID,
260
+ connectorId: fixture.connectorId,
261
+ name: fixture.name,
262
+ tokenHash,
263
+ prefix: fixture.prefix,
264
+ ipWhitelist: null,
265
+ createdBy: LOCAL_ACTOR_ID,
266
+ })
267
+ .onConflictDoUpdate({
268
+ target: schema_1.tokens.id,
269
+ set: {
270
+ scope: 'webhook',
271
+ projectId: shared_1.LOCAL_PROJECT_ID,
272
+ connectorId: fixture.connectorId,
273
+ name: fixture.name,
274
+ tokenHash,
275
+ prefix: fixture.prefix,
276
+ revokedAt: null,
277
+ },
278
+ });
279
+ }
280
+ console.warn(`✅ Connector webhook token data ready: ${tokens_1.DEV_TOKENS.length} records`);
281
+ for (const fixture of experiments_1.DEV_EXPERIMENT_DATASETS) {
282
+ if (fixture.sampleCount !== fixture.samples.length) {
283
+ console.error(`❌ Dataset ${fixture.name} sampleCount=${fixture.sampleCount} does not match the actual sample count ${fixture.samples.length}`);
284
+ process.exit(1);
285
+ }
286
+ await db
287
+ .insert(schema_1.datasets)
288
+ .values({
289
+ id: fixture.id,
290
+ projectId: shared_1.LOCAL_PROJECT_ID,
291
+ name: fixture.name,
292
+ description: fixture.description,
293
+ sampleCount: fixture.sampleCount,
294
+ fieldSchema: fixture.fieldSchema,
295
+ hasImages: fixture.hasImages,
296
+ storagePrefix: fixture.storagePrefix,
297
+ createdBy: LOCAL_ACTOR_ID,
298
+ createdAt: new Date(fixture.createdAt),
299
+ updatedAt: new Date(fixture.updatedAt),
300
+ })
301
+ .onConflictDoUpdate({
302
+ target: schema_1.datasets.id,
303
+ set: {
304
+ name: fixture.name,
305
+ projectId: shared_1.LOCAL_PROJECT_ID,
306
+ description: fixture.description,
307
+ sampleCount: fixture.sampleCount,
308
+ fieldSchema: fixture.fieldSchema,
309
+ hasImages: fixture.hasImages,
310
+ storagePrefix: fixture.storagePrefix,
311
+ deletedAt: null,
312
+ updatedAt: new Date(fixture.updatedAt),
313
+ },
314
+ });
315
+ const fixtureSampleIds = fixture.samples.map((sample) => sample.id);
316
+ await db
317
+ .delete(schema_1.datasetSamples)
318
+ .where(fixtureSampleIds.length === 0
319
+ ? (0, drizzle_orm_1.eq)(schema_1.datasetSamples.datasetId, fixture.id)
320
+ : (0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema_1.datasetSamples.datasetId, fixture.id), (0, drizzle_orm_1.notInArray)(schema_1.datasetSamples.id, fixtureSampleIds)));
321
+ for (const sample of fixture.samples) {
322
+ await db
323
+ .insert(schema_1.datasetSamples)
324
+ .values({
325
+ id: sample.id,
326
+ datasetId: fixture.id,
327
+ data: sample.data,
328
+ externalId: sample.externalId,
329
+ createdAt: new Date(sample.createdAt),
330
+ updatedAt: new Date(sample.updatedAt),
331
+ })
332
+ .onConflictDoUpdate({
333
+ target: schema_1.datasetSamples.id,
334
+ set: {
335
+ datasetId: fixture.id,
336
+ data: sample.data,
337
+ externalId: sample.externalId,
338
+ updatedAt: new Date(sample.updatedAt),
339
+ },
340
+ });
341
+ }
342
+ }
343
+ console.warn(`✅ Dataset data ready: ${experiments_1.DEV_EXPERIMENT_DATASETS.length} datasets`);
344
+ await db.transaction(async (tx) => {
345
+ await setPromptVersionsFreezeGuard(tx, 'disable');
346
+ for (const fixture of prompts_1.DEV_PROMPTS) {
347
+ await tx
348
+ .insert(schema_1.prompts)
349
+ .values({
350
+ id: fixture.id,
351
+ projectId: shared_1.LOCAL_PROJECT_ID,
352
+ name: fixture.name,
353
+ currentOnlineVersionId: fixture.currentOnlineVersionId,
354
+ defaultDatasetId: fixture.defaultDatasetId ?? null,
355
+ createdBy: LOCAL_ACTOR_ID,
356
+ createdAt: new Date(fixture.createdAt),
357
+ updatedAt: new Date(fixture.updatedAt),
358
+ })
359
+ .onConflictDoUpdate({
360
+ target: schema_1.prompts.id,
361
+ set: {
362
+ name: fixture.name,
363
+ projectId: shared_1.LOCAL_PROJECT_ID,
364
+ currentOnlineVersionId: fixture.currentOnlineVersionId,
365
+ defaultDatasetId: fixture.defaultDatasetId ?? null,
366
+ deletedAt: null,
367
+ updatedAt: new Date(fixture.updatedAt),
368
+ },
369
+ });
370
+ for (const version of fixture.versions) {
371
+ const frozenAt = version.frozenAt ? new Date(version.frozenAt) : null;
372
+ await tx
373
+ .insert(schema_1.promptVersions)
374
+ .values({
375
+ id: version.id,
376
+ promptId: fixture.id,
377
+ versionNumber: version.versionNumber,
378
+ body: version.body,
379
+ variables: version.variables,
380
+ outputSchema: version.outputSchema,
381
+ judgmentRules: version.judgmentRules,
382
+ promptLanguage: version.promptLanguage,
383
+ parentVersionId: version.parentVersionId,
384
+ generatedByOptimizationId: version.generatedByOptimizationId,
385
+ changeReason: version.changeReason,
386
+ isFrozen: version.isFrozen,
387
+ createdAt: new Date(version.createdAt),
388
+ frozenAt,
389
+ createdBy: LOCAL_ACTOR_ID,
390
+ })
391
+ .onConflictDoUpdate({
392
+ target: schema_1.promptVersions.id,
393
+ set: {
394
+ versionNumber: version.versionNumber,
395
+ body: version.body,
396
+ variables: version.variables,
397
+ outputSchema: version.outputSchema,
398
+ judgmentRules: version.judgmentRules,
399
+ promptLanguage: version.promptLanguage,
400
+ parentVersionId: version.parentVersionId,
401
+ generatedByOptimizationId: version.generatedByOptimizationId,
402
+ changeReason: version.changeReason,
403
+ isFrozen: version.isFrozen,
404
+ createdAt: new Date(version.createdAt),
405
+ frozenAt,
406
+ },
407
+ });
408
+ }
409
+ const fixtureVersionIds = fixture.versions.map((version) => version.id);
410
+ await tx
411
+ .delete(schema_1.promptVersions)
412
+ .where(fixtureVersionIds.length === 0
413
+ ? (0, drizzle_orm_1.eq)(schema_1.promptVersions.promptId, fixture.id)
414
+ : (0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema_1.promptVersions.promptId, fixture.id), (0, drizzle_orm_1.notInArray)(schema_1.promptVersions.id, fixtureVersionIds)));
415
+ }
416
+ await setPromptVersionsFreezeGuard(tx, 'enable');
417
+ });
418
+ console.warn(`✅ Prompt data ready: ${prompts_1.DEV_PROMPTS.length} prompts`);
419
+ if (!seededDevModels) {
420
+ console.warn('⚠️ Skipping experiment / optimization data: experiments require model data to be written first');
421
+ process.exit(0);
422
+ }
423
+ async function upsertExperiment(fixture) {
424
+ await db
425
+ .insert(schema_1.experiments)
426
+ .values({
427
+ id: fixture.id,
428
+ projectId: shared_1.LOCAL_PROJECT_ID,
429
+ name: fixture.name,
430
+ promptVersionId: fixture.promptVersionId,
431
+ datasetId: fixture.datasetId,
432
+ modelId: fixture.modelId,
433
+ optimizationId: fixture.optimizationId,
434
+ roundIndex: fixture.roundIndex,
435
+ status: fixture.status,
436
+ runConfig: fixture.runConfig,
437
+ dbosWorkflowId: fixture.dbosWorkflowId,
438
+ controlState: fixture.controlState,
439
+ totalSamples: fixture.totalSamples,
440
+ processedSamples: fixture.processedSamples,
441
+ failedSamples: fixture.failedSamples,
442
+ metrics: fixture.metrics,
443
+ failureKind: fixture.failureKind,
444
+ failureReason: fixture.failureReason,
445
+ startedAt: fixture.startedAt ? new Date(fixture.startedAt) : null,
446
+ finishedAt: fixture.finishedAt ? new Date(fixture.finishedAt) : null,
447
+ createdBy: LOCAL_ACTOR_ID,
448
+ createdAt: new Date(fixture.createdAt),
449
+ updatedAt: new Date(fixture.updatedAt),
450
+ })
451
+ .onConflictDoUpdate({
452
+ target: schema_1.experiments.id,
453
+ set: {
454
+ name: fixture.name,
455
+ projectId: shared_1.LOCAL_PROJECT_ID,
456
+ promptVersionId: fixture.promptVersionId,
457
+ datasetId: fixture.datasetId,
458
+ modelId: fixture.modelId,
459
+ optimizationId: fixture.optimizationId,
460
+ roundIndex: fixture.roundIndex,
461
+ status: fixture.status,
462
+ runConfig: fixture.runConfig,
463
+ dbosWorkflowId: fixture.dbosWorkflowId,
464
+ controlState: fixture.controlState,
465
+ totalSamples: fixture.totalSamples,
466
+ processedSamples: fixture.processedSamples,
467
+ failedSamples: fixture.failedSamples,
468
+ metrics: fixture.metrics,
469
+ failureKind: fixture.failureKind,
470
+ failureReason: fixture.failureReason,
471
+ startedAt: fixture.startedAt ? new Date(fixture.startedAt) : null,
472
+ finishedAt: fixture.finishedAt ? new Date(fixture.finishedAt) : null,
473
+ deletedAt: null,
474
+ updatedAt: new Date(fixture.updatedAt),
475
+ },
476
+ });
477
+ }
478
+ for (const fixture of experiments_1.DEV_EXPERIMENTS.filter((experiment) => experiment.optimizationId === null)) {
479
+ await upsertExperiment(fixture);
480
+ }
481
+ for (const fixture of optimizations_1.DEV_OPTIMIZATIONS) {
482
+ await db
483
+ .insert(schema_1.optimizations)
484
+ .values({
485
+ id: fixture.id,
486
+ projectId: shared_1.LOCAL_PROJECT_ID,
487
+ name: fixture.name,
488
+ description: fixture.description,
489
+ optimizationHint: fixture.optimizationHint,
490
+ strategy: fixture.strategy,
491
+ strategyConfig: fixture.strategyConfig,
492
+ startingMode: fixture.startingMode,
493
+ sourceExperimentId: fixture.sourceExperimentId,
494
+ promptId: fixture.promptId,
495
+ baseVersionId: fixture.baseVersionId,
496
+ datasetId: fixture.datasetId,
497
+ experimentModelId: fixture.experimentModelId,
498
+ analysisModelId: fixture.analysisModelId,
499
+ promptLanguage: fixture.promptLanguage,
500
+ status: fixture.status,
501
+ dbosWorkflowId: fixture.dbosWorkflowId,
502
+ controlState: fixture.controlState,
503
+ goals: fixture.goals,
504
+ fieldWhitelist: fixture.fieldWhitelist,
505
+ runConfig: fixture.runConfig,
506
+ maxRounds: fixture.maxRounds,
507
+ currentRound: fixture.currentRound,
508
+ bestVersionId: fixture.bestVersionId,
509
+ bestMetrics: fixture.bestMetrics,
510
+ summary: fixture.summary,
511
+ analysisFailureReason: fixture.analysisFailureReason,
512
+ startedAt: fixture.startedAt ? new Date(fixture.startedAt) : null,
513
+ finishedAt: fixture.finishedAt ? new Date(fixture.finishedAt) : null,
514
+ createdBy: LOCAL_ACTOR_ID,
515
+ createdAt: new Date(fixture.createdAt),
516
+ updatedAt: new Date(fixture.updatedAt),
517
+ })
518
+ .onConflictDoUpdate({
519
+ target: schema_1.optimizations.id,
520
+ set: {
521
+ name: fixture.name,
522
+ projectId: shared_1.LOCAL_PROJECT_ID,
523
+ description: fixture.description,
524
+ optimizationHint: fixture.optimizationHint,
525
+ strategy: fixture.strategy,
526
+ strategyConfig: fixture.strategyConfig,
527
+ startingMode: fixture.startingMode,
528
+ sourceExperimentId: fixture.sourceExperimentId,
529
+ promptId: fixture.promptId,
530
+ baseVersionId: fixture.baseVersionId,
531
+ datasetId: fixture.datasetId,
532
+ experimentModelId: fixture.experimentModelId,
533
+ analysisModelId: fixture.analysisModelId,
534
+ promptLanguage: fixture.promptLanguage,
535
+ status: fixture.status,
536
+ dbosWorkflowId: fixture.dbosWorkflowId,
537
+ controlState: fixture.controlState,
538
+ goals: fixture.goals,
539
+ fieldWhitelist: fixture.fieldWhitelist,
540
+ runConfig: fixture.runConfig,
541
+ maxRounds: fixture.maxRounds,
542
+ currentRound: fixture.currentRound,
543
+ bestVersionId: fixture.bestVersionId,
544
+ bestMetrics: fixture.bestMetrics,
545
+ summary: fixture.summary,
546
+ analysisFailureReason: fixture.analysisFailureReason,
547
+ startedAt: fixture.startedAt ? new Date(fixture.startedAt) : null,
548
+ finishedAt: fixture.finishedAt ? new Date(fixture.finishedAt) : null,
549
+ deletedAt: null,
550
+ updatedAt: new Date(fixture.updatedAt),
551
+ },
552
+ });
553
+ }
554
+ for (const fixture of experiments_1.DEV_EXPERIMENTS.filter((experiment) => experiment.optimizationId !== null)) {
555
+ await upsertExperiment(fixture);
556
+ }
557
+ console.warn(`✅ Experiment data ready: ${experiments_1.DEV_EXPERIMENTS.length} experiments`);
558
+ for (const fixture of optimizations_1.DEV_OPTIMIZATION_ROUND_STEPS) {
559
+ await db
560
+ .insert(schema_1.optimizationRoundSteps)
561
+ .values({
562
+ id: fixture.id,
563
+ optimizationId: fixture.optimizationId,
564
+ roundIndex: fixture.roundIndex,
565
+ step: fixture.step,
566
+ status: fixture.status,
567
+ errorClass: fixture.errorClass,
568
+ errorMessage: fixture.errorMessage,
569
+ runResultId: fixture.runResultId,
570
+ experimentId: fixture.experimentId,
571
+ startedAt: fixture.startedAt ? new Date(fixture.startedAt) : null,
572
+ finishedAt: fixture.finishedAt ? new Date(fixture.finishedAt) : null,
573
+ attempt: fixture.attempt,
574
+ dbosWorkflowId: fixture.dbosWorkflowId,
575
+ createdAt: new Date(fixture.createdAt),
576
+ updatedAt: new Date(fixture.updatedAt),
577
+ })
578
+ .onConflictDoUpdate({
579
+ target: schema_1.optimizationRoundSteps.id,
580
+ set: {
581
+ optimizationId: fixture.optimizationId,
582
+ roundIndex: fixture.roundIndex,
583
+ step: fixture.step,
584
+ status: fixture.status,
585
+ errorClass: fixture.errorClass,
586
+ errorMessage: fixture.errorMessage,
587
+ runResultId: fixture.runResultId,
588
+ experimentId: fixture.experimentId,
589
+ startedAt: fixture.startedAt ? new Date(fixture.startedAt) : null,
590
+ finishedAt: fixture.finishedAt ? new Date(fixture.finishedAt) : null,
591
+ attempt: fixture.attempt,
592
+ dbosWorkflowId: fixture.dbosWorkflowId,
593
+ updatedAt: new Date(fixture.updatedAt),
594
+ },
595
+ });
596
+ }
597
+ console.warn(`✅ Optimization data ready: ${optimizations_1.DEV_OPTIMIZATIONS.length} optimizations, ${optimizations_1.DEV_OPTIMIZATION_ROUND_STEPS.length} steps`);
598
+ console.warn('✅ Local dev data snapshot written successfully');
599
+ process.exit(0);
600
+ }
601
+ main().catch((error) => {
602
+ console.error(error);
603
+ process.exit(1);
604
+ });
605
+ //# sourceMappingURL=seed-dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed-dev.js","sourceRoot":"","sources":["../src/seed-dev.ts"],"names":[],"mappings":"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"}
package/dist/seed.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=seed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":""}
package/dist/seed.js ADDED
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Self-hosted seed placeholder.
5
+ *
6
+ * Open-source ProofHound does not create platform users or external Auth rows.
7
+ * Use `pnpm db:seed:dev` for local fixture data.
8
+ */
9
+ async function main() {
10
+ console.log('ProofHound self-hosted seed: no platform users to create.');
11
+ }
12
+ void main();
13
+ //# sourceMappingURL=seed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../src/seed.ts"],"names":[],"mappings":";;AAAA;;;;;GAKG;AACH,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;AAC3E,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}