@opengeni/config 1.0.4 → 1.1.0-canary.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/config",
3
- "version": "1.0.4",
3
+ "version": "1.1.0-canary.0",
4
4
  "description": "OpenGeni runtime configuration: settings resolution, deployment knobs, and config validation shared across the server packages.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -33,9 +33,9 @@
33
33
  "prepublishOnly": "bash ../../scripts/prepublish-guard"
34
34
  },
35
35
  "dependencies": {
36
- "@opengeni/codex": "^0.2.22",
37
- "@opengeni/contracts": "^2.15.2",
38
- "@opengeni/xai-subscription": "^0.1.4",
36
+ "@opengeni/codex": "^0.2.22-canary.6",
37
+ "@opengeni/contracts": "^3.0.0-canary.0",
38
+ "@opengeni/xai-subscription": "^0.1.4-canary.6",
39
39
  "zod": "^4.2.1"
40
40
  },
41
41
  "engines": {
package/src/index.ts CHANGED
@@ -244,6 +244,10 @@ export const McpServerConnectionRefSchema = z
244
244
  })
245
245
  .optional(),
246
246
  authoritySource: z.literal("host").optional(),
247
+ hostBinding: z
248
+ .object({ bindingId: z.string().uuid(), generation: z.number().int().positive().safe() })
249
+ .strict()
250
+ .optional(),
247
251
  subjectScope: z.enum(["workspace", "subject"]).optional(),
248
252
  })
249
253
  .strict()
@@ -255,6 +259,12 @@ export const McpServerConnectionRefSchema = z
255
259
  path: ["connectionId"],
256
260
  });
257
261
  }
262
+ if (reference.hostBinding && reference.authoritySource !== "host")
263
+ context.addIssue({
264
+ code: "custom",
265
+ path: ["hostBinding"],
266
+ message: "Durable binding requires host authority",
267
+ });
258
268
  if (!reference.selectedResources) return;
259
269
  if (!reference.connectionId) {
260
270
  context.addIssue({
@@ -532,6 +542,9 @@ const SettingsSchema = z.object({
532
542
  // separate compatibility lane for already-persisted embedding integrations.
533
543
  // Env: OPENGENI_HOST_MCP_AUTHORITY_SOURCE_ADMISSION_ENABLED.
534
544
  hostMcpAuthoritySourceAdmissionEnabled: EnvBoolean.default(false),
545
+ // Server-owned per-organization remote MCP resolver configuration. Optional;
546
+ // inline credentials and native provider OAuth do not require this service.
547
+ hostMcpCredentialResolversJson: z.string().optional(),
535
548
  // Per-channel and per-DM Slack workspace routing. Default ON. A channel does
536
549
  // not count a personal workspace as a candidate, so an organization with one
537
550
  // shared workspace resolves it as the sole candidate and never asks; the
@@ -2946,6 +2959,7 @@ export function getSettings(source: NodeJS.ProcessEnv = process.env): Settings {
2946
2959
  hostMcpAuthoritySourceAdmissionEnabled: optional(
2947
2960
  "OPENGENI_HOST_MCP_AUTHORITY_SOURCE_ADMISSION_ENABLED",
2948
2961
  ),
2962
+ hostMcpCredentialResolversJson: optional("OPENGENI_HOST_MCP_CREDENTIAL_RESOLVERS_JSON"),
2949
2963
  slackWorkspaceRoutingEnabled: optional("OPENGENI_SLACK_WORKSPACE_ROUTING_ENABLED"),
2950
2964
  agentMaxModelCallsPerTurn: optional("OPENGENI_AGENT_MAX_MODEL_CALLS_PER_TURN"),
2951
2965
  contextWindowTokens: optional("OPENGENI_CONTEXT_WINDOW_TOKENS"),