@claude-flow/cli 3.0.0-alpha.1

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 (229) hide show
  1. package/.agentic-flow/intelligence.json +16 -0
  2. package/.claude-flow/metrics/agent-metrics.json +1 -0
  3. package/.claude-flow/metrics/performance.json +87 -0
  4. package/.claude-flow/metrics/task-metrics.json +10 -0
  5. package/README.md +1186 -0
  6. package/__tests__/README.md +140 -0
  7. package/__tests__/TEST_SUMMARY.md +144 -0
  8. package/__tests__/cli.test.ts +558 -0
  9. package/__tests__/commands.test.ts +726 -0
  10. package/__tests__/config-adapter.test.ts +362 -0
  11. package/__tests__/config-loading.test.ts +106 -0
  12. package/__tests__/coverage/.tmp/coverage-0.json +1 -0
  13. package/__tests__/coverage/.tmp/coverage-1.json +1 -0
  14. package/__tests__/coverage/.tmp/coverage-2.json +1 -0
  15. package/__tests__/coverage/.tmp/coverage-3.json +1 -0
  16. package/__tests__/coverage/.tmp/coverage-4.json +1 -0
  17. package/__tests__/coverage/.tmp/coverage-5.json +1 -0
  18. package/__tests__/mcp-client.test.ts +480 -0
  19. package/__tests__/p1-commands.test.ts +1064 -0
  20. package/bin/cli.js +14 -0
  21. package/dist/src/commands/agent.d.ts +8 -0
  22. package/dist/src/commands/agent.d.ts.map +1 -0
  23. package/dist/src/commands/agent.js +803 -0
  24. package/dist/src/commands/agent.js.map +1 -0
  25. package/dist/src/commands/config.d.ts +8 -0
  26. package/dist/src/commands/config.d.ts.map +1 -0
  27. package/dist/src/commands/config.js +406 -0
  28. package/dist/src/commands/config.js.map +1 -0
  29. package/dist/src/commands/hive-mind.d.ts +8 -0
  30. package/dist/src/commands/hive-mind.d.ts.map +1 -0
  31. package/dist/src/commands/hive-mind.js +627 -0
  32. package/dist/src/commands/hive-mind.js.map +1 -0
  33. package/dist/src/commands/hooks.d.ts +8 -0
  34. package/dist/src/commands/hooks.d.ts.map +1 -0
  35. package/dist/src/commands/hooks.js +2098 -0
  36. package/dist/src/commands/hooks.js.map +1 -0
  37. package/dist/src/commands/index.d.ts +51 -0
  38. package/dist/src/commands/index.d.ts.map +1 -0
  39. package/dist/src/commands/index.js +105 -0
  40. package/dist/src/commands/index.js.map +1 -0
  41. package/dist/src/commands/init.d.ts +8 -0
  42. package/dist/src/commands/init.d.ts.map +1 -0
  43. package/dist/src/commands/init.js +532 -0
  44. package/dist/src/commands/init.js.map +1 -0
  45. package/dist/src/commands/mcp.d.ts +11 -0
  46. package/dist/src/commands/mcp.d.ts.map +1 -0
  47. package/dist/src/commands/mcp.js +662 -0
  48. package/dist/src/commands/mcp.js.map +1 -0
  49. package/dist/src/commands/memory.d.ts +8 -0
  50. package/dist/src/commands/memory.d.ts.map +1 -0
  51. package/dist/src/commands/memory.js +911 -0
  52. package/dist/src/commands/memory.js.map +1 -0
  53. package/dist/src/commands/migrate.d.ts +8 -0
  54. package/dist/src/commands/migrate.d.ts.map +1 -0
  55. package/dist/src/commands/migrate.js +398 -0
  56. package/dist/src/commands/migrate.js.map +1 -0
  57. package/dist/src/commands/process.d.ts +10 -0
  58. package/dist/src/commands/process.d.ts.map +1 -0
  59. package/dist/src/commands/process.js +566 -0
  60. package/dist/src/commands/process.js.map +1 -0
  61. package/dist/src/commands/session.d.ts +8 -0
  62. package/dist/src/commands/session.d.ts.map +1 -0
  63. package/dist/src/commands/session.js +750 -0
  64. package/dist/src/commands/session.js.map +1 -0
  65. package/dist/src/commands/start.d.ts +8 -0
  66. package/dist/src/commands/start.d.ts.map +1 -0
  67. package/dist/src/commands/start.js +398 -0
  68. package/dist/src/commands/start.js.map +1 -0
  69. package/dist/src/commands/status.d.ts +8 -0
  70. package/dist/src/commands/status.d.ts.map +1 -0
  71. package/dist/src/commands/status.js +560 -0
  72. package/dist/src/commands/status.js.map +1 -0
  73. package/dist/src/commands/swarm.d.ts +8 -0
  74. package/dist/src/commands/swarm.d.ts.map +1 -0
  75. package/dist/src/commands/swarm.js +573 -0
  76. package/dist/src/commands/swarm.js.map +1 -0
  77. package/dist/src/commands/task.d.ts +8 -0
  78. package/dist/src/commands/task.d.ts.map +1 -0
  79. package/dist/src/commands/task.js +671 -0
  80. package/dist/src/commands/task.js.map +1 -0
  81. package/dist/src/commands/workflow.d.ts +8 -0
  82. package/dist/src/commands/workflow.d.ts.map +1 -0
  83. package/dist/src/commands/workflow.js +617 -0
  84. package/dist/src/commands/workflow.js.map +1 -0
  85. package/dist/src/config-adapter.d.ts +15 -0
  86. package/dist/src/config-adapter.d.ts.map +1 -0
  87. package/dist/src/config-adapter.js +185 -0
  88. package/dist/src/config-adapter.js.map +1 -0
  89. package/dist/src/index.d.ts +55 -0
  90. package/dist/src/index.d.ts.map +1 -0
  91. package/dist/src/index.js +312 -0
  92. package/dist/src/index.js.map +1 -0
  93. package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
  94. package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
  95. package/dist/src/infrastructure/in-memory-repositories.js +264 -0
  96. package/dist/src/infrastructure/in-memory-repositories.js.map +1 -0
  97. package/dist/src/init/claudemd-generator.d.ts +15 -0
  98. package/dist/src/init/claudemd-generator.d.ts.map +1 -0
  99. package/dist/src/init/claudemd-generator.js +626 -0
  100. package/dist/src/init/claudemd-generator.js.map +1 -0
  101. package/dist/src/init/executor.d.ts +11 -0
  102. package/dist/src/init/executor.d.ts.map +1 -0
  103. package/dist/src/init/executor.js +647 -0
  104. package/dist/src/init/executor.js.map +1 -0
  105. package/dist/src/init/helpers-generator.d.ts +42 -0
  106. package/dist/src/init/helpers-generator.d.ts.map +1 -0
  107. package/dist/src/init/helpers-generator.js +613 -0
  108. package/dist/src/init/helpers-generator.js.map +1 -0
  109. package/dist/src/init/index.d.ts +12 -0
  110. package/dist/src/init/index.d.ts.map +1 -0
  111. package/dist/src/init/index.js +15 -0
  112. package/dist/src/init/index.js.map +1 -0
  113. package/dist/src/init/mcp-generator.d.ts +18 -0
  114. package/dist/src/init/mcp-generator.d.ts.map +1 -0
  115. package/dist/src/init/mcp-generator.js +71 -0
  116. package/dist/src/init/mcp-generator.js.map +1 -0
  117. package/dist/src/init/settings-generator.d.ts +14 -0
  118. package/dist/src/init/settings-generator.d.ts.map +1 -0
  119. package/dist/src/init/settings-generator.js +257 -0
  120. package/dist/src/init/settings-generator.js.map +1 -0
  121. package/dist/src/init/statusline-generator.d.ts +14 -0
  122. package/dist/src/init/statusline-generator.d.ts.map +1 -0
  123. package/dist/src/init/statusline-generator.js +206 -0
  124. package/dist/src/init/statusline-generator.js.map +1 -0
  125. package/dist/src/init/types.d.ts +240 -0
  126. package/dist/src/init/types.d.ts.map +1 -0
  127. package/dist/src/init/types.js +210 -0
  128. package/dist/src/init/types.js.map +1 -0
  129. package/dist/src/mcp-client.d.ts +92 -0
  130. package/dist/src/mcp-client.d.ts.map +1 -0
  131. package/dist/src/mcp-client.js +189 -0
  132. package/dist/src/mcp-client.js.map +1 -0
  133. package/dist/src/mcp-server.d.ts +153 -0
  134. package/dist/src/mcp-server.d.ts.map +1 -0
  135. package/dist/src/mcp-server.js +448 -0
  136. package/dist/src/mcp-server.js.map +1 -0
  137. package/dist/src/mcp-tools/agent-tools.d.ts +8 -0
  138. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -0
  139. package/dist/src/mcp-tools/agent-tools.js +90 -0
  140. package/dist/src/mcp-tools/agent-tools.js.map +1 -0
  141. package/dist/src/mcp-tools/config-tools.d.ts +8 -0
  142. package/dist/src/mcp-tools/config-tools.d.ts.map +1 -0
  143. package/dist/src/mcp-tools/config-tools.js +86 -0
  144. package/dist/src/mcp-tools/config-tools.js.map +1 -0
  145. package/dist/src/mcp-tools/hooks-tools.d.ts +41 -0
  146. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -0
  147. package/dist/src/mcp-tools/hooks-tools.js +1646 -0
  148. package/dist/src/mcp-tools/hooks-tools.js.map +1 -0
  149. package/dist/src/mcp-tools/index.d.ts +12 -0
  150. package/dist/src/mcp-tools/index.d.ts.map +1 -0
  151. package/dist/src/mcp-tools/index.js +11 -0
  152. package/dist/src/mcp-tools/index.js.map +1 -0
  153. package/dist/src/mcp-tools/memory-tools.d.ts +8 -0
  154. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -0
  155. package/dist/src/mcp-tools/memory-tools.js +87 -0
  156. package/dist/src/mcp-tools/memory-tools.js.map +1 -0
  157. package/dist/src/mcp-tools/swarm-tools.d.ts +8 -0
  158. package/dist/src/mcp-tools/swarm-tools.d.ts.map +1 -0
  159. package/dist/src/mcp-tools/swarm-tools.js +67 -0
  160. package/dist/src/mcp-tools/swarm-tools.js.map +1 -0
  161. package/dist/src/mcp-tools/types.d.ts +31 -0
  162. package/dist/src/mcp-tools/types.d.ts.map +1 -0
  163. package/dist/src/mcp-tools/types.js +7 -0
  164. package/dist/src/mcp-tools/types.js.map +1 -0
  165. package/dist/src/output.d.ts +117 -0
  166. package/dist/src/output.d.ts.map +1 -0
  167. package/dist/src/output.js +471 -0
  168. package/dist/src/output.js.map +1 -0
  169. package/dist/src/parser.d.ts +41 -0
  170. package/dist/src/parser.d.ts.map +1 -0
  171. package/dist/src/parser.js +353 -0
  172. package/dist/src/parser.js.map +1 -0
  173. package/dist/src/prompt.d.ts +44 -0
  174. package/dist/src/prompt.d.ts.map +1 -0
  175. package/dist/src/prompt.js +501 -0
  176. package/dist/src/prompt.js.map +1 -0
  177. package/dist/src/types.d.ts +198 -0
  178. package/dist/src/types.d.ts.map +1 -0
  179. package/dist/src/types.js +38 -0
  180. package/dist/src/types.js.map +1 -0
  181. package/dist/tsconfig.tsbuildinfo +1 -0
  182. package/docs/CONFIG_LOADING.md +236 -0
  183. package/docs/IMPLEMENTATION_COMPLETE.md +421 -0
  184. package/docs/MCP_CLIENT_GUIDE.md +620 -0
  185. package/docs/REFACTORING_SUMMARY.md +247 -0
  186. package/package.json +29 -0
  187. package/src/commands/agent.ts +941 -0
  188. package/src/commands/config.ts +452 -0
  189. package/src/commands/hive-mind.ts +762 -0
  190. package/src/commands/hooks.ts +2603 -0
  191. package/src/commands/index.ts +115 -0
  192. package/src/commands/init.ts +597 -0
  193. package/src/commands/mcp.ts +753 -0
  194. package/src/commands/memory.ts +1063 -0
  195. package/src/commands/migrate.ts +447 -0
  196. package/src/commands/process.ts +617 -0
  197. package/src/commands/session.ts +891 -0
  198. package/src/commands/start.ts +457 -0
  199. package/src/commands/status.ts +705 -0
  200. package/src/commands/swarm.ts +648 -0
  201. package/src/commands/task.ts +792 -0
  202. package/src/commands/workflow.ts +742 -0
  203. package/src/config-adapter.ts +210 -0
  204. package/src/index.ts +383 -0
  205. package/src/infrastructure/in-memory-repositories.ts +310 -0
  206. package/src/init/claudemd-generator.ts +631 -0
  207. package/src/init/executor.ts +756 -0
  208. package/src/init/helpers-generator.ts +628 -0
  209. package/src/init/index.ts +60 -0
  210. package/src/init/mcp-generator.ts +83 -0
  211. package/src/init/settings-generator.ts +274 -0
  212. package/src/init/statusline-generator.ts +211 -0
  213. package/src/init/types.ts +447 -0
  214. package/src/mcp-client.ts +227 -0
  215. package/src/mcp-server.ts +571 -0
  216. package/src/mcp-tools/agent-tools.ts +92 -0
  217. package/src/mcp-tools/config-tools.ts +88 -0
  218. package/src/mcp-tools/hooks-tools.ts +1819 -0
  219. package/src/mcp-tools/index.ts +12 -0
  220. package/src/mcp-tools/memory-tools.ts +89 -0
  221. package/src/mcp-tools/swarm-tools.ts +69 -0
  222. package/src/mcp-tools/types.ts +33 -0
  223. package/src/output.ts +593 -0
  224. package/src/parser.ts +417 -0
  225. package/src/prompt.ts +619 -0
  226. package/src/types.ts +287 -0
  227. package/tsconfig.json +16 -0
  228. package/tsconfig.tsbuildinfo +1 -0
  229. package/vitest.config.ts +13 -0
