@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,27 @@
1
+ import state from "../../../../config.js";
2
+ import { ragIndexer } from "../../../../utils/RAGIndexer.js";
3
+ export const triggerIndexing = async () => {
4
+ const vaultPath = state.vaultPath;
5
+ if (!vaultPath) {
6
+ throw new Error("Vault path is not configured.");
7
+ }
8
+ try {
9
+ // 전체 색인은 시간이 걸릴 수 있으므로 비동기로 실행하고 일단 시작됨을 알립니다.
10
+ // 하지만 MCP 도구 응답 시간 제한이 있을 수 있으므로 상황에 따라 다르게 처리할 수 있습니다.
11
+ // 여기서는 일단 직접 실행하되 진행 상황을 알리는 방향으로 작성합니다.
12
+ await ragIndexer.indexAll(vaultPath);
13
+ return {
14
+ content: [
15
+ {
16
+ type: "text",
17
+ text: `Successfully indexed all documents in vault: ${vaultPath}`,
18
+ },
19
+ ],
20
+ };
21
+ }
22
+ catch (error) {
23
+ console.error("Full indexing failed:", error);
24
+ throw error;
25
+ }
26
+ };
27
+ //# sourceMappingURL=index_rag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index_rag.js","sourceRoot":"","sources":["../../../../../src/tools/vault/utils/actions/index_rag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,IAA6B,EAAE;IAClE,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAElC,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,CAAC;QACJ,+CAA+C;QAC/C,wDAAwD;QACxD,yCAAyC;QACzC,MAAM,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAErC,OAAO;YACN,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,gDAAgD,SAAS,EAAE;iBACjE;aACD;SACD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC,CAAC"}
@@ -40,3 +40,4 @@ export async function listAllDocuments(vaultManager, params) {
40
40
  ],
41
41
  };
42
42
  }
43
+ //# sourceMappingURL=list_all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_all.js","sourceRoot":"","sources":["../../../../../src/tools/vault/utils/actions/list_all.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,YAA0B,EAC1B,MAAkC;IAElC,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;IAChC,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;IAC1D,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAE9D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACpB,eAAe,EAAE,YAAY,CAAC,MAAM;wBACpC,SAAS,EAAE,YAAY,CAAC,GAAG,CAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,QAAQ,CACtD;qBACD,CAAC;iBACF;aACD;SACD,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CAC1C,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7B,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACvC,YAAY,EACZ,GAAG,CAAC,QAAQ,EACZ,GAAG,CACH,CAAC;YACF,OAAO,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CACF,CAAC;IAEF,OAAO;QACN,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CACnB;oBACC,cAAc,EAAE;wBACf,eAAe,EAAE,YAAY,CAAC,MAAM;wBACpC,OAAO,EAAE,WAAW,CAAC,MAAM;qBAC3B;oBACD,SAAS,EAAE,iBAAiB;iBAC5B,EACD,IAAI,EACJ,CAAC,CACD;aACD;SACD;KACD,CAAC;AACH,CAAC"}
@@ -36,29 +36,38 @@ function parseCanonicalJsonBlock(content) {
36
36
  }
