@arvo-tools/agentic 0.4.0 → 1.0.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.
Files changed (60) hide show
  1. package/dist/Agent/AgentDefaults.d.ts +4 -2
  2. package/dist/Agent/AgentDefaults.d.ts.map +1 -1
  3. package/dist/Agent/AgentDefaults.js +3 -0
  4. package/dist/Agent/AgentDefaults.js.map +1 -1
  5. package/dist/Agent/agentLoop.d.ts +22 -1
  6. package/dist/Agent/agentLoop.d.ts.map +1 -1
  7. package/dist/Agent/agentLoop.js +39 -4
  8. package/dist/Agent/agentLoop.js.map +1 -1
  9. package/dist/Agent/index.d.ts +76 -3
  10. package/dist/Agent/index.d.ts.map +1 -1
  11. package/dist/Agent/index.js +77 -2
  12. package/dist/Agent/index.js.map +1 -1
  13. package/dist/Agent/schema.d.ts +9 -0
  14. package/dist/Agent/schema.d.ts.map +1 -1
  15. package/dist/Agent/schema.js +7 -0
  16. package/dist/Agent/schema.js.map +1 -1
  17. package/dist/Agent/types.d.ts +214 -58
  18. package/dist/Agent/types.d.ts.map +1 -1
  19. package/dist/Agent/utils.d.ts +46 -1
  20. package/dist/Agent/utils.d.ts.map +1 -1
  21. package/dist/Agent/utils.js +43 -0
  22. package/dist/Agent/utils.js.map +1 -1
  23. package/dist/{Agent/agentTool.d.ts → AgentTool/index.d.ts} +3 -3
  24. package/dist/AgentTool/index.d.ts.map +1 -0
  25. package/dist/{Agent/agentTool.js → AgentTool/index.js} +1 -1
  26. package/dist/AgentTool/index.js.map +1 -0
  27. package/dist/AgentTool/types.d.ts +21 -0
  28. package/dist/AgentTool/types.d.ts.map +1 -0
  29. package/dist/AgentTool/types.js +3 -0
  30. package/dist/AgentTool/types.js.map +1 -0
  31. package/dist/Integrations/MCPClient.d.ts +62 -29
  32. package/dist/Integrations/MCPClient.d.ts.map +1 -1
  33. package/dist/Integrations/MCPClient.js +60 -29
  34. package/dist/Integrations/MCPClient.js.map +1 -1
  35. package/dist/Integrations/openai/index.d.ts +25 -0
  36. package/dist/Integrations/openai/index.d.ts.map +1 -0
  37. package/dist/Integrations/{openai.js → openai/index.js} +64 -28
  38. package/dist/Integrations/openai/index.js.map +1 -0
  39. package/dist/Integrations/prompts.d.ts +8 -0
  40. package/dist/Integrations/prompts.d.ts.map +1 -0
  41. package/dist/Integrations/prompts.js +12 -0
  42. package/dist/Integrations/prompts.js.map +1 -0
  43. package/dist/Integrations/types.d.ts +101 -0
  44. package/dist/Integrations/types.d.ts.map +1 -0
  45. package/dist/Integrations/types.js +3 -0
  46. package/dist/Integrations/types.js.map +1 -0
  47. package/dist/index.d.ts +7 -4
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +5 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/interfaces.mcp.d.ts +29 -0
  52. package/dist/interfaces.mcp.d.ts.map +1 -1
  53. package/dist/types.d.ts +13 -0
  54. package/dist/types.d.ts.map +1 -1
  55. package/package.json +2 -2
  56. package/dist/Agent/agentTool.d.ts.map +0 -1
  57. package/dist/Agent/agentTool.js.map +0 -1
  58. package/dist/Integrations/openai.d.ts +0 -10
  59. package/dist/Integrations/openai.d.ts.map +0 -1
  60. package/dist/Integrations/openai.js.map +0 -1
@@ -108,4 +108,4 @@ var createAgentTool = function (param) {
108
108
  }); } }));
109
109
  };
110
110
  exports.createAgentTool = createAgentTool;
