@cat-factory/node-server 0.215.13 → 0.217.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.
Files changed (67) hide show
  1. package/dist/config.d.ts.map +1 -1
  2. package/dist/config.js +25 -1
  3. package/dist/config.js.map +1 -1
  4. package/dist/container-content-library-deps.d.ts +4 -2
  5. package/dist/container-content-library-deps.d.ts.map +1 -1
  6. package/dist/container-content-library-deps.js +21 -1
  7. package/dist/container-content-library-deps.js.map +1 -1
  8. package/dist/container-core-deps.js +1 -1
  9. package/dist/container-core-deps.js.map +1 -1
  10. package/dist/container.d.ts.map +1 -1
  11. package/dist/container.js +8 -0
  12. package/dist/container.js.map +1 -1
  13. package/dist/db/schema-integrations.d.ts +217 -0
  14. package/dist/db/schema-integrations.d.ts.map +1 -1
  15. package/dist/db/schema-integrations.js +32 -1
  16. package/dist/db/schema-integrations.js.map +1 -1
  17. package/dist/db/schema.d.ts +1 -681
  18. package/dist/db/schema.d.ts.map +1 -1
  19. package/dist/db/schema.js +5 -87
  20. package/dist/db/schema.js.map +1 -1
  21. package/dist/db/tables/environments.d.ts +697 -0
  22. package/dist/db/tables/environments.d.ts.map +1 -0
  23. package/dist/db/tables/environments.js +100 -0
  24. package/dist/db/tables/environments.js.map +1 -0
  25. package/dist/db/tables/observability.d.ts +30 -0
  26. package/dist/db/tables/observability.d.ts.map +1 -1
  27. package/dist/db/tables/observability.js +13 -0
  28. package/dist/db/tables/observability.js.map +1 -1
  29. package/dist/foundationalServices.d.ts +10 -0
  30. package/dist/foundationalServices.d.ts.map +1 -1
  31. package/dist/foundationalServices.js +26 -1
  32. package/dist/foundationalServices.js.map +1 -1
  33. package/dist/modelProvider.d.ts.map +1 -1
  34. package/dist/modelProvider.js +2 -1
  35. package/dist/modelProvider.js.map +1 -1
  36. package/dist/providerEndpoints.d.ts +8 -0
  37. package/dist/providerEndpoints.d.ts.map +1 -1
  38. package/dist/providerEndpoints.js +10 -1
  39. package/dist/providerEndpoints.js.map +1 -1
  40. package/dist/repositories/drizzle/serviceCatalog.d.ts +33 -0
  41. package/dist/repositories/drizzle/serviceCatalog.d.ts.map +1 -0
  42. package/dist/repositories/drizzle/serviceCatalog.js +146 -0
  43. package/dist/repositories/drizzle/serviceCatalog.js.map +1 -0
  44. package/dist/repositories/drizzle/telemetry.d.ts.map +1 -1
  45. package/dist/repositories/drizzle/telemetry.js +8 -0
  46. package/dist/repositories/drizzle/telemetry.js.map +1 -1
  47. package/dist/repositories/drizzle.d.ts +2 -1
  48. package/dist/repositories/drizzle.d.ts.map +1 -1
  49. package/dist/repositories/drizzle.js +2 -0
  50. package/dist/repositories/drizzle.js.map +1 -1
  51. package/dist/repositories/environments.d.ts.map +1 -1
  52. package/dist/repositories/environments.js +3 -0
  53. package/dist/repositories/environments.js.map +1 -1
  54. package/dist/repositories/foundationalServices.d.ts +7 -0
  55. package/dist/repositories/foundationalServices.d.ts.map +1 -1
  56. package/dist/repositories/foundationalServices.js +110 -64
  57. package/dist/repositories/foundationalServices.js.map +1 -1
  58. package/dist/server.d.ts.map +1 -1
  59. package/dist/server.js +33 -18
  60. package/dist/server.js.map +1 -1
  61. package/drizzle/20260901102230_lively_butterfly/migration.sql +18 -0
  62. package/drizzle/20260901102230_lively_butterfly/snapshot.json +22215 -0
  63. package/drizzle/20260901103748_secret_human_cannonball/migration.sql +7 -0
  64. package/drizzle/20260901103748_secret_human_cannonball/snapshot.json +22022 -0
  65. package/drizzle/20260901201021_faulty_meteorite/migration.sql +1 -0
  66. package/drizzle/20260901201021_faulty_meteorite/snapshot.json +22255 -0
  67. package/package.json +21 -21
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environments.d.ts","sourceRoot":"","sources":["../../../src/db/tables/environments.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBlC,CAAA;AAKD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCxB,CAAA;AAMD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwB/B,CAAA"}
@@ -0,0 +1,100 @@
1
+ import { sql } from 'drizzle-orm';
2
+ import { bigint, index, pgTable, primaryKey, text } from 'drizzle-orm/pg-core';
3
+ // The EPHEMERAL-ENVIRONMENT tables, extracted from `schema.ts` to keep that module inside its
4
+ // size budget: the per-provision-type infra handlers a workspace binds, the registry of
5
+ // environments provisioned through them, and the developer-triggered self-test runs that
6
+ // exercise one frame's provisioning config end to end. One cohesive group, re-exported from
7
+ // `schema.ts` so every `from '../db/schema.js'` importer is unaffected and drizzle-kit still sees
8
+ // the tables through that entry point.
9
+ // Ephemeral-environment integration (mirror of D1 migration 0025). A workspace's per-
10
+ // provision-type infra HANDLERS (how a service's declared provision type is stood up) and
11
+ // the registry of environments provisioned from them. Keyed by (workspace_id,
12
+ // provision_type, manifest_id): one handler per type, plus one per pinned custom manifest
13
+ // id ('' for non-custom). `handler_json` carries the engine connection (sans secrets); the
14
+ // manifests to apply come from the service at provision time. Credentials are opaque
15
+ // ciphertext (SecretCipher envelopes), never plaintext. See
16
+ // docs/initiatives/per-service-provision-types.md.
17
+ export const environmentConnections = pgTable('environment_connections', {
18
+ workspace_id: text('workspace_id').notNull(),
19
+ provision_type: text('provision_type').notNull(),
20
+ manifest_id: text('manifest_id').notNull().default(''),
21
+ engine: text('engine').notNull(),
22
+ backend_kind: text('backend_kind').notNull(),
23
+ provider_id: text('provider_id').notNull(),
24
+ label: text('label').notNull(),
25
+ base_url: text('base_url').notNull(),
26
+ handler_json: text('handler_json').notNull(),
27
+ accepts_manifest_id: text('accepts_manifest_id'),
28
+ secrets_cipher: text('secrets_cipher').notNull(),
29
+ created_at: bigint('created_at', { mode: 'number' }).notNull(),
30
+ deleted_at: bigint('deleted_at', { mode: 'number' }),
31
+ }, (t) => [
32
+ primaryKey({ columns: [t.workspace_id, t.provision_type, t.manifest_id] }),
33
+ index('idx_environment_conn_workspace')
34
+ .on(t.workspace_id)
35
+ .where(sql `${t.deleted_at} IS NULL`),
36
+ ]);
37
+ // One row per provisioned environment. `access_cipher` holds the env's own access
38
+ // creds (what the tester uses); `provision_fields_cipher` holds the fields captured at
39
+ // provision time that status/teardown calls interpolate.
40
+ export const environments = pgTable('environments', {
41
+ id: text('id').primaryKey(),
42
+ workspace_id: text('workspace_id').notNull(),
43
+ block_id: text('block_id'),
44
+ // The service FRAME this env belongs to (the deployer block walked up to its frame). The
45
+ // cross-frame discovery key: a `frontend` frame's `service` binding resolves the live env
46
+ // by the bound service FRAME id, not the task the deployer ran on (`block_id`).
47
+ frame_id: text('frame_id'),
48
+ execution_id: text('execution_id'),
49
+ provider_id: text('provider_id').notNull(),
50
+ external_id: text('external_id'),
51
+ url: text('url'),
52
+ status: text('status').notNull(),
53
+ access_cipher: text('access_cipher'),
54
+ provision_fields_cipher: text('provision_fields_cipher'),
55
+ created_at: bigint('created_at', { mode: 'number' }).notNull(),
56
+ expires_at: bigint('expires_at', { mode: 'number' }),
57
+ last_error: text('last_error'),
58
+ // The provider's account of a state it has not left yet (why the env is not ready), written
59
+ // on every provision and poll regardless of status, where `last_error` is written only on
60
+ // `failed`. Mirror of D1 migration 0098; see the kernel `EnvironmentRecord`.
61
+ status_note: text('status_note'),
62
+ deleted_at: bigint('deleted_at', { mode: 'number' }),
63
+ // The service's declared provision type + the resolved engine that handled it,
64
+ // recorded at provision time so run details can show exactly what ran where.
65
+ provision_type: text('provision_type'),
66
+ engine: text('engine'),
67
+ }, (t) => [
68
+ index('idx_environments_block')
69
+ .on(t.workspace_id, t.block_id)
70
+ .where(sql `${t.deleted_at} IS NULL`),
71
+ index('idx_environments_expiry')
72
+ .on(t.expires_at)
73
+ .where(sql `${t.deleted_at} IS NULL AND ${t.expires_at} IS NOT NULL`),
74
+ ]);
75
+ // Ephemeral-environment self-test runs (mirror of D1 migration 0050). A developer-triggered
76
+ // diagnostic that exercises a service frame's provisioning config end to end against a
77
+ // throwaway branch (create branch → provision → tear down → delete branch). Its own table
78
+ // (not agent_runs) because it carries a `stage` state machine and is not a container agent.
79
+ export const environmentTestRuns = pgTable('environment_test_runs', {
80
+ id: text('id').primaryKey(),
81
+ workspace_id: text('workspace_id').notNull(),
82
+ block_id: text('block_id').notNull(),
83
+ status: text('status').notNull(),
84
+ stage: text('stage').notNull(),
85
+ initiated_by: text('initiated_by'),
86
+ // The frame's provisioning config, pinned at dispatch (JSON); see the kernel port.
87
+ provisioning: text('provisioning').notNull(),
88
+ branch: text('branch'),
89
+ environment_id: text('environment_id'),
90
+ env_url: text('env_url'),
91
+ error: text('error'),
92
+ failed_stage: text('failed_stage'),
93
+ created_at: bigint('created_at', { mode: 'number' }).notNull(),
94
+ updated_at: bigint('updated_at', { mode: 'number' }).notNull(),
95
+ }, (t) => [
96
+ index('idx_environment_test_runs_ws_status').on(t.workspace_id, t.status),
97
+ // The cross-workspace stale-run sweep (`listStale`) scans running runs by lease age.
98
+ index('idx_environment_test_runs_status_updated').on(t.status, t.updated_at),
99
+ ]);
100
+ //# sourceMappingURL=environments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../src/db/tables/environments.ts"],"names":[],"mappings":"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"}
@@ -468,6 +468,36 @@ export declare const llmCallMetrics: import("drizzle-orm/pg-core").PgTableWithCo
468
468
  identity: undefined;