37
37
  function buildLoadMemoryPayload(notePath, content, preview) {
38
38
  const canonical = parseCanonicalJsonBlock(content);
39
- const memoryPacketCandidate = canonical?.memory_packet;
39
+ const memoryPacketCandidate = canonical
40
+ ? canonical["memory_packet"]
41
+ : undefined;
40
42
  const parsedMemoryPacket = collectContextMemoryPacketSchema.safeParse(memoryPacketCandidate);
41
43
  const memoryPacket = parsedMemoryPacket.success
42
44
  ? parsedMemoryPacket.data
43
45
  : null;
44
- const scopeCandidate = collectContextScopeSchema.safeParse(canonical?.scope);
46
+ const scopeCandidate = collectContextScopeSchema.safeParse(canonical ? canonical["scope"] : undefined);
45
47
  const scope = scopeCandidate.success ? scopeCandidate.data : null;
46
- const topic = typeof canonical?.topic === "string"
47
- ? canonical.topic
48
- : canonical?.topic === null
48
+ const topic = typeof (canonical ? canonical["topic"] : undefined) === "string"
49
+ ? canonical?.["topic"]
50
+ : (canonical ? canonical["topic"] : undefined) === null
49
51
  ? null
50
52
  : null;
51
- const documentsCount = Array.isArray(canonical?.documents)
52
- ? canonical.documents.length
53
+ const documentsCount = canonical && Array.isArray(canonical["documents"])
54
+ ? canonical["documents"].length
53
55
  : 0;
54
- const schemaVersion = typeof canonical?.schema_version === "string"
55
- ? canonical.schema_version
56
+ const schemaVersionCandidate = canonical
57
+ ? canonical["schema_version"]
58
+ : undefined;
59
+ const schemaVersion = typeof schemaVersionCandidate === "string"
60
+ ? schemaVersionCandidate
56
61
  : extractMarkdownMetaValue(content, "schema_version");
57
- const generatedAt = typeof canonical?.generated_at === "string"
58
- ? canonical.generated_at
62
+ const generatedAtCandidate = canonical
63
+ ? canonical["generated_at"]
64
+ : undefined;
65
+ const generatedAt = typeof generatedAtCandidate === "string"
66
+ ? generatedAtCandidate
59
67
  : extractMarkdownMetaValue(content, "generated_at");
60
- const sourceHash = typeof canonical?.source_hash === "string"
61
- ? canonical.source_hash
68
+ const sourceHashCandidate = canonical ? canonical["source_hash"] : undefined;
69
+ const sourceHash = typeof sourceHashCandidate === "string"
70
+ ? sourceHashCandidate
62
71
  : extractMarkdownMetaValue(content, "source_hash");
63
72
  return {
64
73
  action: "load_memory",
@@ -174,3 +183,4 @@ export async function loadMemory(vaultManager, params) {
174
183
  ],
175
184
  };
176
185
  }
