@cat-factory/contracts 0.317.0 → 0.318.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.
@@ -3,14 +3,14 @@ import * as v from 'valibot';
3
3
  export declare const apiKeyScopeSchema: v.PicklistSchema<["account", "workspace", "user"], undefined>;
4
4
  export type ApiKeyScope = v.InferOutput<typeof apiKeyScopeSchema>;
5
5
  /** The direct providers that own a poolable API key. */
6
- export declare const apiKeyProviderSchema: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
6
+ export declare const apiKeyProviderSchema: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
7
7
  export type ApiKeyProvider = v.InferOutput<typeof apiKeyProviderSchema>;
8
8
  /** One pool key as exposed to clients — metadata + usage, never the secret. */
9
9
  export declare const apiKeySchema: v.ObjectSchema<{
10
10
  readonly id: v.StringSchema<undefined>;
11
11
  readonly scope: v.PicklistSchema<["account", "workspace", "user"], undefined>;
12
12
  readonly scopeId: v.StringSchema<undefined>;
13
- readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
13
+ readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
14
14
  readonly label: v.StringSchema<undefined>;
15
15
  readonly createdAt: v.NumberSchema<undefined>;
16
16
  readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
@@ -31,7 +31,7 @@ export declare const apiKeyListSchema: v.ArraySchema<v.ObjectSchema<{
31
31
  readonly id: v.StringSchema<undefined>;
32
32
  readonly scope: v.PicklistSchema<["account", "workspace", "user"], undefined>;
33
33
  readonly scopeId: v.StringSchema<undefined>;
34
- readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
34
+ readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
35
35
  readonly label: v.StringSchema<undefined>;
36
36
  readonly createdAt: v.NumberSchema<undefined>;
37
37
  readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
@@ -54,7 +54,7 @@ export declare const apiKeyListResultSchema: v.ObjectSchema<{
54
54
  readonly id: v.StringSchema<undefined>;
55
55
  readonly scope: v.PicklistSchema<["account", "workspace", "user"], undefined>;
56
56
  readonly scopeId: v.StringSchema<undefined>;
57
- readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
57
+ readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
58
58
  readonly label: v.StringSchema<undefined>;
59
59
  readonly createdAt: v.NumberSchema<undefined>;
60
60
  readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
@@ -74,7 +74,7 @@ export declare const apiKeyListResultSchema: v.ObjectSchema<{
74
74
  export type ApiKeyListResult = v.InferOutput<typeof apiKeyListResultSchema>;
75
75
  /** Add a key to a pool. `key` is write-only (the raw secret). */
76
76
  export declare const addApiKeySchema: v.ObjectSchema<{
77
- readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
77
+ readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
78
78
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
79
79
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
80
80
  }, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAc5B,6CAA6C;AAC7C,eAAO,MAAM,iBAAiB,+DAA+C,CAAA;AAC7E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,sHAY/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,+EAA+E;AAC/E,eAAO,MAAM,YAAY;;;;;;;;IAQvB,0EAA0E;;;;IAI1E;uFACmF;;IAEnF;;gGAE4F;;aAE5F,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AAEvD,eAAO,MAAM,gBAAgB;;;;;;;;IAd3B,0EAA0E;;;;IAI1E;uFACmF;;IAEnF;;gGAE4F;;yBAKzC,CAAA;AACrD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D,wFAAwF;AACxF,eAAO,MAAM,sBAAsB;;;;;;;;;QAlBjC,0EAA0E;;;;QAI1E;2FACmF;;QAEnF;;oGAE4F;;;aASpB,CAAA;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,iEAAiE;AACjE,eAAO,MAAM,eAAe;;;;aAI1B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAA;AAElE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;aAG7B,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
1
+ {"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAc5B,6CAA6C;AAC7C,eAAO,MAAM,iBAAiB,+DAA+C,CAAA;AAC7E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEjE,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,iIAe/B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEvE,+EAA+E;AAC/E,eAAO,MAAM,YAAY;;;;;;;;IAQvB,0EAA0E;;;;IAI1E;uFACmF;;IAEnF;;gGAE4F;;aAE5F,CAAA;AACF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AAEvD,eAAO,MAAM,gBAAgB;;;;;;;;IAd3B,0EAA0E;;;;IAI1E;uFACmF;;IAEnF;;gGAE4F;;yBAKzC,CAAA;AACrD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D,wFAAwF;AACxF,eAAO,MAAM,sBAAsB;;;;;;;;;QAlBjC,0EAA0E;;;;QAI1E;2FACmF;;QAEnF;;oGAE4F;;;aASpB,CAAA;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E,iEAAiE;AACjE,eAAO,MAAM,eAAe;;;;aAI1B,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,eAAe,CAAC,CAAA;AAElE;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;aAG7B,CAAA;AACF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
package/dist/api-keys.js CHANGED
@@ -20,10 +20,13 @@ export const apiKeyProviderSchema = v.picklist([
20
20
  'deepseek',
21
21
  'moonshot',
22
22
  'xai',
23
- // OpenAI-compatible aggregator/gateway providers: OpenRouter (a single hosted gateway
24
- // to 300+ models) and LiteLLM (an operator-hosted gateway; its base URL comes from the
25
- // deployment's LITELLM_BASE_URL). Both resolve via the shared OpenAI-compatible path.
23
+ // OpenAI-compatible aggregator/gateway providers, all resolving via the shared
24
+ // OpenAI-compatible path: OpenRouter (a single hosted gateway to 300+ models), and the two
25
+ // operator-hosted gateways, Bifrost and LiteLLM, whose base URL comes from the deployment's
26
+ // `BIFROST_BASE_URL` / `LITELLM_BASE_URL` (self-hosted software, so there is no public
27
+ // endpoint to default to and a key here stays unselectable until the URL is set).
26
28
  'openrouter',
29
+ 'bifrost',
27
30
  'litellm',
28
31
  ]);
29
32
  /** One pool key as exposed to clients — metadata + usage, never the secret. */
@@ -1 +1 @@
1
- {"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,0CAA0C;AAC1C,EAAE;AACF,kFAAkF;AAClF,kFAAkF;AAClF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAE9E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;AAG7E,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC7C,QAAQ;IACR,WAAW;IACX,MAAM;IACN,UAAU;IACV,UAAU;IACV,KAAK;IACL,sFAAsF;IACtF,uFAAuF;IACvF,sFAAsF;IACtF,YAAY;IACZ,SAAS;CACV,CAAC,CAAA;AAGF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,iBAAiB;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,oBAAoB;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,0EAA0E;IAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB;uFACmF;IACnF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB;;gGAE4F;IAC5F,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAGrD,wFAAwF;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAA;AAG1E,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,oBAAoB;IAC9B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC,CAAA;AAGF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAChC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CACnC,CAAC,CAAA"}
1
+ {"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../src/api-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,8EAA8E;AAC9E,0CAA0C;AAC1C,EAAE;AACF,kFAAkF;AAClF,kFAAkF;AAClF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAE9E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAA;AAG7E,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC7C,QAAQ;IACR,WAAW;IACX,MAAM;IACN,UAAU;IACV,UAAU;IACV,KAAK;IACL,+EAA+E;IAC/E,2FAA2F;IAC3F,4FAA4F;IAC5F,uFAAuF;IACvF,kFAAkF;IAClF,YAAY;IACZ,SAAS;IACT,SAAS;CACV,CAAC,CAAA;AAGF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,iBAAiB;IACxB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,oBAAoB;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,0EAA0E;IAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB;uFACmF;IACnF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB;;gGAE4F;IAC5F,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;AAGrD,wFAAwF;AACxF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAA;AAG1E,iEAAiE;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,oBAAoB;IAC9B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAClD,CAAC,CAAA;AAGF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAChC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;CACnC,CAAC,CAAA"}
@@ -2,7 +2,7 @@ import * as v from 'valibot';
2
2
  /**
3
3
  * The curated model families the policy operates on — the coarse "family" axis of the
4
4
  * built-in catalog. `familyForModelId` (kernel) maps a catalog id (and OpenRouter slug)
5
- * onto one of these; ids with no family (an operator's LiteLLM gateway, an arbitrary
5
+ * onto one of these; ids with no family (an operator's self-hosted gateway, an arbitrary
6
6
  * OpenRouter slug, a per-user local runner) are UNCLASSIFIED and handled per the mode
7
7
  * (allowlist ⇒ blocked, blocklist ⇒ allowed — see `isAllowedByFamilyPolicy`).
8
8
  */
@@ -15,7 +15,7 @@ import * as v from 'valibot';
15
15
  /**
16
16
  * The curated model families the policy operates on — the coarse "family" axis of the
17
17
  * built-in catalog. `familyForModelId` (kernel) maps a catalog id (and OpenRouter slug)
18
- * onto one of these; ids with no family (an operator's LiteLLM gateway, an arbitrary
18
+ * onto one of these; ids with no family (an operator's self-hosted gateway, an arbitrary
19
19
  * OpenRouter slug, a per-user local runner) are UNCLASSIFIED and handled per the mode
20
20
  * (allowlist ⇒ blocked, blocklist ⇒ allowed — see `isAllowedByFamilyPolicy`).
21
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"reserved-env-keys.d.ts","sourceRoot":"","sources":["../src/reserved-env-keys.ts"],"names":[],"mappings":"AA4DA;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EA0C3D,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAwCvD,CAAA;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAK7D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQzD;AAgDD,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD"}
1
+ {"version":3,"file":"reserved-env-keys.d.ts","sourceRoot":"","sources":["../src/reserved-env-keys.ts"],"names":[],"mappings":"AA4DA;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,EAAE,SAAS,MAAM,EA2C3D,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAqDvD,CAAA;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAK7D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQzD;AAgDD,uGAAuG;AACvG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,oEAAoE;AACpE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD"}
@@ -71,6 +71,7 @@ export const PLATFORM_RESERVED_ENV_PREFIXES = [
71
71
  'AUTH_',
72
72
  'AWS_',
73
73
  'BEDROCK_',
74
+ 'BIFROST_',
74
75
  'BUDGET_',
75
76
  'CI_',
76
77
  'CLOUDFLARE_',
@@ -126,10 +127,19 @@ export const PLATFORM_RESERVED_ENV_KEYS = [
126
127
  // capability taken away from a live integration to protect one name.
127
128
  'ADVANCE_TIMEOUT',
128
129
  'ANTHROPIC_API_KEY',
130
+ // The per-vendor `${VENDOR}_BASE_URL` overrides, alongside each vendor's key below. Exact names
131
+ // rather than a `QWEN_` / `DEEPSEEK_` / … family, for the reason `ADVANCE_TIMEOUT` above gives:
132
+ // reserving a namespace is only free where the platform owns the whole of it, and it owns two
133
+ // variables in each of these. They belong here because the platform READS them by name at
134
+ // dispatch (Node resolves `${PROVIDER}_BASE_URL` off its own env for any provider id, and the
135
+ // Worker maps a typed field per provider), which is the whole test for this list: the set is the
136
+ // platform's environment, not just its secrets.
137
+ 'ANTHROPIC_BASE_URL',
129
138
  'APP_BASE_URL',
130
139
  'AUDIT_EVENT_RETENTION_DAYS',
131
140
  'DATABASE_URL',
132
141
  'DEEPSEEK_API_KEY',
142
+ 'DEEPSEEK_BASE_URL',
133
143
  'ENCRYPTION_KEY',
134
144
  'ENVIRONMENT',
135
145
  'GATE_OUTCOME_RETENTION_DAYS',
@@ -142,22 +152,26 @@ export const PLATFORM_RESERVED_ENV_KEYS = [
142
152
  // nobody names a credential after a redirect URL, and it is refused loudly at boot if anyone does.
143
153
  'MCP_OAUTH_REDIRECT_URL',
144
154
  'MOONSHOT_API_KEY',
155
+ 'MOONSHOT_BASE_URL',
145
156
  // Exact names rather than a `NOTIFICATION_` / `PROVISIONING_` family, for the same reason as
146
157
  // `ADVANCE_TIMEOUT`: each family holds one platform variable, and reserving the whole namespace
147
158
  // would newly refuse credential keys a deployment may already have registered under it.
148
159
  'NOTIFICATION_RETENTION_DAYS',
149
160
  'OPENAI_API_KEY',
161
+ 'OPENAI_BASE_URL',
150
162
  'PLATFORM_RUN_DAY_RETENTION_DAYS',
151
163
  'PORT',
152
164
  'PROVISIONING_LOG_RETENTION_DAYS',
153
165
  'PUBLIC_URL',
154
166
  'QWEN_API_KEY',
167
+ 'QWEN_BASE_URL',
155
168
  'REALTIME_NODE_ID',
156
169
  'WORKER_PUBLIC_URL',
157
- // Exact name rather than an `XAI_` family, for the same reason as `ADVANCE_TIMEOUT`: the
158
- // platform owns one variable in that namespace, and reserving the family would newly
170
+ // Exact names rather than an `XAI_` family, for the same reason as `ADVANCE_TIMEOUT`: the
171
+ // platform owns two variables in that namespace, and reserving the family would newly
159
172
  // refuse a credential key a deployment may already hold under it.
160
173
  'XAI_API_KEY',
174
+ 'XAI_BASE_URL',
161
175
  ];
162
176
  const RESERVED = new Set(PLATFORM_RESERVED_ENV_KEYS.map((key) => key.toUpperCase()));
163
177
  const RESERVED_PREFIXES = PLATFORM_RESERVED_ENV_PREFIXES.map((prefix) => prefix.toUpperCase());
@@ -1 +1 @@
1
- {"version":3,"file":"reserved-env-keys.js","sourceRoot":"","sources":["../src/reserved-env-keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reserved-env-keys.js","sourceRoot":"","sources":["../src/reserved-env-keys.ts"],"names":[],"mappings":"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"}
@@ -528,7 +528,7 @@ export declare const listAccountApiKeysContract: {
528
528
  readonly id: v.StringSchema<undefined>;
529
529
  readonly scope: v.PicklistSchema<["account", "workspace", "user"], undefined>;
530
530
  readonly scopeId: v.StringSchema<undefined>;
531
- readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
531
+ readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
532
532
  readonly label: v.StringSchema<undefined>;
533
533
  readonly createdAt: v.NumberSchema<undefined>;
534
534
  readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
@@ -550,7 +550,7 @@ export declare const addAccountApiKeyContract: {
550
550
  accountId: string;
551
551
  }) => string;
552
552
  readonly requestBodySchema: v.ObjectSchema<{
553
- readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
553
+ readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
554
554
  readonly label: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 120, undefined>]>;
555
555
  readonly key: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.MinLengthAction<string, 1, undefined>]>;
556
556
  }, undefined>;
@@ -581,7 +581,7 @@ export declare const addAccountApiKeyContract: {
581
581
  readonly id: v.StringSchema<undefined>;
582
582
  readonly scope: v.PicklistSchema<["account", "workspace", "user"], undefined>;
583
583
  readonly scopeId: v.StringSchema<undefined>;
584
- readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
584
+ readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
585
585
  readonly label: v.StringSchema<undefined>;
586
586
  readonly createdAt: v.NumberSchema<undefined>;
587
587
  readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
@@ -634,7 +634,7 @@ export declare const updateAccountApiKeyContract: {
634
634
  readonly id: v.StringSchema<undefined>;
635
635
  readonly scope: v.PicklistSchema<["account", "workspace", "user"], undefined>;
636
636
  readonly scopeId: v.StringSchema<undefined>;
637
- readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
637
+ readonly provider: v.PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
638
638
  readonly label: v.StringSchema<undefined>;
639
639
  readonly createdAt: v.NumberSchema<undefined>;
640
640
  readonly lastUsedAt: v.NullableSchema<v.NumberSchema<undefined>, undefined>;
@@ -30,7 +30,7 @@ export declare const listWorkspaceApiKeysContract: {
30
30
  readonly id: import("valibot").StringSchema<undefined>;
31
31
  readonly scope: import("valibot").PicklistSchema<["account", "workspace", "user"], undefined>;
32
32
  readonly scopeId: import("valibot").StringSchema<undefined>;
33
- readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
33
+ readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
34
34
  readonly label: import("valibot").StringSchema<undefined>;
35
35
  readonly createdAt: import("valibot").NumberSchema<undefined>;
36
36
  readonly lastUsedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
@@ -47,7 +47,7 @@ export declare const addWorkspaceApiKeyContract: {
47
47
  readonly method: "post";
48
48
  readonly pathResolver: () => string;
49
49
  readonly requestBodySchema: import("valibot").ObjectSchema<{
50
- readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
50
+ readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
51
51
  readonly label: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 120, undefined>]>;
52
52
  readonly key: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>]>;
53
53
  }, undefined>;
@@ -78,7 +78,7 @@ export declare const addWorkspaceApiKeyContract: {
78
78
  readonly id: import("valibot").StringSchema<undefined>;
79
79
  readonly scope: import("valibot").PicklistSchema<["account", "workspace", "user"], undefined>;
80
80
  readonly scopeId: import("valibot").StringSchema<undefined>;
81
- readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
81
+ readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
82
82
  readonly label: import("valibot").StringSchema<undefined>;
83
83
  readonly createdAt: import("valibot").NumberSchema<undefined>;
84
84
  readonly lastUsedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
@@ -129,7 +129,7 @@ export declare const updateWorkspaceApiKeyContract: {
129
129
  readonly id: import("valibot").StringSchema<undefined>;
130
130
  readonly scope: import("valibot").PicklistSchema<["account", "workspace", "user"], undefined>;
131
131
  readonly scopeId: import("valibot").StringSchema<undefined>;
132
- readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
132
+ readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
133
133
  readonly label: import("valibot").StringSchema<undefined>;
134
134
  readonly createdAt: import("valibot").NumberSchema<undefined>;
135
135
  readonly lastUsedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
@@ -206,7 +206,7 @@ export declare const listUserApiKeysContract: {
206
206
  readonly id: import("valibot").StringSchema<undefined>;
207
207
  readonly scope: import("valibot").PicklistSchema<["account", "workspace", "user"], undefined>;
208
208
  readonly scopeId: import("valibot").StringSchema<undefined>;
209
- readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
209
+ readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
210
210
  readonly label: import("valibot").StringSchema<undefined>;
211
211
  readonly createdAt: import("valibot").NumberSchema<undefined>;
212
212
  readonly lastUsedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
@@ -223,7 +223,7 @@ export declare const addUserApiKeyContract: {
223
223
  readonly method: "post";
224
224
  readonly pathResolver: () => string;
225
225
  readonly requestBodySchema: import("valibot").ObjectSchema<{
226
- readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
226
+ readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
227
227
  readonly label: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>, import("valibot").MaxLengthAction<string, 120, undefined>]>;
228
228
  readonly key: import("valibot").SchemaWithPipe<readonly [import("valibot").StringSchema<undefined>, import("valibot").TrimAction, import("valibot").MinLengthAction<string, 1, undefined>]>;
229
229
  }, undefined>;
@@ -254,7 +254,7 @@ export declare const addUserApiKeyContract: {
254
254
  readonly id: import("valibot").StringSchema<undefined>;
255
255
  readonly scope: import("valibot").PicklistSchema<["account", "workspace", "user"], undefined>;
256
256
  readonly scopeId: import("valibot").StringSchema<undefined>;
257
- readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
257
+ readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
258
258
  readonly label: import("valibot").StringSchema<undefined>;
259
259
  readonly createdAt: import("valibot").NumberSchema<undefined>;
260
260
  readonly lastUsedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
@@ -305,7 +305,7 @@ export declare const updateUserApiKeyContract: {
305
305
  readonly id: import("valibot").StringSchema<undefined>;
306
306
  readonly scope: import("valibot").PicklistSchema<["account", "workspace", "user"], undefined>;
307
307
  readonly scopeId: import("valibot").StringSchema<undefined>;
308
- readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "litellm"], undefined>;
308
+ readonly provider: import("valibot").PicklistSchema<["openai", "anthropic", "qwen", "deepseek", "moonshot", "xai", "openrouter", "bifrost", "litellm"], undefined>;
309
309
  readonly label: import("valibot").StringSchema<undefined>;
310
310
  readonly createdAt: import("valibot").NumberSchema<undefined>;
311
311
  readonly lastUsedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/contracts",
3
- "version": "0.317.0",
3
+ "version": "0.318.0",
4
4
  "description": "Valibot wire contract shared between the Agent Architecture Board frontend and backend.",
5
5
  "repository": {
6
6
  "type": "git",