@foundrynorth/flux-schema 1.21.0 → 1.22.0

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.
package/dist/schema.d.ts CHANGED
@@ -5619,184 +5619,6 @@ export declare const fluxServiceUsageEvents: import("drizzle-orm/pg-core").PgTab
5619
5619
  };
5620
5620
  dialect: "pg";
5621
5621
  }>;
5622
- /**
5623
- * flux_search_cache — deterministic-key cache for paid search APIs.
5624
- *
5625
- * Phase 1 of the search-stack-cost optimization initiative. Wraps the
5626
- * Exa, GNews, Firecrawl, and DataForSEO clients in fn-flux + fn-v2 so
5627
- * the same query (same options, same lookback window) doesn't hit the
5628
- * upstream API multiple times within its TTL.
5629
- *
5630
- * Key shape: `{provider}:{operation}:{sha256-of-options-bag}`. Payload
5631
- * is the verbatim provider response array. `expiresAt` controls TTL
5632
- * eviction; `hits` is bumped on each cache hit so we can rank
5633
- * highest-savings keys.
5634
- *
5635
- * Cache is bypassed when the caller passes an `AbortSignal` (assistant
5636
- * tool calls always want fresh data).
5637
- */
5638
- export declare const fluxSearchCache: import("drizzle-orm/pg-core").PgTableWithColumns<{
5639
- name: "flux_search_cache";
5640
- schema: undefined;
5641
- columns: {
5642
- cacheKey: import("drizzle-orm/pg-core").PgColumn<{
5643
- name: "cache_key";
5644
- tableName: "flux_search_cache";
5645
- dataType: "string";
5646
- columnType: "PgText";
5647
- data: string;
5648
- driverParam: string;
5649
- notNull: true;
5650
- hasDefault: false;
5651
- isPrimaryKey: true;
5652
- isAutoincrement: false;
5653
- hasRuntimeDefault: false;
5654
- enumValues: [string, ...string[]];
5655
- baseColumn: never;
5656
- identity: undefined;
5657
- generated: undefined;
5658
- }, {}, {}>;
5659
- providerKey: import("drizzle-orm/pg-core").PgColumn<{
5660
- name: "provider_key";
5661
- tableName: "flux_search_cache";
5662
- dataType: "string";
5663
- columnType: "PgText";
5664
- data: string;
5665
- driverParam: string;
5666
- notNull: true;
5667
- hasDefault: false;
5668
- isPrimaryKey: false;
5669
- isAutoincrement: false;
5670
- hasRuntimeDefault: false;
5671
- enumValues: [string, ...string[]];
5672
- baseColumn: never;
5673
- identity: undefined;
5674
- generated: undefined;
5675
- }, {}, {}>;
5676
- operationKey: import("drizzle-orm/pg-core").PgColumn<{
5677
- name: "operation_key";
5678
- tableName: "flux_search_cache";
5679
- dataType: "string";
5680
- columnType: "PgText";
5681
- data: string;
5682
- driverParam: string;
5683
- notNull: true;
5684
- hasDefault: false;
5685
- isPrimaryKey: false;
5686
- isAutoincrement: false;
5687
- hasRuntimeDefault: false;
5688
- enumValues: [string, ...string[]];
5689
- baseColumn: never;
5690
- identity: undefined;
5691
- generated: undefined;
5692
- }, {}, {}>;
5693
- payload: import("drizzle-orm/pg-core").PgColumn<{
5694
- name: "payload";
5695
- tableName: "flux_search_cache";
5696
- dataType: "json";
5697
- columnType: "PgJsonb";
5698
- data: unknown;
5699
- driverParam: unknown;
5700
- notNull: true;
5701
- hasDefault: false;
5702
- isPrimaryKey: false;
5703
- isAutoincrement: false;
5704
- hasRuntimeDefault: false;
5705
- enumValues: undefined;
5706
- baseColumn: never;
5707
- identity: undefined;
5708
- generated: undefined;
5709
- }, {}, {}>;
5710
- queryFingerprint: import("drizzle-orm/pg-core").PgColumn<{
5711
- name: "query_fingerprint";
5712
- tableName: "flux_search_cache";
5713
- dataType: "json";
5714
- columnType: "PgJsonb";
5715
- data: Record<string, unknown> | null;
5716
- driverParam: unknown;
5717
- notNull: false;
5718
- hasDefault: false;
5719
- isPrimaryKey: false;
5720
- isAutoincrement: false;
5721
- hasRuntimeDefault: false;
5722
- enumValues: undefined;
5723
- baseColumn: never;
5724
- identity: undefined;
5725
- generated: undefined;
5726
- }, {}, {
5727
- $type: Record<string, unknown> | null;
5728
- }>;
5729
- expiresAt: import("drizzle-orm/pg-core").PgColumn<{
5730
- name: "expires_at";
5731
- tableName: "flux_search_cache";
5732
- dataType: "date";
5733
- columnType: "PgTimestamp";
5734
- data: Date;
5735
- driverParam: string;
5736
- notNull: true;
5737
- hasDefault: false;
5738
- isPrimaryKey: false;
5739
- isAutoincrement: false;
5740
- hasRuntimeDefault: false;
5741
- enumValues: undefined;
5742
- baseColumn: never;
5743
- identity: undefined;
5744
- generated: undefined;
5745
- }, {}, {}>;
5746
- hits: import("drizzle-orm/pg-core").PgColumn<{
5747
- name: "hits";
5748
- tableName: "flux_search_cache";
5749
- dataType: "number";
5750
- columnType: "PgInteger";
5751
- data: number;
5752
- driverParam: string | number;
5753
- notNull: true;
5754
- hasDefault: true;
5755
- isPrimaryKey: false;
5756
- isAutoincrement: false;
5757
- hasRuntimeDefault: false;
5758
- enumValues: undefined;
5759
- baseColumn: never;
5760
- identity: undefined;
5761
- generated: undefined;
5762
- }, {}, {}>;
5763
- lastHitAt: import("drizzle-orm/pg-core").PgColumn<{
5764
- name: "last_hit_at";
5765
- tableName: "flux_search_cache";
5766
- dataType: "date";
5767
- columnType: "PgTimestamp";
5768
- data: Date;
5769
- driverParam: string;
5770
- notNull: false;
5771
- hasDefault: false;
5772
- isPrimaryKey: false;
5773
- isAutoincrement: false;
5774
- hasRuntimeDefault: false;
5775
- enumValues: undefined;
5776
- baseColumn: never;
5777
- identity: undefined;
5778
- generated: undefined;
5779
- }, {}, {}>;
5780
- createdAt: import("drizzle-orm/pg-core").PgColumn<{
5781
- name: "created_at";
5782
- tableName: "flux_search_cache";
5783
- dataType: "date";
5784
- columnType: "PgTimestamp";
5785
- data: Date;
5786
- driverParam: string;
5787
- notNull: true;
5788
- hasDefault: true;
5789
- isPrimaryKey: false;
5790
- isAutoincrement: false;
5791
- hasRuntimeDefault: false;
5792
- enumValues: undefined;
5793
- baseColumn: never;
5794
- identity: undefined;
5795
- generated: undefined;
5796
- }, {}, {}>;
5797
- };
5798
- dialect: "pg";
5799
- }>;
5800
5622
  export declare const fluxServiceBudgetAlerts: import("drizzle-orm/pg-core").PgTableWithColumns<{
5801
5623
  name: "flux_service_budget_alerts";
5802
5624
  schema: undefined;
@@ -12157,6 +11979,57 @@ export declare const fluxSentinelKeywords: import("drizzle-orm/pg-core").PgTable
12157
11979
  identity: undefined;
12158
11980
  generated: undefined;
12159
11981
  }, {}, {}>;
