@foundrynorth/flux-schema 1.21.0 → 1.22.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.
package/dist/schema.d.ts CHANGED
@@ -5632,6 +5632,13 @@ export declare const fluxServiceUsageEvents: import("drizzle-orm/pg-core").PgTab
5632
5632
  * eviction; `hits` is bumped on each cache hit so we can rank
5633
5633
  * highest-savings keys.
5634
5634
  *
5635
+ * NOTE: `query_fingerprint` is sanitized by consumers BEFORE persistence
5636
+ * (raw query text is stripped — see fn-flux/src/lib/search-cache.ts and
5637
+ * fn-v2 apps/trigger/src/lib/flux/search-cache.ts FINGERPRINT_PERSIST_ALLOWLIST).
5638
+ * The column itself stays nullable jsonb; the schema doesn't enforce the
5639
+ * allowlist, but the security review on PR #357 / #148 documented that
5640
+ * raw queries must NOT land here.
5641
+ *
5635
5642
  * Cache is bypassed when the caller passes an `AbortSignal` (assistant
5636
5643
  * tool calls always want fresh data).
5637
5644
  */
@@ -12157,6 +12164,57 @@ export declare const fluxSentinelKeywords: import("drizzle-orm/pg-core").PgTable
12157
12164
  identity: undefined;
12158
12165
  generated: undefined;
12159
12166
  }, {}, {}>;
12167
+ scanCadenceMinutes: import("drizzle-orm/pg-core").PgColumn<{
12168
+ name: "scan_cadence_minutes";
12169
+ tableName: "flux_sentinel_keywords";
12170
+ dataType: "number";
12171
+ columnType: "PgInteger";
12172
+ data: number;
12173
+ driverParam: string | number;
12174
+ notNull: true;
12175
+ hasDefault: true;
12176
+ isPrimaryKey: false;
12177
+ isAutoincrement: false;
12178
+ hasRuntimeDefault: false;
12179
+ enumValues: undefined;
12180
+ baseColumn: never;
12181
+ identity: undefined;
12182
+ generated: undefined;
12183
+ }, {}, {}>;
12184
+ lastScanAt: import("drizzle-orm/pg-core").PgColumn<{
12185
+ name: "last_scan_at";
12186
+ tableName: "flux_sentinel_keywords";
12187
+ dataType: "date";
12188
+ columnType: "PgTimestamp";
12189
+ data: Date;
12190
+ driverParam: string;
12191
+ notNull: false;
12192
+ hasDefault: false;
12193
+ isPrimaryKey: false;
12194
+ isAutoincrement: false;
12195
+ hasRuntimeDefault: false;
12196
+ enumValues: undefined;
12197
+ baseColumn: never;
12198
+ identity: undefined;
12199
+ generated: undefined;
12200
+ }, {}, {}>;
12201
+ websetMonitorId: import("drizzle-orm/pg-core").PgColumn<{
12202
+ name: "webset_monitor_id";
12203
+ tableName: "flux_sentinel_keywords";
12204
+ dataType: "string";
12205
+ columnType: "PgText";
12206
+ data: string;
12207
+ driverParam: string;
12208
+ notNull: false;
12209
+ hasDefault: false;
12210
+ isPrimaryKey: false;
12211
+ isAutoincrement: false;
12212
+ hasRuntimeDefault: false;
12213
+ enumValues: [string, ...string[]];
12214
+ baseColumn: never;
12215
+ identity: undefined;
12216
+ generated: undefined;
12217
+ }, {}, {}>;
12160
12218
  createdAt: import("drizzle-orm/pg-core").PgColumn<{
12161
12219
  name: "created_at";
12162
12220
  tableName: "flux_sentinel_keywords";
@@ -12194,6 +12252,230 @@ export declare const fluxSentinelKeywords: import("drizzle-orm/pg-core").PgTable
12194
12252
  };
12195
12253
  dialect: "pg";
12196
12254
  }>;