186
+ //# sourceMappingURL=load_memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load_memory.js","sourceRoot":"","sources":["../../../../../src/tools/vault/utils/actions/load_memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAGN,gCAAgC,EAChC,yBAAyB,GACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,iCAAiC,EACjC,sCAAsC,GACtC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,+BAA+B,EAC/B,8BAA8B,EAC9B,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,gBAAgB,GAChB,MAAM,cAAc,CAAC;AAiBtB,SAAS,uBAAuB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,SAAS,wBAAwB,CAChC,OAAe,EACf,GAAsD;IAEtD,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,UAAU,YAAY,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,uBAAuB,CAC/B,OAAe;IAEf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACxD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,MAAiC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,sBAAsB,CAC9B,QAAgB,EAChB,OAAe,EACf,OAAe;IAEf,MAAM,SAAS,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,qBAAqB,GAAG,SAAS;QACtC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC;QAC5B,CAAC,CAAC,SAAS,CAAC;IACb,MAAM,kBAAkB,GAAG,gCAAgC,CAAC,SAAS,CACpE,qBAAqB,CACrB,CAAC;IACF,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO;QAC9C,CAAC,CAAC,kBAAkB,CAAC,IAAI;QACzB,CAAC,CAAC,IAAI,CAAC;IACR,MAAM,cAAc,GAAG,yBAAyB,CAAC,SAAS,CACzD,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAC1C,CAAC;IACF,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,MAAM,KAAK,GACV,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ;QAC/D,CAAC,CAAE,SAAS,EAAE,CAAC,OAAO,CAAY;QAClC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI;YACtD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,CAAC;IACV,MAAM,cAAc,GACnB,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAE,SAAS,CAAC,WAAW,CAAe,CAAC,MAAM;QAC9C,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,sBAAsB,GAAG,SAAS;QACvC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAC;IACb,MAAM,aAAa,GAClB,OAAO,sBAAsB,KAAK,QAAQ;QACzC,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACxD,MAAM,oBAAoB,GAAG,SAAS;QACrC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC;QAC3B,CAAC,CAAC,SAAS,CAAC;IACb,MAAM,WAAW,GAChB,OAAO,oBAAoB,KAAK,QAAQ;QACvC,CAAC,CAAC,oBAAoB;QACtB,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACtD,MAAM,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,MAAM,UAAU,GACf,OAAO,mBAAmB,KAAK,QAAQ;QACtC,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,wBAAwB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAErD,OAAO;QACN,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,QAAQ;QACrB,kBAAkB,EAAE,SAAS,KAAK,IAAI;QACtC,cAAc,EAAE,aAAa;QAC7B,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,UAAU;QACvB,KAAK;QACL,KAAK;QACL,eAAe,EAAE,cAAc;QAC/B,aAAa,EAAE,YAAY;QAC3B,OAAO;KACP,CAAC;AACH,CAAC;AAED,SAAS,mCAAmC,CAC3C,OAA0B,EAC1B,cAAsB;IAEtB,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACxE,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnD,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,OACC,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc;QACrC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EACvC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QACpC,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,OACC,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc;QACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EACrC,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAClC,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,OACC,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc;QACrC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAC9C,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAC3C,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,YAA0B,EAC1B,MAAkC;IAElC,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,UAAU,GACf,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,iCAAiC,CAAC;IAEhE,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,UAAU,EAAE;QACjE,YAAY,EAAE,IAAI;KAClB,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,OAAO,eAAe,CACrB,0BAA0B,UAAU,EAAE,EACtC,mEAAmE,CACnE,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;IACjE,MAAM,aAAa,GAClB,cAAc,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,gEAAgE,CAAC;IACrE,MAAM,YAAY,GACjB,MAAM,CAAC,aAAa,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACxE,MAAM,OAAO,GACZ,MAAM,CAAC,cAAc,KAAK,KAAK;QAC9B,CAAC,CAAC,uEAAuE;QACzE,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;IAE/D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,sBAAsB,CAC1C,UAAU,CAAC,QAAQ,EACnB,QAAQ,EACR,EAAE,CACF,CAAC;QACF,OAAO;YACN,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACpB,KAAK,EAAE,IAAI;wBACX,WAAW,EAAE,YAAY,CAAC,WAAW;wBACrC,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;wBACnD,KAAK,EAAE,YAAY,CAAC,KAAK;wBACzB,KAAK,EAAE,YAAY,CAAC,KAAK;wBACzB,cAAc,EACb,YAAY,CAAC,cAAc;4BAC3B,sCAAsC;qBACvC,CAAC;iBACF;aACD;SACD,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;IACpC,MAAM,cAAc,GACnB,MAAM,CAAC,cAAc;QACrB,CAAC,IAAI,KAAK,MAAM;YACf,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,+BAA+B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,sBAAsB,CACzC,UAAU,CAAC,QAAQ,EACnB,QAAQ,EACR,OAAO,CACP,CAAC;IACF,IAAI,qBAAqB,GAAG,WAAW,CAAC;IACxC,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,mCAAmC,CAClD,WAAW,EACX,cAAc,CACd,CAAC;QACF,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;QACxC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,MAAM,gBAAgB,GAAG,8BAA8B,CACtD,qBAAqB,EACrB;QACC,IAAI;QACJ,YAAY,EAAE,WAAW;QACzB,gBAAgB,EAAE,cAAc;QAChC,SAAS,EAAE,gBAAgB,IAAI,gBAAgB;QAC/C,WAAW,EACV,wEAAwE;KACzE,CACD,CAAC;IAEF,OAAO;QACN,OAAO,EAAE,KAAK;QACd,OAAO,EAAE;YACR,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;SACjE;KACD,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { createToolError } from "../../../../utils/createToolError.js";
2
- import { ACTION_DEFAULT_MAX_OUTPUT_CHARS, READ_DEFAULT_BACKLINK_LIMIT, READ_DEFAULT_CONTENT_MAX_CHARS, finalizePayloadWithCompression, jsonCharLength, resolveCompressionMode, } from "../shared.js";
2
+ import { ACTION_DEFAULT_MAX_OUTPUT_CHARS, finalizePayloadWithCompression, jsonCharLength, READ_DEFAULT_BACKLINK_LIMIT, READ_DEFAULT_CONTENT_MAX_CHARS, resolveCompressionMode, } from "../shared.js";
3
3
  function clampReadPayloadByOutputChars(payload, maxOutputChars) {
4
4
  const next = structuredClone(payload);
5
5
  let clamped = false;
@@ -65,3 +65,4 @@ export async function readSpecificFile(vaultManager, params) {
65
65
  content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
66
66
  };
67
67
  }
68
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../src/tools/vault/utils/actions/read.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { formatDocument, getDocumentContent } from "../document.js";
2
- import { ACTION_DEFAULT_MAX_OUTPUT_CHARS, SEARCH_DEFAULT_EXCERPT, SEARCH_DEFAULT_LIMIT, finalizePayloadWithCompression, jsonCharLength, resolveCompressionMode, } from "../shared.js";
2
+ import { ACTION_DEFAULT_MAX_OUTPUT_CHARS, finalizePayloadWithCompression, jsonCharLength, resolveCompressionMode, SEARCH_DEFAULT_EXCERPT, SEARCH_DEFAULT_LIMIT, } from "../shared.js";
3
3
  function clampSearchPayloadByOutputChars(payload, maxOutputChars) {
4
4
  const next = structuredClone(payload);
5
5
  let clamped = false;
@@ -91,3 +91,4 @@ export async function searchDocuments(vaultManager, params) {
91
91
  ],
92
92
  };