11982
+ scanCadenceMinutes: import("drizzle-orm/pg-core").PgColumn<{
11983
+ name: "scan_cadence_minutes";
11984
+ tableName: "flux_sentinel_keywords";
11985
+ dataType: "number";
11986
+ columnType: "PgInteger";
11987
+ data: number;
11988
+ driverParam: string | number;
11989
+ notNull: true;
11990
+ hasDefault: true;
11991
+ isPrimaryKey: false;
11992
+ isAutoincrement: false;
11993
+ hasRuntimeDefault: false;
11994
+ enumValues: undefined;
11995
+ baseColumn: never;
11996
+ identity: undefined;
11997
+ generated: undefined;
11998
+ }, {}, {}>;
11999
+ lastScanAt: import("drizzle-orm/pg-core").PgColumn<{
12000
+ name: "last_scan_at";
12001
+ tableName: "flux_sentinel_keywords";
12002
+ dataType: "date";
12003
+ columnType: "PgTimestamp";
12004
+ data: Date;
12005
+ driverParam: string;
12006
+ notNull: false;
12007
+ hasDefault: false;
12008
+ isPrimaryKey: false;
12009
+ isAutoincrement: false;
12010
+ hasRuntimeDefault: false;
12011
+ enumValues: undefined;
12012
+ baseColumn: never;
12013
+ identity: undefined;
12014
+ generated: undefined;
12015
+ }, {}, {}>;
12016
+ websetMonitorId: import("drizzle-orm/pg-core").PgColumn<{
12017
+ name: "webset_monitor_id";
12018
+ tableName: "flux_sentinel_keywords";
12019
+ dataType: "string";
12020
+ columnType: "PgText";
12021
+ data: string;
12022
+ driverParam: string;
12023
+ notNull: false;
12024
+ hasDefault: false;
12025
+ isPrimaryKey: false;
12026
+ isAutoincrement: false;
12027
+ hasRuntimeDefault: false;
12028
+ enumValues: [string, ...string[]];
12029
+ baseColumn: never;
12030
+ identity: undefined;
12031
+ generated: undefined;
12032
+ }, {}, {}>;
12160
12033
  createdAt: import("drizzle-orm/pg-core").PgColumn<{
12161
12034
  name: "created_at";
12162
12035
  tableName: "flux_sentinel_keywords";
@@ -12194,6 +12067,230 @@ export declare const fluxSentinelKeywords: import("drizzle-orm/pg-core").PgTable
12194
12067
  };
