@sunub/obsidian-mcp-server 0.3.23 → 0.3.24

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 (135) hide show
  1. package/build/cli/App.d.ts +4 -1
  2. package/build/cli/App.js +158 -104
  3. package/build/cli/App.js.map +1 -1
  4. package/build/cli/AppContainer.js +8 -2
  5. package/build/cli/AppContainer.js.map +1 -1
  6. package/build/cli/config/mcpServersConfig.js +19 -2
  7. package/build/cli/config/mcpServersConfig.js.map +1 -1
  8. package/build/cli/context/InputContext.d.ts +1 -1
  9. package/build/cli/context/KeypressContext.js +0 -5
  10. package/build/cli/context/KeypressContext.js.map +1 -1
  11. package/build/cli/context/KeypressContext.util.js +1 -2
  12. package/build/cli/context/KeypressContext.util.js.map +1 -1
  13. package/build/cli/context/UIStateContext.d.ts +16 -0
  14. package/build/cli/context/UIStateContext.js +10 -0
  15. package/build/cli/context/UIStateContext.js.map +1 -0
  16. package/build/cli/hooks/useCommandCompletion.d.ts +1 -1
  17. package/build/cli/hooks/useCommandCompletion.js +1 -1
  18. package/build/cli/hooks/useCommandCompletion.js.map +1 -1
  19. package/build/cli/hooks/useHistoryManager.d.ts +1 -0
  20. package/build/cli/hooks/useHistoryManager.js +19 -1
  21. package/build/cli/hooks/useHistoryManager.js.map +1 -1
  22. package/build/cli/hooks/useInputHistory.d.ts +2 -2
  23. package/build/cli/hooks/useInputHistory.js +2 -2
  24. package/build/cli/hooks/useInputHistory.js.map +1 -1
  25. package/build/cli/hooks/useKeyMatchers.d.ts +0 -9
  26. package/build/cli/hooks/useKeyMatchers.js +0 -9
  27. package/build/cli/hooks/useKeyMatchers.js.map +1 -1
  28. package/build/cli/hooks/useKeypress.d.ts +0 -13
  29. package/build/cli/hooks/useKeypress.js +0 -13
  30. package/build/cli/hooks/useKeypress.js.map +1 -1
  31. package/build/cli/hooks/useLlmStream/useLlmStream.d.ts +1 -1
  32. package/build/cli/hooks/useLlmStream/useLlmStream.js +9 -3
  33. package/build/cli/hooks/useLlmStream/useLlmStream.js.map +1 -1
  34. package/build/cli/hooks/useMcpManager.d.ts +0 -10
  35. package/build/cli/hooks/useMcpManager.js +6 -0
  36. package/build/cli/hooks/useMcpManager.js.map +1 -1
  37. package/build/cli/hooks/usePromptCompletion.d.ts +1 -2
  38. package/build/cli/hooks/usePromptCompletion.js +0 -1
  39. package/build/cli/hooks/usePromptCompletion.js.map +1 -1
  40. package/build/cli/hooks/useTransientMessage.d.ts +7 -0
  41. package/build/cli/hooks/useTransientMessage.js +34 -0
  42. package/build/cli/hooks/useTransientMessage.js.map +1 -0
  43. package/build/cli/index.js +7 -3
  44. package/build/cli/index.js.map +1 -1
  45. package/build/cli/key/keyBindings.d.ts +0 -19
  46. package/build/cli/key/keyBindings.js +0 -14
  47. package/build/cli/key/keyBindings.js.map +1 -1
  48. package/build/cli/key/keyMatchers.d.ts +0 -9
  49. package/build/cli/key/keyMatchers.js +0 -8
  50. package/build/cli/key/keyMatchers.js.map +1 -1
  51. package/build/cli/key/keybindingUtils.d.ts +3 -0
  52. package/build/cli/key/keybindingUtils.js +74 -0
  53. package/build/cli/key/keybindingUtils.js.map +1 -0
  54. package/build/cli/key/textBuffer/constants.d.ts +1 -0
  55. package/build/cli/key/textBuffer/constants.js +2 -0
  56. package/build/cli/key/textBuffer/constants.js.map +1 -0
  57. package/build/cli/key/textBuffer/index.d.ts +3 -0
  58. package/build/cli/key/textBuffer/index.js +3 -0
  59. package/build/cli/key/textBuffer/index.js.map +1 -0
  60. package/build/cli/key/textBuffer/textBuffer.d.ts +73 -0
  61. package/build/cli/key/textBuffer/textBuffer.js +1154 -0
  62. package/build/cli/key/textBuffer/textBuffer.js.map +1 -0
  63. package/build/cli/key/textBuffer/types.d.ts +106 -0
  64. package/build/cli/key/textBuffer/types.js +2 -0
  65. package/build/cli/key/textBuffer/types.js.map +1 -0
  66. package/build/cli/services/InputOffloadService.d.ts +20 -0
  67. package/build/cli/services/InputOffloadService.js +105 -0
  68. package/build/cli/services/InputOffloadService.js.map +1 -0
  69. package/build/cli/services/McpClientService.js +5 -3
  70. package/build/cli/services/McpClientService.js.map +1 -1
  71. package/build/cli/services/McpManager.js +4 -2
  72. package/build/cli/services/McpManager.js.map +1 -1
  73. package/build/cli/theme/builtin/tokyonight-dark.js +1 -0
  74. package/build/cli/theme/builtin/tokyonight-dark.js.map +1 -1
  75. package/build/cli/theme/semantic-tokens.js +8 -8
  76. package/build/cli/theme/semantic-tokens.js.map +1 -1
  77. package/build/cli/theme/theme-manager.js +4 -2
  78. package/build/cli/theme/theme-manager.js.map +1 -1
  79. package/build/cli/theme/theme.d.ts +1 -23
  80. package/build/cli/theme/theme.js +11 -31
  81. package/build/cli/theme/theme.js.map +1 -1
  82. package/build/cli/types.d.ts +1 -2
  83. package/build/cli/ui/CLILogo.d.ts +1 -0
  84. package/build/cli/ui/CLILogo.js +33 -0
  85. package/build/cli/ui/CLILogo.js.map +1 -0
  86. package/build/cli/ui/HistoryItemDisplay.js +36 -1
  87. package/build/cli/ui/HistoryItemDisplay.js.map +1 -1
  88. package/build/cli/ui/InputPrompt.d.ts +8 -1
  89. package/build/cli/ui/InputPrompt.js +142 -24
  90. package/build/cli/ui/InputPrompt.js.map +1 -1
  91. package/build/cli/ui/LLMHealthChecker.js +1 -1
  92. package/build/cli/ui/LLMStatusLoader.d.ts +10 -0
  93. package/build/cli/ui/LLMStatusLoader.js +35 -0
  94. package/build/cli/ui/LLMStatusLoader.js.map +1 -0
  95. package/build/cli/ui/MainContent.js +2 -7
  96. package/build/cli/ui/MainContent.js.map +1 -1
  97. package/build/cli/ui/SystemInfoSummaryBox.js +3 -2
  98. package/build/cli/ui/SystemInfoSummaryBox.js.map +1 -1
  99. package/build/cli/ui/ThinkingIndicator.d.ts +3 -2
  100. package/build/cli/ui/ThinkingIndicator.js +3 -3
  101. package/build/cli/ui/ThinkingIndicator.js.map +1 -1
  102. package/build/cli/ui/ToastDisplay.d.ts +2 -0
  103. package/build/cli/ui/ToastDisplay.js +19 -0
  104. package/build/cli/ui/ToastDisplay.js.map +1 -0
  105. package/build/cli/ui/shared/ExpandableText.d.ts +0 -3
  106. package/build/cli/ui/shared/ExpandableText.js +0 -3
  107. package/build/cli/ui/shared/ExpandableText.js.map +1 -1
  108. package/build/cli/utils/bootLogo.d.ts +8 -0
  109. package/build/cli/utils/bootLogo.js +68 -0
  110. package/build/cli/utils/bootLogo.js.map +1 -0
  111. package/build/cli/utils/events.d.ts +28 -0
  112. package/build/cli/utils/events.js +18 -0
  113. package/build/cli/utils/events.js.map +1 -0
  114. package/build/cli/utils/highlights.d.ts +8 -0
  115. package/build/cli/utils/highlights.js +117 -0
  116. package/build/cli/utils/highlights.js.map +1 -0
  117. package/build/cli/utils/textUtil.d.ts +5 -0
  118. package/build/cli/utils/textUtil.js +32 -0
  119. package/build/cli/utils/textUtil.js.map +1 -1
  120. package/build/shared/utils/debugLogger.d.ts +4 -0
  121. package/build/shared/utils/debugLogger.js +12 -0
  122. package/build/shared/utils/debugLogger.js.map +1 -1
  123. package/build/utils/cleanup.d.ts +30 -0
  124. package/build/utils/cleanup.js +137 -0
  125. package/build/utils/cleanup.js.map +1 -0
  126. package/package.json +4 -2
  127. package/build/cli/key/text-buffer.d.ts +0 -156
  128. package/build/cli/key/text-buffer.js +0 -937
  129. package/build/cli/key/text-buffer.js.map +0 -1
  130. package/build/cli/tmp.d.ts +0 -1
  131. package/build/cli/tmp.js +0 -27
  132. package/build/cli/tmp.js.map +0 -1
  133. package/build/cli/ui/layout/DefaultAppLayout.d.ts +0 -2
  134. package/build/cli/ui/layout/DefaultAppLayout.js +0 -6
  135. package/build/cli/ui/layout/DefaultAppLayout.js.map +0 -1
