@mastra/factory 0.20.0 → 0.21.0-alpha.1

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.
@@ -24,8 +24,10 @@ import type { RouteDependencies } from './route.js';
24
24
  * Where a provider's active credential comes from, as seen by the caller.
25
25
  * Local mode reports `oauth`/`stored` (server-global `auth.json`); tenant mode
26
26
  * reports the scoped variants (`oauth-user`/`stored-user`/`stored-org`).
27
+ * `deployment` (tenant mode) marks a provider the operator opted in to run on
28
+ * the server process's own credentials (e.g. Amazon Bedrock's AWS chain).
27
29
  */
28
- export type ProviderCredentialSource = 'oauth' | 'stored' | 'env' | 'none' | 'oauth-user' | 'oauth-org' | 'stored-user' | 'stored-org';
30
+ export type ProviderCredentialSource = 'deployment' | 'oauth' | 'stored' | 'env' | 'none' | 'oauth-user' | 'oauth-org' | 'stored-user' | 'stored-org';
29
31
  /** A model provider with the current source of its credentials. */
30
32
  export interface ProviderInfo {
31
33
  provider: string;
@@ -114,10 +116,11 @@ interface ModelCatalog {
114
116
  * *caller's* tenant rows with user > org precedence and the server-global
115
117
  * `authStorage` is ignored; otherwise the local `auth.json` view is reported.
116
118
  */
117
- export declare function listProviders({ controller, authStorage, tenantCredentials, }: {
119
+ export declare function listProviders({ controller, authStorage, tenantCredentials, deploymentProviders, }: {
118
120
  controller: ModelCatalog;
119
121
  authStorage?: AuthStorage;
120
122
  tenantCredentials?: CredentialRecord[];
123
+ deploymentProviders?: ReadonlySet<string>;
121
124
  }): Promise<ProviderInfo[]>;
122
125
  /** A user-defined OpenAI-compatible provider, with key presence (never the key). */
123
126
  export interface CustomProviderInfo {
@@ -127,15 +130,29 @@ export interface CustomProviderInfo {
127
130
  hasApiKey: boolean;
128
131
  models: string[];
129
132
  }
133
+ /**
134
+ * Providers whose credentials can only come from the server process (Amazon
135
+ * Bedrock authenticates through the AWS credential chain). In tenant mode they
136
+ * are usable only when the operator lists them in
137
+ * `MastraFactoryConfig.deploymentModelProviders`.
138
+ */
139
+ export declare const DEPLOYMENT_MODEL_PROVIDERS: readonly string[];
140
+ export declare function isDeploymentModelProvider(provider: string): boolean;
141
+ /**
142
+ * Normalize the operator's `deploymentModelProviders` list. Unsupported ids are
143
+ * ignored with a warning rather than failing boot.
144
+ */
145
+ export declare function resolveDeploymentModelProviders(providers: readonly string[] | undefined): ReadonlySet<string>;
130
146
  /**
131
147
  * Compute which providers the user can reach, mirroring the TUI's
132
148
  * `/models-pack` access derivation: OAuth/api-key from the credential store for
133
149
  * the named providers, plus any other provider that has a usable key.
134
150
  */
135
- export declare function buildProviderAccess({ controller, authStorage, tenantCredentials, }: {
151
+ export declare function buildProviderAccess({ controller, authStorage, tenantCredentials, deploymentProviders, }: {
136
152
  controller: ModelCatalog;
137
153
  authStorage?: AuthStorage;
138
154
  tenantCredentials?: CredentialRecord[];
155
+ deploymentProviders?: ReadonlySet<string>;
139
156
  }): Promise<ProviderAccess>;
140
157
  /** Per-user default model context for the current request. */
141
158
  export interface ModelDefaultsContext {
@@ -203,6 +220,11 @@ export interface ConfigRoutesDeps extends RouteDependencies {
203
220
  onCustomProvidersChanged?: (tenant: {
204
221
  orgId: string;
205
222
  }) => void;
223
+ /**
224
+ * Tenant mode: providers the operator opted in to run on the server process's
225
+ * own credentials (see `DEPLOYMENT_MODEL_PROVIDERS`).
226
+ */
227
+ deploymentProviders?: ReadonlySet<string>;
206
228
  /**
207
229
  * Path of the server's settings.json backing the deployment-scoped thinking
208
230
  * defaults. Defaults to the standard app-data location; injectable for tests.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/routes/config.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  import { WEB_OAUTH_FLOW_KINDS, getAuthProviderId, listTenantCredentialsForRequest, resolveCredentialContext, tenantOrgId } from "./provider-credentials.js";
2
- import { Route } from "./route.js";
3
2
  import { factoryMemorySettingsUserId } from "../storage/domains/memory-settings/base.js";
4
3
  import { applyStoredMemorySettings } from "../session/memory-settings-hydration.js";
5
4
  import { seedPersonalOmDefaults } from "./om-seed.js";
5
+ import { Route } from "./route.js";
6
6
  import { registerApiRoute } from "@mastra/core/server";
7
7
  import { z } from "zod";
8
- import { resolveProviderOMDefault } from "@mastra/code-sdk/onboarding/packs";
9
8
  import { DEFAULT_OM_MODEL_ID } from "@mastra/code-sdk/constants";
9
+ import { resolveProviderOMDefault } from "@mastra/code-sdk/onboarding/packs";
10
10
  import { THINKING_LEVEL_VALUES, getCustomProviderId, isThinkingLevelSetting, loadSettings, saveSettings } from "@mastra/code-sdk/onboarding/settings";
11
+ import { AMAZON_BEDROCK_GATEWAY_ID } from "@mastra/code-sdk/providers/amazon-bedrock-gateway";
12
+ import { getModelReasoningOptions } from "@mastra/core/llm";
11
13
  //#region src/routes/config.ts
12
14
  /** Widen a route-local Hono context to the plain `Context` the auth helpers take. */
13
15
  function loose(c) {
@@ -22,11 +24,18 @@ function loose(c) {
22
24
  * *caller's* tenant rows with user > org precedence and the server-global
23
25
  * `authStorage` is ignored; otherwise the local `auth.json` view is reported.
24
26
  */
25
- async function listProviders({ controller, authStorage, tenantCredentials }) {
27
+ async function listProviders({ controller, authStorage, tenantCredentials, deploymentProviders }) {
26
28
  const models = await controller.listAvailableModels();
27
29
  const seen = /* @__PURE__ */ new Map();
28
30
  for (const model of models) {
29
31
  if (seen.has(model.provider)) continue;
32
+ if (tenantCredentials && isDeploymentModelProvider(model.provider)) {
33
+ if (deploymentProviders?.has(model.provider) && models.some((m) => m.provider === model.provider && m.hasApiKey)) seen.set(model.provider, {
34
+ provider: model.provider,
35
+ source: "deployment"
36
+ });
37
+ continue;
38
+ }
30
39
  const authProviderId = getAuthProviderId(model.provider);
31
40
  let source = "none";
32
41
  let orgKey;
@@ -120,16 +129,41 @@ function parseCustomProviderBody(body) {
120
129
  };
121
130
  }
122
131
  /**
132
+ * Providers whose credentials can only come from the server process (Amazon
133
+ * Bedrock authenticates through the AWS credential chain). In tenant mode they
134
+ * are usable only when the operator lists them in
135
+ * `MastraFactoryConfig.deploymentModelProviders`.
136
+ */
137
+ const DEPLOYMENT_MODEL_PROVIDERS = [AMAZON_BEDROCK_GATEWAY_ID];
138
+ function isDeploymentModelProvider(provider) {
139
+ return DEPLOYMENT_MODEL_PROVIDERS.includes(provider);
140
+ }
141
+ /**
142
+ * Normalize the operator's `deploymentModelProviders` list. Unsupported ids are
143
+ * ignored with a warning rather than failing boot.
144
+ */
145
+ function resolveDeploymentModelProviders(providers) {
146
+ const resolved = /* @__PURE__ */ new Set();
147
+ for (const raw of providers ?? []) {
148
+ const provider = raw.trim();
149
+ if (!provider) continue;
150
+ if (isDeploymentModelProvider(provider)) resolved.add(provider);
151
+ else console.warn(`[factory] Ignoring deployment model provider "${provider}". Supported: ${DEPLOYMENT_MODEL_PROVIDERS.join(", ")}.`);
152
+ }
153
+ return resolved;
154
+ }
155
+ /**
123
156
  * Compute which providers the user can reach, mirroring the TUI's
124
157
  * `/models-pack` access derivation: OAuth/api-key from the credential store for
125
158
  * the named providers, plus any other provider that has a usable key.
126
159
  */
127
- async function buildProviderAccess({ controller, authStorage, tenantCredentials }) {
160
+ async function buildProviderAccess({ controller, authStorage, tenantCredentials, deploymentProviders }) {
128
161
  const models = await controller.listAvailableModels();
129
162
  const hasModelKey = (provider) => models.some((m) => m.provider === provider && m.hasApiKey);
130
163
  const accessLevel = (provider) => {
131
164
  const authProviderId = getAuthProviderId(provider);
132
165
  if (tenantCredentials) {
166
+ if (isDeploymentModelProvider(provider)) return deploymentProviders?.has(provider) && hasModelKey(provider) ? "apikey" : false;
133
167
  const userRec = tenantCredentials.find((r) => r.scope === "user" && r.provider === authProviderId);
134
168
  const orgRec = tenantCredentials.find((r) => r.scope === "org" && r.provider === authProviderId);
135
169
  const credential = userRec?.credential ?? orgRec?.credential;
@@ -273,7 +307,7 @@ async function persistMemorySettings(context, patch, fillIfUnset) {
273
307
  var ConfigRoutes = class extends Route {
274
308
  routes() {
275
309
  const options = this.deps;
276
- const { controller, authStorage, auth } = options;
310
+ const { controller, authStorage, auth, deploymentProviders } = options;
277
311
  const onCredentialsChanged = options.onCredentialsChanged ?? (() => {});
278
312
  const onCustomProvidersChanged = options.onCustomProvidersChanged ?? (() => {});
279
313
  const factoryOmFallback = async (factoryProjectId) => {
@@ -308,7 +342,8 @@ var ConfigRoutes = class extends Route {
308
342
  providers: await listProviders({
309
343
  controller,
310
344
  authStorage: tenantCredentials ? void 0 : authStorage,
311
- tenantCredentials
345
+ tenantCredentials,
346
+ deploymentProviders
312
347
  }),
313
348
  ...orgKeyAdmin !== void 0 ? { orgKeyAdmin } : {}
314
349
  });
@@ -340,6 +375,10 @@ var ConfigRoutes = class extends Route {
340
375
  const scope = body.scope === "org" ? "org" : "user";
341
376
  try {
342
377
  if (ctx.mode === "tenant") {
378
+ if (isDeploymentModelProvider(provider)) return c.json({
379
+ error: "provider_configured_by_deployment",
380
+ message: `${provider} is configured by the Factory deployment (credentials on the server), not per account.`
381
+ }, 400);
343
382
  if (scope === "org" && !await auth.isOrganizationAdmin(loose(c), ctx.orgId)) return c.json({ error: "organization_admin_required" }, 403);
344
383
  const tenant = scope === "org" ? { orgId: ctx.orgId } : {
345
384
  orgId: ctx.orgId,
@@ -358,7 +397,8 @@ var ConfigRoutes = class extends Route {
358
397
  const records = await ctx.storage.listCredentials(ctx.orgId, ctx.userId);
359
398
  const providers = await listProviders({
360
399
  controller,
361
- tenantCredentials: records
400
+ tenantCredentials: records,
401
+ deploymentProviders
362
402
  });
363
403
  return c.json({
364
404
  ok: true,
@@ -404,7 +444,8 @@ var ConfigRoutes = class extends Route {
404
444
  const records = await ctx.storage.listCredentials(ctx.orgId, ctx.userId);
405
445
  const providers = await listProviders({
406
446
  controller,
407
- tenantCredentials: records
447
+ tenantCredentials: records,
448
+ deploymentProviders
408
449
  });
409
450
  return c.json({
410
451
  ok: true,
@@ -522,14 +563,16 @@ var ConfigRoutes = class extends Route {
522
563
  const [models, access] = await Promise.all([controller.listAvailableModels(), buildProviderAccess({
523
564
  controller,
524
565
  authStorage: tenantCredentials ? void 0 : authStorage,
525
- tenantCredentials
566
+ tenantCredentials,
567
+ deploymentProviders
526
568
  })]);
527
- const catalog = models.filter((m) => canUseModelProvider(access, m.provider) && typeof m.id === "string").map((m) => ({
528
- id: m.id,
529
- provider: m.provider,
530
- modelName: m.modelName,
531
- hasApiKey: true
532
- }));
569
+ const catalog = models.flatMap(({ id, provider, modelName }) => typeof id === "string" && canUseModelProvider(access, provider) ? [{
570
+ id,
571
+ provider,
572
+ modelName,
573
+ hasApiKey: true,
574
+ reasoningOptions: getModelReasoningOptions(id)
575
+ }] : []);
533
576
  if (options.customProviders) try {
534
577
  const ctx = await resolveCustomProvidersContext({
535
578
  c: loose(c),
@@ -546,7 +589,8 @@ var ConfigRoutes = class extends Route {
546
589
  id,
547
590
  provider: record.providerId,
548
591
  modelName: model,
549
- hasApiKey: true
592
+ hasApiKey: true,
593
+ reasoningOptions: void 0
550
594
  });
551
595
  }
552
596
  }
@@ -728,7 +772,8 @@ var ConfigRoutes = class extends Route {
728
772
  if (!(await buildProviderAccess({
729
773
  controller,
730
774
  authStorage: tenantCredentials ? void 0 : authStorage,
731
- tenantCredentials
775
+ tenantCredentials,
776
+ deploymentProviders
732
777
  }))[providerId]) return c.json({ error: `Provider "${providerId}" is not configured` }, 400);
733
778
  const modelId = resolveProviderOMDefault(providerId, factoryModelId).modelId;
734
779
  const record = await context.storage.patch({
@@ -932,6 +977,6 @@ var ConfigRoutes = class extends Route {
932
977
  }
933
978
  };
934
979
  //#endregion
935
- export { ConfigRoutes, buildProviderAccess, listProviders, readOMConfig };
980
+ export { ConfigRoutes, DEPLOYMENT_MODEL_PROVIDERS, buildProviderAccess, isDeploymentModelProvider, listProviders, readOMConfig, resolveDeploymentModelProviders };
936
981
 
937
982
  //# sourceMappingURL=config.js.map