111
- //# sourceMappingURL=agentTool.js.map
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/AgentTool/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kGAGqD;AACrD,0CAAoD;AACpD,uCAAqE;AAK9D,IAAM,eAAe,GAAG,UAI7B,KAAqD;IAErD,OAAA,uBACK,KAAK,KACR,EAAE,EAAE,UAAO,KAA4B,EAAE,MAAkC;;;;4BACzE,qBAAM,6BAAiB,CAAC,WAAW,EAAE,CAAC,eAAe,CAAC;4BACpD,IAAI,EAAE,oBAAa,KAAK,CAAC,IAAI,cAAW;4BACxC,qBAAqB,EAAE,IAAI;4BAC3B,OAAO,EAAE;gCACP,WAAW,EAAE,eAAe;gCAC5B,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;6BACtC;4BACD,WAAW,EAAE;gCACX,UAAU;oCACR,GAAC,wDAAgC,CAAC,uBAAuB,IAAG,0DAAqB,CAAC,IAAI;uCACvF;6BACF;4BACD,EAAE,EAAE,UAAO,IAAI;;;;;;4CAEX,IAAI,CAAC,YAAY,CAAC,wDAAgC,CAAC,uBAAuB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;4CACxF,IAAI,CAAC,YAAY,CACf,wDAAgC,CAAC,iCAAiC,EAClE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CACtB,CAAC;4CACF,IAAI,CAAC,YAAY,CAAC,wDAAgC,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;4CACjF,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;4CACrD,IAAI,eAAe,CAAC,KAAK;gDACvB,MAAM,IAAI,KAAK,CACb,2GAAoG,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAE,CACvI,CAAC;4CACW,qBAAM,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE;oDAClD,QAAQ,EAAE;wDACR,IAAI,MAAA;wDACJ,OAAO,EAAE,IAAA,iCAAqB,EAAC,IAAI,CAAC;qDACrC;iDACF,CAAC,EAAA;;4CALI,MAAM,GAAG,SAKb;4CACF,IAAI,CAAC,YAAY,CACf,wDAAgC,CAAC,YAAY,EAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;4CACF,sBAAO,MAAM,EAAC;;;4CAEd,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAc,CAAC,KAAK,EAAE,OAAO,EAAG,KAAa,aAAb,KAAG,uBAAH,KAAG,CAAY,OAAO,EAAE,CAAC,CAAC;4CACjF,MAAM,KAAG,CAAC;;4CAEV,IAAI,CAAC,GAAG,EAAE,CAAC;;;;;iCAEd;yBACF,CAAC,EAAA;4BA3CF,sBAAA,SA2CE,EAAA;;;aAAA,IAC8C;AA/CpD,CA+CoD,CAAC;AArD1C,QAAA,eAAe,mBAqD2B"}
@@ -0,0 +1,21 @@
1
+ import type z from 'zod';
2
+ import type { OtelInfoType, PromiseAble } from '../types';
3
+ /**
4
+ * Defines a Synchronous Internal Tool.
5
+ *
6
+ * Internal tools are standard JavaScript functions that run within the Agent's process.
7
+ * Unlike Services, the Agent **does not suspend** when calling these. They are awaited immediately.
8
+ *
9
+ * Use cases: Mathematical calculations, Date/Time checks, Regex validation, lightweight logic.
10
+ */
11
+ export type AgentInternalTool<TInputSchema extends z.ZodTypeAny = any, TOutputSchema extends z.ZodTypeAny = any> = {
12
+ name: string;
13
+ description: string;
14
+ input: TInputSchema;
15
+ output: TOutputSchema;
16
+ priority?: number;
17
+ fn: (input: z.infer<TInputSchema>, config: {
18
+ otelInfo: OtelInfoType;
19
+ }) => PromiseAble<z.infer<TOutputSchema>>;
20
+ };
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/AgentTool/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CAE3B,YAAY,SAAS,CAAC,CAAC,UAAU,GAAG,GAAG,EAEvC,aAAa,SAAS,CAAC,CAAC,UAAU,GAAG,GAAG,IACtC;IACF,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,CACF,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAC5B,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,KAC/B,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;CAC1C,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/AgentTool/types.ts"],"names":[],"mappings":""}
@@ -1,12 +1,32 @@
1
1
  import type { IMCPClient } from '../interfaces.mcp.js';
2
2
  import type { OtelInfoType } from '../types.js';
3
3
  /**
4
- * Model Context Protocol (MCP) client implementation for connecting to and interacting with MCP servers.
4
+ * A Production-grade Client for the Model Context Protocol (MCP).
5
5
  *
6
- * This client provides a robust interface for establishing connections to MCP servers,
7
- * discovering available tools, invoking those tools with arguments, and managing the
8
- * connection lifecycle. It supports both Server-Sent Events (SSE) and streamable HTTP
9
- * transport protocols, automatically selecting the appropriate transport based on the URL.
6
+ * This class bridges Arvo Agents with the external MCP ecosystem, allowing agents to
7
+ * interact with filesystem, databases, GitHub, Slack, and other standardized MCP servers.
8
+ *
9
+ * @remarks
10
+ * **Key Features:**
11
+ * - **Auto-Transport Selection:** Automatically chooses between `SSEClientTransport` and
12
+ * `StreamableHTTPClientTransport` based on the URL pattern (checks for `/mcp` suffix).
13
+ * - **Orchestration Control:** Supports mapping priorities to external tools, allowing
14
+ * MCP tools to participate in Arvo's **Priority Batch Execution** logic.
15
+ * - **Observability:** Deep integration with Arvo's OpenTelemetry system to trace
16
+ * connection status and tool execution metrics.
17
+ * - **Tool Caching:** Discovers and caches tool definitions upon connection to minimize latency
18
+ * during the Agent's reasoning loop.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const mcp = new MCPClient({
23
+ * url: 'http://localhost:8080/sse',
24
+ * // Give the 'delete_file' tool high priority so it executes before other tools
25
+ * toolPriority: {
26
+ * 'delete_file': 100
27
+ * }
28
+ * });
29
+ * ```
10
30
  */