93
93
  }
94
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../../src/tools/vault/utils/actions/search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { llmClient } from "../../../../utils/LLMClient.js";
2
+ import { rerankerClient } from "../../../../utils/RerankerClient.js";
3
+ import { vectorDB } from "../../../../utils/VectorDB.js";
4
+ function genereateFormattedResult(res, index) {
5
+ const fileStr = `File: ${res.fileName}`;
6
+ const pathStr = `Path: ${res.filePath}`;
7
+ const scoreStr = `Relevance: ${(res.relevance_score * 100).toFixed(2)}%`;
8
+ const contextStr = `Context: ${res.context || "N/A"}`;
9
+ const contentStr = `Content:\n---\n${res.content}\n---`;
10
+ return [
11
+ `[Result ${index + 1}]`,
12
+ fileStr,
13
+ pathStr,
14
+ scoreStr,
15
+ contextStr,
16
+ contentStr,
17
+ ].join("\n");
18
+ }
19
+ export const searchSemantic = async (params) => {
20
+ const { query, limit = 5 } = params;
21
+ if (!query) {
22
+ throw new Error("query is required for semantic search");
23
+ }
24
+ try {
25
+ const queryVector = await llmClient.generateEmbedding(`search_query: ${query}`);
26
+ const candidates = await vectorDB.search(queryVector, limit * 4);
27
+ if (candidates.length === 0) {
28
+ return {
29
+ content: [{ type: "text", text: "No relevant documents found." }],
30
+ };
31
+ }
32
+ const rerankedResults = await rerankerClient.rerank(query, candidates.map((c) => c.content), limit);
33
+ const finalResults = rerankedResults.map((r) => ({
34
+ ...candidates[r.index],
35
+ relevance_score: r.relevance_score,
36
+ }));
37
+ const formattedResults = finalResults
38
+ .map((res, i) => genereateFormattedResult(res, i))
39
+ .join("\n\n");
40
+ return {
41
+ content: [
42
+ {
43
+ type: "text",
44
+ text: `Found ${finalResults.length} relevant chunks for query: "${query}"\n\n${formattedResults}`,
45
+ },
46
+ ],
47
+ };
48
+ }
49
+ catch (error) {
50
+ console.error("Semantic search failed:", error);
51
+ throw error;
52
+ }
53
+ };
54
+ //# sourceMappingURL=search_semantic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search_semantic.js","sourceRoot":"","sources":["../../../../../src/tools/vault/utils/actions/search_semantic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAsB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGnE,SAAS,wBAAwB,CAChC,GAAgD,EAChD,KAAa;IAEb,MAAM,OAAO,GAAG,SAAS,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,SAAS,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACzE,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;IACtD,MAAM,UAAU,GAAG,kBAAkB,GAAG,CAAC,OAAO,OAAO,CAAC;IACxD,OAAO;QACN,WAAW,KAAK,GAAG,CAAC,GAAG;QACvB,OAAO;QACP,OAAO;QACP,QAAQ;QACR,UAAU;QACV,UAAU;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAClC,MAAkC,EACR,EAAE;IAC5B,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;IAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,iBAAiB,CACpD,iBAAiB,KAAK,EAAE,CACxB,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC;aACjE,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,MAAM,CAClD,KAAK,EACL,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAChC,KAAK,CACL,CAAC;QAEF,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;YACtB,eAAe,EAAE,CAAC,CAAC,eAAe;SAClC,CAAC,CAAC,CAAC;QAEJ,MAAM,gBAAgB,GAAG,YAAY;aACnC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;aACjD,IAAI,CAAC,MAAM,CAAC,CAAC;QAEf,OAAO;YACN,OAAO,EAAE;gBACR;oBACC,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS,YAAY,CAAC,MAAM,gCAAgC,KAAK,QAAQ,gBAAgB,EAAE;iBACjG;aACD;SACD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC,CAAC"}
@@ -6,3 +6,4 @@ export async function statsAllDocuments(vaultManager) {
6
6
  content: [{ type: "text", text: JSON.stringify(stats, null, 2) }],
7
7
  };
8
8
  }
