@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,86 @@
1
+ "use strict";
2
+ // ph_releases.production_release_events — production release event stream
3
+ // See docs/specs/06-database-schema.md §6.3 and docs/specs/27-releases.md
4
+ // Event-sourced: new release / config change / rollback / force-stop are each one record; commit means running, no approval step.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.productionReleaseEvents = void 0;
7
+ const drizzle_orm_1 = require("drizzle-orm");
8
+ const pg_core_1 = require("drizzle-orm/pg-core");
9
+ const index_1 = require("../ph_assets/index");
10
+ const index_2 = require("../ph_core/index");
11
+ const experiments_1 = require("../ph_runs/experiments");
12
+ const canary_releases_1 = require("./canary-releases");
13
+ const _schema_1 = require("./_schema");
14
+ exports.productionReleaseEvents = _schema_1.phReleases.table('production_release_events', {
15
+ id: (0, pg_core_1.uuid)('id')
16
+ .primaryKey()
17
+ .default((0, drizzle_orm_1.sql) `gen_random_uuid()`),
18
+ projectId: (0, pg_core_1.uuid)('project_id')
19
+ .notNull()
20
+ .references(() => index_2.projects.id, { onDelete: 'cascade' }),
21
+ promptId: (0, pg_core_1.uuid)('prompt_id').notNull(),
22
+ eventType: (0, pg_core_1.text)('event_type').notNull(),
23
+ // Target config snapshot
24
+ promptVersionId: (0, pg_core_1.uuid)('prompt_version_id').notNull(),
25
+ modelId: (0, pg_core_1.uuid)('model_id')
26
+ .notNull()
27
+ .references(() => index_1.models.id),
28
+ // force_stop may keep the original upstream snapshot; legacy data is also allowed to be empty ("no backfill after takedown" semantics)
29
+ inputConnectorId: (0, pg_core_1.uuid)('input_connector_id').references(() => index_1.connectors.id),
30
+ outputConnectorIds: (0, pg_core_1.uuid)('output_connector_ids')
31
+ .array()
32
+ .notNull()
33
+ .default((0, drizzle_orm_1.sql) `ARRAY[]::uuid[]`),
34
+ runConfig: (0, pg_core_1.jsonb)('run_config').notNull(),
35
+ variableMapping: (0, pg_core_1.jsonb)('variable_mapping')
36
+ .notNull()
37
+ .default((0, drizzle_orm_1.sql) `'{}'::jsonb`),
38
+ filterRules: (0, pg_core_1.jsonb)('filter_rules'),
39
+ recordMode: (0, pg_core_1.text)('record_mode').notNull().default('all'),
40
+ externalIdField: (0, pg_core_1.text)('external_id_field'),
41
+ retentionDays: (0, pg_core_1.integer)('retention_days'),
42
+ // State machine
43
+ status: (0, pg_core_1.text)('status').notNull().default('running'),
44
+ createdBy: (0, pg_core_1.uuid)('created_by').notNull(),
45
+ submitReason: (0, pg_core_1.text)('submit_reason').notNull(),
46
+ // Source snapshot
47
+ sourceExperimentId: (0, pg_core_1.uuid)('source_experiment_id').references(() => experiments_1.experiments.id),
48
+ sourceCanaryId: (0, pg_core_1.uuid)('source_canary_id').references(() => canary_releases_1.canaryReleases.id),
49
+ sourceMetricsSnapshot: (0, pg_core_1.jsonb)('source_metrics_snapshot'),
50
+ promptSnapshot: (0, pg_core_1.jsonb)('prompt_snapshot')
51
+ .notNull()
52
+ .default((0, drizzle_orm_1.sql) `'{}'::jsonb`),
53
+ promptVersionSnapshot: (0, pg_core_1.jsonb)('prompt_version_snapshot')
54
+ .notNull()
55
+ .default((0, drizzle_orm_1.sql) `'{}'::jsonb`),
56
+ // Rollback target (self-reference)
57
+ rollbackTargetEventId: (0, pg_core_1.uuid)('rollback_target_event_id').references(() => exports.productionReleaseEvents.id),
58
+ // Runtime
59
+ controlState: (0, pg_core_1.text)('control_state'),
60
+ startedAt: (0, pg_core_1.timestamp)('started_at', { withTimezone: true }),
61
+ finishedAt: (0, pg_core_1.timestamp)('finished_at', { withTimezone: true }),
62
+ stopReason: (0, pg_core_1.text)('stop_reason'),
63
+ createdAt: (0, pg_core_1.timestamp)('created_at', { withTimezone: true }).notNull().defaultNow(),
64
+ updatedAt: (0, pg_core_1.timestamp)('updated_at', { withTimezone: true }).notNull().defaultNow(),
65
+ }, (t) => [
66
+ (0, pg_core_1.check)('production_release_events_event_type_check', (0, drizzle_orm_1.sql) `${t.eventType} IN ('from_prompt', 'from_experiment', 'from_canary', 'config_change', 'rollback', 'force_stop')`),
67
+ (0, pg_core_1.check)('production_release_events_record_mode_check', (0, drizzle_orm_1.sql) `${t.recordMode} IN ('all', 'correct_only')`),
68
+ (0, pg_core_1.check)('production_release_events_status_check', (0, drizzle_orm_1.sql) `${t.status} IN ('running', 'success', 'failed', 'stopped')`),
69
+ (0, pg_core_1.check)('production_release_events_control_state_check', (0, drizzle_orm_1.sql) `${t.controlState} IN ('stop', 'resume', 'cancel') OR ${t.controlState} IS NULL`),
70
+ (0, pg_core_1.check)('production_release_events_stop_reason_check', (0, drizzle_orm_1.sql) `${t.stopReason} IN ('replaced', 'rolled_back', 'force_stopped', 'error') OR ${t.stopReason} IS NULL`),
71
+ (0, pg_core_1.check)('production_release_events_source_experiment_required', (0, drizzle_orm_1.sql) `${t.eventType} <> 'from_experiment' OR ${t.sourceExperimentId} IS NOT NULL`),
72
+ (0, pg_core_1.check)('production_release_events_source_canary_required', (0, drizzle_orm_1.sql) `${t.eventType} <> 'from_canary' OR ${t.sourceCanaryId} IS NOT NULL`),
73
+ (0, pg_core_1.check)('production_release_events_rollback_target_required', (0, drizzle_orm_1.sql) `${t.eventType} <> 'rollback' OR ${t.rollbackTargetEventId} IS NOT NULL`),
74
+ // At most one running per prompt at any time
75
+ (0, pg_core_1.uniqueIndex)('uniq_running_release_per_prompt')
76
+ .on(t.promptId)
77
+ .where((0, drizzle_orm_1.sql) `${t.status} = 'running'`),
78
+ // At most one running occupancy per input connector at any time
79
+ (0, pg_core_1.uniqueIndex)('uniq_running_release_per_input_connector')
80
+ .on(t.inputConnectorId)
81
+ .where((0, drizzle_orm_1.sql) `${t.status} = 'running' AND ${t.inputConnectorId} IS NOT NULL`),
82
+ // List / history queries
83
+ (0, pg_core_1.index)('idx_release_events_status_created').on(t.projectId, t.status, t.createdAt),
84
+ (0, pg_core_1.index)('idx_release_events_prompt_created').on(t.projectId, t.promptId, t.createdAt),
85
+ ]);
86
+ //# sourceMappingURL=production-release-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-release-events.js","sourceRoot":"","sources":["../../../src/schema/ph_releases/production-release-events.ts"],"names":[],"mappings":"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"}