@@ -1 +1,4 @@
1
- export declare const App: () => import("react/jsx-runtime").JSX.Element;
1
+ import type { UseMcpManagerReturn } from "./hooks/useMcpManager.js";
2
+ export declare const App: ({ mcp }: {
3
+ mcp: UseMcpManagerReturn;
4
+ }) => import("react/jsx-runtime").JSX.Element;
package/build/cli/App.js CHANGED
@@ -1,47 +1,41 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { InputContext } from "./context/InputContext.js";
3
+ import { UIStateContext } from "./context/UIStateContext.js";
3
4
  import { useDispatcher } from "./hooks/useDispatcher.js";
4
5
  import { useHistoryManager } from "./hooks/useHistoryManager.js";
5
6
  import { useInputHistoryStore } from "./hooks/useInputHistory.js";
6
7
  import { useKeyMatchers } from "./hooks/useKeyMatchers.js";
7
8
  import { useKeypress } from "./hooks/useKeypress.js";
8
9
  import { useLlmStream } from "./hooks/useLlmStream/index.js";
9
- import { useMcpManager } from "./hooks/useMcpManager.js";
10
10
  import { useRagContext } from "./hooks/useRagContext.js";
11
11
  import { useTerminalSize } from "./hooks/useTerminalSize.js";