9
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../../../src/tools/vault/utils/actions/stats.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACtC,YAA0B;IAE1B,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACtC,OAAO;QACN,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KACjE,CAAC;AACH,CAAC"}
@@ -47,3 +47,4 @@ export function formatDocument(doc, includeContent, excerptLength) {
47
47
  content_is_truncated: contentIsTruncated,
48
48
  };
49
49
  }
50
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../src/tools/vault/utils/document.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,YAA0B,EAC1B,QAAgB,EAChB,iBAA0B;IAE1B,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE;QACxD,YAAY,EAAE,IAAI;QAClB,iBAAiB;KACjB,CAAC,CAAC;IACH,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,cAAc,CAC7B,GAAqC,EACrC,cAAuB,EACvB,aAAsB;IAEtB,MAAM,kBAAkB,GACvB,SAAS,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC;IACrD,MAAM,mBAAmB,GACxB,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;IAC3E,MAAM,kBAAkB,GACvB,CAAC,CAAC,aAAa;QACf,kBAAkB;QAClB,OAAO,mBAAmB,KAAK,QAAQ;QACvC,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;IAE1C,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAChC,IAAI,cAAc,IAAI,kBAAkB,EAAE,CAAC;YAC1C,MAAM,OAAO,GACZ,aAAa,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;gBACnD,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK;gBAClD,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YAChB,OAAO;gBACN,IAAI,EAAE,GAAG,CAAC,OAAO;gBACjB,OAAO;aACP,CAAC;QACH,CAAC;QAED,OAAO;YACN,OAAO,EAAE,sBAAsB;YAC/B,IAAI,EAAE,iDAAiD;SACvD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,QAAQ;QACvD,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE;YACT,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,KAAK,IAAI,UAAU;YAC1C,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE;SAChC;QACD,KAAK,EACJ,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK;YAC1B,CAAC,CAAC,GAAG,CAAC,KAAK;YACX,CAAC,CAAC;gBACA,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,UAAU,EAAE,kBAAkB;gBAC9B,SAAS,EAAE,CAAC;aACZ;QACJ,OAAO,EAAE,mBAAmB,EAAE;QAC9B,oBAAoB,EAAE,kBAAkB;KACxC,CAAC;AACH,CAAC"}
@@ -0,0 +1,58 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import type { CallToolResult, ToolAnnotations } from "@modelcontextprotocol/sdk/types.js";
3
+ import { type ObsidianPropertyParams } from "./params.js";
4
+ export declare const name = "write_property";
5
+ export declare const annotations: ToolAnnotations;
6
+ export declare const description = "\n Description: Adds or updates properties within the frontmatter section at the top of a specified Obsidian markdown file. This tool is primarily used to apply metadata generated by the 'generate_property' tool to an actual file.\n \n Parameters:\n \n - filePath (string, required): The path to the target markdown file to which properties will be added or updated.\n Example: \"my-first-post.md\"\n \n - properties (object, required): A JSON object containing the key-value pairs to be written to the file's frontmatter. If a property with the same key already exists in the file, it will be overwritten with the new value.\n \n Example:\n \n JSON\n {\n \"title\": \"Optimizing I/O Handling in a Serverless Environment\",\n \"date\": \"2025-04-03\",\n \"tags\": [\"serverless\", \"optimization\"],\n \"summary\": \"A case study on optimizing I/O in a serverless environment by benchmarking Promise.all and Workers.\",\n \"completed\": true\n }\n\n Return Value:\n \n Upon successful execution, it returns a JSON object containing the status, a confirmation message, and the property object that was applied to the file.\n \n Example:\n \n JSON\n {\n \"status\": \"success\",\n \"message\": \"Successfully updated properties for my-first-post.md\",\n \"properties\": {\n \"title\": \"Optimizing I/O Handling in a Serverless Environment\",\n \"date\": \"2025-04-03\",\n \"tags\": [\"serverless\", \"optimization\"],\n \"summary\": \"A case study on optimizing I/O in a serverless environment by benchmarking Promise.all and Workers.\",\n \"completed\": true\n }\n }\n\n Dependencies & Requirements:\n \n - Input Data: The properties parameter should typically be the JSON object output from the 'generate_property' tool.\n - Environment Setup: The absolute path to the user's Obsidian Vault must be correctly set as an environment variable.\n";
7
+ export declare const register: (mcpServer: McpServer) => void;
8
+ export declare const execute: (params: ObsidianPropertyParams) => Promise<CallToolResult>;
9
+ declare const _default: {
10
+ name: string;
11
+ description: string;
12
+ annotations: {
13
+ title?: string | undefined;
14
+ readOnlyHint?: boolean | undefined;
15
+ destructiveHint?: boolean | undefined;
16
+ idempotentHint?: boolean | undefined;
17
+ openWorldHint?: boolean | undefined;
18
+ };
19
+ inputSchema: {
20
+ filePath: import("zod").ZodString;
21
+ properties: import("zod").ZodObject<{
22
+ cssclasses: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
23
+ tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
24
+ title: import("zod").ZodOptional<import("zod").ZodString>;
25
+ date: import("zod").ZodOptional<import("zod").ZodString>;
26
+ summary: import("zod").ZodOptional<import("zod").ZodString>;
27
+ slug: import("zod").ZodOptional<import("zod").ZodString>;
28
+ category: import("zod").ZodOptional<import("zod").ZodString>;
29
+ completed: import("zod").ZodOptional<import("zod").ZodBoolean>;
30
+ }, "strip", import("zod").ZodTypeAny, {
31
+ date?: string | undefined;
32
+ title?: string | undefined;
33
+ tags?: string[] | undefined;
34
+ summary?: string | undefined;
35
+ slug?: string | undefined;
36
+ category?: string | undefined;
37
+ completed?: boolean | undefined;
38
+ cssclasses?: string[] | undefined;
39
+ }, {
40
+ date?: string | undefined;
41
+ title?: string | undefined;
42
+ tags?: string[] | undefined;
43
+ summary?: string | undefined;
44
+ slug?: string | undefined;
45
+ category?: string | undefined;
46
+ completed?: boolean | undefined;
47
+ cssclasses?: string[] | undefined;
48
+ }>;
49
+ quiet: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodBoolean>>;
50
+ };
51
+ execute: (params: ObsidianPropertyParams) => Promise<CallToolResult>;
52
+ register: (mcpServer: McpServer) => void;
53
+ shorthandDescription: {
54
+ ko: string;
55
+ en: string;
56
+ };
57
+ };
58
+ export default _default;
@@ -104,6 +104,10 @@ export const execute = async (params) => {
104
104
  return createToolError(error.message || "An unknown error occurred.");
105
105
  }
