@executioncontrolprotocol/runtime 0.3.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 (193) hide show
  1. package/dist/engine/context-loader.d.ts +31 -0
  2. package/dist/engine/context-loader.d.ts.map +1 -0
  3. package/dist/engine/context-loader.js +90 -0
  4. package/dist/engine/context-loader.js.map +1 -0
  5. package/dist/engine/index.d.ts +6 -0
  6. package/dist/engine/index.d.ts.map +1 -0
  7. package/dist/engine/index.js +6 -0
  8. package/dist/engine/index.js.map +1 -0
  9. package/dist/engine/runner.d.ts +92 -0
  10. package/dist/engine/runner.d.ts.map +1 -0
  11. package/dist/engine/runner.js +852 -0
  12. package/dist/engine/runner.js.map +1 -0
  13. package/dist/engine/schema-validator.d.ts +32 -0
  14. package/dist/engine/schema-validator.d.ts.map +1 -0
  15. package/dist/engine/schema-validator.js +69 -0
  16. package/dist/engine/schema-validator.js.map +1 -0
  17. package/dist/engine/system-config-loader.d.ts +39 -0
  18. package/dist/engine/system-config-loader.d.ts.map +1 -0
  19. package/dist/engine/system-config-loader.js +80 -0
  20. package/dist/engine/system-config-loader.js.map +1 -0
  21. package/dist/engine/types.d.ts +324 -0
  22. package/dist/engine/types.d.ts.map +1 -0
  23. package/dist/engine/types.js +10 -0
  24. package/dist/engine/types.js.map +1 -0
  25. package/dist/evals/index.d.ts +3 -0
  26. package/dist/evals/index.d.ts.map +1 -0
  27. package/dist/evals/index.js +3 -0
  28. package/dist/evals/index.js.map +1 -0
  29. package/dist/evals/scorer.d.ts +23 -0
  30. package/dist/evals/scorer.d.ts.map +1 -0
  31. package/dist/evals/scorer.js +133 -0
  32. package/dist/evals/scorer.js.map +1 -0
  33. package/dist/evals/types.d.ts +128 -0
  34. package/dist/evals/types.d.ts.map +1 -0
  35. package/dist/evals/types.js +11 -0
  36. package/dist/evals/types.js.map +1 -0
  37. package/dist/extensions/builtin.d.ts +44 -0
  38. package/dist/extensions/builtin.d.ts.map +1 -0
  39. package/dist/extensions/builtin.js +66 -0
  40. package/dist/extensions/builtin.js.map +1 -0
  41. package/dist/extensions/index.d.ts +4 -0
  42. package/dist/extensions/index.d.ts.map +1 -0
  43. package/dist/extensions/index.js +4 -0
  44. package/dist/extensions/index.js.map +1 -0
  45. package/dist/extensions/progress-loggers/file-logger.d.ts +27 -0
  46. package/dist/extensions/progress-loggers/file-logger.d.ts.map +1 -0
  47. package/dist/extensions/progress-loggers/file-logger.js +54 -0
  48. package/dist/extensions/progress-loggers/file-logger.js.map +1 -0
  49. package/dist/extensions/registry.d.ts +74 -0
  50. package/dist/extensions/registry.d.ts.map +1 -0
  51. package/dist/extensions/registry.js +126 -0
  52. package/dist/extensions/registry.js.map +1 -0
  53. package/dist/extensions/types.d.ts +78 -0
  54. package/dist/extensions/types.d.ts.map +1 -0
  55. package/dist/extensions/types.js +7 -0
  56. package/dist/extensions/types.js.map +1 -0
  57. package/dist/index.d.ts +10 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +10 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/mounts/hydrator.d.ts +46 -0
  62. package/dist/mounts/hydrator.d.ts.map +1 -0
  63. package/dist/mounts/hydrator.js +142 -0
  64. package/dist/mounts/hydrator.js.map +1 -0
  65. package/dist/mounts/index.d.ts +4 -0
  66. package/dist/mounts/index.d.ts.map +1 -0
  67. package/dist/mounts/index.js +4 -0
  68. package/dist/mounts/index.js.map +1 -0
  69. package/dist/mounts/interpolation.d.ts +33 -0
  70. package/dist/mounts/interpolation.d.ts.map +1 -0
  71. package/dist/mounts/interpolation.js +59 -0
  72. package/dist/mounts/interpolation.js.map +1 -0
  73. package/dist/mounts/types.d.ts +80 -0
  74. package/dist/mounts/types.d.ts.map +1 -0
  75. package/dist/mounts/types.js +10 -0
  76. package/dist/mounts/types.js.map +1 -0
  77. package/dist/policies/enforcer.d.ts +23 -0
  78. package/dist/policies/enforcer.d.ts.map +1 -0
  79. package/dist/policies/enforcer.js +111 -0
  80. package/dist/policies/enforcer.js.map +1 -0
  81. package/dist/policies/index.d.ts +3 -0
  82. package/dist/policies/index.d.ts.map +1 -0
  83. package/dist/policies/index.js +3 -0
  84. package/dist/policies/index.js.map +1 -0
  85. package/dist/policies/types.d.ts +87 -0
  86. package/dist/policies/types.d.ts.map +1 -0
  87. package/dist/policies/types.js +11 -0
  88. package/dist/policies/types.js.map +1 -0
  89. package/dist/protocols/a2a/a2a-transport.d.ts +40 -0
  90. package/dist/protocols/a2a/a2a-transport.d.ts.map +1 -0
  91. package/dist/protocols/a2a/a2a-transport.js +212 -0
  92. package/dist/protocols/a2a/a2a-transport.js.map +1 -0
  93. package/dist/protocols/a2a/index.d.ts +3 -0
  94. package/dist/protocols/a2a/index.d.ts.map +1 -0
  95. package/dist/protocols/a2a/index.js +2 -0
  96. package/dist/protocols/a2a/index.js.map +1 -0
  97. package/dist/protocols/agent-transport.d.ts +101 -0
  98. package/dist/protocols/agent-transport.d.ts.map +1 -0
  99. package/dist/protocols/agent-transport.js +11 -0
  100. package/dist/protocols/agent-transport.js.map +1 -0
  101. package/dist/protocols/index.d.ts +5 -0
  102. package/dist/protocols/index.d.ts.map +1 -0
  103. package/dist/protocols/index.js +5 -0
  104. package/dist/protocols/index.js.map +1 -0
  105. package/dist/protocols/mcp/index.d.ts +2 -0
  106. package/dist/protocols/mcp/index.d.ts.map +1 -0
  107. package/dist/protocols/mcp/index.js +2 -0
  108. package/dist/protocols/mcp/index.js.map +1 -0
  109. package/dist/protocols/mcp/mcp-tool-invoker.d.ts +30 -0
  110. package/dist/protocols/mcp/mcp-tool-invoker.d.ts.map +1 -0
  111. package/dist/protocols/mcp/mcp-tool-invoker.js +121 -0
  112. package/dist/protocols/mcp/mcp-tool-invoker.js.map +1 -0
  113. package/dist/protocols/tool-invoker.d.ts +91 -0
  114. package/dist/protocols/tool-invoker.d.ts.map +1 -0
  115. package/dist/protocols/tool-invoker.js +11 -0
  116. package/dist/protocols/tool-invoker.js.map +1 -0
  117. package/dist/providers/index.d.ts +4 -0
  118. package/dist/providers/index.d.ts.map +1 -0
  119. package/dist/providers/index.js +4 -0
  120. package/dist/providers/index.js.map +1 -0
  121. package/dist/providers/model-provider.d.ts +132 -0
  122. package/dist/providers/model-provider.d.ts.map +1 -0
  123. package/dist/providers/model-provider.js +10 -0
  124. package/dist/providers/model-provider.js.map +1 -0
  125. package/dist/providers/ollama/index.d.ts +3 -0
  126. package/dist/providers/ollama/index.d.ts.map +1 -0
  127. package/dist/providers/ollama/index.js +2 -0
  128. package/dist/providers/ollama/index.js.map +1 -0
  129. package/dist/providers/ollama/ollama-provider.d.ts +41 -0
  130. package/dist/providers/ollama/ollama-provider.d.ts.map +1 -0
  131. package/dist/providers/ollama/ollama-provider.js +113 -0
  132. package/dist/providers/ollama/ollama-provider.js.map +1 -0
  133. package/dist/providers/openai/index.d.ts +3 -0
  134. package/dist/providers/openai/index.d.ts.map +1 -0
  135. package/dist/providers/openai/index.js +2 -0
  136. package/dist/providers/openai/index.js.map +1 -0
  137. package/dist/providers/openai/openai-provider.d.ts +41 -0
  138. package/dist/providers/openai/openai-provider.d.ts.map +1 -0
  139. package/dist/providers/openai/openai-provider.js +150 -0
  140. package/dist/providers/openai/openai-provider.js.map +1 -0
  141. package/dist/testing/cassette.d.ts +88 -0
  142. package/dist/testing/cassette.d.ts.map +1 -0
  143. package/dist/testing/cassette.js +123 -0
  144. package/dist/testing/cassette.js.map +1 -0
  145. package/dist/testing/index.d.ts +5 -0
  146. package/dist/testing/index.d.ts.map +1 -0
  147. package/dist/testing/index.js +5 -0
  148. package/dist/testing/index.js.map +1 -0
  149. package/dist/testing/mock-agent-transport.d.ts +49 -0
  150. package/dist/testing/mock-agent-transport.d.ts.map +1 -0
  151. package/dist/testing/mock-agent-transport.js +71 -0
  152. package/dist/testing/mock-agent-transport.js.map +1 -0
  153. package/dist/testing/mock-model-provider.d.ts +69 -0
  154. package/dist/testing/mock-model-provider.d.ts.map +1 -0
  155. package/dist/testing/mock-model-provider.js +92 -0
  156. package/dist/testing/mock-model-provider.js.map +1 -0
  157. package/dist/testing/mock-tool-invoker.d.ts +65 -0
  158. package/dist/testing/mock-tool-invoker.d.ts.map +1 -0
  159. package/dist/testing/mock-tool-invoker.js +85 -0
  160. package/dist/testing/mock-tool-invoker.js.map +1 -0
  161. package/dist/tracing/collector.d.ts +75 -0
  162. package/dist/tracing/collector.d.ts.map +1 -0
  163. package/dist/tracing/collector.js +106 -0
  164. package/dist/tracing/collector.js.map +1 -0
  165. package/dist/tracing/exporters/console.d.ts +17 -0
  166. package/dist/tracing/exporters/console.d.ts.map +1 -0
  167. package/dist/tracing/exporters/console.js +76 -0
  168. package/dist/tracing/exporters/console.js.map +1 -0
  169. package/dist/tracing/exporters/index.d.ts +4 -0
  170. package/dist/tracing/exporters/index.d.ts.map +1 -0
  171. package/dist/tracing/exporters/index.js +3 -0
  172. package/dist/tracing/exporters/index.js.map +1 -0
  173. package/dist/tracing/exporters/json-file.d.ts +30 -0
  174. package/dist/tracing/exporters/json-file.d.ts.map +1 -0
  175. package/dist/tracing/exporters/json-file.js +28 -0
  176. package/dist/tracing/exporters/json-file.js.map +1 -0
  177. package/dist/tracing/formatter.d.ts +16 -0
  178. package/dist/tracing/formatter.d.ts.map +1 -0
  179. package/dist/tracing/formatter.js +81 -0
  180. package/dist/tracing/formatter.js.map +1 -0
  181. package/dist/tracing/graph.d.ts +17 -0
  182. package/dist/tracing/graph.d.ts.map +1 -0
  183. package/dist/tracing/graph.js +116 -0
  184. package/dist/tracing/graph.js.map +1 -0
  185. package/dist/tracing/index.d.ts +6 -0
  186. package/dist/tracing/index.d.ts.map +1 -0
  187. package/dist/tracing/index.js +6 -0
  188. package/dist/tracing/index.js.map +1 -0
  189. package/dist/tracing/types.d.ts +124 -0
  190. package/dist/tracing/types.d.ts.map +1 -0
  191. package/dist/tracing/types.js +11 -0
  192. package/dist/tracing/types.js.map +1 -0
  193. package/package.json +42 -0
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Abstract interface for agent-to-agent communication transport.
3
+ *
4
+ * The default implementation uses the official A2A JavaScript SDK.
5
+ * The engine uses this to delegate work from the orchestrator to
6
+ * specialist executors.
7
+ *
8
+ * @category Protocols
9
+ */
10
+ /**
11
+ * A reference to a remote agent that can receive delegated tasks.
12
+ *
13
+ * @category Protocols
14
+ */
15
+ export interface AgentRef {
16
+ /** The executor name this agent corresponds to. */
17
+ name: string;
18
+ /** Connection endpoint (URL, address, or local identifier). */
19
+ endpoint: string;
20
+ /** Optional protocol version the agent speaks. */
21
+ protocolVersion?: string;
22
+ }
23
+ /**
24
+ * Capabilities reported by a remote agent.
25
+ *
26
+ * @category Protocols
27
+ */
28
+ export interface AgentCapabilities {
29
+ /** Human-readable name the agent reports. */
30
+ name: string;
31
+ /** Skills or task types the agent can handle. */
32
+ skills: string[];
33
+ /** Whether the agent supports streaming responses. */
34
+ supportsStreaming: boolean;
35
+ }
36
+ /**
37
+ * A task delegated to a remote agent.
38
+ *
39
+ * @category Protocols
40
+ */
41
+ export interface DelegatedTask {
42
+ /** Unique task ID assigned by the engine. */
43
+ id: string;
44
+ /** The executor name this task targets. */
45
+ executorName: string;
46
+ /** Free-form task description for the specialist. */
47
+ task: string;
48
+ /** Structured context data provided to the specialist. */
49
+ context: Record<string, unknown>;
50
+ /** Execution hints (priority, token budgets, etc.). */
51
+ hints?: Record<string, unknown>;
52
+ }
53
+ /**
54
+ * The result of a delegated task returned by a remote agent.
55
+ *
56
+ * @category Protocols
57
+ */
58
+ export interface DelegationResult {
59
+ /** The task ID this result corresponds to. */
60
+ taskId: string;
61
+ /** The executor name that produced this result. */
62
+ executorName: string;
63
+ /** The structured output from the specialist. */
64
+ output: Record<string, unknown>;
65
+ /** Whether the task completed successfully. */
66
+ success: boolean;
67
+ /** Error message if the task failed. */
68
+ error?: string;
69
+ }
70
+ /**
71
+ * Interface for agent-to-agent communication.
72
+ *
73
+ * Used by the ECP engine to delegate tasks from the orchestrator
74
+ * to specialist executors and collect their results.
75
+ *
76
+ * @category Protocols
77
+ */
78
+ export interface AgentTransport {
79
+ /** Human-readable name for this transport implementation. */
80
+ readonly name: string;
81
+ /**
82
+ * Query the capabilities of a remote agent.
83
+ *
84
+ * @param agent - Reference to the agent to query.
85
+ * @returns The capabilities the agent reports.
86
+ */
87
+ capabilities(agent: AgentRef): Promise<AgentCapabilities>;
88
+ /**
89
+ * Delegate a task to a remote agent and wait for its result.
90
+ *
91
+ * @param agent - Reference to the target agent.
92
+ * @param task - The task to delegate.
93
+ * @returns The result produced by the agent.
94
+ */
95
+ delegate(agent: AgentRef, task: DelegatedTask): Promise<DelegationResult>;
96
+ /**
97
+ * Release any resources held by this transport.
98
+ */
99
+ close(): Promise<void>;
100
+ }
101
+ //# sourceMappingURL=agent-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-transport.d.ts","sourceRoot":"","sources":["../../src/protocols/agent-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IAEb,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IAEjB,kDAAkD;IAClD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IAEb,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,sDAAsD;IACtD,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,EAAE,EAAE,MAAM,CAAC;IAEX,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IAErB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IAEb,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IAEf,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IAEjB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE1D;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE1E;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Abstract interface for agent-to-agent communication transport.
3
+ *
4
+ * The default implementation uses the official A2A JavaScript SDK.
5
+ * The engine uses this to delegate work from the orchestrator to
6
+ * specialist executors.
7
+ *
8
+ * @category Protocols
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=agent-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-transport.js","sourceRoot":"","sources":["../../src/protocols/agent-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,5 @@
1
+ export * from "./tool-invoker.js";
2
+ export * from "./agent-transport.js";
3
+ export * from "./mcp/index.js";
4
+ export * from "./a2a/index.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/protocols/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./tool-invoker.js";
2
+ export * from "./agent-transport.js";
3
+ export * from "./mcp/index.js";
4
+ export * from "./a2a/index.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/protocols/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MCPToolInvoker } from "./mcp-tool-invoker.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocols/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MCPToolInvoker } from "./mcp-tool-invoker.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/protocols/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * MCP implementation of the {@link ToolInvoker} interface.
3
+ *
4
+ * Uses the official `@modelcontextprotocol/sdk` (v1.x) to connect to
5
+ * MCP servers, discover tools, and invoke them. Supports both stdio
6
+ * and SSE transports.
7
+ *
8
+ * @category Protocols
9
+ */
10
+ import type { ToolInvoker, ToolServerConfig, DiscoveredTool, ToolResult } from "../tool-invoker.js";
11
+ /**
12
+ * MCP-backed tool invoker.
13
+ *
14
+ * Manages connections to multiple MCP servers and routes tool
15
+ * calls to the correct one.
16
+ *
17
+ * @category Protocols
18
+ */
19
+ export declare class MCPToolInvoker implements ToolInvoker {
20
+ readonly name = "mcp";
21
+ private servers;
22
+ connect(config: ToolServerConfig): Promise<void>;
23
+ listTools(serverName: string): Promise<DiscoveredTool[]>;
24
+ callTool(serverName: string, toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
25
+ disconnect(serverName: string): Promise<void>;
26
+ disconnectAll(): Promise<void>;
27
+ private getServer;
28
+ private createTransport;
29
+ }
30
+ //# sourceMappingURL=mcp-tool-invoker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tool-invoker.d.ts","sourceRoot":"","sources":["../../../src/protocols/mcp/mcp-tool-invoker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,UAAU,EACX,MAAM,oBAAoB,CAAC;AAoC5B;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,OAAO,CAAsC;IAE/C,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAehD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAWxD,QAAQ,CACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC;IAwBhB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAKpC,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;CAwBxB"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * MCP implementation of the {@link ToolInvoker} interface.
3
+ *
4
+ * Uses the official `@modelcontextprotocol/sdk` (v1.x) to connect to
5
+ * MCP servers, discover tools, and invoke them. Supports both stdio
6
+ * and SSE transports.
7
+ *
8
+ * @category Protocols
9
+ */
10
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
11
+ import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
12
+ import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
13
+ /**
14
+ * Extract text content from an MCP content block array.
15
+ */
16
+ function extractContent(content) {
17
+ const textParts = content
18
+ .filter((c) => c.type === "text" && c.text)
19
+ .map((c) => c.text);
20
+ if (textParts.length === 1) {
21
+ try {
22
+ return JSON.parse(textParts[0]);
23
+ }
24
+ catch {
25
+ return textParts[0];
26
+ }
27
+ }
28
+ if (textParts.length > 1) {
29
+ return textParts.join("\n");
30
+ }
31
+ return content;
32
+ }
33
+ /**
34
+ * MCP-backed tool invoker.
35
+ *
36
+ * Manages connections to multiple MCP servers and routes tool
37
+ * calls to the correct one.
38
+ *
39
+ * @category Protocols
40
+ */
41
+ export class MCPToolInvoker {
42
+ name = "mcp";
43
+ servers = new Map();
44
+ async connect(config) {
45
+ if (this.servers.has(config.name)) {
46
+ await this.disconnect(config.name);
47
+ }
48
+ const transport = this.createTransport(config);
49
+ const client = new Client({ name: "ecp-runtime", version: "0.3.0" }, { capabilities: {} });
50
+ await client.connect(transport);
51
+ this.servers.set(config.name, { client, transport, config });
52
+ }
53
+ async listTools(serverName) {
54
+ const server = this.getServer(serverName);
55
+ const result = await server.client.listTools();
56
+ return result.tools.map((tool) => ({
57
+ name: tool.name,
58
+ description: tool.description ?? "",
59
+ inputSchema: tool.inputSchema,
60
+ }));
61
+ }
62
+ async callTool(serverName, toolName, args) {
63
+ const server = this.getServer(serverName);
64
+ const result = await server.client.callTool({
65
+ name: toolName,
66
+ arguments: args,
67
+ });
68
+ if ("toolResult" in result) {
69
+ return {
70
+ content: result.toolResult,
71
+ isError: false,
72
+ };
73
+ }
74
+ const content = extractContent(result.content);
75
+ return {
76
+ content,
77
+ isError: result.isError ?? false,
78
+ };
79
+ }
80
+ async disconnect(serverName) {
81
+ const server = this.servers.get(serverName);
82
+ if (!server)
83
+ return;
84
+ try {
85
+ await server.client.close();
86
+ }
87
+ catch {
88
+ // best-effort cleanup
89
+ }
90
+ this.servers.delete(serverName);
91
+ }
92
+ async disconnectAll() {
93
+ const names = [...this.servers.keys()];
94
+ await Promise.allSettled(names.map((name) => this.disconnect(name)));
95
+ }
96
+ getServer(serverName) {
97
+ const server = this.servers.get(serverName);
98
+ if (!server) {
99
+ throw new Error(`MCP server "${serverName}" is not connected. Call connect() first.`);
100
+ }
101
+ return server;
102
+ }
103
+ createTransport(config) {
104
+ const t = config.transport;
105
+ const type = t.type;
106
+ switch (type) {
107
+ case "stdio":
108
+ return new StdioClientTransport({
109
+ command: t.command,
110
+ args: t.args ?? [],
111
+ env: t.env,
112
+ cwd: t.cwd,
113
+ });
114
+ case "sse":
115
+ return new SSEClientTransport(new URL(t.url));
116
+ default:
117
+ throw new Error(`Unsupported MCP transport type "${type}". Supported: "stdio", "sse".`);
118
+ }
119
+ }
120
+ }
121
+ //# sourceMappingURL=mcp-tool-invoker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tool-invoker.js","sourceRoot":"","sources":["../../../src/protocols/mcp/mcp-tool-invoker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Abstract interface for tool invocation providers.
3
+ *
4
+ * The default implementation delegates to MCP servers using the official
5
+ * MCP TypeScript SDK. The engine never calls tools directly — it always
6
+ * goes through a {@link ToolInvoker}.
7
+ *
8
+ * @category Protocols
9
+ */
10
+ /**
11
+ * Metadata about a tool discovered from a server.
12
+ *
13
+ * @category Protocols
14
+ */
15
+ export interface DiscoveredTool {
16
+ /** The tool's unique name on its server (e.g. `"issues.search"`). */
17
+ name: string;
18
+ /** Human-readable description. */
19
+ description: string;
20
+ /** JSON Schema describing the tool's accepted parameters. */
21
+ inputSchema: Record<string, unknown>;
22
+ }
23
+ /**
24
+ * The result of invoking a tool.
25
+ *
26
+ * @category Protocols
27
+ */
28
+ export interface ToolResult {
29
+ /** The structured or textual data returned by the tool. */
30
+ content: unknown;
31
+ /** Whether the tool call ended in an error. */
32
+ isError: boolean;
33
+ }
34
+ /**
35
+ * Options for connecting to a tool server.
36
+ *
37
+ * @category Protocols
38
+ */
39
+ export interface ToolServerConfig {
40
+ /** Logical name used to reference this server in the Context (e.g. `"jira"`). */
41
+ name: string;
42
+ /**
43
+ * Transport-specific connection details.
44
+ * For MCP: `{ type: "stdio", command: "...", args: [...] }` or
45
+ * `{ type: "sse", url: "..." }`.
46
+ */
47
+ transport: Record<string, unknown>;
48
+ }
49
+ /**
50
+ * Interface for discovering and invoking tools on external servers.
51
+ *
52
+ * @category Protocols
53
+ */
54
+ export interface ToolInvoker {
55
+ /** Human-readable name for this invoker implementation. */
56
+ readonly name: string;
57
+ /**
58
+ * Connect to a tool server. Must be called before
59
+ * {@link listTools} or {@link callTool} for that server.
60
+ *
61
+ * @param config - Connection configuration for the server.
62
+ */
63
+ connect(config: ToolServerConfig): Promise<void>;
64
+ /**
65
+ * List all tools available on a connected server.
66
+ *
67
+ * @param serverName - The logical name of the server.
68
+ * @returns The tools the server exposes.
69
+ */
70
+ listTools(serverName: string): Promise<DiscoveredTool[]>;
71
+ /**
72
+ * Invoke a tool on a connected server.
73
+ *
74
+ * @param serverName - The logical name of the server.
75
+ * @param toolName - The tool to invoke.
76
+ * @param args - Arguments to pass to the tool.
77
+ * @returns The tool's result.
78
+ */
79
+ callTool(serverName: string, toolName: string, args: Record<string, unknown>): Promise<ToolResult>;
80
+ /**
81
+ * Disconnect from a server and release resources.
82
+ *
83
+ * @param serverName - The logical name of the server to disconnect.
84
+ */
85
+ disconnect(serverName: string): Promise<void>;
86
+ /**
87
+ * Disconnect from all servers and release all resources.
88
+ */
89
+ disconnectAll(): Promise<void>;
90
+ }
91
+ //# sourceMappingURL=tool-invoker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-invoker.d.ts","sourceRoot":"","sources":["../../src/protocols/tool-invoker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IAEjB,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEzD;;;;;;;OAOG;IACH,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB;;;;OAIG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Abstract interface for tool invocation providers.
3
+ *
4
+ * The default implementation delegates to MCP servers using the official
5
+ * MCP TypeScript SDK. The engine never calls tools directly — it always
6
+ * goes through a {@link ToolInvoker}.
7
+ *
8
+ * @category Protocols
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=tool-invoker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-invoker.js","sourceRoot":"","sources":["../../src/protocols/tool-invoker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,4 @@
1
+ export * from "./model-provider.js";
2
+ export * from "./openai/index.js";
3
+ export * from "./ollama/index.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./model-provider.js";
2
+ export * from "./openai/index.js";
3
+ export * from "./ollama/index.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Abstract interface for LLM model providers.
3
+ *
4
+ * Implementations bridge the ECP engine to specific model APIs (OpenAI,
5
+ * Anthropic, Ollama, etc.) while keeping the engine itself provider-agnostic.
6
+ *
7
+ * @category Providers
8
+ */
9
+ /**
10
+ * A single message in a conversation with a model.
11
+ *
12
+ * @category Providers
13
+ */
14
+ export interface ChatMessage {
15
+ /** The role of the message author. */
16
+ role: "system" | "user" | "assistant" | "tool";
17
+ /** Text content of the message. */
18
+ content: string;
19
+ /** Optional tool-call ID this message responds to. */
20
+ toolCallId?: string;
21
+ /** Optional name for the author (e.g. tool name). */
22
+ name?: string;
23
+ }
24
+ /**
25
+ * A tool definition the model can choose to call during generation.
26
+ *
27
+ * @category Providers
28
+ */
29
+ export interface ToolDefinition {
30
+ /** Unique tool name (e.g. `"jira:issues.search"`). */
31
+ name: string;
32
+ /** Human-readable description of what the tool does. */
33
+ description: string;
34
+ /**
35
+ * JSON Schema describing the tool's parameters.
36
+ * Passed to the model as the function's input schema.
37
+ */
38
+ parameters: Record<string, unknown>;
39
+ }
40
+ /**
41
+ * A tool call requested by the model.
42
+ *
43
+ * @category Providers
44
+ */
45
+ export interface ToolCall {
46
+ /** Unique ID for this tool call (used to match results). */
47
+ id: string;
48
+ /** The tool name the model wants to invoke. */
49
+ name: string;
50
+ /** The arguments the model provided, as a parsed object. */
51
+ arguments: Record<string, unknown>;
52
+ }
53
+ /**
54
+ * The result of a model generation request.
55
+ *
56
+ * @category Providers
57
+ */
58
+ export interface GenerateResult {
59
+ /** The text content of the model's response (may be empty if tool calls are present). */
60
+ content: string;
61
+ /** Tool calls the model wants to make (empty array if none). */
62
+ toolCalls: ToolCall[];
63
+ /** The reason the model stopped generating. */
64
+ finishReason: "stop" | "tool-calls" | "length" | "content-filter" | "error";
65
+ /** Token usage for this generation. */
66
+ usage: TokenUsage;
67
+ }
68
+ /**
69
+ * Token counts for a generation request.
70
+ *
71
+ * @category Providers
72
+ */
73
+ export interface TokenUsage {
74
+ /** Tokens consumed by the prompt/input. */
75
+ promptTokens: number;
76
+ /** Tokens generated in the response. */
77
+ completionTokens: number;
78
+ /** Total tokens (prompt + completion). */
79
+ totalTokens: number;
80
+ }
81
+ /**
82
+ * Options for a generation request.
83
+ *
84
+ * @category Providers
85
+ */
86
+ export interface GenerateOptions {
87
+ /** The conversation messages to send. */
88
+ messages: ChatMessage[];
89
+ /** Model identifier override (e.g. `"gpt-4o"`). Falls back to executor config. */
90
+ model?: string;
91
+ /** Tools the model may call during generation. */
92
+ tools?: ToolDefinition[];
93
+ /** Controls randomness. 0 = deterministic, 1 = creative. */
94
+ temperature?: number;
95
+ /** Maximum tokens to generate. */
96
+ maxTokens?: number;
97
+ /**
98
+ * If set, the model should output structured JSON conforming
99
+ * to this schema.
100
+ */
101
+ responseFormat?: {
102
+ type: "json-schema";
103
+ schema: Record<string, unknown>;
104
+ };
105
+ /** Abort signal for cancellation. */
106
+ signal?: AbortSignal;
107
+ }
108
+ /**
109
+ * Provider interface for LLM model access.
110
+ *
111
+ * Each implementation wraps a specific model API while exposing
112
+ * a uniform interface to the ECP engine.
113
+ *
114
+ * @category Providers
115
+ */
116
+ export interface ModelProvider {
117
+ /** Human-readable provider name (e.g. `"openai"`, `"ollama"`). */
118
+ readonly name: string;
119
+ /**
120
+ * Send a generation request to the model.
121
+ *
122
+ * @param options - The messages, tools, and configuration for this request.
123
+ * @returns The model's response including content, tool calls, and usage.
124
+ */
125
+ generate(options: GenerateOptions): Promise<GenerateResult>;
126
+ /**
127
+ * Whether this provider's models support native tool/function calling.
128
+ * If `false`, the engine must use prompt-based tool invocation.
129
+ */
130
+ supportsToolCalling(): boolean;
131
+ }
132
+ //# sourceMappingURL=model-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-provider.d.ts","sourceRoot":"","sources":["../../src/providers/model-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAE/C,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IAEX,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IAEb,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,OAAO,EAAE,MAAM,CAAC;IAEhB,gEAAgE;IAChE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEtB,+CAA+C;IAC/C,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,gBAAgB,GAAG,OAAO,CAAC;IAE5E,uCAAuC;IACvC,KAAK,EAAE,UAAU,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IAErB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kDAAkD;IAClD,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IAEzB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,aAAa,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,CAAC;IAEF,qCAAqC;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE5D;;;OAGG;IACH,mBAAmB,IAAI,OAAO,CAAC;CAChC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Abstract interface for LLM model providers.
3
+ *
4
+ * Implementations bridge the ECP engine to specific model APIs (OpenAI,
5
+ * Anthropic, Ollama, etc.) while keeping the engine itself provider-agnostic.
6
+ *
7
+ * @category Providers
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=model-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-provider.js","sourceRoot":"","sources":["../../src/providers/model-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,3 @@
1
+ export { OllamaProvider } from "./ollama-provider.js";
2
+ export type { OllamaProviderConfig } from "./ollama-provider.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ollama/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { OllamaProvider } from "./ollama-provider.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/ollama/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}