12
+ import { useTransientMessage } from "./hooks/useTransientMessage.js";
12
13
  import { Command } from "./key/keyMatchers.js";
13
- import { useTextBuffer } from "./key/text-buffer.js";
14
- import { theme } from "./theme/semantic-colors.js";
15
- import { calculatePromptWidths, InputPrompt } from "./ui/InputPrompt.js";
14
+ import { useTextBuffer } from "./key/textBuffer/index.js";
15
+ import { InputOffloadService } from "./services/InputOffloadService.js";
16
+ import { calculatePromptWidths, InputPrompt, } from "./ui/InputPrompt.js";
16
17
  import { MainContent } from "./ui/MainContent.js";
17
18
  import { MCPServers } from "./ui/MCPServers.js";
18
19
  import { SystemInfoSummaryBox } from "./ui/SystemInfoSummaryBox.js";
20
+ import { AppEvent, appEvents, } from "./utils/events.js";
19
21
  import { historyStorage } from "./utils/historyStorage.js";
20
- import { Box, Text } from "ink";
22
+ import { Box } from "ink";
21
23
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
22
24
  import { debugLogger } from "../shared/index.js";
25
+ import { cleanupManager } from "../utils/cleanup.js";
26
+ import { ThinkingIndicator } from "./ui/ThinkingIndicator.js";
23
27
  import { disableMouseEvents } from "./utils/terminal.js";
24
- export const App = () => {
28
+ export const App = ({ mcp }) => {
25
29
  const [shellModeActive] = useState(false);
26
30
  const [copyModeEnabled, setCopyModeEnabled] = useState(false);
27
31
  const [showEscapePrompt] = useState(false);
28
32
  const lastCtrlCPress = useRef(0);
33
+ const isSubmittingRef = useRef(false);
29
34
  const keyMatchers = useKeyMatchers();
30
35
  const { columns: terminalWidth, rows: terminalHeight } = useTerminalSize();
31
36
  useEffect(() => {
32
37
  disableMouseEvents();
33
38
  }, []);
34
- //
35
- // useEffect(() => {
36
- // if (copyModeEnabled) {
37
- // process.stdout.write("\x1b[?1000l\x1b[?1003l\x1b[?1015l\x1b[?1006l");
38
- // } else {
39
- // process.stdout.write("\x1b[?1000h\x1b[?1003h\x1b[?1015h\x1b[?1006h");
40
- // }
41
- // return () => {
42
- // process.stdout.write("\x1b[?1000l\x1b[?1003l\x1b[?1015l\x1b[?1006l");
43
- // };
44
- // }, [copyModeEnabled]);
45
39
  const mainAreaWidth = terminalWidth;
46
40
  const { inputWidth, suggestionsWidth } = useMemo(() => {
47
41
  const { inputWidth, suggestionsWidth } = calculatePromptWidths(mainAreaWidth);
@@ -49,7 +43,7 @@ export const App = () => {
49
43
  }, [mainAreaWidth]);
50
44
  const availableTerminalHeight = Math.max(0, terminalHeight - 2);
51
45
  const { inputHistory, addInput, initializeFromLogger } = useInputHistoryStore();
52
- const { isConnected: mcpConnected, connections: mcpConnections, tools: mcpTools, toolsByServer: mcpToolsByServer, callTool, errors: mcpErrors, serverCount: mcpServerCount, connectedCount: mcpConnectedCount, isAnyConnecting, hasAnyError, } = useMcpManager();
46
+ const { isConnected: mcpConnected, connections: mcpConnections, tools: mcpTools, toolsByServer: mcpToolsByServer, callTool, errors: mcpErrors, serverCount: mcpServerCount, connectedCount: mcpConnectedCount, isAnyConnecting, hasAnyError, } = mcp;
53
47
  const { handleDispatch } = useDispatcher(mcpTools);
54
48
  const [isCommandProcessing, setIsCommandProcessing] = useState(false);
55
49
  const { fetchContext, isFetching: isRagFetching } = useRagContext(callTool, mcpConnected);
@@ -75,7 +69,18 @@ export const App = () => {
75
69
  inputWidth,
76
70
  suggestionsWidth,
77
71
  ]);
78
- const { pendingItem, streamingState, isLoading, error, sendMessage, reset, clearStreamingHistory, } = useLlmStream(callTool, mcpTools);
72
+ const { pendingItem, streamingState, isLoading, error, sendMessage, abortCurrentStream, clearStreamingHistory, } = useLlmStream(callTool, mcpTools);
73
+ const { transientMessage, showTransientMessage } = useTransientMessage();
74
+ const isBusy = isRagFetching ||
75
+ isCommandProcessing ||
76
+ streamingState === "thinking" ||
77
+ streamingState === "executing";
78
+ useEffect(() => {
79
+ cleanupManager.registerSoftAbort(abortCurrentStream);
80
+ cleanupManager.register("offload-files", () => {
81
+ InputOffloadService.cleanupAll();
82
+ });
83
+ }, [abortCurrentStream]);
79
84
  const historyManager = useHistoryManager();
80
85
  const addInfoMessage = useCallback((content) => {
81
86
  const id = historyManager.addItem({
@@ -110,17 +115,28 @@ export const App = () => {
110
115
  content: pendingItem.content,
111
116
  timestamp: Date.now(),
112
117
  });
113
- reset();
118
+ abortCurrentStream();
119
+ // Prune history to prevent OOM
120
+ historyManager.pruneAndCompressHistory(20);
114
121
  }
115
- }, [pendingItem, reset, historyManager]);
122
+ }, [pendingItem, abortCurrentStream, historyManager]);
116
123
  // 에러 로깅