12255
+ /**
12256
+ * flux_websets_pilot_runs — daily comparison rows for the 30-day Phase 5
12257
+ * Websets vs polled-search pilot. Each row captures one (keyword, day) pair
12258
+ * with both pipelines' hit counts so we can decide whether to migrate to
12259
+ * Websets monitors after the pilot window.
12260
+ *
12261
+ * Decision criteria after 30 days:
12262
+ * - Migrate if `webset_hits / polled_hits >= 0.90` AND
12263
+ * `cost_per_fresh_mention_websets < cost_per_fresh_mention_polled`.
12264
+ * - Else stay on polling.
12265
+ */
12266
+ export declare const fluxWebsetsPilotRuns: import("drizzle-orm/pg-core").PgTableWithColumns<{
12267
+ name: "flux_websets_pilot_runs";
12268
+ schema: undefined;
12269
+ columns: {
12270
+ id: import("drizzle-orm/pg-core").PgColumn<{
12271
+ name: "id";
12272
+ tableName: "flux_websets_pilot_runs";
12273
+ dataType: "string";
12274
+ columnType: "PgText";
12275
+ data: string;
12276
+ driverParam: string;
12277
+ notNull: true;
12278
+ hasDefault: true;
12279
+ isPrimaryKey: true;
12280
+ isAutoincrement: false;
12281
+ hasRuntimeDefault: false;
12282
+ enumValues: [string, ...string[]];
12283
+ baseColumn: never;
12284
+ identity: undefined;
12285
+ generated: undefined;
12286
+ }, {}, {}>;
12287
+ keywordId: import("drizzle-orm/pg-core").PgColumn<{
12288
+ name: "keyword_id";
12289
+ tableName: "flux_websets_pilot_runs";
12290
+ dataType: "string";
12291
+ columnType: "PgText";
12292
+ data: string;
12293
+ driverParam: string;
12294
+ notNull: true;
12295
+ hasDefault: false;
12296
+ isPrimaryKey: false;
12297
+ isAutoincrement: false;
12298
+ hasRuntimeDefault: false;
12299
+ enumValues: [string, ...string[]];
12300
+ baseColumn: never;
12301
+ identity: undefined;
12302
+ generated: undefined;
12303
+ }, {}, {}>;
12304
+ pilotDate: import("drizzle-orm/pg-core").PgColumn<{
12305
+ name: "pilot_date";
12306
+ tableName: "flux_websets_pilot_runs";
12307
+ dataType: "string";
12308
+ columnType: "PgDateString";
12309
+ data: string;
12310
+ driverParam: string;
12311
+ notNull: true;
12312
+ hasDefault: false;
12313
+ isPrimaryKey: false;
12314
+ isAutoincrement: false;
12315
+ hasRuntimeDefault: false;
12316
+ enumValues: undefined;
12317
+ baseColumn: never;
12318
+ identity: undefined;
12319
+ generated: undefined;
12320
+ }, {}, {}>;
12321
+ polledHits: import("drizzle-orm/pg-core").PgColumn<{
12322
+ name: "polled_hits";
12323
+ tableName: "flux_websets_pilot_runs";
12324
+ dataType: "number";
12325
+ columnType: "PgInteger";
12326
+ data: number;
12327
+ driverParam: string | number;
12328
+ notNull: true;
12329
+ hasDefault: true;
12330
+ isPrimaryKey: false;
12331
+ isAutoincrement: false;
12332
+ hasRuntimeDefault: false;
12333
+ enumValues: undefined;
12334
+ baseColumn: never;
12335
+ identity: undefined;
12336
+ generated: undefined;
12337
+ }, {}, {}>;
12338
+ websetHits: import("drizzle-orm/pg-core").PgColumn<{
12339
+ name: "webset_hits";
12340
+ tableName: "flux_websets_pilot_runs";
12341
+ dataType: "number";
12342
+ columnType: "PgInteger";
12343
+ data: number;
12344
+ driverParam: string | number;
12345
+ notNull: true;
12346
+ hasDefault: true;
12347
+ isPrimaryKey: false;
12348
+ isAutoincrement: false;
12349
+ hasRuntimeDefault: false;
12350
+ enumValues: undefined;
12351
+ baseColumn: never;
12352
+ identity: undefined;
12353
+ generated: undefined;
12354
+ }, {}, {}>;
12355
+ polledOnlyCount: import("drizzle-orm/pg-core").PgColumn<{
12356
+ name: "polled_only_count";
12357
+ tableName: "flux_websets_pilot_runs";
12358
+ dataType: "number";
12359
+ columnType: "PgInteger";
12360
+ data: number;
12361
+ driverParam: string | number;
12362
+ notNull: true;
12363
+ hasDefault: true;
12364
+ isPrimaryKey: false;
12365
+ isAutoincrement: false;
12366
+ hasRuntimeDefault: false;
12367
+ enumValues: undefined;
12368
+ baseColumn: never;
12369
+ identity: undefined;
12370
+ generated: undefined;
12371
+ }, {}, {}>;
12372
+ websetOnlyCount: import("drizzle-orm/pg-core").PgColumn<{
12373
+ name: "webset_only_count";
12374
+ tableName: "flux_websets_pilot_runs";
12375
+ dataType: "number";
12376
+ columnType: "PgInteger";
12377
+ data: number;
12378
+ driverParam: string | number;
12379
+ notNull: true;
12380
+ hasDefault: true;
12381
+ isPrimaryKey: false;
12382
+ isAutoincrement: false;
12383
+ hasRuntimeDefault: false;
12384
+ enumValues: undefined;
12385
+ baseColumn: never;
12386
+ identity: undefined;
12387
+ generated: undefined;
12388
+ }, {}, {}>;
12389
+ overlapCount: import("drizzle-orm/pg-core").PgColumn<{
12390
+ name: "overlap_count";
12391
+ tableName: "flux_websets_pilot_runs";
12392
+ dataType: "number";
12393
+ columnType: "PgInteger";
12394
+ data: number;
12395
+ driverParam: string | number;
12396
+ notNull: true;
12397
+ hasDefault: true;
12398
+ isPrimaryKey: false;
12399
+ isAutoincrement: false;
12400
+ hasRuntimeDefault: false;
12401
+ enumValues: undefined;
12402
+ baseColumn: never;
12403
+ identity: undefined;
12404
+ generated: undefined;
12405
+ }, {}, {}>;
12406
+ polledCostUsdMicro: import("drizzle-orm/pg-core").PgColumn<{
12407
+ name: "polled_cost_usd_micro";
12408
+ tableName: "flux_websets_pilot_runs";
12409
+ dataType: "number";
12410
+ columnType: "PgInteger";
12411
+ data: number;
12412
+ driverParam: string | number;
12413
+ notNull: true;
12414
+ hasDefault: true;
12415
+ isPrimaryKey: false;
12416
+ isAutoincrement: false;
12417
+ hasRuntimeDefault: false;
12418
+ enumValues: undefined;
12419
+ baseColumn: never;
12420
+ identity: undefined;
12421
+ generated: undefined;
12422
+ }, {}, {}>;
12423
+ websetCreditsConsumed: import("drizzle-orm/pg-core").PgColumn<{
12424
+ name: "webset_credits_consumed";
12425
+ tableName: "flux_websets_pilot_runs";
12426
+ dataType: "number";
12427
+ columnType: "PgInteger";
12428
+ data: number;
12429
+ driverParam: string | number;
12430
+ notNull: true;
12431
+ hasDefault: true;
12432
+ isPrimaryKey: false;
12433
+ isAutoincrement: false;
12434
+ hasRuntimeDefault: false;
12435
+ enumValues: undefined;
12436
+ baseColumn: never;
12437
+ identity: undefined;
12438
+ generated: undefined;
12439
+ }, {}, {}>;
12440
+ metadata: import("drizzle-orm/pg-core").PgColumn<{
12441
+ name: "metadata";
12442
+ tableName: "flux_websets_pilot_runs";
12443
+ dataType: "json";
12444
+ columnType: "PgJsonb";
12445
+ data: Record<string, unknown> | null;
12446
+ driverParam: unknown;
12447
+ notNull: false;
12448
+ hasDefault: false;
12449
+ isPrimaryKey: false;
12450
+ isAutoincrement: false;
12451
+ hasRuntimeDefault: false;
12452
+ enumValues: undefined;
12453
+ baseColumn: never;
12454
+ identity: undefined;
12455
+ generated: undefined;
12456
+ }, {}, {
12457
+ $type: Record<string, unknown> | null;
12458
+ }>;
12459
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
12460
+ name: "created_at";
12461
+ tableName: "flux_websets_pilot_runs";
12462
+ dataType: "date";
12463
+ columnType: "PgTimestamp";
12464
+ data: Date;
12465
+ driverParam: string;
12466
+ notNull: true;
12467
+ hasDefault: true;
12468
+ isPrimaryKey: false;
12469
+ isAutoincrement: false;
12470
+ hasRuntimeDefault: false;
12471
+ enumValues: undefined;
12472
+ baseColumn: never;
12473
+ identity: undefined;
12474
+ generated: undefined;
12475
+ }, {}, {}>;
12476
+ };
12477
+ dialect: "pg";
12478
+ }>;
12197
12479
  /**
12198
12480
  * Discovered media mentions. Deduplication by URL.
12199
12481
  * Stores Exa search results with LLM-derived severity classification.
@@ -18672,6 +18954,8 @@ export type FluxZipTargetExport = typeof fluxZipTargetExports.$inferSelect;
18672
18954
  export type NewFluxZipTargetExport = typeof fluxZipTargetExports.$inferInsert;
18673
18955
  export type FluxSentinelKeyword = typeof fluxSentinelKeywords.$inferSelect;
18674
18956
  export type NewFluxSentinelKeyword = typeof fluxSentinelKeywords.$inferInsert;
18957
+ export type FluxWebsetsPilotRun = typeof fluxWebsetsPilotRuns.$inferSelect;
18958
+ export type NewFluxWebsetsPilotRun = typeof fluxWebsetsPilotRuns.$inferInsert;
18675
18959
  export type FluxFeedback = typeof fluxFeedback.$inferSelect;
18676
18960
  export type NewFluxFeedback = typeof fluxFeedback.$inferInsert;
18677
18961
  export type FluxMediaMention = typeof fluxMediaMentions.$inferSelect;