@adhd/agent-engine-orchestrator 2.1.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 (173) hide show
  1. package/package.json +64 -0
  2. package/src/clients/http-client.d.ts +24 -0
  3. package/src/clients/http-client.d.ts.map +1 -0
  4. package/src/clients/http-client.js +96 -0
  5. package/src/clients/http-client.js.map +1 -0
  6. package/src/clients/in-process.d.ts +19 -0
  7. package/src/clients/in-process.d.ts.map +1 -0
  8. package/src/clients/in-process.js +25 -0
  9. package/src/clients/in-process.js.map +1 -0
  10. package/src/clients/index.d.ts +9 -0
  11. package/src/clients/index.d.ts.map +1 -0
  12. package/src/clients/index.js +6 -0
  13. package/src/clients/index.js.map +1 -0
  14. package/src/clients/registry.d.ts +30 -0
  15. package/src/clients/registry.d.ts.map +1 -0
  16. package/src/clients/registry.js +173 -0
  17. package/src/clients/registry.js.map +1 -0
  18. package/src/clients/stdio-client.d.ts +19 -0
  19. package/src/clients/stdio-client.d.ts.map +1 -0
  20. package/src/clients/stdio-client.js +91 -0
  21. package/src/clients/stdio-client.js.map +1 -0
  22. package/src/clients/tool-naming.d.ts +8 -0
  23. package/src/clients/tool-naming.d.ts.map +1 -0
  24. package/src/clients/tool-naming.js +26 -0
  25. package/src/clients/tool-naming.js.map +1 -0
  26. package/src/clients/types.d.ts +7 -0
  27. package/src/clients/types.d.ts.map +1 -0
  28. package/src/clients/types.js +2 -0
  29. package/src/clients/types.js.map +1 -0
  30. package/src/engine/context-window.d.ts +74 -0
  31. package/src/engine/context-window.d.ts.map +1 -0
  32. package/src/engine/context-window.js +156 -0
  33. package/src/engine/context-window.js.map +1 -0
  34. package/src/engine/dag-engine.d.ts +69 -0
  35. package/src/engine/dag-engine.d.ts.map +1 -0
  36. package/src/engine/dag-engine.js +103 -0
  37. package/src/engine/dag-engine.js.map +1 -0
  38. package/src/engine/hooks.d.ts +10 -0
  39. package/src/engine/hooks.d.ts.map +1 -0
  40. package/src/engine/hooks.js +39 -0
  41. package/src/engine/hooks.js.map +1 -0
  42. package/src/engine/orchestrator.d.ts +59 -0
  43. package/src/engine/orchestrator.d.ts.map +1 -0
  44. package/src/engine/orchestrator.js +665 -0
  45. package/src/engine/orchestrator.js.map +1 -0
  46. package/src/engine/policy.d.ts +22 -0
  47. package/src/engine/policy.d.ts.map +1 -0
  48. package/src/engine/policy.js +73 -0
  49. package/src/engine/policy.js.map +1 -0
  50. package/src/engine/prompt-resolver.d.ts +24 -0
  51. package/src/engine/prompt-resolver.d.ts.map +1 -0
  52. package/src/engine/prompt-resolver.js +55 -0
  53. package/src/engine/prompt-resolver.js.map +1 -0
  54. package/src/engine/queue.d.ts +12 -0
  55. package/src/engine/queue.d.ts.map +1 -0
  56. package/src/engine/queue.js +31 -0
  57. package/src/engine/queue.js.map +1 -0
  58. package/src/engine/tool-advertisement.d.ts +5 -0
  59. package/src/engine/tool-advertisement.d.ts.map +1 -0
  60. package/src/engine/tool-advertisement.js +70 -0
  61. package/src/engine/tool-advertisement.js.map +1 -0
  62. package/src/index.d.ts +50 -0
  63. package/src/index.d.ts.map +1 -0
  64. package/src/index.js +39 -0
  65. package/src/index.js.map +1 -0
  66. package/src/interfaces.d.ts +70 -0
  67. package/src/interfaces.d.ts.map +1 -0
  68. package/src/interfaces.js +9 -0
  69. package/src/interfaces.js.map +1 -0
  70. package/src/plugins/index.d.ts +4 -0
  71. package/src/plugins/index.d.ts.map +1 -0
  72. package/src/plugins/index.js +3 -0
  73. package/src/plugins/index.js.map +1 -0
  74. package/src/plugins/loader.d.ts +47 -0
  75. package/src/plugins/loader.d.ts.map +1 -0
  76. package/src/plugins/loader.js +174 -0
  77. package/src/plugins/loader.js.map +1 -0
  78. package/src/plugins/usage-plugin.d.ts +15 -0
  79. package/src/plugins/usage-plugin.d.ts.map +1 -0
  80. package/src/plugins/usage-plugin.js +140 -0
  81. package/src/plugins/usage-plugin.js.map +1 -0
  82. package/src/providers/anthropic.d.ts +35 -0
  83. package/src/providers/anthropic.d.ts.map +1 -0
  84. package/src/providers/anthropic.js +244 -0
  85. package/src/providers/anthropic.js.map +1 -0
  86. package/src/providers/claudecli.d.ts +36 -0
  87. package/src/providers/claudecli.d.ts.map +1 -0
  88. package/src/providers/claudecli.js +324 -0
  89. package/src/providers/claudecli.js.map +1 -0
  90. package/src/providers/factory.d.ts +5 -0
  91. package/src/providers/factory.d.ts.map +1 -0
  92. package/src/providers/factory.js +18 -0
  93. package/src/providers/factory.js.map +1 -0
  94. package/src/providers/index.d.ts +6 -0
  95. package/src/providers/index.d.ts.map +1 -0
  96. package/src/providers/index.js +5 -0
  97. package/src/providers/index.js.map +1 -0
  98. package/src/providers/openai.d.ts +30 -0
  99. package/src/providers/openai.d.ts.map +1 -0
  100. package/src/providers/openai.js +177 -0
  101. package/src/providers/openai.js.map +1 -0
  102. package/src/providers/types.d.ts +22 -0
  103. package/src/providers/types.d.ts.map +1 -0
  104. package/src/providers/types.js +2 -0
  105. package/src/providers/types.js.map +1 -0
  106. package/src/tools/agent-crud.d.ts +29 -0
  107. package/src/tools/agent-crud.d.ts.map +1 -0
  108. package/src/tools/agent-crud.js +28 -0
  109. package/src/tools/agent-crud.js.map +1 -0
  110. package/src/tools/session.d.ts +35 -0
  111. package/src/tools/session.d.ts.map +1 -0
  112. package/src/tools/session.js +52 -0
  113. package/src/tools/session.js.map +1 -0
  114. package/src/tools/task.d.ts +94 -0
  115. package/src/tools/task.d.ts.map +1 -0
  116. package/src/tools/task.js +336 -0
  117. package/src/tools/task.js.map +1 -0
  118. package/src/tools/usage.d.ts +19 -0
  119. package/src/tools/usage.d.ts.map +1 -0
  120. package/src/tools/usage.js +152 -0
  121. package/src/tools/usage.js.map +1 -0
  122. package/src/utils/ids.d.ts +2 -0
  123. package/src/utils/ids.d.ts.map +1 -0
  124. package/src/utils/ids.js +5 -0
  125. package/src/utils/ids.js.map +1 -0
  126. package/src/utils/timestamps.d.ts +2 -0
  127. package/src/utils/timestamps.d.ts.map +1 -0
  128. package/src/utils/timestamps.js +4 -0
  129. package/src/utils/timestamps.js.map +1 -0
  130. package/src/validation/agent.d.ts +556 -0
  131. package/src/validation/agent.d.ts.map +1 -0
  132. package/src/validation/agent.js +175 -0
  133. package/src/validation/agent.js.map +1 -0
  134. package/src/validation/agents.d.ts +2 -0
  135. package/src/validation/agents.d.ts.map +1 -0
  136. package/src/validation/agents.js +3 -0
  137. package/src/validation/agents.js.map +1 -0
  138. package/src/validation/errors.d.ts +32 -0
  139. package/src/validation/errors.d.ts.map +1 -0
  140. package/src/validation/errors.js +34 -0
  141. package/src/validation/errors.js.map +1 -0
  142. package/src/validation/execution.d.ts +101 -0
  143. package/src/validation/execution.d.ts.map +1 -0
  144. package/src/validation/execution.js +14 -0
  145. package/src/validation/execution.js.map +1 -0
  146. package/src/validation/index.d.ts +9 -0
  147. package/src/validation/index.d.ts.map +1 -0
  148. package/src/validation/index.js +9 -0
  149. package/src/validation/index.js.map +1 -0
  150. package/src/validation/mcp.d.ts +54 -0
  151. package/src/validation/mcp.d.ts.map +1 -0
  152. package/src/validation/mcp.js +33 -0
  153. package/src/validation/mcp.js.map +1 -0
  154. package/src/validation/message.d.ts +43 -0
  155. package/src/validation/message.d.ts.map +1 -0
  156. package/src/validation/message.js +28 -0
  157. package/src/validation/message.js.map +1 -0
  158. package/src/validation/session.d.ts +49 -0
  159. package/src/validation/session.d.ts.map +1 -0
  160. package/src/validation/session.js +32 -0
  161. package/src/validation/session.js.map +1 -0
  162. package/src/validation/task.d.ts +156 -0
  163. package/src/validation/task.d.ts.map +1 -0
  164. package/src/validation/task.js +84 -0
  165. package/src/validation/task.js.map +1 -0
  166. package/src/validation/tasks.d.ts +2 -0
  167. package/src/validation/tasks.d.ts.map +1 -0
  168. package/src/validation/tasks.js +3 -0
  169. package/src/validation/tasks.js.map +1 -0
  170. package/src/validation/usage.d.ts +75 -0
  171. package/src/validation/usage.d.ts.map +1 -0
  172. package/src/validation/usage.js +51 -0
  173. package/src/validation/usage.js.map +1 -0
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@adhd/agent-engine-orchestrator",
3
+ "version": "2.1.0",
4
+ "description": "Agent engine orchestrator — providers, clients, tools, plugins, and validation extracted from agent-mcp",
5
+ "type": "module",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "files": [
10
+ "src"
11
+ ],
12
+ "exports": {
13
+ ".": {
14
+ "types": "./src/index.d.ts",
15
+ "default": "./src/index.js"
16
+ }
17
+ },
18
+ "scripts": {
19
+ "build": "nx build agent-engine-orchestrator",
20
+ "typecheck": "tsc -p tsconfig.lib.json --noEmit"
21
+ },
22
+ "dependencies": {
23
+ "@adhd/agent-base-types": "^2.1.0",
24
+ "@adhd/agent-store-prompts": "^2.1.0",
25
+ "@adhd/agent-store-runtime": "^2.1.0",
26
+ "@anthropic-ai/sdk": "^0.26.0",
27
+ "@modelcontextprotocol/sdk": "^1.0.0",
28
+ "better-sqlite3": "12.10.0",
29
+ "drizzle-orm": "0.45.2",
30
+ "openai": "^4.29.0",
31
+ "p-queue": "^8.0.0",
32
+ "p-retry": "^6.0.0",
33
+ "uuid": "14.0.0",
34
+ "zod": "4.4.3"
35
+ },
36
+ "peerDependencies": {
37
+ "@adhd/agent-engine-compiler": "^2.1.0"
38
+ },
39
+ "peerDependenciesMeta": {
40
+ "@adhd/agent-engine-compiler": {
41
+ "optional": true
42
+ }
43
+ },
44
+ "devDependencies": {
45
+ "@types/better-sqlite3": "^7.6.13",
46
+ "@vitest/coverage-v8": "^1.0.4",
47
+ "tslib": "^2.6.0",
48
+ "typescript": "^5.5.0",
49
+ "vite": "~5.0.13",
50
+ "vitest": "^1.6.0"
51
+ },
52
+ "license": "MIT",
53
+ "repository": {
54
+ "type": "git",
55
+ "url": "git+https://github.com/PseudoSky/adhd.git",
56
+ "directory": "packages/agent/agent-engine-orchestrator"
57
+ },
58
+ "homepage": "https://github.com/PseudoSky/adhd/tree/main/packages/agent/agent-engine-orchestrator#readme",
59
+ "bugs": {
60
+ "url": "https://github.com/PseudoSky/adhd/issues"
61
+ },
62
+ "module": "./src/index.js",
63
+ "main": "./src/index.js"
64
+ }
@@ -0,0 +1,24 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ import type { ToolDefinition } from "../providers/types.js";
3
+ import type { McpHttpConfig, McpSseConfig } from "../validation/index.js";
4
+ import type { IMcpClient } from "./types.js";
5
+ declare abstract class BaseHttpMcpClient implements IMcpClient {
6
+ protected readonly serverName: string;
7
+ protected client: Client | null;
8
+ constructor(serverName: string);
9
+ listTools(): Promise<ToolDefinition[]>;
10
+ callTool(toolName: string, args: unknown, signal?: AbortSignal): Promise<unknown>;
11
+ close(): Promise<void>;
12
+ }
13
+ export declare class HttpMcpClient extends BaseHttpMcpClient {
14
+ private readonly config;
15
+ constructor(serverName: string, config: McpHttpConfig);
16
+ connect(): Promise<void>;
17
+ }
18
+ export declare class SseMcpClient extends BaseHttpMcpClient {
19
+ private readonly config;
20
+ constructor(serverName: string, config: McpSseConfig);
21
+ connect(): Promise<void>;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,uBAAe,iBAAkB,YAAW,UAAU;IAGtC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM;IAFjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAER,UAAU,EAAE,MAAM;IAE3C,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBjF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ/B;AAED,qBAAa,aAAc,SAAQ,iBAAiB;IAG5C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADvB,UAAU,EAAE,MAAM,EACD,MAAM,EAAE,aAAa;IAKpC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAmBjC;AAED,qBAAa,YAAa,SAAQ,iBAAiB;IAG3C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADvB,UAAU,EAAE,MAAM,EACD,MAAM,EAAE,YAAY;IAKnC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA0BjC"}
@@ -0,0 +1,96 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
3
+ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
4
+ import { ToolError } from "../validation/errors.js";
5
+ class BaseHttpMcpClient {
6
+ serverName;
7
+ client = null;
8
+ constructor(serverName) {
9
+ this.serverName = serverName;
10
+ }
11
+ async listTools() {
12
+ if (!this.client) {
13
+ throw new ToolError("MCP_CLIENT_ERROR", `Client '${this.serverName}' not connected`);
14
+ }
15
+ const response = await this.client.listTools();
16
+ return response.tools.map(tool => ({
17
+ name: tool.name,
18
+ description: tool.description ?? "",
19
+ inputSchema: tool.inputSchema ?? {
20
+ type: "object",
21
+ properties: {},
22
+ },
23
+ }));
24
+ }
25
+ async callTool(toolName, args, signal) {
26
+ if (!this.client) {
27
+ throw new ToolError("MCP_CLIENT_ERROR", `Client '${this.serverName}' not connected`);
28
+ }
29
+ const result = await this.client.callTool({
30
+ name: toolName,
31
+ arguments: args,
32
+ }, undefined, signal ? { signal } : undefined);
33
+ if (result.isError) {
34
+ throw new ToolError("MCP_CLIENT_ERROR", `Tool '${toolName}' on server '${this.serverName}' returned an error: ${JSON.stringify(result.content)}`);
35
+ }
36
+ return result.content;
37
+ }
38
+ async close() {
39
+ try {
40
+ await this.client?.close();
41
+ }
42
+ catch {
43
+ // ignore close errors
44
+ }
45
+ this.client = null;
46
+ }
47
+ }
48
+ export class HttpMcpClient extends BaseHttpMcpClient {
49
+ config;
50
+ constructor(serverName, config) {
51
+ super(serverName);
52
+ this.config = config;
53
+ }
54
+ async connect() {
55
+ const url = new URL(this.config.url);
56
+ const transport = new StreamableHTTPClientTransport(url, {
57
+ requestInit: {
58
+ headers: this.config.headers,
59
+ signal: this.config.timeoutMs
60
+ ? AbortSignal.timeout(this.config.timeoutMs)
61
+ : undefined,
62
+ },
63
+ });
64
+ const client = new Client({ name: "agent-mcp-client", version: "1.0.0" }, { capabilities: {} });
65
+ this.client = client;
66
+ await client.connect(transport);
67
+ }
68
+ }
69
+ export class SseMcpClient extends BaseHttpMcpClient {
70
+ config;
71
+ constructor(serverName, config) {
72
+ super(serverName);
73
+ this.config = config;
74
+ }
75
+ async connect() {
76
+ const url = new URL(this.config.url);
77
+ const transport = new SSEClientTransport(url, {
78
+ eventSourceInit: {
79
+ fetch: (input, init) => fetch(input, {
80
+ ...init,
81
+ headers: {
82
+ ...init?.headers,
83
+ ...this.config.headers,
84
+ },
85
+ signal: this.config.timeoutMs
86
+ ? AbortSignal.timeout(this.config.timeoutMs)
87
+ : undefined,
88
+ }),
89
+ },
90
+ });
91
+ const client = new Client({ name: "agent-mcp-client", version: "1.0.0" }, { capabilities: {} });
92
+ this.client = client;
93
+ await client.connect(transport);
94
+ }
95
+ }
96
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ToolDefinition } from "../providers/types.js";
2
+ import type { ExecutionContext } from "../validation/index.js";
3
+ import type { IMcpClient } from "./types.js";
4
+ export type InProcessToolHandler = (toolName: string, args: unknown, ctx: ExecutionContext) => Promise<unknown>;
5
+ export type InProcessToolDescriptor = {
6
+ name: string;
7
+ description: string;
8
+ inputSchema: Record<string, unknown>;
9
+ };
10
+ export declare class InProcessMcpClient implements IMcpClient {
11
+ private readonly tools;
12
+ private readonly handler;
13
+ private readonly context;
14
+ constructor(tools: InProcessToolDescriptor[], handler: InProcessToolHandler, context: ExecutionContext);
15
+ listTools(): Promise<ToolDefinition[]>;
16
+ callTool(toolName: string, args: unknown, signal?: AbortSignal): Promise<unknown>;
17
+ close(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=in-process.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-process.d.ts","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/in-process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,gBAAgB,KACpB,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAAC;AAEF,qBAAa,kBAAmB,YAAW,UAAU;IAE7C,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,KAAK,EAAE,uBAAuB,EAAE,EAChC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,gBAAgB;IAGxC,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAQtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -0,0 +1,25 @@
1
+ export class InProcessMcpClient {
2
+ tools;
3
+ handler;
4
+ context;
5
+ constructor(tools, handler, context) {
6
+ this.tools = tools;
7
+ this.handler = handler;
8
+ this.context = context;
9
+ }
10
+ async listTools() {
11
+ return this.tools.map(t => ({
12
+ name: t.name,
13
+ description: t.description,
14
+ inputSchema: t.inputSchema,
15
+ }));
16
+ }
17
+ async callTool(toolName, args, signal) {
18
+ signal?.throwIfAborted();
19
+ return this.handler(toolName, args, this.context);
20
+ }
21
+ async close() {
22
+ // no-op
23
+ }
24
+ }
25
+ //# sourceMappingURL=in-process.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-process.js","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/in-process.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,kBAAkB;IAEN;IACA;IACA;IAHrB,YACqB,KAAgC,EAChC,OAA6B,EAC7B,OAAyB;QAFzB,UAAK,GAAL,KAAK,CAA2B;QAChC,YAAO,GAAP,OAAO,CAAsB;QAC7B,YAAO,GAAP,OAAO,CAAkB;IAC3C,CAAC;IAEJ,KAAK,CAAC,SAAS;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;SAC7B,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB,EAAE,IAAa,EAAE,MAAoB;QAChE,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK;QACP,QAAQ;IACZ,CAAC;CACJ"}
@@ -0,0 +1,9 @@
1
+ export type { IMcpClient } from "./types.js";
2
+ export { InProcessMcpClient } from "./in-process.js";
3
+ export type { InProcessToolHandler, InProcessToolDescriptor } from "./in-process.js";
4
+ export { StdioMcpClient } from "./stdio-client.js";
5
+ export { HttpMcpClient, SseMcpClient } from "./http-client.js";
6
+ export { McpClientRegistry } from "./registry.js";
7
+ export { TOOL_NAME_SEPARATOR, normalizeToolName, resolveToolCallName } from "./tool-naming.js";
8
+ export type { ResolvedToolName } from "./tool-naming.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC/F,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { InProcessMcpClient } from "./in-process.js";
2
+ export { StdioMcpClient } from "./stdio-client.js";
3
+ export { HttpMcpClient, SseMcpClient } from "./http-client.js";
4
+ export { McpClientRegistry } from "./registry.js";
5
+ export { TOOL_NAME_SEPARATOR, normalizeToolName, resolveToolCallName } from "./tool-naming.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ToolDefinition } from "../providers/types.js";
2
+ import type { ExecutionContext, McpServerConfig } from "../validation/index.js";
3
+ import type { InProcessToolDescriptor, InProcessToolHandler } from "./in-process.js";
4
+ import type { IMcpClient } from "./types.js";
5
+ import type { EngineLogger } from "../interfaces.js";
6
+ export declare class McpClientRegistry {
7
+ private readonly mcpServers;
8
+ private readonly selfUrl;
9
+ private readonly inProcessDescriptors;
10
+ private readonly inProcessHandler;
11
+ private readonly context;
12
+ private readonly clients;
13
+ private readonly connectPromises;
14
+ private readonly toolTargets;
15
+ private readonly logger;
16
+ constructor(mcpServers: Record<string, McpServerConfig>, selfUrl: string | undefined, inProcessDescriptors: InProcessToolDescriptor[], inProcessHandler: InProcessToolHandler, context: ExecutionContext, logger?: EngineLogger);
17
+ private isSelfReferential;
18
+ private resolveServerName;
19
+ private getOrCreateClient;
20
+ getClient(name: string): Promise<IMcpClient>;
21
+ private isToolHidden;
22
+ assertToolAllowed(serverName: string, toolName: string): void;
23
+ listAllTools(): Promise<ToolDefinition[]>;
24
+ resolveToolName(advertised: string): {
25
+ server: string;
26
+ tool: string;
27
+ };
28
+ closeAll(): Promise<void>;
29
+ }
30
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,qBAAa,iBAAiB;IAOtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IACpE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuD;IACnF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAGjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EAC3C,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,oBAAoB,EAAE,uBAAuB,EAAE,EAC/C,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,EAAE,gBAAgB,EAC1C,MAAM,CAAC,EAAE,YAAY;IAKzB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,iBAAiB;YAMX,iBAAiB;IAuEzB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIlD,OAAO,CAAC,YAAY;IAQpB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOvD,YAAY,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IA6B/C,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAc/D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAgBlC"}
@@ -0,0 +1,173 @@
1
+ import { InProcessMcpClient } from "./in-process.js";
2
+ import { HttpMcpClient, SseMcpClient } from "./http-client.js";
3
+ import { StdioMcpClient } from "./stdio-client.js";
4
+ import { TOOL_NAME_SEPARATOR, normalizeToolName } from "./tool-naming.js";
5
+ export class McpClientRegistry {
6
+ mcpServers;
7
+ selfUrl;
8
+ inProcessDescriptors;
9
+ inProcessHandler;
10
+ context;
11
+ clients = new Map();
12
+ connectPromises = new Map();
13
+ toolTargets = new Map();
14
+ logger;
15
+ constructor(mcpServers, selfUrl, inProcessDescriptors, inProcessHandler, context, logger) {
16
+ this.mcpServers = mcpServers;
17
+ this.selfUrl = selfUrl;
18
+ this.inProcessDescriptors = inProcessDescriptors;
19
+ this.inProcessHandler = inProcessHandler;
20
+ this.context = context;
21
+ this.logger = logger ?? { info: () => { }, warn: () => { }, error: () => { }, debug: () => { } };
22
+ }
23
+ isSelfReferential(name, config) {
24
+ if (name === "agent-mcp")
25
+ return true;
26
+ if (this.selfUrl &&
27
+ (config.transport === "http" || config.transport === "sse") &&
28
+ config.url === this.selfUrl) {
29
+ return true;
30
+ }
31
+ return false;
32
+ }
33
+ resolveServerName(name) {
34
+ if (this.mcpServers[name])
35
+ return name;
36
+ const norm = normalizeToolName(name);
37
+ return Object.keys(this.mcpServers).find((k) => normalizeToolName(k) === norm) ?? name;
38
+ }
39
+ async getOrCreateClient(rawName) {
40
+ const name = this.resolveServerName(rawName);
41
+ const existing = this.clients.get(name);
42
+ if (existing)
43
+ return existing;
44
+ const config = this.mcpServers[name];
45
+ if (!config) {
46
+ throw new Error(`No MCP server config found for server: '${rawName}'`);
47
+ }
48
+ if (this.isSelfReferential(name, config)) {
49
+ const client = new InProcessMcpClient(this.inProcessDescriptors, this.inProcessHandler, this.context);
50
+ this.clients.set(name, client);
51
+ return client;
52
+ }
53
+ let connectPromise = this.connectPromises.get(name);
54
+ if (connectPromise) {
55
+ await connectPromise;
56
+ const client = this.clients.get(name);
57
+ if (!client)
58
+ throw new Error(`MCP client not found after connect: ${name}`);
59
+ return client;
60
+ }
61
+ let client;
62
+ if (config.transport === "stdio") {
63
+ client = new StdioMcpClient(name, config);
64
+ }
65
+ else if (config.transport === "http") {
66
+ client = new HttpMcpClient(name, config);
67
+ }
68
+ else if (config.transport === "sse") {
69
+ client = new SseMcpClient(name, config);
70
+ }
71
+ else {
72
+ const exhaustive = config;
73
+ throw new Error(`Unknown MCP transport: ${exhaustive.transport}`);
74
+ }
75
+ // A REJECTED connect promise must not stay cached. `connectPromises` was only
76
+ // ever cleared wholesale in close(), so a single failed connect (server not up
77
+ // yet, transient spawn failure) poisoned the entry forever: every later
78
+ // getOrCreateClient(name) re-awaited the same rejected promise and rethrew the
79
+ // original error, and that server could never reconnect for the process's life.
80
+ // Evict on failure so the next call makes a fresh attempt.
81
+ const attempt = client.connect().then(() => {
82
+ this.clients.set(name, client);
83
+ this.logger.debug({ server: name }, "MCP client connected");
84
+ });
85
+ connectPromise = attempt.catch((err) => {
86
+ // Only evict OUR entry — a newer attempt may already have replaced it.
87
+ if (this.connectPromises.get(name) === connectPromise) {
88
+ this.connectPromises.delete(name);
89
+ }
90
+ throw err;
91
+ });
92
+ this.connectPromises.set(name, connectPromise);
93
+ await connectPromise;
94
+ // NB: distinct binding — `client` is already declared in this block scope
95
+ // (the `let client: Stdio|Http|Sse` above). Re-fetch from the map rather
96
+ // than returning `client` directly so a concurrent connect that replaced
97
+ // the entry wins, matching the pre-existing `this.clients.get(name)!`.
98
+ const connected = this.clients.get(name);
99
+ if (!connected)
100
+ throw new Error(`MCP client not found after connect: ${name}`);
101
+ return connected;
102
+ }
103
+ async getClient(name) {
104
+ return this.getOrCreateClient(name);
105
+ }
106
+ isToolHidden(serverName, toolName) {
107
+ const config = this.mcpServers[serverName];
108
+ if (!config)
109
+ return false;
110
+ if (config.allowedTools && !config.allowedTools.includes(toolName))
111
+ return true;
112
+ if (config.disallowedTools?.includes(toolName))
113
+ return true;
114
+ return false;
115
+ }
116
+ assertToolAllowed(serverName, toolName) {
117
+ if (this.isToolHidden(serverName, toolName)) {
118
+ const quoted = `${serverName}__${toolName}`;
119
+ throw new Error(`Tool "${quoted}" is disallowed by server config and cannot be called`);
120
+ }
121
+ }
122
+ async listAllTools() {
123
+ const allTools = [];
124
+ for (const serverName of Object.keys(this.mcpServers)) {
125
+ try {
126
+ const client = await this.getOrCreateClient(serverName);
127
+ const tools = await client.listTools();
128
+ for (const tool of tools) {
129
+ if (this.isToolHidden(serverName, tool.name)) {
130
+ continue;
131
+ }
132
+ const advertised = `${serverName}${TOOL_NAME_SEPARATOR}${tool.name}`;
133
+ const target = { server: serverName, tool: tool.name };
134
+ this.toolTargets.set(advertised, target);
135
+ this.toolTargets.set(normalizeToolName(advertised), target);
136
+ allTools.push({ ...tool, name: advertised });
137
+ }
138
+ }
139
+ catch (error) {
140
+ this.logger.warn({ server: serverName, error }, "Failed to list tools from MCP server");
141
+ }
142
+ }
143
+ return allTools;
144
+ }
145
+ resolveToolName(advertised) {
146
+ const hit = this.toolTargets.get(advertised) ??
147
+ this.toolTargets.get(normalizeToolName(advertised));
148
+ if (hit)
149
+ return hit;
150
+ const i = advertised.indexOf(TOOL_NAME_SEPARATOR);
151
+ return i === -1
152
+ ? { server: advertised, tool: advertised }
153
+ : {
154
+ server: advertised.slice(0, i),
155
+ tool: advertised.slice(i + TOOL_NAME_SEPARATOR.length),
156
+ };
157
+ }
158
+ async closeAll() {
159
+ const closePromises = Array.from(this.clients.entries()).map(async ([name, client]) => {
160
+ try {
161
+ await client.close();
162
+ this.logger.debug({ server: name }, "MCP client closed");
163
+ }
164
+ catch (error) {
165
+ this.logger.warn({ server: name, error }, "Error closing MCP client");
166
+ }
167
+ });
168
+ await Promise.allSettled(closePromises);
169
+ this.clients.clear();
170
+ this.connectPromises.clear();
171
+ }
172
+ }
173
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ToolDefinition } from "../providers/types.js";
2
+ import type { McpStdioConfig } from "../validation/index.js";
3
+ import type { IMcpClient } from "./types.js";
4
+ import type { EngineLogger, EngineConfig } from "../interfaces.js";
5
+ export declare class StdioMcpClient implements IMcpClient {
6
+ private readonly serverName;
7
+ private readonly serverConfig;
8
+ private client;
9
+ private transport;
10
+ private childProcess;
11
+ private readonly logger;
12
+ private readonly config;
13
+ constructor(serverName: string, serverConfig: McpStdioConfig, config?: EngineConfig, logger?: EngineLogger);
14
+ connect(): Promise<void>;
15
+ listTools(): Promise<ToolDefinition[]>;
16
+ callTool(toolName: string, args: unknown, callerSignal?: AbortSignal): Promise<unknown>;
17
+ close(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=stdio-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-client.d.ts","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/stdio-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEnE,qBAAa,cAAe,YAAW,UAAU;IAQzC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IARjC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAGjB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,cAAc,EAC7C,MAAM,CAAC,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,YAAY;IAMnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCxB,SAAS,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IA6BvF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB/B"}
@@ -0,0 +1,91 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
3
+ import { ToolError } from "../validation/errors.js";
4
+ export class StdioMcpClient {
5
+ serverName;
6
+ serverConfig;
7
+ client = null;
8
+ transport = null;
9
+ childProcess = null;
10
+ logger;
11
+ config;
12
+ constructor(serverName, serverConfig, config, logger) {
13
+ this.serverName = serverName;
14
+ this.serverConfig = serverConfig;
15
+ this.config = config ?? { subprocessEnv: () => ({}) };
16
+ this.logger = logger ?? { info: () => { }, warn: () => { }, error: () => { }, debug: () => { } };
17
+ }
18
+ async connect() {
19
+ const transport = new StdioClientTransport({
20
+ command: this.serverConfig.command,
21
+ args: this.serverConfig.args ?? [],
22
+ env: {
23
+ ...this.config.subprocessEnv(),
24
+ ...this.serverConfig.env,
25
+ },
26
+ });
27
+ this.transport = transport;
28
+ const client = new Client({ name: "agent-mcp-client", version: "1.0.0" }, { capabilities: {} });
29
+ this.client = client;
30
+ await client.connect(transport);
31
+ const childProc = transport.process;
32
+ if (childProc) {
33
+ this.childProcess = childProc;
34
+ childProc.on("exit", (code, signal) => {
35
+ this.logger.warn({
36
+ server: this.serverName,
37
+ exitCode: code,
38
+ signal,
39
+ }, "MCP child process exited unexpectedly");
40
+ });
41
+ }
42
+ }
43
+ async listTools() {
44
+ if (!this.client) {
45
+ throw new ToolError("MCP_CLIENT_ERROR", `Client '${this.serverName}' not connected`);
46
+ }
47
+ const response = await this.client.listTools();
48
+ return response.tools.map(tool => ({
49
+ name: tool.name,
50
+ description: tool.description ?? "",
51
+ inputSchema: tool.inputSchema ?? {
52
+ type: "object",
53
+ properties: {},
54
+ },
55
+ }));
56
+ }
57
+ async callTool(toolName, args, callerSignal) {
58
+ if (!this.client) {
59
+ throw new ToolError("MCP_CLIENT_ERROR", `Client '${this.serverName}' not connected`);
60
+ }
61
+ const timeoutSignal = this.serverConfig.timeoutMs
62
+ ? AbortSignal.timeout(this.serverConfig.timeoutMs)
63
+ : undefined;
64
+ const signal = callerSignal && timeoutSignal
65
+ ? AbortSignal.any([callerSignal, timeoutSignal])
66
+ : (callerSignal ?? timeoutSignal);
67
+ const result = await this.client.callTool({ name: toolName, arguments: args }, undefined, signal ? { signal } : undefined);
68
+ if (result.isError) {
69
+ throw new ToolError("MCP_CLIENT_ERROR", `Tool '${toolName}' on server '${this.serverName}' returned an error: ${JSON.stringify(result.content)}`);
70
+ }
71
+ return result.content;
72
+ }
73
+ async close() {
74
+ try {
75
+ await this.client?.close();
76
+ }
77
+ catch {
78
+ // ignore close errors
79
+ }
80
+ if (this.childProcess && !this.childProcess.killed) {
81
+ this.childProcess.kill("SIGTERM");
82
+ const killTimer = setTimeout(() => {
83
+ if (this.childProcess && !this.childProcess.killed) {
84
+ this.childProcess.kill("SIGKILL");
85
+ }
86
+ }, 5_000);
87
+ killTimer.unref();
88
+ }
89
+ }
90
+ }
91
+ //# sourceMappingURL=stdio-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio-client.js","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/stdio-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare const TOOL_NAME_SEPARATOR = "__";
2
+ export declare function normalizeToolName(name: string): string;
3
+ export interface ResolvedToolName {
4
+ server: string;
5
+ tool: string;
6
+ }
7
+ export declare function resolveToolCallName(rawName: string, advertised?: readonly string[]): ResolvedToolName;
8
+ //# sourceMappingURL=tool-naming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-naming.d.ts","sourceRoot":"","sources":["../../../../../../packages/agent/agent-engine-orchestrator/src/clients/tool-naming.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CAChB;AASD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,SAAS,MAAM,EAAO,GAAG,gBAAgB,CAgBzG"}