@@ -0,0 +1,189 @@
1
+ /**
2
+ * V3 CLI MCP Client
3
+ *
4
+ * Thin wrapper for calling MCP tools from CLI commands.
5
+ * Implements ADR-005: MCP-First API Design - CLI as thin wrapper around MCP tools
6
+ *
7
+ * This provides a simple interface for CLI commands to call MCP tools without
8
+ * containing hardcoded business logic. All business logic lives in MCP tool handlers.
9
+ */
10
+ // Import MCP tool handlers from local package
11
+ import { agentTools } from './mcp-tools/agent-tools.js';
12
+ import { swarmTools } from './mcp-tools/swarm-tools.js';
13
+ import { memoryTools } from './mcp-tools/memory-tools.js';
14
+ import { configTools } from './mcp-tools/config-tools.js';
15
+ import { hooksTools } from './mcp-tools/hooks-tools.js';
16
+ /**
17
+ * MCP Tool Registry
18
+ * Maps tool names to their handler functions
19
+ */
20
+ const TOOL_REGISTRY = new Map();
21
+ // Register all tools
22
+ function registerTools(tools) {
23
+ tools.forEach(tool => {
24
+ TOOL_REGISTRY.set(tool.name, tool);
25
+ });
26
+ }
27
+ // Initialize registry with all available tools
28
+ registerTools([...agentTools, ...swarmTools, ...memoryTools, ...configTools, ...hooksTools]);
29
+ /**
30
+ * MCP Client Error
31
+ */
32
+ export class MCPClientError extends Error {
33
+ toolName;
34
+ cause;
35
+ constructor(message, toolName, cause) {
36
+ super(message);
37
+ this.toolName = toolName;
38
+ this.cause = cause;
39
+ this.name = 'MCPClientError';
40
+ }
41
+ }
42
+ /**
43
+ * Call an MCP tool by name with input parameters
44
+ *
45
+ * @param toolName - Name of the MCP tool (e.g., 'agent/spawn', 'swarm/init')
46
+ * @param input - Input parameters for the tool
47
+ * @param context - Optional tool context
48
+ * @returns Promise resolving to tool result
49
+ * @throws {MCPClientError} If tool not found or execution fails
50
+ *
51
+ * @example
52
+ * ```typescript
53
+ * // Spawn an agent
54
+ * const result = await callMCPTool('agent/spawn', {
55
+ * agentType: 'coder',
56
+ * priority: 'normal'
57
+ * });
58
+ *
59
+ * // Initialize swarm
60
+ * const swarm = await callMCPTool('swarm/init', {
61
+ * topology: 'hierarchical-mesh',
62
+ * maxAgents: 15
63
+ * });
64
+ * ```
65
+ */
66
+ export async function callMCPTool(toolName, input = {}, context) {
67
+ // Look up tool in registry
68
+ const tool = TOOL_REGISTRY.get(toolName);
69
+ if (!tool) {
70
+ throw new MCPClientError(`MCP tool not found: ${toolName}`, toolName);
71
+ }
72
+ try {
73
+ // Call the tool handler
74
+ const result = await tool.handler(input, context);
75
+ return result;
76
+ }
77
+ catch (error) {
78
+ // Wrap and re-throw with context
79
+ throw new MCPClientError(`Failed to execute MCP tool '${toolName}': ${error instanceof Error ? error.message : String(error)}`, toolName, error instanceof Error ? error : undefined);
80
+ }
81
+ }
82
+ /**
83
+ * Get tool metadata by name
84
+ *
85
+ * @param toolName - Name of the MCP tool
86
+ * @returns Tool metadata or undefined if not found
87
+ */
88
+ export function getToolMetadata(toolName) {
89
+ const tool = TOOL_REGISTRY.get(toolName);
90
+ if (!tool) {
91
+ return undefined;
92
+ }
93
+ // Return everything except the handler function
94
+ return {
95
+ name: tool.name,
96
+ description: tool.description,
97
+ inputSchema: tool.inputSchema,
98
+ category: tool.category,
99
+ tags: tool.tags,
100
+ version: tool.version,
101
+ cacheable: tool.cacheable,
102
+ cacheTTL: tool.cacheTTL,
103
+ };
104
+ }
105
+ /**
106
+ * List all available MCP tools
107
+ *
108
+ * @param category - Optional category filter
109
+ * @returns Array of tool metadata
110
+ */
111
+ export function listMCPTools(category) {
112
+ const tools = Array.from(TOOL_REGISTRY.values());
113
+ const filtered = category
114
+ ? tools.filter(t => t.category === category)
115
+ : tools;
116
+ return filtered.map(tool => ({
117
+ name: tool.name,
118
+ description: tool.description,
119
+ inputSchema: tool.inputSchema,
120
+ category: tool.category,
121
+ tags: tool.tags,
122
+ version: tool.version,
123
+ cacheable: tool.cacheable,
124
+ cacheTTL: tool.cacheTTL,
125
+ }));
126
+ }
127
+ /**
128
+ * Check if an MCP tool exists
129
+ *
130
+ * @param toolName - Name of the MCP tool
131
+ * @returns True if tool exists
132
+ */
133
+ export function hasTool(toolName) {
134
+ return TOOL_REGISTRY.has(toolName);
135
+ }
136
+ /**
137
+ * Get all tool categories
138
+ *
139
+ * @returns Array of unique categories
140
+ */
141
+ export function getToolCategories() {
142
+ const categories = new Set();
143
+ TOOL_REGISTRY.forEach(tool => {
144
+ if (tool.category) {
145
+ categories.add(tool.category);
146
+ }
147
+ });
148
+ return Array.from(categories).sort();
149
+ }
150
+ /**
151
+ * Validate tool input against schema
152
+ *
153
+ * @param toolName - Name of the MCP tool
154
+ * @param input - Input to validate
155
+ * @returns Validation result with errors if any
156
+ */
157
+ export function validateToolInput(toolName, input) {
158
+ const tool = TOOL_REGISTRY.get(toolName);
159
+ if (!tool) {
160
+ return {
161
+ valid: false,
162
+ errors: [`Tool '${toolName}' not found`],
163
+ };
164
+ }
165
+ // Basic validation - check required fields
166
+ const schema = tool.inputSchema;
167
+ const errors = [];
168
+ if (schema.required && Array.isArray(schema.required)) {
169
+ for (const requiredField of schema.required) {
170
+ if (!(requiredField in input)) {
171
+ errors.push(`Missing required field: ${requiredField}`);
172
+ }
173
+ }
174
+ }
175
+ return {
176
+ valid: errors.length === 0,
177
+ errors: errors.length > 0 ? errors : undefined,
178
+ };
179
+ }
180
+ export default {
181
+ callMCPTool,
182
+ getToolMetadata,
183
+ listMCPTools,
184
+ hasTool,
185
+ getToolCategories,
186
+ validateToolInput,
187
+ MCPClientError,
188
+ };
189
+ //# sourceMappingURL=mcp-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/mcp-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * V3 CLI MCP Server Management
3
+ *
4
+ * Provides server lifecycle management for MCP integration:
5
+ * - Start/stop/status methods with process management
6
+ * - Health check endpoint integration
7
+ * - Graceful shutdown handling
8
+ * - PID file management for daemon detection
9
+ * - Event-based status monitoring
10
+ *
11
+ * Performance Targets:
12
+ * - Server startup: <400ms
13
+ * - Health check: <10ms
14
+ * - Graceful shutdown: <5s
15
+ *
16
+ * @module @claude-flow/cli/mcp-server
17
+ * @version 3.0.0
18
+ */
19
+ import { EventEmitter } from 'events';
20
+ /**
21
+ * MCP Server configuration
22
+ */
23
+ export interface MCPServerOptions {
24
+ transport?: 'stdio' | 'http' | 'websocket';
25
+ host?: string;
26
+ port?: number;
27
+ pidFile?: string;
28
+ logFile?: string;
29
+ tools?: string[] | 'all';
30
+ daemonize?: boolean;
31
+ timeout?: number;
32
+ }
33
+ /**
34
+ * MCP Server status
35
+ */
36
+ export interface MCPServerStatus {
37
+ running: boolean;
38
+ pid?: number;
39
+ transport?: string;
40
+ host?: string;
41
+ port?: number;
42
+ uptime?: number;
43
+ tools?: number;
44
+ startedAt?: string;
45
+ health?: {
46
+ healthy: boolean;
47
+ error?: string;
48
+ metrics?: Record<string, number>;
49
+ };
50
+ }
51
+ /**
52
+ * MCP Server Manager
53
+ *
54
+ * Manages the lifecycle of the MCP server process
55
+ */
56
+ export declare class MCPServerManager extends EventEmitter {
57
+ private options;
58
+ private process?;
59
+ private server?;
60
+ private startTime?;
61
+ private healthCheckInterval?;
62
+ constructor(options?: MCPServerOptions);
63
+ /**
64
+ * Start the MCP server
65
+ */
66
+ start(): Promise<MCPServerStatus>;
67
+ /**
68
+ * Stop the MCP server
69
+ */
70
+ stop(force?: boolean): Promise<void>;
71
+ /**
72
+ * Get server status
73
+ */
74
+ getStatus(): Promise<MCPServerStatus>;
75
+ /**
76
+ * Check server health
77
+ */
78
+ checkHealth(): Promise<{
79
+ healthy: boolean;
80
+ error?: string;
81
+ metrics?: Record<string, number>;
82
+ }>;
83
+ /**
84
+ * Restart the server
85
+ */
86
+ restart(): Promise<MCPServerStatus>;
87
+ /**
88
+ * Start stdio server process
89
+ */
90
+ private startStdioServer;
91
+ /**
92
+ * Start HTTP server in-process
93
+ */
94
+ private startHttpServer;
95
+ /**
96
+ * Wait for server to be ready
97
+ */
98
+ private waitForReady;
99
+ /**
100
+ * Wait for process to exit
101
+ */
102
+ private waitForExit;
103
+ /**
104
+ * Start health monitoring
105
+ */
106
+ private startHealthMonitoring;
107
+ /**
108
+ * Write PID file
109
+ */
110
+ private writePidFile;
111
+ /**
112
+ * Read PID file
113
+ */
114
+ private readPidFile;
115
+ /**
116
+ * Remove PID file
117
+ */
118
+ private removePidFile;
119
+ /**
120
+ * Check if process is running
121
+ */
122
+ private isProcessRunning;
123
+ /**
124
+ * Make HTTP request
125
+ */
126
+ private httpRequest;
127
+ /**
128
+ * Sleep utility
129
+ */
130
+ private sleep;
131
+ }
132
+ /**
133
+ * Create MCP server manager
134
+ */
135
+ export declare function createMCPServerManager(options?: MCPServerOptions): MCPServerManager;
136
+ /**
137
+ * Get or create server manager singleton
138
+ */
139
+ export declare function getServerManager(options?: MCPServerOptions): MCPServerManager;
140
+ /**
141
+ * Quick start MCP server
142
+ */
143
+ export declare function startMCPServer(options?: MCPServerOptions): Promise<MCPServerStatus>;
144
+ /**
145
+ * Quick stop MCP server
146
+ */
147
+ export declare function stopMCPServer(force?: boolean): Promise<void>;
148
+ /**
149
+ * Get MCP server status
150
+ */
151
+ export declare function getMCPServerStatus(): Promise<MCPServerStatus>;
152
+ export default MCPServerManager;
153
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/mcp-server.ts"],"names":[],"mappings":"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"}