@forestadmin/agent 1.101.0 → 1.102.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.
@@ -89,10 +89,31 @@ class EmbeddedWorkflowExecutor {
89
89
  'store persists nothing; drop one of the two options.');
90
90
  }
91
91
  const { ai } = embedOptions;
92
- if (ai && (!ai.provider || !ai.model || !ai.apiKey)) {
93
- throw new Error('addWorkflowExecutor: `ai` requires `provider`, `model` and `apiKey` together. ' +
92
+ if (ai && (!ai.provider || !ai.model)) {
93
+ throw new Error('addWorkflowExecutor: `ai` requires `provider` and `model` together. ' +
94
94
  'Omit `ai` entirely to use Forest’s AI server.');
95
95
  }
96
+ // The CLI refuses this outright; without the same check here a JS caller ships a key believing
97
+ // it authenticates, while ChatBedrockConverse drops it and falls back to the ambient IAM role.
98
+ if (ai?.provider === 'bedrock' && ai.apiKey) {
99
+ throw new Error('addWorkflowExecutor: `apiKey` is not used with provider `bedrock`: credentials come from ' +
100
+ 'the AWS credential chain (IAM role, AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY, shared ' +
101
+ 'profile). Remove it.');
102
+ }
103
+ if (ai && ai.provider !== 'bedrock' && !ai.apiKey) {
104
+ throw new Error(`addWorkflowExecutor: \`ai\` requires \`apiKey\` for provider '${ai.provider}'. ` +
105
+ 'Only `bedrock` reads its credentials from the AWS credential chain.');
106
+ }
107
+ // ChatBedrockConverse demands a region at construction and reads AWS_DEFAULT_REGION only, so
108
+ // the AWS SDK below it never gets to resolve one from the shared profile — a deployment that
109
+ // sets the region the ordinary way still has none.
110
+ if (ai?.provider === 'bedrock' &&
111
+ !ai.region &&
112
+ !process.env.AWS_REGION &&
113
+ !process.env.AWS_DEFAULT_REGION) {
114
+ throw new Error('addWorkflowExecutor: `ai` with provider `bedrock` requires `region`, AWS_REGION or ' +
115
+ 'AWS_DEFAULT_REGION.');
116
+ }
96
117
  const port = embedOptions.port ?? DEFAULT_EMBEDDED_EXECUTOR_PORT;
97
118
  this.config = { ...embedOptions, port };
98
119
  return `http://127.0.0.1:${port}`;
@@ -175,4 +196,4 @@ class EmbeddedWorkflowExecutor {
175
196
  }
176
197
  }
177
198
  exports.default = EmbeddedWorkflowExecutor;
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWQtd29ya2Zsb3ctZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW1iZWRkZWQtd29ya2Zsb3ctZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxnREFBd0I7QUFFeEIsK0RBQStEO0FBQy9ELE1BQU0sOEJBQThCLEdBQUcsSUFBSSxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxTQUFTLFNBQVMsQ0FBQyxPQUFlLEVBQUUsT0FBaUM7SUFDbkUsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyx1QkFBdUIsT0FBTyxFQUFFLENBQUM7SUFFM0YsSUFBSSxDQUFDO1FBQ0gsT0FBTyx1QkFBdUIsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyx1QkFBdUIsT0FBTywyQkFBMkIsQ0FBQztJQUNuRSxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLElBQWE7SUFDdEMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxJQUFJO1FBQUUsT0FBTyxXQUFXLENBQUM7SUFFckUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDakQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFxQix3QkFBd0I7SUFJM0MsWUFBNkIsT0FBaUM7UUFBakMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFIdEQsV0FBTSxHQUE2RCxJQUFJLENBQUM7UUFDeEUsYUFB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
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWQtd29ya2Zsb3ctZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZW1iZWRkZWQtd29ya2Zsb3ctZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxnREFBd0I7QUFFeEIsK0RBQStEO0FBQy9ELE1BQU0sOEJBQThCLEdBQUcsSUFBSSxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxTQUFTLFNBQVMsQ0FBQyxPQUFlLEVBQUUsT0FBaUM7SUFDbkUsSUFBSSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyx1QkFBdUIsT0FBTyxFQUFFLENBQUM7SUFFM0YsSUFBSSxDQUFDO1FBQ0gsT0FBTyx1QkFBdUIsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyx1QkFBdUIsT0FBTywyQkFBMkIsQ0FBQztJQUNuRSxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLGlCQUFpQixDQUFDLElBQWE7SUFDdEMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxJQUFJO1FBQUUsT0FBTyxXQUFXLENBQUM7SUFFckUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDakQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFxQix3QkFBd0I7SUFJM0MsWUFBNkIsT0FBaUM7UUFBakMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFIdEQsV0FBTSxHQUE2RCxJQUFJLENBQUM7UUFDeEUsYUFB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
package/dist/types.d.ts CHANGED
@@ -136,13 +136,19 @@ export type WorkflowExecutorEmbedOptions = Omit<WorkflowExecutorTuningOptions, '
136
136
  */
137
137
  port?: number;
138
138
  /**
139
- * Bring your own AI provider instead of Forest's AI server. All three fields are required
140
- * together; omit `ai` entirely to keep using Forest's server.
139
+ * Bring your own AI provider instead of Forest's AI server. Omit `ai` entirely to keep using
140
+ * Forest's server. `bedrock` takes no `apiKey`: credentials come from the AWS credential chain
141
+ * (IAM role, AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY, shared profile). `region` falls back to
142
+ * AWS_REGION / AWS_DEFAULT_REGION, but never to the profile's own `region`.
141
143
  */
142
144
  ai?: {
143
145
  provider: 'anthropic' | 'openai';
144
146
  model: string;
145
147
  apiKey: string;
148
+ } | {
149
+ provider: 'bedrock';
150
+ model: string;
151
+ region?: string;
146
152
  };
147
153
  /**
148
154
  * HKDF secret encrypting OAuth-protected MCP connector credentials at rest. Only needed if you
package/dist/types.js CHANGED
@@ -22,4 +22,4 @@ var RouteType;
22
22
  RouteType[RouteType["Authentication"] = 3] = "Authentication";
23
23
  RouteType[RouteType["PrivateRoute"] = 4] = "PrivateRoute";
24
24
  })(RouteType || (exports.RouteType = RouteType = {}));
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd05BLElBQVksUUFVWDtBQVZELFdBQVksUUFBUTtJQUNsQixxREFBZ0IsQ0FBQTtJQUNoQix5REFBa0IsQ0FBQTtJQUNsQixtREFBZSxDQUFBO0lBQ2YsaURBQWMsQ0FBQTtJQUNkLDJEQUFtQixDQUFBO0lBQ25CLCtEQUFxQixDQUFBO0lBQ3JCLHVFQUF5QixDQUFBO0lBQ3pCLG1EQUFlLENBQUE7SUFDZixxQ0FBUSxDQUFBO0FBQ1YsQ0FBQyxFQVZXLFFBQVEsd0JBQVIsUUFBUSxRQVVuQjtBQUVELElBQVksU0FPWDtBQVBELFdBQVksU0FBUztJQUNuQixpR0FBaUc7SUFDakcsMkRBQWlCLENBQUE7SUFDakIseURBQWdCLENBQUE7SUFDaEIsdURBQWUsQ0FBQTtJQUNmLDZEQUFrQixDQUFBO0lBQ2xCLHlEQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFQVyxTQUFTLHlCQUFULFNBQVMsUUFPcEIifQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNE5BLElBQVksUUFVWDtBQVZELFdBQVksUUFBUTtJQUNsQixxREFBZ0IsQ0FBQTtJQUNoQix5REFBa0IsQ0FBQTtJQUNsQixtREFBZSxDQUFBO0lBQ2YsaURBQWMsQ0FBQTtJQUNkLDJEQUFtQixDQUFBO0lBQ25CLCtEQUFxQixDQUFBO0lBQ3JCLHVFQUF5QixDQUFBO0lBQ3pCLG1EQUFlLENBQUE7SUFDZixxQ0FBUSxDQUFBO0FBQ1YsQ0FBQyxFQVZXLFFBQVEsd0JBQVIsUUFBUSxRQVVuQjtBQUVELElBQVksU0FPWDtBQVBELFdBQVksU0FBUztJQUNuQixpR0FBaUc7SUFDakcsMkRBQWlCLENBQUE7SUFDakIseURBQWdCLENBQUE7SUFDaEIsdURBQWUsQ0FBQTtJQUNmLDZEQUFrQixDQUFBO0lBQ2xCLHlEQUFnQixDQUFBO0FBQ2xCLENBQUMsRUFQVyxTQUFTLHlCQUFULFNBQVMsUUFPcEIifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/agent",
3
- "version": "1.101.0",
3
+ "version": "1.102.0",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {
@@ -51,7 +51,7 @@
51
51
  "@fastify/express": "^1.1.0",
52
52
  "@forestadmin/agent-bff": "1.31.0",
53
53
  "@forestadmin/datasource-sql": "1.17.14",
54
- "@forestadmin/workflow-executor": "1.28.5",
54
+ "@forestadmin/workflow-executor": "1.29.0",
55
55
  "@nestjs/common": "^11.1.24",
56
56
  "@nestjs/core": "^11.1.24",
57
57
  "@nestjs/platform-express": "^11.1.24",
@@ -76,7 +76,7 @@
76
76
  "peerDependencies": {
77
77
  "@fastify/express": "^1.1.0 || ^2.0.0 || ^3.0.0 || ^4.0.0",
78
78
  "@forestadmin/agent-bff": "1.31.0",
79
- "@forestadmin/workflow-executor": "1.28.5"
79
+ "@forestadmin/workflow-executor": "1.29.0"
80
80
  },
81
81
  "peerDependenciesMeta": {
82
82
  "@fastify/express": {