@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/dist/index.d.ts +9 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +14 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeni/config",
|
|
3
|
-
"version": "1.0.
|
|
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": "^
|
|
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"),
|