@sunub/obsidian-mcp-server 0.2.0 → 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 (283) hide show
  1. package/README.md +201 -25
  2. package/build/cli/AppContainer.d.ts +1 -0
  3. package/build/cli/AppContainer.js +197 -0
  4. package/build/cli/AppContainer.js.map +1 -0
  5. package/build/cli/app.js +7 -0
  6. package/build/cli/app.js.map +1 -0
  7. package/build/cli/config/SettingContext.d.ts +1 -0
  8. package/build/cli/config/SettingContext.js +2 -0
  9. package/build/cli/config/SettingContext.js.map +1 -0
  10. package/build/cli/config/mcpServersConfig.d.ts +18 -0
  11. package/build/cli/config/mcpServersConfig.js +119 -0
  12. package/build/cli/config/mcpServersConfig.js.map +1 -0
  13. package/build/cli/config/settingSchema.d.ts +180 -0
  14. package/build/cli/config/settingSchema.js +128 -0
  15. package/build/cli/config/settingSchema.js.map +1 -0
  16. package/build/cli/context/InputContext.d.ts +12 -0
  17. package/build/cli/context/InputContext.js +10 -0
  18. package/build/cli/context/InputContext.js.map +1 -0
  19. package/build/cli/context/KeypressContext.d.ts +30 -0
  20. package/build/cli/context/KeypressContext.js +200 -0
  21. package/build/cli/context/KeypressContext.js.map +1 -0
  22. package/build/cli/context/KeypressContext.util.d.ts +7 -0
  23. package/build/cli/context/KeypressContext.util.js +474 -0
  24. package/build/cli/context/KeypressContext.util.js.map +1 -0
  25. package/build/cli/hooks/useAtCompletion.d.ts +12 -0
  26. package/build/cli/hooks/useAtCompletion.js +5 -0
  27. package/build/cli/hooks/useAtCompletion.js.map +1 -0
  28. package/build/cli/hooks/useCommandCompletion.d.ts +59 -0
  29. package/build/cli/hooks/useCommandCompletion.js +344 -0
  30. package/build/cli/hooks/useCommandCompletion.js.map +1 -0
  31. package/build/cli/hooks/useCompletion.d.ts +22 -0
  32. package/build/cli/hooks/useCompletion.js +84 -0
  33. package/build/cli/hooks/useCompletion.js.map +1 -0
  34. package/build/cli/hooks/useDispatcher.d.ts +6 -0
  35. package/build/cli/hooks/useDispatcher.js +286 -0
  36. package/build/cli/hooks/useDispatcher.js.map +1 -0
  37. package/build/cli/hooks/useFocus.d.ts +2 -0
  38. package/build/cli/hooks/useFocus.js +3 -0
  39. package/build/cli/hooks/useFocus.js.map +1 -0
  40. package/build/cli/hooks/useInputHistory.d.ts +24 -0
  41. package/build/cli/hooks/useInputHistory.js +159 -0
  42. package/build/cli/hooks/useInputHistory.js.map +1 -0
  43. package/build/cli/hooks/useKeyMatchers.d.ts +17 -0
  44. package/build/cli/hooks/useKeyMatchers.js +13 -0
  45. package/build/cli/hooks/useKeyMatchers.js.map +1 -0
  46. package/build/cli/hooks/useKeypress.d.ts +19 -0
  47. package/build/cli/hooks/useKeypress.js +28 -0
  48. package/build/cli/hooks/useKeypress.js.map +1 -0
  49. package/build/cli/hooks/useLlmStream.d.ts +12 -0
  50. package/build/cli/hooks/useLlmStream.js +365 -0
  51. package/build/cli/hooks/useLlmStream.js.map +1 -0
  52. package/build/cli/hooks/useMcpClient.d.ts +10 -0
  53. package/build/cli/hooks/useMcpClient.js +100 -0
  54. package/build/cli/hooks/useMcpClient.js.map +1 -0
  55. package/build/cli/hooks/useMcpManager.d.ts +22 -0
  56. package/build/cli/hooks/useMcpManager.js +86 -0
  57. package/build/cli/hooks/useMcpManager.js.map +1 -0
  58. package/build/cli/hooks/usePromptCompletion.d.ts +19 -0
  59. package/build/cli/hooks/usePromptCompletion.js +13 -0
  60. package/build/cli/hooks/usePromptCompletion.js.map +1 -0
  61. package/build/cli/hooks/useRagContext.d.ts +6 -0
  62. package/build/cli/hooks/useRagContext.js +83 -0
  63. package/build/cli/hooks/useRagContext.js.map +1 -0
  64. package/build/cli/hooks/useShellCompletion.d.ts +18 -0
  65. package/build/cli/hooks/useShellCompletion.js +10 -0
  66. package/build/cli/hooks/useShellCompletion.js.map +1 -0
  67. package/build/cli/hooks/useSlashCompletion.d.ts +21 -0
  68. package/build/cli/hooks/useSlashCompletion.js +11 -0
  69. package/build/cli/hooks/useSlashCompletion.js.map +1 -0
  70. package/build/cli/hooks/useTerminalSize.d.ts +9 -0
  71. package/build/cli/hooks/useTerminalSize.js +26 -0
  72. package/build/cli/hooks/useTerminalSize.js.map +1 -0
  73. package/build/cli/index.js +27 -0
  74. package/build/cli/index.js.map +1 -0
  75. package/build/cli/key/keyBindings.d.ts +152 -0
  76. package/build/cli/key/keyBindings.js +630 -0
  77. package/build/cli/key/keyBindings.js.map +1 -0
  78. package/build/cli/key/keyMatchers.d.ts +27 -0
  79. package/build/cli/key/keyMatchers.js +33 -0
  80. package/build/cli/key/keyMatchers.js.map +1 -0
  81. package/build/cli/key/text-buffer-bestcase.js +2754 -0
  82. package/build/cli/key/text-buffer-bestcase.js.map +1 -0
  83. package/build/cli/key/text-buffer.js +918 -0
  84. package/build/cli/key/text-buffer.js.map +1 -0
  85. package/build/cli/reference/HistoryItemDisplay.d.ts +23 -0
  86. package/build/cli/reference/HistoryItemDisplay.js +63 -0
  87. package/build/cli/reference/HistoryItemDisplay.js.map +1 -0
  88. package/build/cli/reference/InputContext.d.ts +17 -0
  89. package/build/cli/reference/InputContext.js +16 -0
  90. package/build/cli/reference/InputContext.js.map +1 -0
  91. package/build/cli/reference/KerypressContext.d.ts +37 -0
  92. package/build/cli/reference/KerypressContext.js +791 -0
  93. package/build/cli/reference/KerypressContext.js.map +1 -0
  94. package/build/cli/reference/MainContent.d.ts +6 -0
  95. package/build/cli/reference/MainContent.js +207 -0
  96. package/build/cli/reference/MainContent.js.map +1 -0
  97. package/build/cli/reference/UIStateContext.d.ts +188 -0
  98. package/build/cli/reference/UIStateContext.js +16 -0
  99. package/build/cli/reference/UIStateContext.js.map +1 -0
  100. package/build/cli/reference/useGeminiStream.d.ts +42 -0
  101. package/build/cli/reference/useGeminiStream.js +1404 -0
  102. package/build/cli/reference/useGeminiStream.js.map +1 -0
  103. package/build/cli/services/McpClientService.d.ts +32 -0
  104. package/build/cli/services/McpClientService.js +123 -0
  105. package/build/cli/services/McpClientService.js.map +1 -0
  106. package/build/cli/services/McpManager.d.ts +28 -0
  107. package/build/cli/services/McpManager.js +146 -0
  108. package/build/cli/services/McpManager.js.map +1 -0
  109. package/build/cli/theme/builtin/no-color.js +125 -0
  110. package/build/cli/theme/builtin/no-color.js.map +1 -0
  111. package/build/cli/theme/builtin/tokyonight-dark.js +146 -0
  112. package/build/cli/theme/builtin/tokyonight-dark.js.map +1 -0
  113. package/build/cli/theme/semantic-colors.js +19 -0
  114. package/build/cli/theme/semantic-colors.js.map +1 -0
  115. package/build/cli/theme/semantic-tokens.js +77 -0
  116. package/build/cli/theme/semantic-tokens.js.map +1 -0
  117. package/build/cli/theme/theme-manager.d.ts +32 -0
  118. package/build/cli/theme/theme-manager.js +150 -0
  119. package/build/cli/theme/theme-manager.js.map +1 -0
  120. package/build/cli/theme/theme.js +333 -0
  121. package/build/cli/theme/theme.js.map +1 -0
  122. package/build/cli/tmp.js +27 -0
  123. package/build/cli/tmp.js.map +1 -0
  124. package/build/cli/types.d.ts +72 -0
  125. package/build/cli/types.js +8 -0
  126. package/build/cli/types.js.map +1 -0
  127. package/build/cli/ui/ConnectionStatus.d.ts +13 -0
  128. package/build/cli/ui/ConnectionStatus.js +24 -0
  129. package/build/cli/ui/ConnectionStatus.js.map +1 -0
  130. package/build/cli/ui/HelpCommands.d.ts +5 -0
  131. package/build/cli/ui/HelpCommands.js +11 -0
  132. package/build/cli/ui/HelpCommands.js.map +1 -0
  133. package/build/cli/ui/HistoryItemDisplay.d.ts +9 -0
  134. package/build/cli/ui/HistoryItemDisplay.js +38 -0
  135. package/build/cli/ui/HistoryItemDisplay.js.map +1 -0
  136. package/build/cli/ui/InputPrompt-bestcase.d.ts +63 -0
  137. package/build/cli/ui/InputPrompt-bestcase.js +1301 -0
  138. package/build/cli/ui/InputPrompt-bestcase.js.map +1 -0
  139. package/build/cli/ui/InputPrompt.d.ts +12 -0
  140. package/build/cli/ui/InputPrompt.js +145 -0
  141. package/build/cli/ui/InputPrompt.js.map +1 -0
  142. package/build/cli/ui/InputPrompt.tmp.d.ts +7 -0
  143. package/build/cli/ui/InputPrompt.tmp.js +215 -0
  144. package/build/cli/ui/InputPrompt.tmp.js.map +1 -0
  145. package/build/cli/ui/MainContent.d.ts +10 -0
  146. package/build/cli/ui/MainContent.js +24 -0
  147. package/build/cli/ui/MainContent.js.map +1 -0
  148. package/build/cli/ui/MouseContext.d.ts +1 -0
  149. package/build/cli/ui/MouseContext.js +2 -0
  150. package/build/cli/ui/MouseContext.js.map +1 -0
  151. package/build/cli/ui/SuggestionsDisplay.d.ts +25 -0
  152. package/build/cli/ui/SuggestionsDisplay.js +45 -0
  153. package/build/cli/ui/SuggestionsDisplay.js.map +1 -0
  154. package/build/cli/ui/ThinkingIndicator.d.ts +2 -0
  155. package/build/cli/ui/ThinkingIndicator.js +16 -0
  156. package/build/cli/ui/ThinkingIndicator.js.map +1 -0
  157. package/build/cli/ui/layout/DefaultAppLayout.d.ts +2 -0
  158. package/build/cli/ui/layout/DefaultAppLayout.js +6 -0
  159. package/build/cli/ui/layout/DefaultAppLayout.js.map +1 -0
  160. package/build/cli/ui/shared/ExpandableText.d.ts +14 -0
  161. package/build/cli/ui/shared/ExpandableText.js +19 -0
  162. package/build/cli/ui/shared/ExpandableText.js.map +1 -0
  163. package/build/cli/utils/commandUtils.d.ts +11 -0
  164. package/build/cli/utils/commandUtils.js +16 -0
  165. package/build/cli/utils/commandUtils.js.map +1 -0
  166. package/build/cli/utils/debugLogger.d.ts +12 -0
  167. package/build/cli/utils/debugLogger.js +52 -0
  168. package/build/cli/utils/debugLogger.js.map +1 -0
  169. package/build/cli/utils/historyStorage.d.ts +13 -0
  170. package/build/cli/utils/historyStorage.js +64 -0
  171. package/build/cli/utils/historyStorage.js.map +1 -0
  172. package/build/cli/utils/textUtil.d.ts +68 -0
  173. package/build/cli/utils/textUtil.js +236 -0
  174. package/build/cli/utils/textUtil.js.map +1 -0
  175. package/build/config.js +31 -5
  176. package/build/config.js.map +1 -0
  177. package/build/db.js +55 -0
  178. package/build/db.js.map +1 -0
  179. package/build/index.js +4 -0
  180. package/build/index.js.map +1 -0
  181. package/build/tools/create_document_with_properties/index.d.ts +60 -0
  182. package/build/tools/create_document_with_properties/index.js +6 -0
  183. package/build/tools/create_document_with_properties/index.js.map +1 -0
  184. package/build/tools/create_document_with_properties/params.d.ts +66 -0
  185. package/build/tools/generate_property/index.js +6 -0
  186. package/build/tools/generate_property/index.js.map +1 -0
  187. package/build/tools/index.d.ts +184 -0
  188. package/build/tools/organize_attachments/index.js +6 -0
  189. package/build/tools/organize_attachments/index.js.map +1 -0
  190. package/build/tools/organize_attachments/params.d.ts +122 -0
  191. package/build/tools/vault/index.js +16 -2
  192. package/build/tools/vault/index.js.map +1 -0
  193. package/build/tools/vault/params.d.ts +115 -0
  194. package/build/tools/vault/types/collect_context.d.ts +1340 -0
  195. package/build/tools/vault/types/list_all.d.ts +387 -0
  196. package/build/tools/vault/types/read_specific.d.ts +297 -0
  197. package/build/tools/vault/types/search.d.ts +598 -0
  198. package/build/tools/vault/utils/actions/collect_context.js +26 -1
  199. package/build/tools/vault/utils/actions/collect_context.js.map +1 -0
  200. package/build/tools/vault/utils/actions/index_rag.js +27 -0
  201. package/build/tools/vault/utils/actions/index_rag.js.map +1 -0
  202. package/build/tools/vault/utils/actions/list_all.js +1 -0
  203. package/build/tools/vault/utils/actions/list_all.js.map +1 -0
  204. package/build/tools/vault/utils/actions/load_memory.js +23 -13
  205. package/build/tools/vault/utils/actions/load_memory.js.map +1 -0
  206. package/build/tools/vault/utils/actions/read.js +2 -1
  207. package/build/tools/vault/utils/actions/read.js.map +1 -0
  208. package/build/tools/vault/utils/actions/search.js +2 -1
  209. package/build/tools/vault/utils/actions/search.js.map +1 -0
  210. package/build/tools/vault/utils/actions/search_semantic.js +54 -0
  211. package/build/tools/vault/utils/actions/search_semantic.js.map +1 -0
  212. package/build/tools/vault/utils/actions/stats.js +1 -0
  213. package/build/tools/vault/utils/actions/stats.js.map +1 -0
  214. package/build/tools/vault/utils/document.js +1 -0
  215. package/build/tools/vault/utils/document.js.map +1 -0
  216. package/build/tools/write_property/index.d.ts +58 -0
  217. package/build/tools/write_property/index.js +6 -0
  218. package/build/tools/write_property/index.js.map +1 -0
  219. package/build/utils/DirectoryWalker.d.ts +6 -0
  220. package/build/utils/DirectoryWalker.js +7 -0
  221. package/build/utils/DirectoryWalker.js.map +1 -0
  222. package/build/utils/Indexer.d.ts +18 -0
  223. package/build/utils/Indexer.js +5 -9
  224. package/build/utils/Indexer.js.map +1 -0
  225. package/build/utils/LLMClient.d.ts +37 -0
  226. package/build/utils/LLMClient.js +82 -0
  227. package/build/utils/LLMClient.js.map +1 -0
  228. package/build/utils/RAGIndexer.d.ts +22 -0
  229. package/build/utils/RAGIndexer.js +206 -0
  230. package/build/utils/RAGIndexer.js.map +1 -0
  231. package/build/utils/RerankerClient.d.ts +27 -0
  232. package/build/utils/RerankerClient.js +69 -0
  233. package/build/utils/RerankerClient.js.map +1 -0
  234. package/build/utils/VaultManger/VaultManager.d.ts +34 -0
  235. package/build/utils/VaultManger/VaultManager.js +1 -0
  236. package/build/utils/VaultManger/VaultManager.js.map +1 -0
  237. package/build/utils/VaultManger/VaultPathError.d.ts +6 -0
  238. package/build/utils/VaultManger/VaultPathError.js +1 -0
  239. package/build/utils/VaultManger/VaultPathError.js.map +1 -0
  240. package/build/utils/VaultManger/index.d.ts +3 -0
  241. package/build/utils/VaultManger/index.js +1 -0
  242. package/build/utils/VaultManger/index.js.map +1 -0
  243. package/build/utils/VaultManger/types.d.ts +16 -0
  244. package/build/utils/VaultManger/types.js +1 -0
  245. package/build/utils/VaultManger/types.js.map +1 -0
  246. package/build/utils/VaultWatcher.d.ts +8 -0
  247. package/build/utils/VaultWatcher.js +96 -0
  248. package/build/utils/VaultWatcher.js.map +1 -0
  249. package/build/utils/VectorDB.d.ts +53 -0
  250. package/build/utils/VectorDB.js +243 -0
  251. package/build/utils/VectorDB.js.map +1 -0
  252. package/build/utils/createToolError.d.ts +2 -0
  253. package/build/utils/createToolError.js +1 -0
  254. package/build/utils/createToolError.js.map +1 -0
  255. package/build/utils/getVaultManager.d.ts +2 -0
  256. package/build/utils/getVaultManager.js +1 -0
  257. package/build/utils/getVaultManager.js.map +1 -0
  258. package/build/utils/processor/LinkExtractor.d.ts +2 -0
  259. package/build/utils/processor/LinkExtractor.js +1 -0
  260. package/build/utils/processor/LinkExtractor.js.map +1 -0
  261. package/build/utils/processor/MatterParser.d.ts +2 -0
  262. package/build/utils/processor/MatterParser.js +12 -3
  263. package/build/utils/processor/MatterParser.js.map +1 -0
  264. package/build/utils/processor/types.d.ts +100 -0
  265. package/package.json +28 -3
  266. package/build/server.js +0 -32
  267. package/build/tools/create_document_with_properties/params.js +0 -32
  268. package/build/tools/generate_property/params.js +0 -54
  269. package/build/tools/index.js +0 -12
  270. package/build/tools/organize_attachments/params.js +0 -60
  271. package/build/tools/organize_attachments/utils.js +0 -65
  272. package/build/tools/vault/metrics.js +0 -126
  273. package/build/tools/vault/params.js +0 -141
  274. package/build/tools/vault/types/collect_context.js +0 -102
  275. package/build/tools/vault/types/list_all.js +0 -52
  276. package/build/tools/vault/types/read_specific.js +0 -40
  277. package/build/tools/vault/types/search.js +0 -58
  278. package/build/tools/vault/utils/constants.js +0 -2
  279. package/build/tools/vault/utils/shared.js +0 -74
  280. package/build/tools/vault/utils.js +0 -6
  281. package/build/tools/write_property/params.js +0 -51
  282. package/build/utils/processor/types.js +0 -27
  283. package/build/utils/semaphore.js +0 -25
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGeminiStream.js","sourceRoot":"","sources":["../../../src/cli/reference/useGeminiStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { McpToolResult } from "../types.js";
2
+ export interface McpConnectionOptions {
3
+ command: string;
4
+ args?: string[];
5
+ env?: Record<string, string>;
6
+ cwd?: string;
7
+ }
8
+ export interface McpToolInputSchema {
9
+ type: string;
10
+ properties?: Record<string, {
11
+ type?: string;
12
+ description?: string;
13
+ }>;
14
+ required?: string[];
15
+ }
16
+ export interface McpToolInfo {
17
+ name: string;
18
+ description?: string;
19
+ inputSchema?: McpToolInputSchema;
20
+ }
21
+ export declare class McpClientService {
22
+ private client;
23
+ private transport;
24
+ private _isConnected;
25
+ get isConnected(): boolean;
26
+ connect(options: McpConnectionOptions): Promise<void>;
27
+ listTools(): Promise<McpToolInfo[]>;
28
+ callTool(name: string, args: Record<string, unknown>): Promise<McpToolResult>;
29
+ disconnect(): Promise<void>;
30
+ private ensureConnected;
31
+ private cleanupResources;
32
+ }
@@ -0,0 +1,123 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client";
2
+ import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
3
+ import { debugLogger } from "../utils/debugLogger.js";
4
+ const MAX_RETRIES = 3;
5
+ const RETRY_DELAY_MS = 1000;
6
+ export class McpClientService {
7
+ client = null;
8
+ transport = null;
9
+ _isConnected = false;
10
+ get isConnected() {
11
+ return this._isConnected;
12
+ }
13
+ async connect(options) {
14
+ if (this._isConnected) {
15
+ debugLogger.debug("[McpClient] Already connected, skipping.");
16
+ return;
17
+ }
18
+ let lastError = null;
19
+ for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
20
+ try {
21
+ debugLogger.debug(`[McpClient] Connection attempt ${attempt}/${MAX_RETRIES}...`);
22
+ this.transport = new StdioClientTransport({
23
+ command: options.command,
24
+ args: options.args,
25
+ env: Object.fromEntries(Object.entries({ ...process.env, ...options.env }).filter((entry) => entry[1] !== undefined)),
26
+ cwd: options.cwd,
27
+ stderr: "pipe",
28
+ });
29
+ this.client = new Client({
30
+ name: "obsidian-cli-agent",
31
+ version: "1.0.0",
32
+ });
33
+ this.transport.stderr?.on("data", (chunk) => {
34
+ const text = chunk.toString().trim();
35
+ if (!text) {
36
+ return;
37
+ }
38
+ if (!text.startsWith("File added:") &&
39
+ !text.startsWith("Frontmatter")) {
40
+ debugLogger.debug(`[McpServer:stderr] ${text}`);
41
+ }
42
+ });
43
+ await this.client.connect(this.transport);
44
+ this._isConnected = true;
45
+ debugLogger.info("[McpClient] Successfully connected to MCP server.");
46
+ return;
47
+ }
48
+ catch (err) {
49
+ lastError = err instanceof Error ? err : new Error(String(err));
50
+ debugLogger.error(`[McpClient] Connection attempt ${attempt} failed:`, lastError.message);
51
+ await this.cleanupResources();
52
+ if (attempt < MAX_RETRIES) {
53
+ await sleep(RETRY_DELAY_MS * attempt);
54
+ }
55
+ }
56
+ }
57
+ throw new Error(`MCP 서버 연결 실패 (${MAX_RETRIES}회 시도): ${lastError?.message ?? "Unknown error"}`);
58
+ }
59
+ async listTools() {
60
+ this.ensureConnected();
61
+ const client = this.client;
62
+ const result = await client.listTools();
63
+ return result.tools.map((tool) => ({
64
+ name: tool.name,
65
+ description: tool.description,
66
+ inputSchema: tool.inputSchema,
67
+ }));
68
+ }
69
+ async callTool(name, args) {
70
+ this.ensureConnected();
71
+ const client = this.client;
72
+ debugLogger.debug(`[McpClient] Calling tool: ${name}`, JSON.stringify(args).slice(0, 200));
73
+ try {
74
+ const result = await client.callTool({ name, arguments: args });
75
+ debugLogger.debug(`[McpClient] Tool ${name} completed (isError: ${result.isError ?? false})`);
76
+ return {
77
+ isError: result.isError ?? false,
78
+ content: (result.content ?? []),
79
+ };
80
+ }
81
+ catch (err) {
82
+ const errorMessage = err instanceof Error ? err.message : String(err);
83
+ debugLogger.error(`[McpClient] Tool ${name} failed:`, errorMessage);
84
+ return {
85
+ isError: true,
86
+ content: [{ type: "text", text: `도구 실행 실패: ${errorMessage}` }],
87
+ };
88
+ }
89
+ }
90
+ async disconnect() {
91
+ debugLogger.info("[McpClient] Disconnecting...");
92
+ try {
93
+ if (this.client) {
94
+ await this.client.close();
95
+ }
96
+ }
97
+ catch (err) {
98
+ debugLogger.error("[McpClient] Error during client close:", err);
99
+ }
100
+ await this.cleanupResources();
101
+ debugLogger.info("[McpClient] Disconnected.");
102
+ }
103
+ ensureConnected() {
104
+ if (!this._isConnected || !this.client) {
105
+ throw new Error("MCP 클라이언트가 연결되지 않았습니다. connect()를 먼저 호출하세요.");
106
+ }
107
+ }
108
+ async cleanupResources() {
109
+ try {
110
+ if (this.transport) {
111
+ await this.transport.close();
112
+ }
113
+ }
114
+ catch { }
115
+ this.client = null;
116
+ this.transport = null;
117
+ this._isConnected = false;
118
+ }
119
+ }
120
+ function sleep(ms) {
121
+ return new Promise((resolve) => setTimeout(resolve, ms));
122
+ }
123
+ //# sourceMappingURL=McpClientService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpClientService.js","sourceRoot":"","sources":["../../../src/cli/services/McpClientService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { McpServerConfig } from "../config/mcpServersConfig.js";
2
+ import type { McpConnectionState, McpToolResult } from "../types.js";
3
+ import type { McpToolInfo } from "./McpClientService.js";
4
+ export interface ServerConnectionInfo {
5
+ state: McpConnectionState;
6
+ toolCount: number;
7
+ error: Error | null;
8
+ }
9
+ export declare class McpManager {
10
+ private services;
11
+ private configs;
12
+ private connectionStates;
13
+ private connectionErrors;
14
+ private toolRegistry;
15
+ private serverTools;
16
+ get connections(): Map<string, ServerConnectionInfo>;
17
+ get allTools(): McpToolInfo[];
18
+ get toolsByServer(): Map<string, McpToolInfo[]>;
19
+ get isPartiallyReady(): boolean;
20
+ get connectedCount(): number;
21
+ get serverCount(): number;
22
+ get errors(): Map<string, Error>;
23
+ connectAll(serverConfigs: McpServerConfig[], onStateChange?: () => void): Promise<void>;
24
+ disconnectAll(): Promise<void>;
25
+ callTool(name: string, args: Record<string, unknown>): Promise<McpToolResult>;
26
+ private connectSingle;
27
+ private registerTools;
28
+ }
@@ -0,0 +1,146 @@
1
+ import { debugLogger } from "../utils/debugLogger.js";
2
+ import { McpClientService } from "./McpClientService.js";
3
+ export class McpManager {
4
+ services = new Map();
5
+ configs = new Map();
6
+ connectionStates = new Map();
7
+ connectionErrors = new Map();
8
+ toolRegistry = new Map();
9
+ serverTools = new Map();
10
+ get connections() {
11
+ const result = new Map();
12
+ for (const [name] of this.configs) {
13
+ result.set(name, {
14
+ state: this.connectionStates.get(name) ?? "disconnected",
15
+ toolCount: this.serverTools.get(name)?.length ?? 0,
16
+ error: this.connectionErrors.get(name) ?? null,
17
+ });
18
+ }
19
+ return result;
20
+ }
21
+ get allTools() {
22
+ return Array.from(this.toolRegistry.values()).map((entry) => entry.tool);
23
+ }
24
+ get toolsByServer() {
25
+ return new Map(this.serverTools);
26
+ }
27
+ get isPartiallyReady() {
28
+ for (const state of this.connectionStates.values()) {
29
+ if (state === "connected")
30
+ return true;
31
+ }
32
+ return false;
33
+ }
34
+ get connectedCount() {
35
+ let count = 0;
36
+ for (const state of this.connectionStates.values()) {
37
+ if (state === "connected")
38
+ count++;
39
+ }
40
+ return count;
41
+ }
42
+ get serverCount() {
43
+ return this.configs.size;
44
+ }
45
+ get errors() {
46
+ return new Map(this.connectionErrors);
47
+ }
48
+ async connectAll(serverConfigs, onStateChange) {
49
+ for (const config of serverConfigs) {
50
+ this.configs.set(config.name, config);
51
+ this.connectionStates.set(config.name, "connecting");
52
+ const service = new McpClientService();
53
+ this.services.set(config.name, service);
54
+ }
55
+ onStateChange?.();
56
+ const results = await Promise.allSettled(serverConfigs.map((config) => this.connectSingle(config, onStateChange)));
57
+ const succeeded = results.filter((r) => r.status === "fulfilled").length;
58
+ const failed = results.filter((r) => r.status === "rejected").length;
59
+ debugLogger.info(`[McpManager] 연결 완료: ${succeeded}/${serverConfigs.length} 성공, ${failed} 실패`);
60
+ }
61
+ async disconnectAll() {
62
+ debugLogger.info("[McpManager] 모든 서버 연결 해제 중...");
63
+ const disconnectPromises = [];
64
+ for (const [name, service] of this.services) {
65
+ disconnectPromises.push(service.disconnect().catch((err) => {
66
+ debugLogger.error(`[McpManager] "${name}" 연결 해제 실패:`, err);
67
+ }));
68
+ }
69
+ await Promise.allSettled(disconnectPromises);
70
+ this.services.clear();
71
+ this.configs.clear();
72
+ this.connectionStates.clear();
73
+ this.connectionErrors.clear();
74
+ this.toolRegistry.clear();
75
+ this.serverTools.clear();
76
+ debugLogger.info("[McpManager] 모든 서버 연결 해제 완료.");
77
+ }
78
+ async callTool(name, args) {
79
+ const route = this.toolRegistry.get(name);
80
+ if (!route) {
81
+ return {
82
+ isError: true,
83
+ content: [
84
+ {
85
+ type: "text",
86
+ text: `도구 "${name}"을(를) 찾을 수 없습니다. /tools 명령으로 사용 가능한 도구를 확인하세요.`,
87
+ },
88
+ ],
89
+ };
90
+ }
91
+ const service = this.services.get(route.serverName);
92
+ if (!service?.isConnected) {
93
+ return {
94
+ isError: true,
95
+ content: [
96
+ {
97
+ type: "text",
98
+ text: `도구 "${name}"의 서버 "${route.serverName}"이(가) 연결되지 않았습니다.`,
99
+ },
100
+ ],
101
+ };
102
+ }
103
+ return service.callTool(name, args);
104
+ }
105
+ async connectSingle(config, onStateChange) {
106
+ const service = this.services.get(config.name);
107
+ if (!service)
108
+ return;
109
+ const options = {
110
+ command: config.command,
111
+ args: config.args,
112
+ env: config.env,
113
+ cwd: config.cwd,
114
+ };
115
+ try {
116
+ await service.connect(options);
117
+ this.connectionStates.set(config.name, "connected");
118
+ onStateChange?.();
119
+ const tools = await service.listTools();
120
+ this.serverTools.set(config.name, tools);
121
+ this.registerTools(config.name, tools);
122
+ debugLogger.info(`[McpManager] "${config.name}" 연결 완료 — ${tools.length}개 도구: ${tools.map((t) => t.name).join(", ")}`);
123
+ onStateChange?.();
124
+ }
125
+ catch (err) {
126
+ const error = err instanceof Error ? err : new Error(String(err));
127
+ this.connectionStates.set(config.name, "error");
128
+ this.connectionErrors.set(config.name, error);
129
+ debugLogger.error(`[McpManager] "${config.name}" 연결 실패:`, error.message);
130
+ onStateChange?.();
131
+ throw error;
132
+ }
133
+ }
134
+ registerTools(serverName, tools) {
135
+ for (const tool of tools) {
136
+ if (this.toolRegistry.has(tool.name)) {
137
+ const existing = this.toolRegistry.get(tool.name);
138
+ debugLogger.warn(`[McpManager] 도구 이름 충돌: "${tool.name}" — ` +
139
+ `"${existing?.serverName}" (기존) vs "${serverName}" (무시됨)`);
140
+ continue;
141
+ }
142
+ this.toolRegistry.set(tool.name, { serverName, tool });
143
+ }
144
+ }
145
+ }
146
+ //# sourceMappingURL=McpManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"McpManager.js","sourceRoot":"","sources":["../../../src/cli/services/McpManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Theme } from "../theme.js";
7
+ const noColorColorsTheme = {
8
+ type: "ansi",
9
+ Background: "",
10
+ Foreground: "",
11
+ LightBlue: "",
12
+ AccentBlue: "",
13
+ AccentPurple: "",
14
+ AccentCyan: "",
15
+ AccentGreen: "",
16
+ AccentYellow: "",
17
+ AccentRed: "",
18
+ DiffAdded: "",
19
+ DiffRemoved: "",
20
+ Comment: "",
21
+ Gray: "",
22
+ DarkGray: "",
23
+ InputBackground: "",
24
+ MessageBackground: "",
25
+ FocusBackground: "",
26
+ };
27
+ const noColorSemanticColors = {
28
+ text: {
29
+ primary: "",
30
+ secondary: "",
31
+ link: "",
32
+ accent: "",
33
+ response: "",
34
+ },
35
+ background: {
36
+ primary: "",
37
+ message: "",
38
+ input: "",
39
+ focus: "",
40
+ diff: {
41
+ added: "",
42
+ removed: "",
43
+ },
44
+ },
45
+ border: {
46
+ default: "",
47
+ },
48
+ ui: {
49
+ comment: "",
50
+ symbol: "",
51
+ active: "",
52
+ dark: "",
53
+ focus: "",
54
+ gradient: [],
55
+ },
56
+ status: {
57
+ error: "",
58
+ success: "",
59
+ warning: "",
60
+ },
61
+ };
62
+ export const NoColorTheme = new Theme("NoColor", "dark", {
63
+ hljs: {
64
+ display: "block",
65
+ overflowX: "auto",
66
+ padding: "0.5em",
67
+ },
68
+ "hljs-keyword": {},
69
+ "hljs-literal": {},
70
+ "hljs-symbol": {},
71
+ "hljs-name": {},
72
+ "hljs-link": {
73
+ textDecoration: "underline",
74
+ },
75
+ "hljs-built_in": {},
76
+ "hljs-type": {},
77
+ "hljs-number": {},
78
+ "hljs-class": {},
79
+ "hljs-string": {},
80
+ "hljs-meta-string": {},
81
+ "hljs-regexp": {},
82
+ "hljs-template-tag": {},
83
+ "hljs-subst": {},
84
+ "hljs-function": {},
85
+ "hljs-title": {},
86
+ "hljs-params": {},
87
+ "hljs-formula": {},
88
+ "hljs-comment": {
89
+ fontStyle: "italic",
90
+ },
91
+ "hljs-quote": {
92
+ fontStyle: "italic",
93
+ },
94
+ "hljs-doctag": {},
95
+ "hljs-meta": {},
96
+ "hljs-meta-keyword": {},
97
+ "hljs-tag": {},
98
+ "hljs-variable": {},
99
+ "hljs-template-variable": {},
100
+ "hljs-attr": {},
101
+ "hljs-attribute": {},
102
+ "hljs-builtin-name": {},
103
+ "hljs-section": {},
104
+ "hljs-emphasis": {
105
+ fontStyle: "italic",
106
+ },
107
+ "hljs-strong": {
108
+ fontWeight: "bold",
109
+ },
110
+ "hljs-bullet": {},
111
+ "hljs-selector-tag": {},
112
+ "hljs-selector-id": {},
113
+ "hljs-selector-class": {},
114
+ "hljs-selector-attr": {},
115
+ "hljs-selector-pseudo": {},
116
+ "hljs-addition": {
117
+ display: "inline-block",
118
+ width: "100%",
119
+ },
120
+ "hljs-deletion": {
121
+ display: "inline-block",
122
+ width: "100%",
123
+ },
124
+ }, noColorColorsTheme, noColorSemanticColors);
125
+ //# sourceMappingURL=no-color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-color.js","sourceRoot":"","sources":["../../../../src/cli/theme/builtin/no-color.ts"],"names":[],"mappings":"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"}