469
469
  generated: undefined;
470
470
  }>;
471
+ reported_cost_usd: import("drizzle-orm/pg-core").PgBuildColumn<"llm_call_metrics", import("drizzle-orm/pg-core").PgDoublePrecisionBuilder, {
472
+ name: string;
473
+ tableName: "llm_call_metrics";
474
+ dataType: "number double";
475
+ data: number;
476
+ driverParam: string | number;
477
+ notNull: false;
478
+ hasDefault: false;
479
+ isPrimaryKey: false;
480
+ isAutoincrement: false;
481
+ hasRuntimeDefault: false;
482
+ enumValues: undefined;
483
+ identity: undefined;
484
+ generated: undefined;
485
+ }>;
486
+ upstream_provider: import("drizzle-orm/pg-core").PgBuildColumn<"llm_call_metrics", import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>, {
487
+ name: string;
488
+ tableName: "llm_call_metrics";
489
+ dataType: "string";
490
+ data: string;
491
+ driverParam: string;
492
+ notNull: false;
493
+ hasDefault: false;
494
+ isPrimaryKey: false;
495
+ isAutoincrement: false;
496
+ hasRuntimeDefault: false;
497
+ enumValues: undefined;
498
+ identity: undefined;
499
+ generated: undefined;
500
+ }>;
471
501
  };
