@yuaone/core 0.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 (235) hide show
  1. package/LICENSE +663 -0
  2. package/README.md +15 -0
  3. package/dist/__tests__/context-manager.test.d.ts +6 -0
  4. package/dist/__tests__/context-manager.test.d.ts.map +1 -0
  5. package/dist/__tests__/context-manager.test.js +220 -0
  6. package/dist/__tests__/context-manager.test.js.map +1 -0
  7. package/dist/__tests__/governor.test.d.ts +6 -0
  8. package/dist/__tests__/governor.test.d.ts.map +1 -0
  9. package/dist/__tests__/governor.test.js +210 -0
  10. package/dist/__tests__/governor.test.js.map +1 -0
  11. package/dist/__tests__/model-router.test.d.ts +6 -0
  12. package/dist/__tests__/model-router.test.d.ts.map +1 -0
  13. package/dist/__tests__/model-router.test.js +329 -0
  14. package/dist/__tests__/model-router.test.js.map +1 -0
  15. package/dist/agent-logger.d.ts +384 -0
  16. package/dist/agent-logger.d.ts.map +1 -0
  17. package/dist/agent-logger.js +820 -0
  18. package/dist/agent-logger.js.map +1 -0
  19. package/dist/agent-loop.d.ts +163 -0
  20. package/dist/agent-loop.d.ts.map +1 -0
  21. package/dist/agent-loop.js +609 -0
  22. package/dist/agent-loop.js.map +1 -0
  23. package/dist/agent-modes.d.ts +85 -0
  24. package/dist/agent-modes.d.ts.map +1 -0
  25. package/dist/agent-modes.js +418 -0
  26. package/dist/agent-modes.js.map +1 -0
  27. package/dist/approval.d.ts +137 -0
  28. package/dist/approval.d.ts.map +1 -0
  29. package/dist/approval.js +299 -0
  30. package/dist/approval.js.map +1 -0
  31. package/dist/async-completion-queue.d.ts +56 -0
  32. package/dist/async-completion-queue.d.ts.map +1 -0
  33. package/dist/async-completion-queue.js +77 -0
  34. package/dist/async-completion-queue.js.map +1 -0
  35. package/dist/auto-fix.d.ts +174 -0
  36. package/dist/auto-fix.d.ts.map +1 -0
  37. package/dist/auto-fix.js +319 -0
  38. package/dist/auto-fix.js.map +1 -0
  39. package/dist/codebase-context.d.ts +396 -0
  40. package/dist/codebase-context.d.ts.map +1 -0
  41. package/dist/codebase-context.js +1260 -0
  42. package/dist/codebase-context.js.map +1 -0
  43. package/dist/conflict-resolver.d.ts +191 -0
  44. package/dist/conflict-resolver.d.ts.map +1 -0
  45. package/dist/conflict-resolver.js +524 -0
  46. package/dist/conflict-resolver.js.map +1 -0
  47. package/dist/constants.d.ts +52 -0
  48. package/dist/constants.d.ts.map +1 -0
  49. package/dist/constants.js +141 -0
  50. package/dist/constants.js.map +1 -0
  51. package/dist/context-budget.d.ts +435 -0
  52. package/dist/context-budget.d.ts.map +1 -0
  53. package/dist/context-budget.js +903 -0
  54. package/dist/context-budget.js.map +1 -0
  55. package/dist/context-compressor.d.ts +143 -0
  56. package/dist/context-compressor.d.ts.map +1 -0
  57. package/dist/context-compressor.js +511 -0
  58. package/dist/context-compressor.js.map +1 -0
  59. package/dist/context-manager.d.ts +112 -0
  60. package/dist/context-manager.d.ts.map +1 -0
  61. package/dist/context-manager.js +247 -0
  62. package/dist/context-manager.js.map +1 -0
  63. package/dist/continuous-reflection.d.ts +267 -0
  64. package/dist/continuous-reflection.d.ts.map +1 -0
  65. package/dist/continuous-reflection.js +338 -0
  66. package/dist/continuous-reflection.js.map +1 -0
  67. package/dist/cross-file-refactor.d.ts +352 -0
  68. package/dist/cross-file-refactor.d.ts.map +1 -0
  69. package/dist/cross-file-refactor.js +1544 -0
  70. package/dist/cross-file-refactor.js.map +1 -0
  71. package/dist/dag-orchestrator.d.ts +138 -0
  72. package/dist/dag-orchestrator.d.ts.map +1 -0
  73. package/dist/dag-orchestrator.js +379 -0
  74. package/dist/dag-orchestrator.js.map +1 -0
  75. package/dist/debate-orchestrator.d.ts +301 -0
  76. package/dist/debate-orchestrator.d.ts.map +1 -0
  77. package/dist/debate-orchestrator.js +719 -0
  78. package/dist/debate-orchestrator.js.map +1 -0
  79. package/dist/dependency-analyzer.d.ts +113 -0
  80. package/dist/dependency-analyzer.d.ts.map +1 -0
  81. package/dist/dependency-analyzer.js +444 -0
  82. package/dist/dependency-analyzer.js.map +1 -0
  83. package/dist/design-loop.d.ts +59 -0
  84. package/dist/design-loop.d.ts.map +1 -0
  85. package/dist/design-loop.js +344 -0
  86. package/dist/design-loop.js.map +1 -0
  87. package/dist/doc-intelligence.d.ts +383 -0
  88. package/dist/doc-intelligence.d.ts.map +1 -0
  89. package/dist/doc-intelligence.js +1307 -0
  90. package/dist/doc-intelligence.js.map +1 -0
  91. package/dist/dynamic-role-generator.d.ts +76 -0
  92. package/dist/dynamic-role-generator.d.ts.map +1 -0
  93. package/dist/dynamic-role-generator.js +194 -0
  94. package/dist/dynamic-role-generator.js.map +1 -0
  95. package/dist/errors.d.ts +69 -0
  96. package/dist/errors.d.ts.map +1 -0
  97. package/dist/errors.js +102 -0
  98. package/dist/errors.js.map +1 -0
  99. package/dist/event-bus.d.ts +159 -0
  100. package/dist/event-bus.d.ts.map +1 -0
  101. package/dist/event-bus.js +305 -0
  102. package/dist/event-bus.js.map +1 -0
  103. package/dist/execution-engine.d.ts +425 -0
  104. package/dist/execution-engine.d.ts.map +1 -0
  105. package/dist/execution-engine.js +1555 -0
  106. package/dist/execution-engine.js.map +1 -0
  107. package/dist/git-intelligence.d.ts +306 -0
  108. package/dist/git-intelligence.d.ts.map +1 -0
  109. package/dist/git-intelligence.js +1099 -0
  110. package/dist/git-intelligence.js.map +1 -0
  111. package/dist/governor.d.ts +77 -0
  112. package/dist/governor.d.ts.map +1 -0
  113. package/dist/governor.js +161 -0
  114. package/dist/governor.js.map +1 -0
  115. package/dist/hierarchical-planner.d.ts +313 -0
  116. package/dist/hierarchical-planner.d.ts.map +1 -0
  117. package/dist/hierarchical-planner.js +981 -0
  118. package/dist/hierarchical-planner.js.map +1 -0
  119. package/dist/index.d.ts +121 -0
  120. package/dist/index.d.ts.map +1 -0
  121. package/dist/index.js +123 -0
  122. package/dist/index.js.map +1 -0
  123. package/dist/intent-inference.d.ts +103 -0
  124. package/dist/intent-inference.d.ts.map +1 -0
  125. package/dist/intent-inference.js +605 -0
  126. package/dist/intent-inference.js.map +1 -0
  127. package/dist/interrupt-manager.d.ts +143 -0
  128. package/dist/interrupt-manager.d.ts.map +1 -0
  129. package/dist/interrupt-manager.js +196 -0
  130. package/dist/interrupt-manager.js.map +1 -0
  131. package/dist/kernel.d.ts +564 -0
  132. package/dist/kernel.d.ts.map +1 -0
  133. package/dist/kernel.js +1419 -0
  134. package/dist/kernel.js.map +1 -0
  135. package/dist/language-support.d.ts +232 -0
  136. package/dist/language-support.d.ts.map +1 -0
  137. package/dist/language-support.js +1134 -0
  138. package/dist/language-support.js.map +1 -0
  139. package/dist/llm-client.d.ts +82 -0
  140. package/dist/llm-client.d.ts.map +1 -0
  141. package/dist/llm-client.js +475 -0
  142. package/dist/llm-client.js.map +1 -0
  143. package/dist/mcp-client.d.ts +232 -0
  144. package/dist/mcp-client.d.ts.map +1 -0
  145. package/dist/mcp-client.js +718 -0
  146. package/dist/mcp-client.js.map +1 -0
  147. package/dist/memory-manager.d.ts +200 -0
  148. package/dist/memory-manager.d.ts.map +1 -0
  149. package/dist/memory-manager.js +568 -0
  150. package/dist/memory-manager.js.map +1 -0
  151. package/dist/memory.d.ts +87 -0
  152. package/dist/memory.d.ts.map +1 -0
  153. package/dist/memory.js +341 -0
  154. package/dist/memory.js.map +1 -0
  155. package/dist/model-router.d.ts +245 -0
  156. package/dist/model-router.d.ts.map +1 -0
  157. package/dist/model-router.js +632 -0
  158. package/dist/model-router.js.map +1 -0
  159. package/dist/parallel-executor.d.ts +125 -0
  160. package/dist/parallel-executor.d.ts.map +1 -0
  161. package/dist/parallel-executor.js +201 -0
  162. package/dist/parallel-executor.js.map +1 -0
  163. package/dist/perf-optimizer.d.ts +212 -0
  164. package/dist/perf-optimizer.d.ts.map +1 -0
  165. package/dist/perf-optimizer.js +721 -0
  166. package/dist/perf-optimizer.js.map +1 -0
  167. package/dist/persona.d.ts +305 -0
  168. package/dist/persona.d.ts.map +1 -0
  169. package/dist/persona.js +887 -0
  170. package/dist/persona.js.map +1 -0
  171. package/dist/planner.d.ts +70 -0
  172. package/dist/planner.d.ts.map +1 -0
  173. package/dist/planner.js +264 -0
  174. package/dist/planner.js.map +1 -0
  175. package/dist/qa-pipeline.d.ts +365 -0
  176. package/dist/qa-pipeline.d.ts.map +1 -0
  177. package/dist/qa-pipeline.js +1352 -0
  178. package/dist/qa-pipeline.js.map +1 -0
  179. package/dist/reasoning-adapter.d.ts +116 -0
  180. package/dist/reasoning-adapter.d.ts.map +1 -0
  181. package/dist/reasoning-adapter.js +187 -0
  182. package/dist/reasoning-adapter.js.map +1 -0
  183. package/dist/role-registry.d.ts +55 -0
  184. package/dist/role-registry.d.ts.map +1 -0
  185. package/dist/role-registry.js +192 -0
  186. package/dist/role-registry.js.map +1 -0
  187. package/dist/sandbox-tiers.d.ts +327 -0
  188. package/dist/sandbox-tiers.d.ts.map +1 -0
  189. package/dist/sandbox-tiers.js +928 -0
  190. package/dist/sandbox-tiers.js.map +1 -0
  191. package/dist/security-scanner.d.ts +222 -0
  192. package/dist/security-scanner.d.ts.map +1 -0
  193. package/dist/security-scanner.js +1129 -0
  194. package/dist/security-scanner.js.map +1 -0
  195. package/dist/security.d.ts +93 -0
  196. package/dist/security.d.ts.map +1 -0
  197. package/dist/security.js +393 -0
  198. package/dist/security.js.map +1 -0
  199. package/dist/self-reflection.d.ts +397 -0
  200. package/dist/self-reflection.d.ts.map +1 -0
  201. package/dist/self-reflection.js +908 -0
  202. package/dist/self-reflection.js.map +1 -0
  203. package/dist/session-persistence.d.ts +191 -0
  204. package/dist/session-persistence.d.ts.map +1 -0
  205. package/dist/session-persistence.js +395 -0
  206. package/dist/session-persistence.js.map +1 -0
  207. package/dist/speculative-executor.d.ts +210 -0
  208. package/dist/speculative-executor.d.ts.map +1 -0
  209. package/dist/speculative-executor.js +618 -0
  210. package/dist/speculative-executor.js.map +1 -0
  211. package/dist/state-machine.d.ts +289 -0
  212. package/dist/state-machine.d.ts.map +1 -0
  213. package/dist/state-machine.js +695 -0
  214. package/dist/state-machine.js.map +1 -0
  215. package/dist/sub-agent.d.ts +177 -0
  216. package/dist/sub-agent.d.ts.map +1 -0
  217. package/dist/sub-agent.js +303 -0
  218. package/dist/sub-agent.js.map +1 -0
  219. package/dist/system-prompt.d.ts +26 -0
  220. package/dist/system-prompt.d.ts.map +1 -0
  221. package/dist/system-prompt.js +84 -0
  222. package/dist/system-prompt.js.map +1 -0
  223. package/dist/test-intelligence.d.ts +439 -0
  224. package/dist/test-intelligence.d.ts.map +1 -0
  225. package/dist/test-intelligence.js +1165 -0
  226. package/dist/test-intelligence.js.map +1 -0
  227. package/dist/types.d.ts +632 -0
  228. package/dist/types.d.ts.map +1 -0
  229. package/dist/types.js +6 -0
  230. package/dist/types.js.map +1 -0
  231. package/dist/vector-index.d.ts +314 -0
  232. package/dist/vector-index.d.ts.map +1 -0
  233. package/dist/vector-index.js +618 -0
  234. package/dist/vector-index.js.map +1 -0
  235. package/package.json +41 -0
