@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.
- package/dist/embedded-workflow-executor.js +24 -3
- package/dist/types.d.ts +8 -2
- package/dist/types.js +1 -1
- package/package.json +3 -3
|
@@ -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
|
|
93
|
-
throw new Error('addWorkflowExecutor: `ai` requires `provider
|
|
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,
|
|
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.
|
|
140
|
-
*
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
79
|
+
"@forestadmin/workflow-executor": "1.29.0"
|
|
80
80
|
},
|
|
81
81
|
"peerDependenciesMeta": {
|
|
82
82
|
"@fastify/express": {
|