11
31
  export declare class MCPClient implements IMCPClient {
12
32
  private client;
@@ -14,35 +34,45 @@ export declare class MCPClient implements IMCPClient {
14
34
  private availableTools;
15
35
  private readonly url;
16
36
  private readonly requestInit;
37
+ private readonly toolPriority;
38
+ /**
39
+ * Creates a new MCP Client.
40
+ *
41
+ * @param param - Configuration object or a Lazy Configuration function.
42
+ *
43
+ * **Why use a function?**
44
+ * Using a function is recommended if the URL, Auth Headers, or Tool Priorities
45
+ * need to be resolved at **Runtime** (e.g., fetched from a Secrets Manager or Env Var)
46
+ * rather than at **Instantiation time**.
47
+ */
17
48
  constructor(param: {
18
49
  url: string;
50
+ toolPriority?: Record<string, number>;
19
51
  requestInit?: RequestInit;
20
52
  } | (() => {
21
53
  url: string;
54
+ toolPriority?: Record<string, number>;
22
55
  requestInit?: RequestInit;
23
56
  }));
24
57
  /**
25
- * Establishes a connection to the MCP server and discovers available tools.
58
+ * Initializes the connection to the remote MCP Server.
26
59
  *
27
- * This method performs the following operations:
28
- * 1. Selects the appropriate transport (SSE or HTTP streaming) based on URL
29
- * 2. Creates and configures the MCP client with capabilities
30
- * 3. Establishes the connection to the server
31
- * 4. Retrieves and caches the list of available tools
32
- * 5. Logs all operations to the provided OpenTelemetry span
60
+ * This lifecycle method:
61
+ * 1. Resolves the Transport (SSE vs HTTP).
62
+ * 2. Performs the protocol handshake.
63
+ * 3. Fetches the list of available tools immediately (to populate the Agent's context).
33
64
  *
34
- * @returns Promise that resolves when connection is established and tools are discovered
35
- * @throws {Error} Throws an error if connection fails, with details logged to the span
65
+ * @param config - Trace context.
66
+ * @throws Error if the connection fails or handshake is rejected.
36
67
  */
37
68
  connect(config: {
38
69
  otelInfo: OtelInfoType;
39
70
  }): Promise<void>;
40
71
  /**
41
- * Retrieves the list of available tool definitions from the connected MCP server.
72
+ * Returns the Tool Definitions discovered during the `connect()` phase.
42
73
  *
43
- * Transforms the cached MCP tools into the AgentToolDefinition format required
44
- * by the agent system. Tools listed in restrictedTools will have requires_approval set to true.
45
- * This method returns an empty array if not connected.
74
+ * This maps the raw MCP Tool format into Arvo's `AgentToolDefinition` structure
75
+ * so they can be injected into the LLM's context window.
46
76
  */
47
77
  getTools(config: {
48
78
  otelInfo: OtelInfoType;
@@ -52,12 +82,13 @@ export declare class MCPClient implements IMCPClient {
52
82
  inputSchema: Record<string, any>;
53
83
  }[]>;
54
84
  /**
55
- * Invokes a specific tool on the MCP server with the provided arguments.
85
+ * Executes a tool on the remote MCP Server.
56
86
  *
57
- * This method sends a tool invocation request to the connected MCP server and
58
- * returns the result. All operations are logged to the OpenTelemetry span for
59
- * observability. If an error occurs during invocation, it returns an error message
60
- * rather than throwing, allowing the agent to handle tool failures gracefully.
87
+ * Wraps the execution in a dedicated OpenTelemetry Child Span (`MCP.invoke<tool_name>`)
88
+ * to track latency and success/failure rates of the external system.
89
+ *
90
+ * @param param - The tool name and argument payload generated by the LLM.
91
+ * @returns The simplified JSON string result to be fed back to the LLM.
61
92
  */
62
93
  invokeTool(param: {
63
94
  name: string;
@@ -66,15 +97,17 @@ export declare class MCPClient implements IMCPClient {
66
97
  otelInfo: OtelInfoType;
67
98
  }): Promise<string>;
68
99
  /**
69
- * Gracefully disconnects from the MCP server and cleans up resources.
70
- *
71
- * This method safely closes the connection to the MCP server if one exists,
72
- * resets the connection state, and clears cached data. It's safe to call
73
- * multiple times - subsequent calls will be no-ops if already disconnected.
100
+ * Terminates the transport session and resets clients state.
101
+ * Safe to call multiple times (idempotent).
74
102
  */
75
103
  disconnect(config: {
76
104
  otelInfo: OtelInfoType;
77
105
  }): Promise<void>;
78
- getToolPriority(): Promise<{}>;
106
+ /**
107
+ * Retrieves the priority configuration for MCP Tools.
108
+ *
109
+ * This allows external MCP tools to explicitly participate in Arvo's **Priority Batch Execution**.
110
+ */
111
+ getToolPriority(): Promise<Record<string, number>>;
79
112
  }
80
113
  //# sourceMappingURL=MCPClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MCPClient.d.ts","sourceRoot":"","sources":["../../src/Integrations/MCPClient.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;GAOG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;gBAG9C,KAAK,EACD;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,GAC1C,CAAC,MAAM;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC;IASxD;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4ChE;;;;;;OAMG;IACG,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CACzD;QACE,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QAEpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC,EAAE,CACJ;IAsCD;;;;;;;OAOG;IACG,UAAU,CACd,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,EACnE,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GACjC,OAAO,CAAC,MAAM,CAAC;IA6DlB;;;;;;OAMG;IACG,UAAU,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB7D,eAAe;CAGtB"}
1
+ {"version":3,"file":"MCPClient.d.ts","sourceRoot":"","sources":["../../src/Integrations/MCPClient.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA+B;IAE5D;;;;;;;;;OASG;gBAED,KAAK,EACD;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,GACjF,CAAC,MAAM;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,CAAC;IAU/F;;;;;;;;;;OAUG;IACG,OAAO,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA4ChE;;;;;OAKG;IACG,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CACzD;QACE,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QAEpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAClC,EAAE,CACJ;IAsCD;;;;;;;;OAQG;IACG,UAAU,CACd,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;KAAE,EACnE,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GACjC,OAAO,CAAC,MAAM,CAAC;IA6DlB;;;OAGG;IACG,UAAU,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBnE;;;;OAIG;IACG,eAAe;CAGtB"}
@@ -54,33 +54,62 @@ var streamableHttp_js_1 = require("@modelcontextprotocol/sdk/client/streamableHt
54
54
  var api_1 = require("@opentelemetry/api");
55
55
  var arvo_core_1 = require("arvo-core");
56
56
  /**
57
- * Model Context Protocol (MCP) client implementation for connecting to and interacting with MCP servers.
57
+ * A Production-grade Client for the Model Context Protocol (MCP).
58
58
  *
59
- * This client provides a robust interface for establishing connections to MCP servers,
60
- * discovering available tools, invoking those tools with arguments, and managing the
61
- * connection lifecycle. It supports both Server-Sent Events (SSE) and streamable HTTP
62
- * transport protocols, automatically selecting the appropriate transport based on the URL.
59
+ * This class bridges Arvo Agents with the external MCP ecosystem, allowing agents to
60
+ * interact with filesystem, databases, GitHub, Slack, and other standardized MCP servers.
61
+ *
62
+ * @remarks
63
+ * **Key Features:**
64
+ * - **Auto-Transport Selection:** Automatically chooses between `SSEClientTransport` and
65
+ * `StreamableHTTPClientTransport` based on the URL pattern (checks for `/mcp` suffix).
66
+ * - **Orchestration Control:** Supports mapping priorities to external tools, allowing
67
+ * MCP tools to participate in Arvo's **Priority Batch Execution** logic.
68
+ * - **Observability:** Deep integration with Arvo's OpenTelemetry system to trace
69
+ * connection status and tool execution metrics.
70
+ * - **Tool Caching:** Discovers and caches tool definitions upon connection to minimize latency
71
+ * during the Agent's reasoning loop.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * const mcp = new MCPClient({
76
+ * url: 'http://localhost:8080/sse',
77
+ * // Give the 'delete_file' tool high priority so it executes before other tools
78
+ * toolPriority: {
79
+ * 'delete_file': 100
80
+ * }
81
+ * });
82
+ * ```
63
83
  */
64
84
  var MCPClient = /** @class */ (function () {
85
+ /**
86
+ * Creates a new MCP Client.
87
+ *
88
+ * @param param - Configuration object or a Lazy Configuration function.
89
+ *
90
+ * **Why use a function?**
91
+ * Using a function is recommended if the URL, Auth Headers, or Tool Priorities
92
+ * need to be resolved at **Runtime** (e.g., fetched from a Secrets Manager or Env Var)
93
+ * rather than at **Instantiation time**.
94
+ */
65
95
  function MCPClient(param) {
66
96
  this.client = null;
67
97
  this.isConnected = false;
68
98
  this.availableTools = [];
69
99
  this.url = function () { return (typeof param === 'function' ? param() : param).url; };
70
100
  this.requestInit = function () { var _a; return (_a = (typeof param === 'function' ? param() : param).requestInit) !== null && _a !== void 0 ? _a : {}; };
101
+ this.toolPriority = function () { var _a; return (_a = (typeof param === 'function' ? param() : param).toolPriority) !== null && _a !== void 0 ? _a : {}; };
71
102
  }
72
103
  /**
73
- * Establishes a connection to the MCP server and discovers available tools.
104
+ * Initializes the connection to the remote MCP Server.
74
105
  *
75
- * This method performs the following operations:
76
- * 1. Selects the appropriate transport (SSE or HTTP streaming) based on URL
77
- * 2. Creates and configures the MCP client with capabilities
78
- * 3. Establishes the connection to the server
79
- * 4. Retrieves and caches the list of available tools
80
- * 5. Logs all operations to the provided OpenTelemetry span
106
+ * This lifecycle method:
107
+ * 1. Resolves the Transport (SSE vs HTTP).
108
+ * 2. Performs the protocol handshake.
109
+ * 3. Fetches the list of available tools immediately (to populate the Agent's context).
81
110
  *
82
- * @returns Promise that resolves when connection is established and tools are discovered
83
- * @throws {Error} Throws an error if connection fails, with details logged to the span
111
+ * @param config - Trace context.
112
+ * @throws Error if the connection fails or handshake is rejected.
84
113
  */
85
114
  MCPClient.prototype.connect = function (config) {
86
115
  return __awaiter(this, void 0, void 0, function () {
@@ -127,11 +156,10 @@ var MCPClient = /** @class */ (function () {
127
156
  });
128
157
  };
129
158
  /**
130
- * Retrieves the list of available tool definitions from the connected MCP server.
159
+ * Returns the Tool Definitions discovered during the `connect()` phase.
131
160
  *
132
- * Transforms the cached MCP tools into the AgentToolDefinition format required
133
- * by the agent system. Tools listed in restrictedTools will have requires_approval set to true.
134
- * This method returns an empty array if not connected.
161
+ * This maps the raw MCP Tool format into Arvo's `AgentToolDefinition` structure
162
+ * so they can be injected into the LLM's context window.
135
163
  */
136
164
  MCPClient.prototype.getTools = function (config) {
137
165
  return __awaiter(this, void 0, void 0, function () {
@@ -173,12 +201,13 @@ var MCPClient = /** @class */ (function () {
173
201
  });
174
202
  };
175
203
  /**
176
- * Invokes a specific tool on the MCP server with the provided arguments.
204
+ * Executes a tool on the remote MCP Server.
177
205
  *
178
- * This method sends a tool invocation request to the connected MCP server and
179
- * returns the result. All operations are logged to the OpenTelemetry span for
180
- * observability. If an error occurs during invocation, it returns an error message
181
- * rather than throwing, allowing the agent to handle tool failures gracefully.
206
+ * Wraps the execution in a dedicated OpenTelemetry Child Span (`MCP.invoke<tool_name>`)
207
+ * to track latency and success/failure rates of the external system.
208
+ *
209
+ * @param param - The tool name and argument payload generated by the LLM.
210
+ * @returns The simplified JSON string result to be fed back to the LLM.
182
211
  */
183
212
  MCPClient.prototype.invokeTool = function (param, config) {
184
213
  return __awaiter(this, void 0, void 0, function () {
@@ -245,11 +274,8 @@ var MCPClient = /** @class */ (function () {
245
274
  });
246
275
  };
247
276
  /**
248
- * Gracefully disconnects from the MCP server and cleans up resources.
249
- *
250
- * This method safely closes the connection to the MCP server if one exists,
251
- * resets the connection state, and clears cached data. It's safe to call
252
- * multiple times - subsequent calls will be no-ops if already disconnected.
277
+ * Terminates the transport session and resets clients state.
278
+ * Safe to call multiple times (idempotent).
253
279
  */
254
280
  MCPClient.prototype.disconnect = function (config) {
255
281
  return __awaiter(this, void 0, void 0, function () {
@@ -279,10 +305,15 @@ var MCPClient = /** @class */ (function () {
279
305
  });
280
306
  });
281
307
  };
308
+ /**
309
+ * Retrieves the priority configuration for MCP Tools.
310
+ *
311
+ * This allows external MCP tools to explicitly participate in Arvo's **Priority Batch Execution**.
312
+ */
282
313
  MCPClient.prototype.getToolPriority = function () {
283
314
  return __awaiter(this, void 0, void 0, function () {
284
315
  return __generator(this, function (_a) {
285
- return [2 /*return*/, {}];
316
+ return [2 /*return*/, this.toolPriority()];
286
317
  });
287
318
  });
288
319
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MCPClient.js","sourceRoot":"","sources":["../../src/Integrations/MCPClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MCPClient.js","sourceRoot":"","sources":["../../src/Integrations/MCPClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type OpenAI from 'openai';
2
+ import type { ChatModel } from 'openai/resources/shared.mjs';
3
+ import type { AgentLLMIntegration, AgentLLMIntegrationParam } from '../types';
4
+ /**
5
+ * Creates an Arvo-compatible LLM Adapter for OpenAI models (GPT-4, GPT-3.5, etc.).
6
+ *
7
+ * This integration handles the complexity of:
8
+ * 1. **Structured Outputs:** Automatically converts Zod schemas to OpenAI `json_schema` format when required.
9
+ * 2. **Context Optimization:** Automatically strips large media payloads (images/files) from the history during resume/tool-result cycles to save tokens.
10
+ * 3. **Observability:** Instruments every call with OpenInference-compliant OpenTelemetry attributes.
11
+ * 4. **Safety:** Injects a tool limit prompt when the Agent exhausts its tool budget (customizable via `toolLimitPrompt`).
12
+ *
13
+ * @param client - An initialized `OpenAI` SDK client instance.
14
+ * @param config - Configuration for model behavior (Model ID, Temperature, Max Tokens) and cost calculation logic.
15
+ * @param config.toolLimitPrompt - Custom system instruction to inject when `maxToolInteractions` logic is triggered. useful for guiding the model to summarize or fail gracefully.
16
+ * @returns An `AgentLLMIntegration` function ready to be passed to `createArvoAgent`.
17
+ */
18
+ export declare const openaiLLMIntegration: (client: OpenAI, config?: {
19
+ model?: ChatModel;
20
+ temperature?: number;
21
+ maxTokens?: number;
22
+ executionunits?: (prompt: number, completion: number) => number;
23
+ toolLimitPrompt?: (toolInteractions: AgentLLMIntegrationParam["toolInteractions"]) => string;
24
+ }) => AgentLLMIntegration;
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Integrations/openai/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAY7D,OAAO,KAAK,EACV,mBAAmB,EAEnB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAiGlB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,oBAAoB,GAE7B,QAAQ,MAAM,EACd,SAAS;IACP,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAChE,eAAe,CAAC,EAAE,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,kBAAkB,CAAC,KAAK,MAAM,CAAC;CAC9F,KACA,mBAiLC,CAAC"}
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -52,7 +63,17 @@ var openinference_semantic_conventions_1 = require("@arizeai/openinference-seman
52
63
  var api_1 = require("@opentelemetry/api");
53
64
  var arvo_core_1 = require("arvo-core");
54
65
  var zod_to_json_schema_1 = require("zod-to-json-schema");
55
- var utils_1 = require("../Agent/utils");
66
+ var utils_1 = require("../../Agent/utils");
67
+ var prompts_1 = require("../prompts");
68
+ /**
69
+ * Internal Adapter: Maps Arvo's generic Agent Message format to OpenAI's specific API format.
70
+ *
71
+ * Handles:
72
+ * - System Prompt injection.
73
+ * - Mapping Tool Results to their originating Tool Call IDs.
74
+ * - Multimodal Content (converting Arvo media objects to OpenAI Image/File URLs).
75
+ * - Reconstructs the specific message ordering OpenAI expects (User -> Assistant(ToolCall) -> Tool(Result)).
76
+ */
56
77
  var formatMessagesForOpenAI = function (messages, systemPrompt) {
57
78
  var e_1, _a, e_2, _b;
58
79
  var _c;
@@ -157,6 +178,20 @@ var formatMessagesForOpenAI = function (messages, systemPrompt) {
157
178
  }
158
179
  return formattedMessages;
159
180
  };
181
+ /**
182
+ * Creates an Arvo-compatible LLM Adapter for OpenAI models (GPT-4, GPT-3.5, etc.).
183
+ *
184
+ * This integration handles the complexity of:
185
+ * 1. **Structured Outputs:** Automatically converts Zod schemas to OpenAI `json_schema` format when required.
186
+ * 2. **Context Optimization:** Automatically strips large media payloads (images/files) from the history during resume/tool-result cycles to save tokens.
187
+ * 3. **Observability:** Instruments every call with OpenInference-compliant OpenTelemetry attributes.
188
+ * 4. **Safety:** Injects a tool limit prompt when the Agent exhausts its tool budget (customizable via `toolLimitPrompt`).
189
+ *
190
+ * @param client - An initialized `OpenAI` SDK client instance.
191
+ * @param config - Configuration for model behavior (Model ID, Temperature, Max Tokens) and cost calculation logic.
192
+ * @param config.toolLimitPrompt - Custom system instruction to inject when `maxToolInteractions` logic is triggered. useful for guiding the model to summarize or fail gracefully.
193
+ * @returns An `AgentLLMIntegration` function ready to be passed to `createArvoAgent`.
194
+ */
160
195
  var openaiLLMIntegration = function (client, config) {
161
196
  return function (_a, _b) { return __awaiter(void 0, [_a, _b], void 0, function (_c, _d) {
162
197
  var _e;
@@ -179,9 +214,9 @@ var openaiLLMIntegration = function (client, config) {
179
214
  fn: function (span) { return __awaiter(void 0, void 0, void 0, function () {
180
215
  var llmModel, llmInvocationParams, messages, system, limitMessage, toolDef, tools_1, tools_1_1, tool, formattedMessages, responseFormat, completion, choice, llmUsage, executionUnits, toolRequests, _a, _b, toolCall, content, e_3;
181
216
  var e_4, _c, e_5, _d;
182
- var _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
183
- return __generator(this, function (_s) {
184
- switch (_s.label) {
217
+ var _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
218
+ return __generator(this, function (_u) {
219
+ switch (_u.label) {
185
220
  case 0:
186
221
  llmModel = (_e = config === null || config === void 0 ? void 0 : config.model) !== null && _e !== void 0 ? _e : 'gpt-4o';
187
222
  llmInvocationParams = {
@@ -189,28 +224,28 @@ var openaiLLMIntegration = function (client, config) {
189
224
  maxTokens: (_g = config === null || config === void 0 ? void 0 : config.maxTokens) !== null && _g !== void 0 ? _g : 4096,
190
225
  };
191
226
  messages = _messages.map(function (item) {
192
- if (lifecycle === 'init')
193
- return item;
194
- if (item.content.type === 'media') {
227
+ if (item.content.type === 'media' && item.seenCount > 0) {
195
228
  return {
196
229
  role: item.role,
197
230
  content: {
198
231
  type: 'text',
199
232
  content: "Media file (type: ".concat(item.content.contentType.type, "@").concat(item.content.contentType.format, ") already parsed and looked at. No need for you to look at it again"),
200
233
  },
234
+ seenCount: item.seenCount,
201
235
  };
202
236
  }
203
237
  return item;
204
238
  });
205
239
  system = _system;
206
240
  if (toolInteractions.exhausted) {
207
- limitMessage = (0, arvo_core_1.cleanString)("\n **CRITICAL WARNING: You have reached your tool interaction limit!**\n You must answer the original question using all the data available to you. \n You have run out of tool call budget. No more tool calls are allowed any more.\n If you cannot answer the query well. Then mention what you have done briefly, what\n can you answer based on the collected data, what data is missing and why you cannot \n answer any further. \n ");
241
+ limitMessage = (_j = (_h = config === null || config === void 0 ? void 0 : config.toolLimitPrompt) === null || _h === void 0 ? void 0 : _h.call(config, toolInteractions)) !== null && _j !== void 0 ? _j : prompts_1.DEFAULT_TOOL_LIMIT_PROMPT;
208
242
  messages.push({
209
243
  role: 'user',
210
244
  content: {
211
245
  type: 'text',
212
246
  content: limitMessage,
213
247
  },
248
+ seenCount: 0,
214
249
  });
215
250
  system = "".concat(system, "\n\n").concat(limitMessage);
216
251
  }
@@ -225,9 +260,9 @@ var openaiLLMIntegration = function (client, config) {
225
260
  system: system,
226
261
  tools: tools,
227
262
  }, span);
228
- _s.label = 1;
263
+ _u.label = 1;
229
264
  case 1:
230
- _s.trys.push([1, 3, 4, 5]);
265
+ _u.trys.push([1, 3, 4, 5]);
231
266
  toolDef = [];
232
267
  try {
233
268
  for (tools_1 = __values(tools), tools_1_1 = tools_1.next(); !tools_1_1.done; tools_1_1 = tools_1.next()) {
@@ -261,26 +296,21 @@ var openaiLLMIntegration = function (client, config) {
261
296
  },
262
297
  }
263
298
  : undefined;
264
- return [4 /*yield*/, client.chat.completions.create({
265
- model: llmModel,
266
- max_tokens: llmInvocationParams.maxTokens,
267
- temperature: llmInvocationParams.temperature,
268
- tools: toolDef.length ? toolDef : undefined,
269
- messages: formattedMessages,
270
- response_format: responseFormat,
271
- })];
299
+ return [4 /*yield*/, client.chat.completions.create(__assign(__assign({ model: llmModel }, (llmModel.includes('gpt-5')
300
+ ? { max_completion_tokens: llmInvocationParams.maxTokens }
301
+ : { max_tokens: llmInvocationParams.maxTokens })), { temperature: llmModel.includes('gpt-5') ? 1 : llmInvocationParams.temperature, tools: toolDef.length ? toolDef : undefined, messages: formattedMessages, response_format: responseFormat }))];
272
302
  case 2:
273
- completion = _s.sent();
303
+ completion = _u.sent();
274
304
  choice = completion.choices[0];
275
305
  llmUsage = {
276
306
  tokens: {
277
- prompt: (_j = (_h = completion.usage) === null || _h === void 0 ? void 0 : _h.prompt_tokens) !== null && _j !== void 0 ? _j : 0,
278
- completion: (_l = (_k = completion.usage) === null || _k === void 0 ? void 0 : _k.completion_tokens) !== null && _l !== void 0 ? _l : 0,
307
+ prompt: (_l = (_k = completion.usage) === null || _k === void 0 ? void 0 : _k.prompt_tokens) !== null && _l !== void 0 ? _l : 0,
308
+ completion: (_o = (_m = completion.usage) === null || _m === void 0 ? void 0 : _m.completion_tokens) !== null && _o !== void 0 ? _o : 0,
279
309
  },
280
310
  };
281
- executionUnits = (_o = (_m = config === null || config === void 0 ? void 0 : config.executionunits) === null || _m === void 0 ? void 0 : _m.call(config, llmUsage.tokens.prompt, llmUsage.tokens.completion)) !== null && _o !== void 0 ? _o : llmUsage.tokens.prompt + llmUsage.tokens.completion;
311
+ executionUnits = (_q = (_p = config === null || config === void 0 ? void 0 : config.executionunits) === null || _p === void 0 ? void 0 : _p.call(config, llmUsage.tokens.prompt, llmUsage.tokens.completion)) !== null && _q !== void 0 ? _q : llmUsage.tokens.prompt + llmUsage.tokens.completion;
282
312
  (0, utils_1.setOpenInferenceUsageOutputAttr)(llmUsage, span);
283
- if ((_p = choice === null || choice === void 0 ? void 0 : choice.message) === null || _p === void 0 ? void 0 : _p.tool_calls) {
313
+ if ((_r = choice === null || choice === void 0 ? void 0 : choice.message) === null || _r === void 0 ? void 0 : _r.tool_calls) {
284
314
  toolRequests = [];
285
315
  try {
286
316
  for (_a = __values(choice.message
@@ -293,8 +323,8 @@ var openaiLLMIntegration = function (client, config) {
293
323
  input: JSON.parse(toolCall.function.arguments),
294
324
  });
295
325
  }
296
- catch (_t) {
297
- // Skip malformed tool calls
326
+ catch (err) {
327
+ (0, arvo_core_1.exceptionToSpan)(err, span);
298
328
  }
299
329
  }
300
330
  }
@@ -315,7 +345,13 @@ var openaiLLMIntegration = function (client, config) {
315
345
  }];
316
346
  }
317
347
  }
318
- content = (_r = (_q = choice === null || choice === void 0 ? void 0 : choice.message) === null || _q === void 0 ? void 0 : _q.content) !== null && _r !== void 0 ? _r : '';
348
+ content = (_t = (_s = choice === null || choice === void 0 ? void 0 : choice.message) === null || _s === void 0 ? void 0 : _s.content) !== null && _t !== void 0 ? _t : '';
349
+ if (choice.finish_reason === 'length') {
350
+ content = "".concat(content, " [Max response token limit ").concat(llmInvocationParams.maxTokens, " reached]");
351
+ }
352
+ if (choice.finish_reason === 'content_filter') {
353
+ content = "".concat(content, " [Request blocked due to OpenAI content filtering policies]");
354
+ }
319
355
  (0, utils_1.setOpenInferenceResponseOutputAttr)({ response: content }, span);
320
356
  if (outputFormat.type === 'json') {
321
357
  return [2 /*return*/, {
@@ -333,7 +369,7 @@ var openaiLLMIntegration = function (client, config) {
333
369
  executionUnits: executionUnits,
334
370
  }];
335
371
  case 3:
336
- e_3 = _s.sent();
372
+ e_3 = _u.sent();
337
373
  span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: e_3 === null || e_3 === void 0 ? void 0 : e_3.message });
338
374
  throw e_3;
339
375
  case 4:
@@ -350,4 +386,4 @@ var openaiLLMIntegration = function (client, config) {
350
386
  }); };
351
387
  };
352
388
  exports.openaiLLMIntegration = openaiLLMIntegration;
353
- //# sourceMappingURL=openai.js.map
389
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Integrations/openai/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Standard System Instruction injected when the Agent reaches its `maxToolInteractions` limit.
3
+ *
4
+ * This prompt overrides the Agent's natural tendency to keep calling tools, forcing it to
5
+ * synthesize a final response based on whatever partial data it has managed to collect so far.
6
+ */
7
+ export declare const DEFAULT_TOOL_LIMIT_PROMPT: string;
8
+ //# sourceMappingURL=prompts.d.ts.map