117
124
  useEffect(() => {
118
125
  if (error) {
119
126
  debugLogger.error("[AppContainer] LLM stream error:", error.message);
120
127
  }
121
128
  }, [error]);
129
+ useEffect(() => {
130
+ const handleTransientMessage = (payload) => {
131
+ showTransientMessage({ text: payload.message, type: payload.type });
132
+ };
133
+ appEvents.on(AppEvent.TransientMessage, handleTransientMessage);
134
+ return () => {
135
+ appEvents.off(AppEvent.TransientMessage, handleTransientMessage);
136
+ };
137
+ }, [showTransientMessage]);
122
138
  const handleGlobalKeypress = useCallback((key) => {
123
- // 1. Ctrl+C Handling (3-Stage)
139
+ // 1. Ctrl+C Handling (Consistent with CleanupManager)
124
140
  if (keyMatchers[Command.QUIT](key) ||
125
141
  keyMatchers[Command.CLEAR_INPUT](key)) {
126
142
  // Stage 1: Clear Input
@@ -129,9 +145,9 @@ export const App = () => {
129
145
  lastCtrlCPress.current = 0;
130
146
  return true;
131
147
  }
132
- // Stage 2: Cancel Ongoing Request
148
+ // Stage 2: Soft Abort
133
149
  if (isLoading || isCommandProcessing) {
134
- reset();
150
+ abortCurrentStream();
135
151
  setIsCommandProcessing(false);
136
152
  lastCtrlCPress.current = 0;
137
153
  addInfoMessage("요청이 취소되었습니다.");
@@ -139,12 +155,13 @@ export const App = () => {
139
155
  }
140
156
  // Stage 3: Quit Program
141
157
  const now = Date.now();
142
- if (now - lastCtrlCPress.current < 2000) {
143
- process.exit(0);
158
+ if (now - lastCtrlCPress.current < 1000) {
159
+ cleanupManager.gracefulShutdown("user-quit (double-tap)");
144
160
  }
145
161
  else {
146
162
  lastCtrlCPress.current = now;
147
- addInfoMessage("Press Ctrl+C again to exit.");
163
+ addInfoMessage(" 누르면 종료됩니다.");
164
+ abortCurrentStream();
148
165
  }
149
166
  return true;
150
167
  }
@@ -161,94 +178,115 @@ export const App = () => {
161
178
  buffer,
162
179
  isLoading,
163
180
  isCommandProcessing,
164
- reset,
165
181
  copyModeEnabled,
166
182
  keyMatchers,
167
183
  addInfoMessage,
184
+ abortCurrentStream,
168
185
  ]);
169
186
  useKeypress(handleGlobalKeypress, { isActive: true, priority: true });
170
- const handleFinalSubmit = useCallback(async (value) => {
171
- if (!value.trim() || isLoading)
187
+ const handleFinalSubmit = useCallback(async (value, submissionContext) => {
188
+ if (!value.trim() || isLoading || isSubmittingRef.current) {
172
189
  return;
173
- // Add to UI state session & past session recalculator
174
- addInput(value);
175
- // Save to physical file via storage utility
176
- void historyStorage.appendMessage(value);
177
- if (value.startsWith("/")) {
178
- // 슬래시 커맨드 → Dispatcher → MCP 도구 호출
179
- buffer.setText("");
180
- setIsCommandProcessing(true);
181
- try {
182
- const result = await handleDispatch(value, callTool);
183
- // 로컬 액션 처리
184
- if (result.content === "__CLEAR_HISTORY__") {
185
- historyManager.clearItems();
186
- clearStreamingHistory();
187
- addInfoMessage("대화 히스토리가 초기화되었습니다.");
188
- return;
189
- }
190
- if (result.content === "__LIST_TOOLS__") {
191
- addInfoMessage(genMcpToolsText());
192
- return;
193
- }
194
- if (result.type === "llm_required") {
195
- historyManager.addItem({
196
- type: "user",
197
- content: result.userIntent ?? value,
198
- timestamp: Date.now(),
199
- });
200
- void sendMessage(result.userIntent ?? value, result.content);
201
- }
202
- else {
203
- // result.type is "tool_result" | "local_action" | "unknown_command"
204
- if (result.type === "info" ||
205
- result.type === "unknown_command") {
206
- addInfoMessage(result.content);
190
+ }
191
+ isSubmittingRef.current = true;
192
+ try {
193
+ const submittedPastedContent = submissionContext?.pastedContent ?? buffer.pastedContent;
194
+ // Pre-process for offloading (Core Interceptor logic)
195
+ const tempHistoryId = Date.now();
196
+ const optimizedPrompt = await InputOffloadService.processPastedContent(value, submittedPastedContent, tempHistoryId);
197
+ // Add to UI state session & past session recalculator
198
+ addInput(value);
199
+ // Save to physical file via storage utility
200
+ void historyStorage.appendMessage(value);
201
+ if (value.startsWith("/")) {
202
+ // 슬래시 커맨드 → Dispatcher → MCP 도구 호출
203
+ buffer.setText("");
204
+ setIsCommandProcessing(true);
205
+ try {
206
+ const result = await handleDispatch(value, callTool);
207
+ // 로컬 액션 처리
208
+ if (result.content === "__CLEAR_HISTORY__") {
209
+ historyManager.clearItems();
210
+ clearStreamingHistory();
211
+ InputOffloadService.cleanupAll(); // Clear all offloaded files
212
+ addInfoMessage("대화 히스토리가 초기화되었습니다.");
213
+ return;
207
214
  }
208
- else {
209
- const historyType = result.type === "tool_result" ? "assistant" : "info";
215
+ if (result.content === "__LIST_TOOLS__") {
216
+ addInfoMessage(genMcpToolsText());
217
+ return;
218
+ }
219
+ if (result.type === "llm_required") {
210
220
  historyManager.addItem({
211
- type: historyType,
212
- content: result.content,
213
- timestamp: Date.now(),
221
+ type: "user",
222
+ content: result.userIntent ?? value,
223
+ timestamp: tempHistoryId,
214
224
  });
225
+ void sendMessage(result.userIntent ?? value, result.content);
226
+ }
227
+ else {
228
+ // result.type is "tool_result" | "local_action" | "unknown_command"
229
+ if (result.type === "info" ||
230
+ result.type === "unknown_command") {
231
+ addInfoMessage(result.content);
232
+ }
233
+ else {
234
+ const historyType = result.type === "tool_result" ? "assistant" : "info";
235
+ historyManager.addItem({
236
+ type: historyType,
237
+ content: result.content,
238
+ timestamp: tempHistoryId,
239
+ });
240
+ }
215
241
  }
216
242
  }
243
+ finally {
244
+ setIsCommandProcessing(false);
245
+ }
217
246
  }
218
- finally {
219
- setIsCommandProcessing(false);
220
- }
221
- }
222
- else {
223
- historyManager.addItem({
224
- type: "user",
225
- content: value,
226
- timestamp: Date.now(),
227
- });
228
- buffer.setText("");
229
- // 1. 도구 트리거 감지 (도구 이름이나 서버 이름이 포함된 경우)
230
- const triggeredTools = [];
231
- const lowerValue = value.toLowerCase();
232
- for (const [serverName, serverTools] of mcpToolsByServer.entries()) {
233
- // 서버 이름이 언급된 경우 해당 서버의 모든 도구 활성화
234
- if (lowerValue.includes(serverName.toLowerCase())) {
235
- triggeredTools.push(...serverTools);
236
- continue;
247
+ else {
248
+ historyManager.addItem({
249
+ type: "user",
250
+ content: value,
251
+ timestamp: tempHistoryId,
252
+ });
253
+ buffer.setText("");
254
+ // Prune check for GC
255
+ const maxTurns = 20;
256
+ if (historyManager.history.length >= maxTurns) {
257
+ historyManager.pruneAndCompressHistory(maxTurns);
258
+ const currentIds = historyManager.history.map((h) => h.id);
259
+ InputOffloadService.prune(currentIds);
237
260
  }
238
- // 특정 도구 이름이 언급된 경우 해당 도구만 활성화
239
- for (const tool of serverTools) {
240
- if (lowerValue.includes(tool.name.toLowerCase())) {
241
- triggeredTools.push(tool);
261
+ // 1. 도구 트리거 감지 (도구 이름이나 서버 이름이 포함된 경우)
262
+ const triggeredTools = [];
263
+ const lowerValue = value.toLowerCase();
264
+ for (const [serverName, serverTools] of mcpToolsByServer.entries()) {
265
+ // 서버 이름이 언급된 경우 해당 서버의 모든 도구 활성화
266
+ if (lowerValue.includes(serverName.toLowerCase())) {
267
+ triggeredTools.push(...serverTools);
268
+ continue;
269
+ }
270
+ // 특정 도구 이름이 언급된 경우 해당 도구만 활성화
271
+ for (const tool of serverTools) {
272
+ if (lowerValue.includes(tool.name.toLowerCase())) {
273
+ triggeredTools.push(tool);
274
+ }
242
275
  }
243
276
  }
277
+ // 중복 제거
278
+ const uniqueTriggered = Array.from(new Set(triggeredTools));
279
+ // 2. Vault 도구가 트리거된 경우에만 RAG 컨텍스트 수집
280
+ const isVaultTriggered = uniqueTriggered.some((t) => t.name === "vault");
281
+ const ragContext = isVaultTriggered
282
+ ? await fetchContext(value)
283
+ : null;
284
+ // 3. 트리거된 도구만 LLM에 전달
285
+ void sendMessage(optimizedPrompt, ragContext, uniqueTriggered);
244
286
  }
245
- // 중복 제거
246
- const uniqueTriggered = Array.from(new Set(triggeredTools));
247
- // 2. Vault 도구가 트리거된 경우에만 RAG 컨텍스트 수집
248
- const isVaultTriggered = uniqueTriggered.some((t) => t.name === "vault");
249
- const ragContext = isVaultTriggered ? await fetchContext(value) : null;
250
- // 3. 트리거된 도구만 LLM에 전달
251
- void sendMessage(value, ragContext, uniqueTriggered);
287
+ }
288
+ finally {
289
+ isSubmittingRef.current = false;
252
290
  }
253
291
  }, [
254
292
  addInput,
@@ -264,10 +302,26 @@ export const App = () => {
264
302
  isLoading,
265
303
  addInfoMessage,
266
304
  ]);
267
- return (_jsxs(InputContext.Provider, { value: inputState, children: [_jsxs(Box, { flexDirection: "column", width: "100%", children: [_jsx(MainContent, { history: historyManager.history, pendingItem: pendingItem, streamingState: streamingState, isRagFetching: isRagFetching, isCommandProcessing: isCommandProcessing, width: mainAreaWidth }), error && (_jsx(Box, { paddingX: 1, marginBottom: 1, children: _jsxs(Text, { color: "red", bold: true, children: ["\u2716 ", error.message] }) }))] }), _jsxs(Box, { paddingX: 1, marginTop: 1, flexDirection: "column", gap: 0, width: "100%", borderTop: true, borderBottom: false, borderLeft: false, borderRight: false, borderTopColor: theme.border.default, borderStyle: "bold", children: [_jsx(SystemInfoSummaryBox, { children: _jsx(MCPServers, { isConnected: mcpConnected, connections: mcpConnections, serverCount: mcpServerCount, connectedCount: mcpConnectedCount, errors: mcpErrors }) }), _jsx(InputPrompt, { onSubmit: handleFinalSubmit, focus: streamingState === "idle" && mcpConnected, placeholder: isAnyConnecting
268
- ? ` MCP 서버 연결 중... (${mcpConnectedCount}/${mcpServerCount})`
269
- : hasAnyError && !mcpConnected
270
- ? " MCP 연결에 실패했습니다"
271
- : " Type your message..." })] })] }));
305
+ const isInputActive = streamingState === "idle" && mcpConnected;
306
+ const uiState = useMemo(() => ({
307
+ history: historyManager.history,
308
+ streamingState,
309
+ terminalWidth,
310
+ terminalHeight,
311
+ isInputActive,
312
+ transientMessage,
313
+ }), [
314
+ historyManager.history,
315
+ streamingState,
316
+ terminalWidth,
317
+ terminalHeight,
318
+ isInputActive,
319
+ transientMessage,
320
+ ]);
321
+ return (_jsx(UIStateContext.Provider, { value: uiState, children: _jsxs(InputContext.Provider, { value: inputState, children: [_jsx(MainContent, { history: historyManager.history, pendingItem: pendingItem, streamingState: streamingState, isRagFetching: isRagFetching, isCommandProcessing: isCommandProcessing, width: mainAreaWidth }), _jsxs(Box, { paddingX: 1, marginTop: 1, flexDirection: "column", gap: 0, width: "100%", children: [_jsxs(SystemInfoSummaryBox, { children: [_jsx(ThinkingIndicator, { isBusy: isBusy }), _jsx(MCPServers, { isConnected: mcpConnected, connections: mcpConnections, serverCount: mcpServerCount, connectedCount: mcpConnectedCount, errors: mcpErrors })] }), _jsx(InputPrompt, { onSubmit: handleFinalSubmit, focus: isInputActive, placeholder: isAnyConnecting
322
+ ? ` MCP 서버 연결 중... (${mcpConnectedCount}/${mcpServerCount})`
323
+ : hasAnyError && !mcpConnected
324
+ ? " MCP 연결에 실패했습니다"
325
+ : " Type your message..." })] })] }) }));
272
326
  };
273
327
  //# sourceMappingURL=App.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/cli/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/cli/App.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { App } from "./App.js";
3
2
  import { KeypressProvider } from "./context/KeypressContext.js";
4
3
  import { LLMErrorComponent } from "./ui/LLMErrorComponent.js";
5
4
  import { LLMHealthChecker } from "./ui/LLMHealthChecker.js";
6
5
  import { useState } from "react";
6
+ import { App } from "./App.js";
7
+ import { useMcpManager } from "./hooks/useMcpManager.js";
8
+ import { LLMStatusLoader } from "./ui/LLMStatusLoader.js";
7
9
  export const AppContainer = () => {
8
10
  const [llmStatus, setLLMStatus] = useState("checking");
9
11
  const [errorMessage, setErrorMessage] = useState("");
12
+ const mcp = useMcpManager();
10
13
  const llmApi_URL = (process.env["LLM_API_URL"] || "http://127.0.0.1:8080").replace(/\/$/, "");
11
14
  if (llmStatus === "checking") {
12
15
  return (_jsx(LLMHealthChecker, { llmApi_URL: llmApi_URL, setLLMStatus: setLLMStatus, setErrorMessage: setErrorMessage }));
@@ -14,6 +17,9 @@ export const AppContainer = () => {
14
17
  if (llmStatus === "error") {
15
18
  return (_jsx(LLMErrorComponent, { apiUrl: llmApi_URL, errorMessage: errorMessage }));
16
19
  }
17
- return (_jsx(KeypressProvider, { children: _jsx(App, {}) }));
20
+ if (llmStatus === "loading") {
21
+ return (_jsx(LLMStatusLoader, { setErrorMessage: setErrorMessage, setLLMStatus: setLLMStatus, mcp: mcp }));
22
+ }
23
+ return (_jsx(KeypressProvider, { children: _jsx(App, { mcp: mcp }) }));
18
24
  };
19
25
  //# sourceMappingURL=AppContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppContainer.js","sourceRoot":"","sources":["../../src/cli/AppContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAChC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAkB,UAAU,CAAC,CAAC;IACxE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,CAClB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,uBAAuB,CACrD,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAErB,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,CACN,KAAC,gBAAgB,IAChB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,GAC/B,CACF,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,CACN,KAAC,iBAAiB,IAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,GAAI,CACrE,CAAC;IACH,CAAC;IAED,OAAO,CACN,KAAC,gBAAgB,cAChB,KAAC,GAAG,KAAG,GACW,CACnB,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"AppContainer.js","sourceRoot":"","sources":["../../src/cli/AppContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAChC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAkB,UAAU,CAAC,CAAC;IACxE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAE5B,MAAM,UAAU,GAAG,CAClB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,uBAAuB,CACrD,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAErB,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,CACN,KAAC,gBAAgB,IAChB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,GAC/B,CACF,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,CACN,KAAC,iBAAiB,IAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,GAAI,CACrE,CAAC;IACH,CAAC;IAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CACN,KAAC,eAAe,IACf,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,GAAG,GACP,CACF,CAAC;IACH,CAAC;IAED,OAAO,CACN,KAAC,gBAAgB,cAChB,KAAC,GAAG,IAAC,GAAG,EAAE,GAAG,GAAI,GACC,CACnB,CAAC;AACH,CAAC,CAAC"}
@@ -3,6 +3,7 @@ import path, { join, resolve } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { z } from "zod";
5
5
  import { configSchema, debugLogger } from "../../shared/index.js";
6
+ import { AppEvent, appEvents, TransientMessageType } from "../utils/events.js";
6
7
  const mcpServerEntrySchema = z.object({
7
8
  command: z.string().min(1),
8
9
  args: z.array(z.string()).optional().default([]),
@@ -34,18 +35,21 @@ function substituteEnvInRecord(record) {
34
35
  return result;
35
36
  }
36
37
  function findConfigFile() {
38
+ appEvents.emit(AppEvent.OpenDebugConsole, "Searching for MCP server configuration...");
37
39
  const candidates = [
38
40
  join(process.cwd(), "mcp-servers.json"),
39
41
  join(process.cwd(), ".mcp-servers.json"),
40
42
  ];
41
43
  for (const candidate of candidates) {
42
44
  if (existsSync(candidate)) {
45
+ appEvents.emit(AppEvent.OpenDebugConsole, `Found config at: ${candidate}`);
43
46
  return candidate;
44
47
  }
45
48
  }
46
49
  return null;
47
50
  }
48
51
  function buildFallbackConfig() {
52
+ appEvents.emit(AppEvent.OpenDebugConsole, "Building fallback configuration from environment...");
49
53
  const parseResult = configSchema.safeParse({
50
54
  vaultPath: process.env["VAULT_DIR_PATH"],
51
55
  loggingLevel: process.env["LOGGING_LEVEL"],
@@ -55,7 +59,9 @@ function buildFallbackConfig() {
55
59
  const env = parseResult.success ? parseResult.data : null;
56
60
  const vaultPath = env?.vaultPath || process.env["VAULT_DIR_PATH"];
57
61
  if (!vaultPath) {
58
- debugLogger.warn("[McpConfig] VAULT_DIR_PATH가 설정되지 않아 폴백 서버를 생성할 수 없습니다.");
62
+ const msg = "[McpConfig] VAULT_DIR_PATH가 설정되지 않아 폴백 서버를 생성할 수 없습니다.";
63
+ appEvents.emit(AppEvent.OpenDebugConsole, msg);
64
+ debugLogger.warn(msg);
59
65
  return [];
60
66
  }
61
67
  try {
@@ -63,6 +69,7 @@ function buildFallbackConfig() {
63
69
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
64
70
  const serverEntry = path.resolve(__dirname, "../../../server/dist/index.js");
65
71
  const projectRoot = path.resolve(__dirname, "../../../../");
72
+ appEvents.emit(AppEvent.OpenDebugConsole, `Fallback server path: ${serverEntry}`);
66
73
  return [
67
74
  {
68
75
  name: "obsidian",
@@ -79,6 +86,7 @@ function buildFallbackConfig() {
79
86
  ];
80
87
  }
81
88
  catch (err) {
89
+ appEvents.emit(AppEvent.OpenDebugConsole, `Fallback config failed: ${err}`);
82
90
  debugLogger.error("[McpConfig] 폴백 설정 생성 실패:", err);
83
91
  return [];
84
92
  }
@@ -86,16 +94,23 @@ function buildFallbackConfig() {
86
94
  export function loadMcpServersConfig() {
87
95
  const configPath = findConfigFile();
88
96
  if (!configPath) {
97
+ appEvents.emit(AppEvent.OpenDebugConsole, "No config file found. Using environment fallback.");
98
+ appEvents.emit(AppEvent.TransientMessage, {
99
+ message: "[McpConfig] mcp-servers.json을 찾을 수 없습니다. 환경변수 폴백을 사용합니다.",
100
+ type: TransientMessageType.Hint,
101
+ });
89
102
  debugLogger.warn("[McpConfig] mcp-servers.json을 찾을 수 없습니다. 환경변수 폴백을 사용합니다.");
90
103
  return buildFallbackConfig();
91
104
  }
92
105
  try {
106
+ appEvents.emit(AppEvent.OpenDebugConsole, `Loading config from ${configPath}...`);
93
107
  const raw = readFileSync(configPath, "utf-8");
94
108
  const parsed = JSON.parse(raw);
95
109
  const validated = mcpServersFileSchema.parse(parsed);
96
110
  const configs = [];
97
111
  for (const [name, entry] of Object.entries(validated.mcpServers)) {
98
112
  if (entry.disabled) {
113
+ appEvents.emit(AppEvent.OpenDebugConsole, `Server "${name}" is disabled, skipping.`);
99
114
  debugLogger.info(`[McpConfig] "${name}" 서버가 비활성화되어 있어 건너뜁니다.`);
100
115
  continue;
101
116
  }
@@ -107,10 +122,12 @@ export function loadMcpServersConfig() {
107
122
  cwd: entry.cwd ? resolve(entry.cwd) : process.cwd(),
108
123
  });
109
124
  }
110
- debugLogger.info(`[McpConfig] ${configPath}에서 ${configs.length}개의 MCP 서버 설정을 로드했습니다.`);
125
+ appEvents.emit(AppEvent.OpenDebugConsole, `Loaded ${configs.length} MCP server configurations.`);
126
+ debugLogger.writeInfo(`[McpConfig] ${configPath}에서 ${configs.length}개의 MCP 서버 설정을 로드했습니다.`);
111
127
  return configs;
112
128
  }
113
129
  catch (err) {
130
+ appEvents.emit(AppEvent.OpenDebugConsole, `Config parsing failed: ${err}`);
114
131
  debugLogger.error(`[McpConfig] 설정 파일 파싱 실패 (${configPath}):`, err);
115
132
  debugLogger.warn("[McpConfig] 환경변수 폴백을 사용합니다.");
116
133
  return buildFallbackConfig();
@@ -1 +1 @@
1
- {"version":3,"file":"mcpServersConfig.js","sourceRoot":"","sources":["../../../src/cli/config/mcpServersConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpServersConfig.js","sourceRoot":"","sources":["../../../src/cli/config/mcpServersConfig.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { TextBuffer } from "../key/text-buffer.js";
1
+ import type { TextBuffer } from "../key/textBuffer/index.js";
2
2
  export interface InputState {
3
3
  buffer: TextBuffer;
4
4
  userMessages: string[];
@@ -55,11 +55,6 @@ function bufferBackslashEnter(keypressHandler) {
55
55
  return undefined;
56
56
  };
57
57
  }
58
- /**
59
- * Buffers paste events between paste-start and paste-end sequences.
60
- * Will flush the buffer if no data is received for PASTE_TIMEOUT ms or
61
- * when a null key is received.
62
- */
63
58
  function bufferPaste(keypressHandler) {
64
59
  const bufferer = (function* () {
65
60
  while (true) {