@forestadmin/ai-proxy 1.12.4 → 1.12.6

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.
@@ -1,3 +1,4 @@
1
+ import type { McpServerLoadFailure } from './mcp-client';
1
2
  import type RemoteTool from './remote-tool';
2
3
  import type { ToolProvider } from './tool-provider';
3
4
  import type { Logger } from '@forestadmin/datasource-toolkit';
@@ -18,6 +19,10 @@ export default class ForestIntegrationClient implements ToolProvider {
18
19
  private readonly logger?;
19
20
  private readonly configs;
20
21
  constructor(configs: ForestIntegrationConfig[], logger?: Logger);
22
+ loadToolsWithFailures(): Promise<{
23
+ tools: RemoteTool[];
24
+ failures: McpServerLoadFailure[];
25
+ }>;
21
26
  loadTools(): Promise<RemoteTool[]>;
22
27
  checkConnection(): Promise<true>;
23
28
  dispose(): Promise<void>;
@@ -21,8 +21,9 @@ class ForestIntegrationClient {
21
21
  this.logger = logger;
22
22
  this.configs = configs;
23
23
  }
24
- async loadTools() {
24
+ async loadToolsWithFailures() {
25
25
  const tools = [];
26
+ const failures = [];
26
27
  this.configs.forEach(({ id: mcpServerId, integrationName, config }) => {
27
28
  switch (integrationName) {
28
29
  case 'Zendesk':
@@ -36,9 +37,20 @@ class ForestIntegrationClient {
36
37
  break;
37
38
  default:
38
39
  this.logger?.('Warn', `Unsupported integration: ${integrationName}`);
40
+ // Reporting it is what stops a caller reading an integration this build doesn't know as
41
+ // a healthy connector that publishes nothing.
42
+ failures.push({
43
+ server: integrationName,
44
+ mcpServerId,
45
+ kind: 'unknown',
46
+ error: new Error(`Unsupported integration: ${integrationName}`),
47
+ });
39
48
  }
40
49
  });
41
- return tools;
50
+ return { tools, failures };
51
+ }
52
+ async loadTools() {
53
+ return (await this.loadToolsWithFailures()).tools;
42
54
  }
43
55
  async checkConnection() {
44
56
  await Promise.all(this.configs.map(({ integrationName, config }) => {
@@ -60,4 +72,4 @@ class ForestIntegrationClient {
60
72
  }
61
73
  }
62
74
  exports.default = ForestIntegrationClient;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LWludGVncmF0aW9uLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3Jlc3QtaW50ZWdyYXRpb24tY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXVCQSw4REFNQztBQXpCRCxxQ0FBNkM7QUFDN0MsdUVBQTZFO0FBQzdFLHNEQUFpRTtBQUNqRSwyRUFBeUY7QUFDekYsMERBQXlFO0FBQ3pFLHlFQUFtRjtBQUNuRix3REFBcUU7QUFHeEQsUUFBQSx3QkFBd0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFVLENBQUM7QUFVbkYsU0FBZ0IseUJBQXlCLENBQ3ZDLE1BQXlEO0lBRXpELE9BQU8sQ0FDTCxtQkFBbUIsSUFBSSxNQUFNLElBQUssTUFBa0MsQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQ2hHLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBcUIsdUJBQXVCO0lBSTFDLFlBQVksT0FBa0MsRUFBRSxNQUFlO1FBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0sS0FBSyxHQUFpQixFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDcEUsUUFBUSxlQUFlLEVBQUUsQ0FBQztnQkFDeEIsS0FBSyxTQUFTO29CQUNaLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLGVBQWUsRUFBQyxNQUF1QixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQ3JFLE1BQU07Z0JBQ1IsS0FBSyxPQUFPO29CQUNWLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLGVBQWEsRUFBQyxNQUFxQixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQ2pFLE1BQU07Z0JBQ1IsS0FBSyxXQUFXO29CQUNkLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLGVBQWlCLEVBQUMsTUFBeUIsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO29CQUN6RSxNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsNEJBQTRCLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDekUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWU7UUFDbkIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUMvQyxRQUFRLGVBQWUsRUFBRSxDQUFDO2dCQUN4QixLQUFLLFNBQVM7b0JBQ1osT0FBTyxJQUFBLDZCQUFxQixFQUFDLE1BQXVCLENBQUMsQ0FBQztnQkFDeEQsS0FBSyxPQUFPO29CQUNWLE9BQU8sSUFBQSwyQkFBbUIsRUFBQyxNQUFxQixDQUFDLENBQUM7Z0JBQ3BELEtBQUssV0FBVztvQkFDZCxPQUFPLElBQUEsK0JBQXVCLEVBQUMsTUFBeUIsQ0FBQyxDQUFDO2dCQUM1RDtvQkFDRSxNQUFNLElBQUksMEJBQWlCLENBQUMsNEJBQTRCLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLHdEQUF3RDtJQUMxRCxDQUFDO0NBQ0Y7QUFyREQsMENBcURDIn0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0LWludGVncmF0aW9uLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3Jlc3QtaW50ZWdyYXRpb24tY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQXdCQSw4REFNQztBQXpCRCxxQ0FBNkM7QUFDN0MsdUVBQTZFO0FBQzdFLHNEQUFpRTtBQUNqRSwyRUFBeUY7QUFDekYsMERBQXlFO0FBQ3pFLHlFQUFtRjtBQUNuRix3REFBcUU7QUFHeEQsUUFBQSx3QkFBd0IsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFVLENBQUM7QUFVbkYsU0FBZ0IseUJBQXlCLENBQ3ZDLE1BQXlEO0lBRXpELE9BQU8sQ0FDTCxtQkFBbUIsSUFBSSxNQUFNLElBQUssTUFBa0MsQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLENBQ2hHLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBcUIsdUJBQXVCO0lBSTFDLFlBQVksT0FBa0MsRUFBRSxNQUFlO1FBQzdELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMscUJBQXFCO1FBSXpCLE1BQU0sS0FBSyxHQUFpQixFQUFFLENBQUM7UUFDL0IsTUFBTSxRQUFRLEdBQTJCLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUNwRSxRQUFRLGVBQWUsRUFBRSxDQUFDO2dCQUN4QixLQUFLLFNBQVM7b0JBQ1osS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsZUFBZSxFQUFDLE1BQXVCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDckUsTUFBTTtnQkFDUixLQUFLLE9BQU87b0JBQ1YsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsZUFBYSxFQUFDLE1BQXFCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztvQkFDakUsTUFBTTtnQkFDUixLQUFLLFdBQVc7b0JBQ2QsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsZUFBaUIsRUFBQyxNQUF5QixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQ3pFLE1BQU07Z0JBQ1I7b0JBQ0UsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSw0QkFBNEIsZUFBZSxFQUFFLENBQUMsQ0FBQztvQkFDckUsd0ZBQXdGO29CQUN4Riw4Q0FBOEM7b0JBQzlDLFFBQVEsQ0FBQyxJQUFJLENBQUM7d0JBQ1osTUFBTSxFQUFFLGVBQWU7d0JBQ3ZCLFdBQVc7d0JBQ1gsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLDRCQUE0QixlQUFlLEVBQUUsQ0FBQztxQkFDaEUsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVM7UUFDYixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWU7UUFDbkIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUMvQyxRQUFRLGVBQWUsRUFBRSxDQUFDO2dCQUN4QixLQUFLLFNBQVM7b0JBQ1osT0FBTyxJQUFBLDZCQUFxQixFQUFDLE1BQXVCLENBQUMsQ0FBQztnQkFDeEQsS0FBSyxPQUFPO29CQUNWLE9BQU8sSUFBQSwyQkFBbUIsRUFBQyxNQUFxQixDQUFDLENBQUM7Z0JBQ3BELEtBQUssV0FBVztvQkFDZCxPQUFPLElBQUEsK0JBQXVCLEVBQUMsTUFBeUIsQ0FBQyxDQUFDO2dCQUM1RDtvQkFDRSxNQUFNLElBQUksMEJBQWlCLENBQUMsNEJBQTRCLGVBQWUsRUFBRSxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLHdEQUF3RDtJQUMxRCxDQUFDO0NBQ0Y7QUFyRUQsMENBcUVDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/ai-proxy",
3
- "version": "1.12.4",
3
+ "version": "1.12.6",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "dependencies": {
15
15
  "@forestadmin/agent-toolkit": "1.2.0",
16
- "@forestadmin/datasource-toolkit": "1.54.0",
16
+ "@forestadmin/datasource-toolkit": "1.55.0",
17
17
  "@langchain/anthropic": "1.4.0",
18
18
  "@langchain/core": "1.1.48",
19
19
  "@langchain/langgraph": "1.3.7",