@@ -0,0 +1,232 @@
1
+ /**
2
+ * @module mcp-client
3
+ * @description MCP (Model Context Protocol) Client Bridge
4
+ *
5
+ * Connects to external MCP servers (GitHub, Postgres, Slack, etc.) via stdio
6
+ * transport, discovers their tools, and invokes them. This extends YUAN's
7
+ * tool ecosystem dynamically at runtime.
8
+ *
9
+ * Protocol: JSON-RPC 2.0 over newline-delimited stdio
10
+ * Spec: https://modelcontextprotocol.io/specification/2024-11-05
11
+ *
12
+ * Pure TypeScript — no @modelcontextprotocol/sdk dependency.
13
+ * Uses only Node.js builtins: child_process, events, readline, crypto.
14
+ */
15
+ import { EventEmitter } from "node:events";
16
+ import type { ToolDefinition, ToolResult } from "./types.js";
17
+ /** Configuration for a single MCP server connection. */
18
+ export interface MCPServerConfig {
19
+ /** Unique server name (e.g., "github", "postgres", "slack") */
20
+ name: string;
21
+ /** Transport type — only "stdio" supported currently */
22
+ transport: "stdio";
23
+ /** Command to spawn (e.g., "npx", "node") */
24
+ command: string;
25
+ /** Arguments for the command (e.g., ["-y", "@modelcontextprotocol/server-github"]) */
26
+ args: string[];
27
+ /** Additional environment variables for the child process */
28
+ env?: Record<string, string>;
29
+ /** Connection timeout in ms (default: 30000) */
30
+ timeout?: number;
31
+ /** Auto-restart on crash (default: true) */
32
+ retryOnCrash?: boolean;
33
+ }
34
+ /** Top-level MCP client configuration. */
35
+ export interface MCPClientConfig {
36
+ /** Server configurations */
37
+ servers: MCPServerConfig[];
38
+ /** Connect all servers on init (default: true) */
39
+ autoConnect: boolean;
40
+ /** Prefix tool names with server name, e.g., "github_search_repos" (default: true) */
41
+ toolPrefix: boolean;
42
+ /** Max parallel tool calls across all servers (default: 5) */
43
+ maxConcurrentCalls: number;
44
+ }
45
+ /** A tool discovered from an MCP server. */
46
+ export interface MCPTool {
47
+ /** Original tool name from the server */
48
+ name: string;
49
+ /** Prefixed name: "serverName_toolName" */
50
+ prefixedName: string;
51
+ /** Which server this tool belongs to */
52
+ serverName: string;
53
+ /** Human-readable description */
54
+ description: string;
55
+ /** JSON Schema for the tool's input */
56
+ inputSchema: Record<string, unknown>;
57
+ }
58
+ /** Result of an MCP tool invocation. */
59
+ export interface MCPCallResult {
60
+ /** Content blocks returned by the tool */
61
+ content: Array<{
62
+ type: "text" | "image" | "resource";
63
+ text?: string;
64
+ data?: string;
65
+ mimeType?: string;
66
+ }>;
67
+ /** Whether the tool returned an error */
68
+ isError?: boolean;
69
+ }
70
+ /** Observable state of a single MCP server. */
71
+ export interface MCPServerState {
72
+ /** Server name */
73
+ name: string;
74
+ /** Connection status */
75
+ status: "disconnected" | "connecting" | "ready" | "error" | "crashed";
76
+ /** Discovered tools */
77
+ tools: MCPTool[];
78
+ /** Child process PID */
79
+ pid?: number;
80
+ /** Error message if status is "error" or "crashed" */
81
+ error?: string;
82
+ /** Epoch ms of last successful connection */
83
+ lastConnected?: number;
84
+ /** Total tool calls made on this server */
85
+ callCount: number;
86
+ }
87
+ /**
88
+ * MCP Client Bridge — connects to external MCP servers, discovers their tools,
89
+ * and invokes them. Extends YUAN's tool ecosystem dynamically.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * const client = new MCPClient({
94
+ * servers: [
95
+ * {
96
+ * name: "github",
97
+ * transport: "stdio",
98
+ * command: "npx",
99
+ * args: ["-y", "@modelcontextprotocol/server-github"],
100
+ * env: { GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx" },
101
+ * },
102
+ * ],
103
+ * });
104
+ *
105
+ * await client.connectAll();
106
+ * const tools = client.getAvailableTools();
107
+ * const result = await client.callTool("github_search_repositories", { query: "yuan" });
108
+ * ```
109
+ *
110
+ * @fires MCPClient#server:connected
111
+ * @fires MCPClient#server:disconnected
112
+ * @fires MCPClient#server:error
113
+ * @fires MCPClient#server:crashed
114
+ * @fires MCPClient#tools:discovered
115
+ * @fires MCPClient#tool:called
116
+ * @fires MCPClient#tool:result
117
+ */
118
+ export declare class MCPClient extends EventEmitter {
119
+ private config;
120
+ private servers;
121
+ private allTools;
122
+ private activeCalls;
123
+ private callQueue;
124
+ constructor(config?: Partial<MCPClientConfig>);
125
+ /**
126
+ * Connect to all configured servers.
127
+ * @returns Map of server name → state after connection attempt
128
+ */
129
+ connectAll(): Promise<Map<string, MCPServerState>>;
130
+ /**
131
+ * Connect to a single MCP server.
132
+ * @param serverConfig - Server configuration
133
+ * @returns Server state after connection
134
+ */
135
+ connect(serverConfig: MCPServerConfig): Promise<MCPServerState>;
136
+ /**
137
+ * Disconnect a specific server by name.
138
+ * @param serverName - Server to disconnect
139
+ */
140
+ disconnect(serverName: string): Promise<void>;
141
+ /**
142
+ * Disconnect all servers and clean up.
143
+ */
144
+ disconnectAll(): Promise<void>;
145
+ /**
146
+ * Add a server configuration at runtime (does not auto-connect).
147
+ * @param config - Server configuration to add
148
+ */
149
+ addServer(config: MCPServerConfig): void;
150
+ /**
151
+ * Remove a server configuration and disconnect if connected.
152
+ * @param name - Server name to remove
153
+ */
154
+ removeServer(name: string): void;
155
+ /**
156
+ * Get all available tools from all connected servers.
157
+ * @returns Array of all discovered MCP tools
158
+ */
159
+ getAvailableTools(): MCPTool[];
160
+ /**
161
+ * Get tools from a specific server.
162
+ * @param serverName - Server to get tools from
163
+ * @returns Array of tools from the specified server
164
+ */
165
+ getServerTools(serverName: string): MCPTool[];
166
+ /**
167
+ * Find a tool by name (searches both prefixed and original names).
168
+ * @param name - Tool name to search for
169
+ * @returns The matching tool, or undefined if not found
170
+ */
171
+ findTool(name: string): MCPTool | undefined;
172
+ /**
173
+ * Convert all discovered MCP tools to YUAN ToolDefinition format.
174
+ * Allows seamless integration with the AgentLoop tool system.
175
+ * @returns Array of YUAN-compatible tool definitions
176
+ */
177
+ toToolDefinitions(): ToolDefinition[];
178
+ /**
179
+ * Call a tool on an MCP server.
180
+ * Respects maxConcurrentCalls — excess calls are queued.
181
+ *
182
+ * @param toolName - Tool name (prefixed or original)
183
+ * @param args - Tool arguments
184
+ * @returns Tool result
185
+ * @throws {Error} If tool not found or server not ready
186
+ */
187
+ callTool(toolName: string, args: Record<string, unknown>): Promise<MCPCallResult>;
188
+ /**
189
+ * Call a tool and convert the result to YUAN's ToolResult format.
190
+ * Suitable for direct use in the AgentLoop.
191
+ *
192
+ * @param toolName - Tool name (prefixed or original)
193
+ * @param args - Tool arguments
194
+ * @param callId - Unique call ID for correlation
195
+ * @returns YUAN-format ToolResult
196
+ */
197
+ callToolAsYuan(toolName: string, args: Record<string, unknown>, callId: string): Promise<ToolResult>;
198
+ /**
199
+ * Get states of all registered servers.
200
+ * @returns Array of server states
201
+ */
202
+ getServerStates(): MCPServerState[];
203
+ /**
204
+ * Get state of a specific server.
205
+ * @param name - Server name
206
+ * @returns Server state or undefined if not registered
207
+ */
208
+ getServerState(name: string): MCPServerState | undefined;
209
+ /**
210
+ * Check if any servers are connected and ready.
211
+ * @returns True if at least one server is in "ready" status
212
+ */
213
+ hasConnections(): boolean;
214
+ /**
215
+ * Extract text content from an MCP call result.
216
+ * Concatenates all text blocks, includes base64 image markers, and resource URIs.
217
+ */
218
+ private extractTextContent;
219
+ /**
220
+ * Acquire a concurrency slot, or wait in queue.
221
+ */
222
+ private acquireCallSlot;
223
+ /**
224
+ * Release a concurrency slot and dequeue the next waiter.
225
+ */
226
+ private releaseCallSlot;
227
+ /**
228
+ * Attempt to reconnect a crashed server after a brief delay.
229
+ */
230
+ private reconnectServer;
231
+ }
232
+ //# sourceMappingURL=mcp-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../src/mcp-client.ts"],"names":[],"mappings":"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"}