472
502
  dialect: 'pg';
473
503
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../../src/db/tables/observability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../../src/db/tables/observability.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,19 @@ export const llmCallMetrics = telemetry.table('llm_call_metrics', {
69
69
  // reasoning model can spend its whole output budget here and return empty
70
70
  // response_text). Mirrors D1 migration 0002_llm_reasoning_text.
71
71
  reasoning_text: text('reasoning_text').notNull().default(''),
72
+ // What the VENDOR said this call cost, in USD, for the one provider class that says: an
73
+ // OpenRouter call with usage accounting on reports its own ledger figure. NULL everywhere
74
+ // else, and NULL is the load-bearing value: every other row's cost is DERIVED from the
75
+ // spend price table, and a 0 here would claim a free call rather than an unreported one.
76
+ // Stored in the vendor's own currency rather than converted, because the USD→spend-currency
77
+ // rate is this platform's assumption and the reported figure is not. Mirrors D1 telemetry
78
+ // migration 0007_llm_call_gateway_attribution.
79
+ reported_cost_usd: doublePrecision('reported_cost_usd'),
80
+ // WHICH upstream a gateway routed this call to (OpenRouter's `provider`), e.g. `anthropic`
81
+ // or `deepinfra`. NULL for a direct vendor, where `provider` above already names it. A
82
+ // gateway resells many upstreams at different rates and reliabilities, so without this a
83
+ // slow or failing upstream is invisible: every row just reads `openrouter`.
84
+ upstream_provider: text('upstream_provider'),
72
85
  }, (t) => [
73
86
  index('idx_llm_call_metrics_execution').on(t.workspace_id, t.execution_id, t.created_at),
74
87
  index('idx_llm_call_metrics_created').on(t.created_at),
@@ -1 +1 @@
1
- {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../../src/db/tables/observability.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,eAAe,EACf,KAAK,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,IAAI,GACL,MAAM,qBAAqB,CAAA;AAE5B,2FAA2F;AAC3F,6FAA6F;AAC7F,qBAAqB;AACrB,+FAA+F;AAC/F,uCAAuC;AACvC,EAAE;AACF,8FAA8F;AAC9F,yFAAyF;AACzF,oFAAoF;AACpF,wEAAwE;AAExE,6EAA6E;AAC7E,sFAAsF;AACtF,sFAAsF;AACtF,uFAAuF;AACvF,oFAAoF;AACpF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;AAE9C,4EAA4E;AAC5E,kFAAkF;AAClF,mFAAmF;AACnF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAC3C,kBAAkB,EAClB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;IAClC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACxC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IACpC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;IAC9B,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IAC9D,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,yFAAyF;IACzF,0FAA0F;IAC1F,wFAAwF;IACxF,yFAAyF;IACzF,gFAAgF;IAChF,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC;IACjC,+FAA+F;IAC/F,gGAAgG;IAChG,gGAAgG;IAChG,gGAAgG;IAChG,+FAA+F;IAC/F,uFAAuF;IACvF,4BAA4B;IAC5B,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,CAAC;IACjD,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,kBAAkB,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtE,iBAAiB,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC;IACnC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC;IACpC,gFAAgF;IAChF,qFAAqF;IACrF,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,mBAAmB,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,gFAAgF;IAChF,0EAA0E;IAC1E,gEAAgE;IAChE,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7D,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,KAAK,CAAC,gCAAgC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IACxF,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;CACvD,CACF,CAAA;AAED,oFAAoF;AACpF,mFAAmF;AACnF,qFAAqF;AACrF,sFAAsF;AACtF,+EAA+E;AAC/E,oFAAoF;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC,KAAK,CAClD,yBAAyB,EACzB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACxC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IAC9D,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;IACpB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;IACxB,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,+DAA+D;IAC/D,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACpD,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAC5D,iFAAiF;IACjF,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CAC/C,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,KAAK,CAAC,uCAAuC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IAC/F,KAAK,CAAC,qCAAqC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;CAC9D,CACF,CAAA;AAED,wFAAwF;AACxF,yFAAyF;AACzF,mFAAmF;AACnF,gDAAgD;AAChD,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC,KAAK,CAC/C,sBAAsB,EACtB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACxC,8EAA8E;IAC9E,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;IAC1B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CAC/D,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,KAAK,CAAC,oCAAoC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IAC5F,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;CAC3D,CACF,CAAA;AAED,0FAA0F;AAC1F,+FAA+F;AAC/F,sFAAsF;AACtF,+FAA+F;AAC/F,2FAA2F;AAC3F,mEAAmE;AACnE,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAC3C,kBAAkB,EAClB;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;IACxC,mFAAmF;IACnF,oFAAoF;IACpF,6EAA6E;IAC7E,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IAChC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;IAC7B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE;IAC5B,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IAC9D,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1D,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;IACpD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,cAAc,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CAC/D,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,KAAK,CAAC,iCAAiC,CAAC,CAAC,EAAE,CACzC,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,YAAY,EACd,CAAC,CAAC,UAAU,EACZ,CAAC,CAAC,GAAG,CACN;IACD,KAAK,CAAC,gCAAgC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IACxF,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;IAC5F,KAAK,CAAC,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;CACvD,CACF,CAAA;AAED,8EAA8E;AAC9E,4FAA4F;AAC5F,qFAAqF;AACrF,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CACjC,eAAe,EACf;IACE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE;IAC3B,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;IACpC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;IACtC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;IAChC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;IAClC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CAC/D,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,wEAAwE;IACxE,KAAK,CAAC,qCAAqC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC;IAC7E,mFAAmF;IACnF,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;CACpD,CACF,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CACpC,mBAAmB,EACnB;IACE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5D,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;IAChC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;CAC1C,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;IAChF,4FAA4F;IAC5F,KAAK,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;CACnD,CACF,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAC9B,YAAY,EACZ;IACE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IAC5D,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACrD,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5C,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC;IACtC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChD,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC;IAChC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;IAClC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;IAC5B,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,aAAa,EAAE,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,iBAAiB,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7E,EACD,CAAC,CAAC,EAAE,EAAE,CAAC;IACL,UAAU,CAAC;QACT,OAAO,EAAE;YACP,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,MAAM;SACT;KACF,CAAC;IACF,wFAAwF;IACxF,KAAK,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC;IAC7D,yFAAyF;IACzF,KAAK,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3C,8EAA8E;IAC9E,KAAK,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC;CACrE,CACF,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,uBAAuB,EAAE;IAClE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE;IACnC,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IAChE,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;CAC/D,CAAC,CAAA"}
1
+ {"version":3,"file":"observability.js","sourceRoot":"","sources":["../../../src/db/tables/observability.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,14 @@ import { type Logger, type ServerContainer, type SweepHealthTracker } from '@cat
7
7
  export declare function startFoundationalSourceSweeper(container: ServerContainer, log: Logger,
8
8
  /** Records each pass's outcome under this sweep's name (see {@link startSweeper}). */
9
9
  health: SweepHealthTracker): () => void;
10
+ /**
11
+ * Start the periodic SERVICE-CATALOG refresh: the Node analogue of the Worker's cron pass, over
12
+ * the same shared `sweepServiceCatalogs` (which owns the window and the batch bound).
13
+ *
14
+ * Its own sweeper rather than another `tick` inside the one above, because the two have different
15
+ * windows for a real reason: a repo source's refresh is one conditional head-commit read, and a
16
+ * portal import pages the estate. Folding them would make the cheaper pass run at the slower
17
+ * cadence or the expensive one at the faster.
18
+ */
19
+ export declare function startServiceCatalogSweeper(container: ServerContainer, log: Logger, health: SweepHealthTracker): () => void;
10
20
  //# sourceMappingURL=foundationalServices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"foundationalServices.d.ts","sourceRoot":"","sources":["../src/foundationalServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAA;AAgB5B;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,MAAM;AACX,sFAAsF;AACtF,MAAM,EAAE,kBAAkB,GACzB,MAAM,IAAI,CAYZ"}
1
+ {"version":3,"file":"foundationalServices.d.ts","sourceRoot":"","sources":["../src/foundationalServices.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAA;AAgB5B;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,MAAM;AACX,sFAAsF;AACtF,MAAM,EAAE,kBAAkB,GACzB,MAAM,IAAI,CAYZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,eAAe,EAC1B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,kBAAkB,GACzB,MAAM,IAAI,CAcZ"}
@@ -1,4 +1,4 @@
1
- import { FOUNDATIONAL_SOURCE_STALE_MS, sweepFoundationalSources, } from '@cat-factory/server';
1
+ import { FOUNDATIONAL_SOURCE_STALE_MS, SERVICE_CATALOG_SWEEP_PERIOD_MS, sweepFoundationalSources, sweepServiceCatalogs, } from '@cat-factory/server';
2
2
  import { startSweeper } from './sweeper.js';
3
3
  // Periodic AUTOREFRESH of repo-linked foundational-service sources for the Node facade — the
4
4
  // analogue of the Worker's cron-driven pass. Both run the SAME `sweepFoundationalSources` from
@@ -32,4 +32,29 @@ health) {
32
32
  },
33
33
  });
34
34
  }
35
+ /**
36
+ * Start the periodic SERVICE-CATALOG refresh: the Node analogue of the Worker's cron pass, over
37
+ * the same shared `sweepServiceCatalogs` (which owns the window and the batch bound).
38
+ *
39
+ * Its own sweeper rather than another `tick` inside the one above, because the two have different
40
+ * windows for a real reason: a repo source's refresh is one conditional head-commit read, and a
41
+ * portal import pages the estate. Folding them would make the cheaper pass run at the slower
42
+ * cadence or the expensive one at the faster.
43
+ */
44
+ export function startServiceCatalogSweeper(container, log, health) {
45
+ if (!container.foundationalServices?.serviceCatalog)
46
+ return () => { };
47
+ return startSweeper({
48
+ name: 'service-catalog',
49
+ // The sweep's own PERIOD, not its staleness window: see `SERVICE_CATALOG_SWEEP_PERIOD_MS` for
50
+ // why running once per window caps a deployment at one batch per window.
51
+ intervalMs: SERVICE_CATALOG_SWEEP_PERIOD_MS,
52
+ log,
53
+ health,
54
+ failureMessage: 'service-catalog sweep failed',
55
+ tick: async () => {
56
+ await sweepServiceCatalogs(container.foundationalServices, log);
57
+ },
58
+ });
59
+ }
35
60
  //# sourceMappingURL=foundationalServices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"foundationalServices.js","sourceRoot":"","sources":["../src/foundationalServices.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,GAIzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,6FAA6F;AAC7F,+FAA+F;AAC/F,0FAA0F;AAC1F,yDAAyD;AAEzD;;;;;GAKG;AACH,MAAM,8BAA8B,GAAG,4BAA4B,CAAA;AAEnE;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,SAA0B,EAC1B,GAAW;AACX,sFAAsF;AACtF,MAA0B;IAE1B,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,aAAa;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACnE,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE,sBAAsB;QAC5B,UAAU,EAAE,8BAA8B;QAC1C,GAAG;QACH,MAAM;QACN,cAAc,EAAE,kCAAkC;QAClD,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,wBAAwB,CAAC,SAAS,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;QACrE,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"foundationalServices.js","sourceRoot":"","sources":["../src/foundationalServices.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,wBAAwB,EACxB,oBAAoB,GAIrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,6FAA6F;AAC7F,+FAA+F;AAC/F,0FAA0F;AAC1F,yDAAyD;AAEzD;;;;;GAKG;AACH,MAAM,8BAA8B,GAAG,4BAA4B,CAAA;AAEnE;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,SAA0B,EAC1B,GAAW;AACX,sFAAsF;AACtF,MAA0B;IAE1B,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,aAAa;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACnE,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE,sBAAsB;QAC5B,UAAU,EAAE,8BAA8B;QAC1C,GAAG;QACH,MAAM;QACN,cAAc,EAAE,kCAAkC;QAClD,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,wBAAwB,CAAC,SAAS,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;QACrE,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACxC,SAA0B,EAC1B,GAAW,EACX,MAA0B;IAE1B,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,cAAc;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACpE,OAAO,YAAY,CAAC;QAClB,IAAI,EAAE,iBAAiB;QACvB,8FAA8F;QAC9F,yEAAyE;QACzE,UAAU,EAAE,+BAA+B;QAC3C,GAAG;QACH,MAAM;QACN,cAAc,EAAE,8BAA8B;QAC9C,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,oBAAoB,CAAC,SAAS,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;QACjE,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"modelProvider.d.ts","sourceRoot":"","sources":["../src/modelProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACzF,OAAO,EAAE,KAAK,qBAAqB,EAAqB,MAAM,qBAAqB,CAAA;AAMnF,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,qBAAqB,CAAA;AAiB5B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,CAAA;AAEpD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,sBAAsB,EAAE,mBAAmB,GAC1C,gBAAgB,GAAG,SAAS,CA2B9B;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,mBAAmB,CAAC,EAAE,yBAAyB,GAC9C,qBAAqB,CAoCvB"}
1
+ {"version":3,"file":"modelProvider.d.ts","sourceRoot":"","sources":["../src/modelProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACzF,OAAO,EAAE,KAAK,qBAAqB,EAAqB,MAAM,qBAAqB,CAAA;AAMnF,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,qBAAqB,CAAA;AAqB5B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,CAAA;AAEpD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,sBAAsB,EAAE,mBAAmB,GAC1C,gBAAgB,GAAG,SAAS,CA2B9B;AAED,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,mBAAmB,CAAC,EAAE,yBAAyB,GAC9C,qBAAqB,CAqCvB"}
@@ -5,7 +5,7 @@ import { createLangfuseSink } from '@cat-factory/observability-langfuse';
5
5
  import { parseOtlpHeaders } from '@cat-factory/observability-otel';
6
6
  import { createNodeOtelSink } from '@cat-factory/observability-otel/node';
7
7
  import { bedrockAllowListFromEnv, bedrockRegionFromEnv, createScopedModelProviderResolver, } from '@cat-factory/server';
8
- import { baseUrlForNode, cloudflareRestCredentials } from './providerEndpoints.js';
8
+ import { baseUrlForNode, cloudflareRestCredentials, openRouterRoutingForNode, } from './providerEndpoints.js';
9
9
  /**
10
10
  * Build the inline instrumentation from the process env — Langfuse (fetch) and/or the
11
11
  * OpenTelemetry SDK sink, composed via a fan-out. This is the trace-sink-only shape, for a
@@ -70,6 +70,7 @@ export function createNodeModelProviderResolver(env, apiKeys, localModelEndpoint
70
70
  apiKeys,
71
71
  baseUrlFor: (provider) => baseUrlForNode(provider, env),
72
72
  extraRegistries,
73
+ openRouterRouting: openRouterRoutingForNode(env),
73
74
  // The service itself, so the endpoint read and the transport carrying the deployment's
74
75
  // loopback/LAN policy (re-validated on every redirect hop, SEC-2/SEC-3) cannot come from
75
76
  // two different places.
@@ -1 +1 @@
1
- {"version":3,"file":"modelProvider.js","sourceRoot":"","sources":["../src/modelProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelProvider.js","sourceRoot":"","sources":["../src/modelProvider.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type OpenRouterRouting } from '@cat-factory/agents';
1
2
  /**
2
3
  * The base URL for a direct provider: the `${PROVIDER}_BASE_URL` env override (e.g.
3
4
  * QWEN_BASE_URL), else the built-in default. The override-vs-default precedence and the
@@ -10,6 +11,13 @@
10
11
  * and container paths take.
11
12
  */
12
13
  export declare function baseUrlForNode(provider: string, env: NodeJS.ProcessEnv): string | undefined;
14
+ /**
15
+ * This deployment's OpenRouter routing constraints: what it will let the gateway route to.
16
+ * Strict on both axes unless the operator says otherwise; the parse and its reasoning are shared
17
+ * with the Worker facade so one deployment cannot be permissive on one runtime and strict on the
18
+ * other.
19
+ */
20
+ export declare function openRouterRoutingForNode(env: NodeJS.ProcessEnv): OpenRouterRouting;
13
21
  /** A deployment's Cloudflare account credentials for reaching Workers AI over REST. */
14
22
  export interface CloudflareRestCredentials {
15
23
  accountId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"providerEndpoints.d.ts","sourceRoot":"","sources":["../src/providerEndpoints.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAE3F;AAED,uFAAuF;AACvF,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,yBAAyB,GAAG,SAAS,CAMvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIjD"}
1
+ {"version":3,"file":"providerEndpoints.d.ts","sourceRoot":"","sources":["../src/providerEndpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,qBAAqB,CAAA;AAe5B;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAE3F;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,iBAAiB,CAElF;AAED,uFAAuF;AACvF,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB,yBAAyB,GAAG,SAAS,CAMvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,CAAC,UAAU,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIjD"}
@@ -1,4 +1,4 @@
1
- import { cloudflareRestBaseUrl, resolveOpenAiCompatibleBaseUrl } from '@cat-factory/agents';
1
+ import { cloudflareRestBaseUrl, openRouterRoutingFrom, resolveOpenAiCompatibleBaseUrl, } from '@cat-factory/agents';
2
2
  // The Node facade's env plumbing for the shared provider table, and NOTHING else: this module is
3
3
  // deliberately a LEAF over @cat-factory/agents.
4
4
  //
@@ -25,6 +25,15 @@ import { cloudflareRestBaseUrl, resolveOpenAiCompatibleBaseUrl } from '@cat-fact
25
25
  export function baseUrlForNode(provider, env) {
26
26
  return resolveOpenAiCompatibleBaseUrl(provider, env[`${provider.toUpperCase()}_BASE_URL`]);
27
27
  }
28
+ /**
29
+ * This deployment's OpenRouter routing constraints: what it will let the gateway route to.
30
+ * Strict on both axes unless the operator says otherwise; the parse and its reasoning are shared
31
+ * with the Worker facade so one deployment cannot be permissive on one runtime and strict on the
32
+ * other.
33
+ */
34
+ export function openRouterRoutingForNode(env) {
35
+ return openRouterRoutingFrom(env);
36
+ }
28
37
  /**
29
38
  * The deployment's Cloudflare REST credentials, or undefined when Workers AI is not configured
30
39
  * here. BOTH halves are required: an account id with no token cannot authenticate, and the boot
@@ -1 +1 @@
1
- {"version":3,"file":"providerEndpoints.js","sourceRoot":"","sources":["../src/providerEndpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAA;AAE3F,iGAAiG;AACjG,gDAAgD;AAChD,EAAE;AACF,mGAAmG;AACnG,kGAAkG;AAClG,+FAA+F;AAC/F,yFAAyF;AACzF,EAAE;AACF,sGAAsG;AACtG,+FAA+F;AAC/F,kGAAkG;AAClG,gCAAgC;AAEhC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,GAAsB;IACrE,OAAO,8BAA8B,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;AAC5F,CAAC;AASD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAsB;IAEtB,MAAM,SAAS,GAAG,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAA;IACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAA;IACjD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAA;IACjD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AACjE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAsB;IAEtB,MAAM,KAAK,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAA;AAC1E,CAAC"}
1
+ {"version":3,"file":"providerEndpoints.js","sourceRoot":"","sources":["../src/providerEndpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,8BAA8B,GAE/B,MAAM,qBAAqB,CAAA;AAE5B,iGAAiG;AACjG,gDAAgD;AAChD,EAAE;AACF,mGAAmG;AACnG,kGAAkG;AAClG,+FAA+F;AAC/F,yFAAyF;AACzF,EAAE;AACF,sGAAsG;AACtG,+FAA+F;AAC/F,kGAAkG;AAClG,gCAAgC;AAEhC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,GAAsB;IACrE,OAAO,8BAA8B,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAsB;IAC7D,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAA;AACnC,CAAC;AASD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAsB;IAEtB,MAAM,SAAS,GAAG,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAA;IACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAA;IACjD,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAA;IACjD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AACjE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAsB;IAEtB,MAAM,KAAK,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAA;AAC1E,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { ServiceCatalogSyncStatus } from '@cat-factory/contracts';
2
+ import type { ServiceCatalogConnectionRecord, ServiceCatalogConnectionRepository } from '@cat-factory/kernel';
3
+ import type { DrizzleDb } from '../../db/client.js';
4
+ export declare class DrizzleServiceCatalogConnectionRepository implements ServiceCatalogConnectionRepository {
5
+ private readonly db;
6
+ constructor(db: DrizzleDb);
7
+ get(workspaceId: string): Promise<ServiceCatalogConnectionRecord | null>;
8
+ upsert(record: ServiceCatalogConnectionRecord): Promise<void>;
9
+ /**
10
+ * Stamp what one import concluded, touching nothing else.
11
+ *
12
+ * Narrow on purpose rather than folded into `upsert`: the importer must be able to record its
13
+ * verdict without rewriting the credential envelope it just read through, which on a
14
+ * mothership-mode node it holds no key to re-seal.
15
+ */
16
+ updateSyncState(workspaceId: string, state: {
17
+ lastSyncedAt: number;
18
+ lastSyncStatus: ServiceCatalogSyncStatus;
19
+ lastSyncMessage: string | null;
20
+ }): Promise<void>;
21
+ softDelete(workspaceId: string, at: number): Promise<void>;
22
+ /**
23
+ * The stalest live connections, oldest first and bounded.
24
+ *
25
+ * `NULLS FIRST` is explicit because Postgres orders NULLs LAST on an ascending sort, the opposite
26
+ * of SQLite. Without it a freshly connected portal (which has never imported) would sort behind
27
+ * every connection that has, and would wait out a staleness window it has never been inside
28
+ * while the D1 facade imported it on the next sweep. That is exactly the kind of gap a
29
+ * sequential conformance test passes on both runtimes.
30
+ */
31
+ listStale(staleBefore: number, limit: number): Promise<ServiceCatalogConnectionRecord[]>;
32
+ }
33
+ //# sourceMappingURL=serviceCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serviceCatalog.d.ts","sourceRoot":"","sources":["../../../src/repositories/drizzle/serviceCatalog.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAGV,wBAAwB,EACzB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EACV,8BAA8B,EAC9B,kCAAkC,EACnC,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKnD,qBAAa,yCAA0C,YAAW,kCAAkC;IACtF,OAAO,CAAC,QAAQ,CAAC,EAAE;IAA/B,YAA6B,EAAE,EAAE,SAAS,EAAI;IAExC,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAQ7E;IAEK,MAAM,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAqClE;IAED;;;;;;OAMG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAA;QACpB,cAAc,EAAE,wBAAwB,CAAA;QACxC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAC/B,GACA,OAAO,CAAC,IAAI,CAAC,CAUf;IAEK,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/D;IAED;;;;;;;;OAQG;IACG,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,EAAE,CAAC,CAgB7F;CACF"}
@@ -0,0 +1,146 @@
1
+ // Drizzle/Postgres implementation of the SERVICE CATALOG connection port: a workspace's developer
2
+ // portal (Backstage), whose services the importer turns into `workspace`-tier foundational
3
+ // services. Mirror of the D1 repository and of migration 0097 column-for-column.
4
+ //
5
+ // Its own module rather than another class in `connections.ts`, which is already the largest of
6
+ // the split repository files and covers a different family (the sealed vendor connections the
7
+ // engine PROBES). This one is read on an import path with its own sweep and its own narrow
8
+ // sync-state write.
9
+ import { and, eq, isNull, lt, or, sql } from 'drizzle-orm';
10
+ import { serviceCatalogConnections } from '../../db/schema.js';
11
+ export class DrizzleServiceCatalogConnectionRepository {
12
+ db;
13
+ constructor(db) {
14
+ this.db = db;
15
+ }
16
+ async get(workspaceId) {
17
+ const rows = await this.db
18
+ .select()
19
+ .from(serviceCatalogConnections)
20
+ .where(eq(serviceCatalogConnections.workspace_id, workspaceId))
21
+ .limit(1);
22
+ const row = rows[0];
23
+ return row ? rowToRecord(row) : null;
24
+ }
25
+ async upsert(record) {
26
+ const values = {
27
+ workspace_id: record.workspaceId,
28
+ provider: record.provider,
29
+ base_url: record.baseUrl,
30
+ auth_mode: record.authMode,
31
+ credentials: record.credentialsCipher,
32
+ entity_filter: JSON.stringify(record.entityFilter),
33
+ include_apis: record.includeApis,
34
+ max_services: record.maxServices,
35
+ last_synced_at: record.lastSyncedAt,
36
+ last_sync_status: record.lastSyncStatus,
37
+ last_sync_message: record.lastSyncMessage,
38
+ created_at: record.createdAt,
39
+ updated_at: record.updatedAt,
40
+ deleted_at: record.deletedAt,
41
+ };
42
+ await this.db
43
+ .insert(serviceCatalogConnections)
44
+ .values(values)
45
+ .onConflictDoUpdate({
46
+ target: serviceCatalogConnections.workspace_id,
47
+ set: {
48
+ provider: values.provider,
49
+ base_url: values.base_url,
50
+ auth_mode: values.auth_mode,
51
+ credentials: values.credentials,
52
+ entity_filter: values.entity_filter,
53
+ include_apis: values.include_apis,
54
+ max_services: values.max_services,
55
+ last_synced_at: values.last_synced_at,
56
+ last_sync_status: values.last_sync_status,
57
+ last_sync_message: values.last_sync_message,
58
+ updated_at: values.updated_at,
59
+ deleted_at: values.deleted_at,
60
+ },
61
+ });
62
+ }
63
+ /**
64
+ * Stamp what one import concluded, touching nothing else.
65
+ *
66
+ * Narrow on purpose rather than folded into `upsert`: the importer must be able to record its
67
+ * verdict without rewriting the credential envelope it just read through, which on a
68
+ * mothership-mode node it holds no key to re-seal.
69
+ */
70
+ async updateSyncState(workspaceId, state) {
71
+ await this.db
72
+ .update(serviceCatalogConnections)
73
+ .set({
74
+ last_synced_at: state.lastSyncedAt,
75
+ last_sync_status: state.lastSyncStatus,
76
+ last_sync_message: state.lastSyncMessage,
77
+ updated_at: state.lastSyncedAt,
78
+ })
79
+ .where(eq(serviceCatalogConnections.workspace_id, workspaceId));
80
+ }
81
+ async softDelete(workspaceId, at) {
82
+ await this.db
83
+ .update(serviceCatalogConnections)
84
+ // The envelope is cleared with the tombstone: a disconnected connection has no use for the
85
+ // credential, and leaving it would keep a readable secret behind a row nothing reads.
86
+ .set({ deleted_at: at, updated_at: at, credentials: '' })
87
+ .where(eq(serviceCatalogConnections.workspace_id, workspaceId));
88
+ }
89
+ /**
90
+ * The stalest live connections, oldest first and bounded.
91
+ *
92
+ * `NULLS FIRST` is explicit because Postgres orders NULLs LAST on an ascending sort, the opposite
93
+ * of SQLite. Without it a freshly connected portal (which has never imported) would sort behind
94
+ * every connection that has, and would wait out a staleness window it has never been inside
95
+ * while the D1 facade imported it on the next sweep. That is exactly the kind of gap a
96
+ * sequential conformance test passes on both runtimes.
97
+ */
98
+ async listStale(staleBefore, limit) {
99
+ const rows = await this.db
100
+ .select()
101
+ .from(serviceCatalogConnections)
102
+ .where(and(isNull(serviceCatalogConnections.deleted_at), or(isNull(serviceCatalogConnections.last_synced_at), lt(serviceCatalogConnections.last_synced_at, staleBefore))))
103
+ .orderBy(sql `${serviceCatalogConnections.last_synced_at} ASC NULLS FIRST`)
104
+ .limit(limit);
105
+ return rows.map(rowToRecord);
106
+ }
107
+ }
108
+ function rowToRecord(row) {
109
+ return {
110
+ workspaceId: row.workspace_id,
111
+ provider: row.provider,
112
+ baseUrl: row.base_url,
113
+ authMode: row.auth_mode,
114
+ credentialsCipher: row.credentials,
115
+ entityFilter: parseFilter(row.entity_filter),
116
+ includeApis: row.include_apis,
117
+ maxServices: row.max_services,
118
+ lastSyncedAt: row.last_synced_at,
119
+ lastSyncStatus: row.last_sync_status ?? null,
120
+ lastSyncMessage: row.last_sync_message,
121
+ createdAt: row.created_at,
122
+ updatedAt: row.updated_at,
123
+ deletedAt: row.deleted_at,
124
+ };
125
+ }
126
+ /**
127
+ * The stored filter, or an EMPTY list when the column does not hold an array of strings.
128
+ *
129
+ * Empty rather than the default filter, for the reason the D1 twin gives: the write boundary is
130
+ * what substitutes a default, so an empty value here can only be a corrupt row, and the import
131
+ * refuses an empty filter by name rather than importing under a narrowing nobody chose.
132
+ */
133
+ function parseFilter(value) {
134
+ try {
135
+ const parsed = JSON.parse(value);
136
+ if (!Array.isArray(parsed))
137
+ return [];
138
+ return parsed.filter((term) => typeof term === 'string');
139
+ }
140
+ catch {
141
+ // silent-catch-ok: the parse error names only JSON syntax; the import's named refusal is what
142
+ // a human sees.
143
+ return [];
144
+ }
145
+ }
146
+ //# sourceMappingURL=serviceCatalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serviceCatalog.js","sourceRoot":"","sources":["../../../src/repositories/drizzle/serviceCatalog.ts"],"names":[],"mappings":"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"}