@opengeni/config 0.7.0 → 0.7.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.
package/dist/index.d.ts CHANGED
@@ -64,6 +64,7 @@ declare const SettingsSchema: z.ZodObject<{
64
64
  force: "force";
65
65
  scoped: "scoped";
66
66
  }>>;
67
+ runtimeDatabaseRole: z.ZodDefault<z.ZodString>;
67
68
  natsUrl: z.ZodDefault<z.ZodString>;
68
69
  temporalHost: z.ZodDefault<z.ZodString>;
69
70
  temporalNamespace: z.ZodDefault<z.ZodString>;
@@ -83,6 +84,7 @@ declare const SettingsSchema: z.ZodObject<{
83
84
  observabilityOtlpHeaders: z.ZodDefault<z.ZodString>;
84
85
  publicBaseUrl: z.ZodOptional<z.ZodString>;
85
86
  agentReleasesBaseUrl: z.ZodDefault<z.ZodString>;
87
+ agentStableVersion: z.ZodDefault<z.ZodString>;
86
88
  productAccessMode: z.ZodDefault<z.ZodEnum<{
87
89
  local: "local";
88
90
  configured: "configured";
@@ -146,6 +148,7 @@ declare const SettingsSchema: z.ZodObject<{
146
148
  modelPricingJson: z.ZodDefault<z.ZodString>;
147
149
  modelProvidersJson: z.ZodDefault<z.ZodString>;
148
150
  codexSubscriptionEnabled: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
151
+ codexConnectedAppsEnabled: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
149
152
  codexProductSku: z.ZodOptional<z.ZodString>;
150
153
  codexToolSearchEnabled: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
151
154
  codexCredentialLeasingEnabled: z.ZodDefault<z.ZodPreprocess<z.ZodBoolean>>;
@@ -329,6 +332,14 @@ declare const SettingsSchema: z.ZodObject<{
329
332
  documentEmbeddingDimensions: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
330
333
  documentEmbeddingApiKey: z.ZodOptional<z.ZodString>;
331
334
  documentEmbeddingBaseUrl: z.ZodOptional<z.ZodString>;
335
+ documentCurationProvider: z.ZodDefault<z.ZodEnum<{
336
+ none: "none";
337
+ openai: "openai";
338
+ heuristic: "heuristic";
339
+ }>>;
340
+ documentCurationModel: z.ZodDefault<z.ZodString>;
341
+ documentCurationApiKey: z.ZodOptional<z.ZodString>;
342
+ documentCurationBaseUrl: z.ZodOptional<z.ZodString>;
332
343
  gitAuthorName: z.ZodOptional<z.ZodString>;
333
344
  gitAuthorEmail: z.ZodOptional<z.ZodString>;
334
345
  gitCommitterName: z.ZodOptional<z.ZodString>;
package/dist/index.js CHANGED
@@ -149,6 +149,10 @@ var SettingsSchema = z.object({
149
149
  // non-owner `opengeni_app` role. "scoped" = the embedded owner-role path (the
150
150
  // GUC is still emitted defensively, so the query path is identical).
151
151
  rlsStrategy: z.enum(["force", "scoped"]).default("force"),
152
+ // Exact PostgreSQL login identity required by the standalone FORCE-RLS
153
+ // startup/readiness assertion. Embedded `scoped` hosts own their role model
154
+ // and are deliberately not constrained to this name.
155
+ runtimeDatabaseRole: z.string().min(1).default("opengeni_app"),
152
156
  natsUrl: z.string().default("nats://127.0.0.1:4222"),
153
157
  temporalHost: z.string().default("127.0.0.1:7233"),
154
158
  temporalNamespace: z.string().default("default"),
@@ -169,8 +173,12 @@ var SettingsSchema = z.object({
169
173
  publicBaseUrl: z.string().url().optional(),
170
174
  // Base URL for the bring-your-own-compute agent release assets the get.<domain>
171
175
  // install routes redirect to. Defaults to this repo's GitHub Releases. The route
172
- // appends `/download/agent-v<ver>/<asset>` (or `/latest/download/<asset>`).
176
+ // appends `/download/agent-v<ver>/<asset>`.
173
177
  agentReleasesBaseUrl: z.string().url().default("https://github.com/Cloudgeni-ai/opengeni/releases"),
178
+ // Explicit operator-controlled promotion pointer for `/agent/latest/*`.
179
+ // Versioned agent releases are immutable; changing this setting promotes or
180
+ // rolls back the stable channel without moving or deleting a provider tag.
181
+ agentStableVersion: z.string().regex(/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u).default("0.1.8"),
174
182
  productAccessMode: ProductAccessMode.default("local"),
175
183
  billingMode: BillingMode.default("disabled"),
176
184
  entitlementsMode: EntitlementsMode.default("none"),
@@ -275,13 +283,19 @@ var SettingsSchema = z.object({
275
283
  // provider whose models route through the ChatGPT backend (@opengeni/codex).
276
284
  codexSubscriptionEnabled: EnvBoolean.default(false),
277
285
  // OPENGENI_CODEX_SUBSCRIPTION_ENABLED
286
+ // Expose the connected apps attached to a Codex subscription through the
287
+ // synthetic codex_apps MCP server. Independent from subscription routing so
288
+ // operators can use Codex models without exposing ChatGPT connectors.
289
+ codexConnectedAppsEnabled: EnvBoolean.default(false),
290
+ // OPENGENI_CODEX_CONNECTED_APPS_ENABLED
278
291
  codexProductSku: z.string().optional(),
279
292
  // OPENGENI_CODEX_PRODUCT_SKU (X-OpenAI-Product-Sku, apps only)
280
- // Progressive connector disclosure (Codex-CLI-style tool_search): on a codex
281
- // turn, flag the ~217 codex_apps connector tools `defer_loading:true` (dropping
282
- // their schemas from model context) and add one client-executed tool_search
283
- // tool that BM25-discloses only the matching connectors. Default OFF a codex
284
- // turn is byte-for-byte unchanged until enabled. OPENGENI_CODEX_TOOL_SEARCH_ENABLED
293
+ // Progressive MCP disclosure (Codex-CLI-style tool_search): on a codex turn,
294
+ // flag non-mandatory selected MCP tools `defer_loading:true` (dropping their
295
+ // schemas from model context) and add one client-executed tool_search tool
296
+ // that BM25-discloses bounded matches. The mandatory OpenGeni tools stay
297
+ // eager. Default OFF — a codex turn is byte-for-byte unchanged until enabled.
298
+ // OPENGENI_CODEX_TOOL_SEARCH_ENABLED
285
299
  codexToolSearchEnabled: EnvBoolean.default(false),
286
300
  // credential allocator atomic, workspace-local credential allocation. Default OFF is a
287
301
  // deliberate rolling-deploy fence: migrate + roll every worker first, then
@@ -693,6 +707,10 @@ var SettingsSchema = z.object({
693
707
  documentEmbeddingDimensions: z.coerce.number().int().positive().default(3072),
694
708
  documentEmbeddingApiKey: z.string().optional(),
695
709
  documentEmbeddingBaseUrl: z.string().url().optional(),
710
+ documentCurationProvider: z.enum(["openai", "heuristic", "none"]).default("openai"),
711
+ documentCurationModel: z.string().min(1).default("gpt-4o-mini"),
712
+ documentCurationApiKey: z.string().optional(),
713
+ documentCurationBaseUrl: z.string().url().optional(),
696
714
  gitAuthorName: z.string().optional(),
697
715
  gitAuthorEmail: z.string().optional(),
698
716
  gitCommitterName: z.string().optional(),
@@ -1052,6 +1070,7 @@ function getSettings() {
1052
1070
  databaseUrl: optional("OPENGENI_DATABASE_URL"),
1053
1071
  dbSchema: optional("OPENGENI_DB_SCHEMA"),
1054
1072
  rlsStrategy: optional("OPENGENI_RLS_STRATEGY"),
1073
+ runtimeDatabaseRole: optional("OPENGENI_RUNTIME_DATABASE_ROLE"),
1055
1074
  natsUrl: optional("OPENGENI_NATS_URL"),
1056
1075
  temporalHost: optional("OPENGENI_TEMPORAL_HOST"),
1057
1076
  temporalNamespace: optional("OPENGENI_TEMPORAL_NAMESPACE"),
@@ -1075,6 +1094,7 @@ function getSettings() {
1075
1094
  observabilityOtlpHeaders: optional("OPENGENI_OTEL_EXPORTER_OTLP_HEADERS") ?? optional("OTEL_EXPORTER_OTLP_HEADERS"),
1076
1095
  publicBaseUrl: optional("OPENGENI_PUBLIC_BASE_URL"),
1077
1096
  agentReleasesBaseUrl: optional("OPENGENI_AGENT_RELEASES_BASE_URL"),
1097
+ agentStableVersion: optional("OPENGENI_AGENT_STABLE_VERSION"),
1078
1098
  productAccessMode: optional("OPENGENI_PRODUCT_ACCESS_MODE"),
1079
1099
  billingMode: optional("OPENGENI_BILLING_MODE"),
1080
1100
  entitlementsMode: optional("OPENGENI_ENTITLEMENTS_MODE"),
@@ -1122,6 +1142,7 @@ function getSettings() {
1122
1142
  modelPricingJson: optional("OPENGENI_MODEL_PRICING_JSON"),
1123
1143
  modelProvidersJson: optional("OPENGENI_MODEL_PROVIDERS_JSON"),
1124
1144
  codexSubscriptionEnabled: optional("OPENGENI_CODEX_SUBSCRIPTION_ENABLED"),
1145
+ codexConnectedAppsEnabled: optional("OPENGENI_CODEX_CONNECTED_APPS_ENABLED"),
1125
1146
  codexToolSearchEnabled: optional("OPENGENI_CODEX_TOOL_SEARCH_ENABLED"),
1126
1147
  codexCredentialLeasingEnabled: optional("OPENGENI_CODEX_CREDENTIAL_LEASING_ENABLED"),
1127
1148
  codexFleetPolicyShadowEnabled: optional("OPENGENI_CODEX_FLEET_POLICY_SHADOW_ENABLED"),
@@ -1262,6 +1283,10 @@ function getSettings() {
1262
1283
  documentEmbeddingDimensions: optional("OPENGENI_DOCUMENT_EMBEDDING_DIMENSIONS"),
1263
1284
  documentEmbeddingApiKey: optional("OPENGENI_DOCUMENT_EMBEDDING_API_KEY"),
1264
1285
  documentEmbeddingBaseUrl: optional("OPENGENI_DOCUMENT_EMBEDDING_BASE_URL"),
1286
+ documentCurationProvider: optional("OPENGENI_DOCUMENT_CURATION_PROVIDER"),
1287
+ documentCurationModel: optional("OPENGENI_DOCUMENT_CURATION_MODEL"),
1288
+ documentCurationApiKey: optional("OPENGENI_DOCUMENT_CURATION_API_KEY"),
1289
+ documentCurationBaseUrl: optional("OPENGENI_DOCUMENT_CURATION_BASE_URL"),
1265
1290
  gitAuthorName: optional("OPENGENI_GIT_AUTHOR_NAME"),
1266
1291
  gitAuthorEmail: optional("OPENGENI_GIT_AUTHOR_EMAIL"),
1267
1292
  gitCommitterName: optional("OPENGENI_GIT_COMMITTER_NAME"),
@@ -1658,6 +1683,11 @@ function withCodexCatalogProvider(settings) {
1658
1683
  upstreamModelId: slug,
1659
1684
  label: slug,
1660
1685
  reasoningEffort: true,
1686
+ // The ChatGPT/Codex Responses backend accepts the native web_search
1687
+ // hosted tool (unlike hosted apply_patch/computer transports). Declaring
1688
+ // this here makes provider resolution truthful; the worker still applies
1689
+ // the durable session/turn policy gate before attaching it.
1690
+ hostedWebSearch: true,
1661
1691
  contextWindowTokens: CODEX_MODEL_CONTEXT_WINDOW_TOKENS,
1662
1692
  effectiveContextWindowTokens: CODEX_MODEL_EFFECTIVE_CONTEXT_WINDOW_TOKENS,
1663
1693
  autoCompactTokenLimit: CODEX_MODEL_AUTO_COMPACT_TOKEN_LIMIT,