106
106
  };
107
+ const shorthandDescription = {
108
+ ko: "지정된 마크다운 파일의 프론트매터 속성을 제공된 JSON 데이터로 추가하거나 업데이트(덮어쓰기)합니다. 주로 'generate_property' 도구로 생성된 메타데이터를 실제 파일에 적용할 때 사용됩니다.",
109
+ en: "Adds or overwrites Markdown frontmatter properties using provided JSON. Typically used to apply the output from 'generate_property'",
110
+ };
107
111
  export default {
108
112
  name,
109
113
  description,
@@ -111,4 +115,6 @@ export default {
111
115
  inputSchema: obsidianPropertyParamsSchema.shape,
112
116
  execute,
113
117
  register,
118
+ shorthandDescription,
114
119
  };
120
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/write_property/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Semaphore } from "./semaphore.js";
2
+ export declare class DirectoryWalker {
3
+ private readonly allowedExtensions;
4
+ constructor(allowedExtensions?: string[]);
5
+ walk(dirPath: string, ioSemaphore: Semaphore): Promise<string[]>;
6
+ }
@@ -17,6 +17,12 @@ export class DirectoryWalker {
17
17
  }
18
18
  try {
19
19
  const tasks = entries.map(async (entry) => {
20
+ // Ignore dotfiles, .obsidian, and node_modules
21
+ if (entry.name.startsWith(".") ||
22
+ entry.name === "node_modules" ||
23
+ entry.name === ".obsidian") {
24
+ return [];
25
+ }
20
26
  const fullPath = join(dirPath, entry.name);
21
27
  if (entry.isDirectory()) {
22
28
  // 하위 디렉토리 재귀 탐색
@@ -43,3 +49,4 @@ export class DirectoryWalker {
43
49
  return filePaths;
44
50
  }
45
51
  }
52
+ //# sourceMappingURL=DirectoryWalker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectoryWalker.js","sourceRoot":"","sources":["../../src/utils/DirectoryWalker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,OAAO,eAAe;IACV,iBAAiB,CAAW;IAE7C,YAAY,oBAA8B,CAAC,KAAK,EAAE,MAAM,CAAC;QACxD,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,IAAI,CAChB,OAAe,EACf,WAAsB;QAEtB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,OAAO,GAAa,EAAE,CAAC;QAC3B,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC;YACJ,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;gBAAS,CAAC;YACV,WAAW,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACzC,+CAA+C;gBAC/C,IACC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAC1B,KAAK,CAAC,IAAI,KAAK,cAAc;oBAC7B,KAAK,CAAC,IAAI,KAAK,WAAW,EACzB,CAAC;oBACF,OAAO,EAAE,CAAC;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACzB,gBAAgB;oBAChB,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACzC,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC9C,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1C,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACnB,CAAC;gBACF,CAAC;gBACD,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC5B,IAAI,QAAQ,EAAE,CAAC;oBACd,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC7B,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;CACD"}
@@ -0,0 +1,18 @@
1
+ import type { DocumentIndex } from "./processor/types.js";
2
+ import type { Semaphore } from "./semaphore.js";
3
+ export declare class Indexer {
4
+ private documentMap;
5
+ private backlinkIndex;
6
+ private invertedIndex;
7
+ get totalFiles(): number;
8
+ build(filePaths: string[], ioSemaphore: Semaphore): Promise<void>;
9
+ search(keyword: string): DocumentIndex[];
10
+ getDocument(filePath: string): DocumentIndex | null;
11
+ getAllDocuments(): DocumentIndex[];
12
+ getBacklinks(filePath: string): string[];
13
+ clear(): void;
14
+ private processFile;
15
+ private buildInvertedIndexForFile;
16
+ private buildBacklinkIndex;
17
+ private normalizeLink;
18
+ }
@@ -1,11 +1,11 @@
1
- import { readFile } from "node:fs/promises";
1
+ import { readFile, stat } from "node:fs/promises";
2
2
  import { basename, extname, join } from "node:path";
3
3
  import * as LinkExtractor from "./processor/LinkExtractor.js";
4
4
  import * as MatterParser from "./processor/MatterParser.js";
5
5
  export class Indexer {
6
6
  documentMap = new Map();
7
- invertedIndex = new Map();
8
7
  backlinkIndex = new Map();
8
+ invertedIndex = new Map();
9
9
  get totalFiles() {
10
10
  return this.documentMap.size;
11
11
  }
@@ -68,7 +68,8 @@ export class Indexer {
68
68
  await ioSemaphore.acquire();
69
69
  try {
70
70
  const fileContent = await readFile(filePath, "utf-8");
71
- const { frontmatter, content } = MatterParser.parse(fileContent);
71
+ const fileStat = await stat(filePath);
72
+ const { frontmatter, content } = MatterParser.parse(filePath, fileStat.birthtime.toISOString(), fileContent);
72
73
  const imageLinks = LinkExtractor.extractImageLinks(content);
73
74
  const documentLinks = LinkExtractor.extractDocumentLinks(content);
74
75
  const index = {
@@ -90,12 +91,6 @@ export class Indexer {
90
91
  }
91
92
  buildInvertedIndexForFile(index, content) {
92
93
  const tokens = new Set();
93
- index.filePath
94
- .toLowerCase()
95
- .split(/[/\s\-.]+/)
96
- .forEach((t) => {
97
- t && tokens.add(t);
98
- });
99
94
  const extension = extname(index.filePath);
100
95
  const fileBasename = basename(index.filePath, extension);
101
96
  tokens.add(fileBasename);
@@ -154,3 +149,4 @@ export class Indexer {
154
149
  return link.toLowerCase().replace(/\.mdx?$/, "");
155
150
  }
156
151
  }
152
+ //# sourceMappingURL=Indexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Indexer.js","sourceRoot":"","sources":["../../src/utils/Indexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export interface LLMChatResponse {
2
+ model: string;
3
+ created_at: string;
4
+ choices: Array<{
5
+ message: {
6
+ role: string;
7
+ content: string;
8
+ };
9
+ finish_reason: string;
10
+ }>;
11
+ done: boolean;
12
+ }
13
+ export interface LLMEmbeddingResponse {
14
+ data: Array<{
15
+ embedding: number[];
16
+ index: number;
17
+ object: string;
18
+ }>;
19
+ model: string;
20
+ object: string;
21
+ usage: {
22
+ prompt_tokens: number;
23
+ total_tokens: number;
24
+ };
25
+ }
26
+ export declare class LLMClient {
27
+ private get apiUrl();
28
+ private get embeddingApiUrl();
29
+ private get embeddingModel();
30
+ private get chatModel();
31
+ /**
32
+ * 청크의 문맥(Context)을 생성합니다. (OpenAI Chat Completion 호환)
33
+ */
34
+ generateContext(documentContext: string, chunkContent: string): Promise<string>;
35
+ generateEmbedding(text: string): Promise<number[]>;
36
+ }
37
+ export declare const llmClient: LLMClient;
@@ -0,0 +1,82 @@
1
+ import state from "../config.js";
2
+ export class LLMClient {
3
+ // 설정값을 실시간으로 가져오기 위한 Getter들
4
+ get apiUrl() {
5
+ return state.llmApiUrl.replace(/\/$/, "");
6
+ }
7
+ get embeddingApiUrl() {
8
+ return state.llmEmbeddingApiUrl.replace(/\/$/, "");
9
+ }
10
+ get embeddingModel() {
11
+ return state.llmEmbeddingModel;
12
+ }
13
+ get chatModel() {
14
+ return state.llmChatModel;
15
+ }
16
+ /**
17
+ * 청크의 문맥(Context)을 생성합니다. (OpenAI Chat Completion 호환)
18
+ */
19
+ async generateContext(documentContext, chunkContent) {
20
+ const prompt = `<document>
21
+ ${documentContext}
22
+ </document>
23
+
24
+ Summarize in 1-2 sentences how this chunk fits the above document:
25
+
26
+ <chunk>
27
+ ${chunkContent}
28
+ </chunk>`;
29
+ const url = `${this.apiUrl}/v1/chat/completions`;
30
+ try {
31
+ const response = await fetch(url, {
32
+ method: "POST",
33
+ headers: { "Content-Type": "application/json" },
34
+ body: JSON.stringify({
35
+ model: this.chatModel,
36
+ messages: [{ role: "user", content: prompt }],
37
+ max_tokens: 80,
38
+ temperature: 0,
39
+ stream: false,
40
+ }),
41
+ });
42
+ if (!response.ok) {
43
+ const errorBody = await response.text();
44
+ throw new Error(`LLM API error (${response.status}) at ${url}: ${errorBody || response.statusText}`);
45
+ }
46
+ const data = (await response.json());
47
+ return data.choices[0].message.content.trim();
48
+ }
49
+ catch (error) {
50
+ console.error(`Error generating context from LLM at ${url}:`, error);
51
+ return "";
52
+ }
53
+ }
54
+ async generateEmbedding(text) {
55
+ const url = `${this.embeddingApiUrl}/v1/embeddings`;
56
+ try {
57
+ const response = await fetch(url, {
58
+ method: "POST",
59
+ headers: { "Content-Type": "application/json" },
60
+ body: JSON.stringify({
61
+ model: this.embeddingModel,
62
+ input: text,
63
+ }),
64
+ });
65
+ if (!response.ok) {
66
+ const errorBody = await response.text();
67
+ throw new Error(`Embedding API error (${response.status}) at ${url}: ${errorBody || response.statusText}`);
68
+ }
69
+ const data = (await response.json());
70
+ if (!data.data || !data.data[0] || !data.data[0].embedding) {
71
+ throw new Error(`Invalid embedding response structure from ${url}`);
72
+ }
73
+ return data.data[0].embedding;
74
+ }
75
+ catch (error) {
76
+ console.error(`Error generating embedding from LLM at ${url}:`, error);
77
+ throw error;
78
+ }
79
+ }
80
+ }
81
+ export const llmClient = new LLMClient();
82
+ //# sourceMappingURL=LLMClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMClient.js","sourceRoot":"","sources":["../../src/utils/LLMClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type VectorRecord } from "./VectorDB.js";
2
+ export declare class RAGIndexer {
3
+ private splitter;
4
+ private embeddingSemaphore;
5
+ private ioSemaphore;
6
+ private spinner;
7
+ private totalFiles;
8
+ private processedFiles;
9
+ private enc;
10
+ constructor();
11
+ setSpinner(total: number): void;
12
+ private updateProgress;
13
+ private buildFileRecords;
14
+ processFile(filePath: string, content?: string): Promise<void>;
15
+ processFileInMemory(filePath: string, content?: string): Promise<{
16
+ records: VectorRecord[];
17
+ mtime: string;
18
+ } | null>;
19
+ indexAll(vaultPath: string): Promise<void>;
20
+ deleteFile(filePath: string): Promise<void>;
21
+ }
22
+ export declare const ragIndexer: RAGIndexer;