12195
12068
  dialect: "pg";
12196
12069
  }>;
12070
+ /**
12071
+ * flux_websets_pilot_runs — daily comparison rows for the 30-day Phase 5
12072
+ * Websets vs polled-search pilot. Each row captures one (keyword, day) pair
12073
+ * with both pipelines' hit counts so we can decide whether to migrate to
12074
+ * Websets monitors after the pilot window.
12075
+ *
12076
+ * Decision criteria after 30 days:
12077
+ * - Migrate if `webset_hits / polled_hits >= 0.90` AND
12078
+ * `cost_per_fresh_mention_websets < cost_per_fresh_mention_polled`.
12079
+ * - Else stay on polling.
12080
+ */
12081
+ export declare const fluxWebsetsPilotRuns: import("drizzle-orm/pg-core").PgTableWithColumns<{
12082
+ name: "flux_websets_pilot_runs";
12083
+ schema: undefined;
12084
+ columns: {
12085
+ id: import("drizzle-orm/pg-core").PgColumn<{
12086
+ name: "id";
12087
+ tableName: "flux_websets_pilot_runs";
12088
+ dataType: "string";
12089
+ columnType: "PgText";
12090
+ data: string;
12091
+ driverParam: string;
12092
+ notNull: true;
12093
+ hasDefault: true;
12094
+ isPrimaryKey: true;
12095
+ isAutoincrement: false;
12096
+ hasRuntimeDefault: false;
12097
+ enumValues: [string, ...string[]];
12098
+ baseColumn: never;
12099
+ identity: undefined;
12100
+ generated: undefined;
12101
+ }, {}, {}>;
12102
+ keywordId: import("drizzle-orm/pg-core").PgColumn<{
12103
+ name: "keyword_id";
12104
+ tableName: "flux_websets_pilot_runs";
12105
+ dataType: "string";
12106
+ columnType: "PgText";
12107
+ data: string;
12108
+ driverParam: string;
12109
+ notNull: true;
12110
+ hasDefault: false;
12111
+ isPrimaryKey: false;
12112
+ isAutoincrement: false;
12113
+ hasRuntimeDefault: false;
12114
+ enumValues: [string, ...string[]];
12115
+ baseColumn: never;
12116
+ identity: undefined;
12117
+ generated: undefined;
12118
+ }, {}, {}>;
12119
+ pilotDate: import("drizzle-orm/pg-core").PgColumn<{
12120
+ name: "pilot_date";
12121
+ tableName: "flux_websets_pilot_runs";
12122
+ dataType: "string";
12123
+ columnType: "PgDateString";
12124
+ data: string;
12125
+ driverParam: string;
12126
+ notNull: true;
12127
+ hasDefault: false;
12128
+ isPrimaryKey: false;
12129
+ isAutoincrement: false;
12130
+ hasRuntimeDefault: false;
12131
+ enumValues: undefined;
12132
+ baseColumn: never;
12133
+ identity: undefined;
12134
+ generated: undefined;
12135
+ }, {}, {}>;
12136
+ polledHits: import("drizzle-orm/pg-core").PgColumn<{
12137
+ name: "polled_hits";
12138
+ tableName: "flux_websets_pilot_runs";
12139
+ dataType: "number";
12140
+ columnType: "PgInteger";
12141
+ data: number;
12142
+ driverParam: string | number;
12143
+ notNull: true;
12144
+ hasDefault: true;
12145
+ isPrimaryKey: false;
12146
+ isAutoincrement: false;
12147
+ hasRuntimeDefault: false;
12148
+ enumValues: undefined;
12149
+ baseColumn: never;
12150
+ identity: undefined;
12151
+ generated: undefined;
12152
+ }, {}, {}>;
12153
+ websetHits: import("drizzle-orm/pg-core").PgColumn<{
12154
+ name: "webset_hits";
12155
+ tableName: "flux_websets_pilot_runs";
12156
+ dataType: "number";
12157
+ columnType: "PgInteger";
12158
+ data: number;
12159
+ driverParam: string | number;
12160
+ notNull: true;
12161
+ hasDefault: true;
12162
+ isPrimaryKey: false;
12163
+ isAutoincrement: false;
12164
+ hasRuntimeDefault: false;
12165
+ enumValues: undefined;
12166
+ baseColumn: never;
12167
+ identity: undefined;
12168
+ generated: undefined;
12169
+ }, {}, {}>;
12170
+ polledOnlyCount: import("drizzle-orm/pg-core").PgColumn<{
12171
+ name: "polled_only_count";
12172
+ tableName: "flux_websets_pilot_runs";
12173
+ dataType: "number";
12174
+ columnType: "PgInteger";
12175
+ data: number;
12176
+ driverParam: string | number;
12177
+ notNull: true;
12178
+ hasDefault: true;
12179
+ isPrimaryKey: false;
12180
+ isAutoincrement: false;
12181
+ hasRuntimeDefault: false;
12182
+ enumValues: undefined;
12183
+ baseColumn: never;
12184
+ identity: undefined;
12185
+ generated: undefined;
12186
+ }, {}, {}>;
12187
+ websetOnlyCount: import("drizzle-orm/pg-core").PgColumn<{
12188
+ name: "webset_only_count";
12189
+ tableName: "flux_websets_pilot_runs";
12190
+ dataType: "number";
12191
+ columnType: "PgInteger";
12192
+ data: number;
12193
+ driverParam: string | number;
12194
+ notNull: true;
12195
+ hasDefault: true;
12196
+ isPrimaryKey: false;
12197
+ isAutoincrement: false;
12198
+ hasRuntimeDefault: false;
12199
+ enumValues: undefined;
12200
+ baseColumn: never;
12201
+ identity: undefined;
12202
+ generated: undefined;
12203
+ }, {}, {}>;
12204
+ overlapCount: import("drizzle-orm/pg-core").PgColumn<{
12205
+ name: "overlap_count";
12206
+ tableName: "flux_websets_pilot_runs";
12207
+ dataType: "number";
12208
+ columnType: "PgInteger";
12209
+ data: number;
12210
+ driverParam: string | number;
12211
+ notNull: true;
12212
+ hasDefault: true;
12213
+ isPrimaryKey: false;
12214
+ isAutoincrement: false;
12215
+ hasRuntimeDefault: false;
12216
+ enumValues: undefined;
12217
+ baseColumn: never;
12218
+ identity: undefined;
12219
+ generated: undefined;
12220
+ }, {}, {}>;
12221
+ polledCostUsdMicro: import("drizzle-orm/pg-core").PgColumn<{
12222
+ name: "polled_cost_usd_micro";
12223
+ tableName: "flux_websets_pilot_runs";
12224
+ dataType: "number";
12225
+ columnType: "PgInteger";
12226
+ data: number;
12227
+ driverParam: string | number;
12228
+ notNull: true;
12229
+ hasDefault: true;
12230
+ isPrimaryKey: false;
12231
+ isAutoincrement: false;
12232
+ hasRuntimeDefault: false;
12233
+ enumValues: undefined;
12234
+ baseColumn: never;
12235
+ identity: undefined;
12236
+ generated: undefined;
12237
+ }, {}, {}>;
12238
+ websetCreditsConsumed: import("drizzle-orm/pg-core").PgColumn<{
12239
+ name: "webset_credits_consumed";
12240
+ tableName: "flux_websets_pilot_runs";
12241
+ dataType: "number";
12242
+ columnType: "PgInteger";
12243
+ data: number;
12244
+ driverParam: string | number;
12245
+ notNull: true;
12246
+ hasDefault: true;
12247
+ isPrimaryKey: false;
12248
+ isAutoincrement: false;
12249
+ hasRuntimeDefault: false;
12250
+ enumValues: undefined;
12251
+ baseColumn: never;
12252
+ identity: undefined;
12253
+ generated: undefined;
12254
+ }, {}, {}>;
12255
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
12256
+ name: "metadata";
12257
+ tableName: "flux_websets_pilot_runs";
12258
+ dataType: "json";
12259
+ columnType: "PgJsonb";
12260
+ data: Record<string, unknown> | null;
12261
+ driverParam: unknown;
12262
+ notNull: false;
12263
+ hasDefault: false;
12264
+ isPrimaryKey: false;
12265
+ isAutoincrement: false;
12266
+ hasRuntimeDefault: false;
12267
+ enumValues: undefined;
12268
+ baseColumn: never;
12269
+ identity: undefined;
12270
+ generated: undefined;
12271
+ }, {}, {
12272
+ $type: Record<string, unknown> | null;
12273
+ }>;
12274
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
12275
+ name: "created_at";
12276
+ tableName: "flux_websets_pilot_runs";
12277
+ dataType: "date";
12278
+ columnType: "PgTimestamp";
12279
+ data: Date;
12280
+ driverParam: string;
12281
+ notNull: true;
12282
+ hasDefault: true;
12283
+ isPrimaryKey: false;
12284
+ isAutoincrement: false;
12285
+ hasRuntimeDefault: false;
12286
+ enumValues: undefined;
12287
+ baseColumn: never;
12288
+ identity: undefined;
12289
+ generated: undefined;
12290
+ }, {}, {}>;
12291
+ };
12292
+ dialect: "pg";
12293
+ }>;
12197
12294
  /**
12198
12295
  * Discovered media mentions. Deduplication by URL.
12199
12296
  * Stores Exa search results with LLM-derived severity classification.
@@ -18636,8 +18733,6 @@ export type FluxSecretsProvider = typeof fluxSecretsProviders.$inferSelect;
18636
18733
  export type NewFluxSecretsProvider = typeof fluxSecretsProviders.$inferInsert;
18637
18734
  export type FluxServiceUsageEvent = typeof fluxServiceUsageEvents.$inferSelect;
18638
18735
  export type NewFluxServiceUsageEvent = typeof fluxServiceUsageEvents.$inferInsert;
18639
- export type FluxSearchCache = typeof fluxSearchCache.$inferSelect;
18640
- export type NewFluxSearchCache = typeof fluxSearchCache.$inferInsert;
18641
18736
  export type FluxServiceBudgetAlert = typeof fluxServiceBudgetAlerts.$inferSelect;
18642
18737
  export type NewFluxServiceBudgetAlert = typeof fluxServiceBudgetAlerts.$inferInsert;
18643
18738
  export type FluxServiceCostReconciliation = typeof fluxServiceCostReconciliations.$inferSelect;
@@ -18672,6 +18767,8 @@ export type FluxZipTargetExport = typeof fluxZipTargetExports.$inferSelect;
18672
18767
  export type NewFluxZipTargetExport = typeof fluxZipTargetExports.$inferInsert;
18673
18768
  export type FluxSentinelKeyword = typeof fluxSentinelKeywords.$inferSelect;
18674
18769
  export type NewFluxSentinelKeyword = typeof fluxSentinelKeywords.$inferInsert;
18770
+ export type FluxWebsetsPilotRun = typeof fluxWebsetsPilotRuns.$inferSelect;
18771
+ export type NewFluxWebsetsPilotRun = typeof fluxWebsetsPilotRuns.$inferInsert;
18675
18772
  export type FluxFeedback = typeof fluxFeedback.$inferSelect;
18676
18773
  export type NewFluxFeedback = typeof fluxFeedback.$inferInsert;
18677
18774
  export type FluxMediaMention = typeof fluxMediaMentions.$inferSelect;