@sunub/obsidian-mcp-server 0.3.15 → 0.3.17

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 (224) hide show
  1. package/{build → dist}/config.d.ts +1 -1
  2. package/dist/config.d.ts.map +1 -0
  3. package/dist/config.js +59 -0
  4. package/dist/config.js.map +1 -0
  5. package/dist/db.js +58 -0
  6. package/dist/db.js.map +1 -0
  7. package/dist/index.js +52 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/server.js +42 -0
  10. package/dist/server.js.map +1 -0
  11. package/dist/setup.js +114 -0
  12. package/dist/setup.js.map +1 -0
  13. package/{build → dist}/tools/create_document_with_properties/index.d.ts +1 -1
  14. package/dist/tools/create_document_with_properties/index.js +115 -0
  15. package/dist/tools/create_document_with_properties/index.js.map +1 -0
  16. package/{build → dist}/tools/create_document_with_properties/params.d.ts +2 -2
  17. package/dist/tools/create_document_with_properties/params.js +33 -0
  18. package/dist/tools/create_document_with_properties/params.js.map +1 -0
  19. package/{build → dist}/tools/generate_property/index.d.ts +1 -1
  20. package/dist/tools/generate_property/index.js +86 -0
  21. package/dist/tools/generate_property/index.js.map +1 -0
  22. package/dist/tools/generate_property/params.js +55 -0
  23. package/dist/tools/generate_property/params.js.map +1 -0
  24. package/dist/tools/index.js +13 -0
  25. package/dist/tools/index.js.map +1 -0
  26. package/{build → dist}/tools/organize_attachments/index.d.ts +1 -1
  27. package/dist/tools/organize_attachments/index.js +86 -0
  28. package/dist/tools/organize_attachments/index.js.map +1 -0
  29. package/dist/tools/organize_attachments/params.js +61 -0
  30. package/dist/tools/organize_attachments/params.js.map +1 -0
  31. package/{build → dist}/tools/organize_attachments/utils.d.ts +1 -1
  32. package/dist/tools/organize_attachments/utils.js +66 -0
  33. package/dist/tools/organize_attachments/utils.js.map +1 -0
  34. package/{build → dist}/tools/vault/index.d.ts +1 -1
  35. package/dist/tools/vault/index.js +104 -0
  36. package/dist/tools/vault/index.js.map +1 -0
  37. package/dist/tools/vault/metrics.js +130 -0
  38. package/dist/tools/vault/metrics.js.map +1 -0
  39. package/{build → dist}/tools/vault/params.d.ts +2 -2
  40. package/dist/tools/vault/params.js +148 -0
  41. package/dist/tools/vault/params.js.map +1 -0
  42. package/dist/tools/vault/types/collect_context.js +103 -0
  43. package/dist/tools/vault/types/collect_context.js.map +1 -0
  44. package/dist/tools/vault/types/list_all.js +53 -0
  45. package/dist/tools/vault/types/list_all.js.map +1 -0
  46. package/dist/tools/vault/types/read_specific.js +41 -0
  47. package/dist/tools/vault/types/read_specific.js.map +1 -0
  48. package/dist/tools/vault/types/search.js +59 -0
  49. package/dist/tools/vault/types/search.js.map +1 -0
  50. package/dist/tools/vault/utils/actions/collect_context.d.ts +5 -0
  51. package/dist/tools/vault/utils/actions/collect_context.js +765 -0
  52. package/dist/tools/vault/utils/actions/collect_context.js.map +1 -0
  53. package/dist/tools/vault/utils/actions/index_rag.js +27 -0
  54. package/dist/tools/vault/utils/actions/index_rag.js.map +1 -0
  55. package/dist/tools/vault/utils/actions/list_all.d.ts +5 -0
  56. package/dist/tools/vault/utils/actions/list_all.js +43 -0
  57. package/dist/tools/vault/utils/actions/list_all.js.map +1 -0
  58. package/dist/tools/vault/utils/actions/load_memory.d.ts +5 -0
  59. package/dist/tools/vault/utils/actions/load_memory.js +186 -0
  60. package/dist/tools/vault/utils/actions/load_memory.js.map +1 -0
  61. package/{build → dist}/tools/vault/utils/actions/read.d.ts +2 -2
  62. package/dist/tools/vault/utils/actions/read.js +68 -0
  63. package/dist/tools/vault/utils/actions/read.js.map +1 -0
  64. package/{build → dist}/tools/vault/utils/actions/search.d.ts +2 -2
  65. package/dist/tools/vault/utils/actions/search.js +104 -0
  66. package/dist/tools/vault/utils/actions/search.js.map +1 -0
  67. package/{build → dist}/tools/vault/utils/actions/stats.d.ts +1 -1
  68. package/dist/tools/vault/utils/actions/stats.js +9 -0
  69. package/dist/tools/vault/utils/actions/stats.js.map +1 -0
  70. package/dist/tools/vault/utils/constants.js +3 -0
  71. package/dist/tools/vault/utils/constants.js.map +1 -0
  72. package/{build → dist}/tools/vault/utils/document.d.ts +3 -3
  73. package/dist/tools/vault/utils/document.js +50 -0
  74. package/dist/tools/vault/utils/document.js.map +1 -0
  75. package/{build → dist}/tools/vault/utils/shared.d.ts +1 -1
  76. package/dist/tools/vault/utils/shared.js +75 -0
  77. package/dist/tools/vault/utils/shared.js.map +1 -0
  78. package/dist/tools/vault/utils.d.ts +8 -0
  79. package/dist/tools/vault/utils.js +8 -0
  80. package/dist/tools/vault/utils.js.map +1 -0
  81. package/{build → dist}/tools/write_property/index.d.ts +1 -1
  82. package/dist/tools/write_property/index.js +120 -0
  83. package/dist/tools/write_property/index.js.map +1 -0
  84. package/dist/tools/write_property/params.js +52 -0
  85. package/dist/tools/write_property/params.js.map +1 -0
  86. package/{build → dist}/utils/DirectoryWalker.d.ts +1 -1
  87. package/dist/utils/DirectoryWalker.js +52 -0
  88. package/dist/utils/DirectoryWalker.js.map +1 -0
  89. package/dist/utils/Embedder.js +46 -0
  90. package/dist/utils/Embedder.js.map +1 -0
  91. package/{build → dist}/utils/Indexer.d.ts +2 -2
  92. package/dist/utils/Indexer.js +169 -0
  93. package/dist/utils/Indexer.js.map +1 -0
  94. package/dist/utils/LLMClient.js +112 -0
  95. package/dist/utils/LLMClient.js.map +1 -0
  96. package/dist/utils/LocalReranker.js +71 -0
  97. package/dist/utils/LocalReranker.js.map +1 -0
  98. package/{build → dist}/utils/RAGIndexer.d.ts +1 -1
  99. package/dist/utils/RAGIndexer.js +238 -0
  100. package/dist/utils/RAGIndexer.js.map +1 -0
  101. package/dist/utils/RerankerClient.js +89 -0
  102. package/dist/utils/RerankerClient.js.map +1 -0
  103. package/{build → dist}/utils/VaultManger/VaultManager.d.ts +3 -3
  104. package/dist/utils/VaultManger/VaultManager.js +459 -0
  105. package/dist/utils/VaultManger/VaultManager.js.map +1 -0
  106. package/dist/utils/VaultManger/VaultPathError.js +13 -0
  107. package/dist/utils/VaultManger/VaultPathError.js.map +1 -0
  108. package/dist/utils/VaultManger/index.d.ts +4 -0
  109. package/dist/utils/VaultManger/index.js +3 -0
  110. package/dist/utils/VaultManger/index.js.map +1 -0
  111. package/{build → dist}/utils/VaultManger/types.d.ts +1 -1
  112. package/dist/utils/VaultManger/types.js +2 -0
  113. package/dist/utils/VaultManger/types.js.map +1 -0
  114. package/dist/utils/VaultWatcher.js +60 -0
  115. package/dist/utils/VaultWatcher.js.map +1 -0
  116. package/dist/utils/VectorDB.js +268 -0
  117. package/dist/utils/VectorDB.js.map +1 -0
  118. package/dist/utils/constants.js +14 -0
  119. package/dist/utils/constants.js.map +1 -0
  120. package/dist/utils/createToolError.js +16 -0
  121. package/dist/utils/createToolError.js.map +1 -0
  122. package/dist/utils/getVaultManager.d.ts +3 -0
  123. package/dist/utils/getVaultManager.js +15 -0
  124. package/dist/utils/getVaultManager.js.map +1 -0
  125. package/dist/utils/processor/LinkExtractor.js +31 -0
  126. package/dist/utils/processor/LinkExtractor.js.map +1 -0
  127. package/dist/utils/processor/MatterParser.d.ts +3 -0
  128. package/dist/utils/processor/MatterParser.js +28 -0
  129. package/dist/utils/processor/MatterParser.js.map +1 -0
  130. package/dist/utils/processor/types.js +22 -0
  131. package/dist/utils/processor/types.js.map +1 -0
  132. package/dist/utils/semaphore.js +26 -0
  133. package/dist/utils/semaphore.js.map +1 -0
  134. package/package.json +19 -12
  135. package/build/config.d.ts.map +0 -1
  136. package/build/index.js +0 -127331
  137. package/build/index.js.map +0 -828
  138. package/build/lancedb.linux-x64-gnu-1e1af8yx.node +0 -0
  139. package/build/tools/vault/utils/actions/collect_context.d.ts +0 -5
  140. package/build/tools/vault/utils/actions/list_all.d.ts +0 -5
  141. package/build/tools/vault/utils/actions/load_memory.d.ts +0 -5
  142. package/build/tools/vault/utils.d.ts +0 -8
  143. package/build/utils/VaultManger/index.d.ts +0 -4
  144. package/build/utils/getVaultManager.d.ts +0 -3
  145. package/build/utils/processor/MatterParser.d.ts +0 -3
  146. /package/{build → dist}/db.d.ts +0 -0
  147. /package/{build → dist}/db.d.ts.map +0 -0
  148. /package/{build → dist}/index.d.ts +0 -0
  149. /package/{build → dist}/index.d.ts.map +0 -0
  150. /package/{build → dist}/server.d.ts +0 -0
  151. /package/{build → dist}/server.d.ts.map +0 -0
  152. /package/{build → dist}/setup.d.ts +0 -0
  153. /package/{build → dist}/setup.d.ts.map +0 -0
  154. /package/{build → dist}/tools/create_document_with_properties/index.d.ts.map +0 -0
  155. /package/{build → dist}/tools/create_document_with_properties/params.d.ts.map +0 -0
  156. /package/{build → dist}/tools/generate_property/index.d.ts.map +0 -0
  157. /package/{build → dist}/tools/generate_property/params.d.ts +0 -0
  158. /package/{build → dist}/tools/generate_property/params.d.ts.map +0 -0
  159. /package/{build → dist}/tools/index.d.ts +0 -0
  160. /package/{build → dist}/tools/index.d.ts.map +0 -0
  161. /package/{build → dist}/tools/organize_attachments/index.d.ts.map +0 -0
  162. /package/{build → dist}/tools/organize_attachments/params.d.ts +0 -0
  163. /package/{build → dist}/tools/organize_attachments/params.d.ts.map +0 -0
  164. /package/{build → dist}/tools/organize_attachments/utils.d.ts.map +0 -0
  165. /package/{build → dist}/tools/vault/index.d.ts.map +0 -0
  166. /package/{build → dist}/tools/vault/metrics.d.ts +0 -0
  167. /package/{build → dist}/tools/vault/metrics.d.ts.map +0 -0
  168. /package/{build → dist}/tools/vault/params.d.ts.map +0 -0
  169. /package/{build → dist}/tools/vault/types/collect_context.d.ts +0 -0
  170. /package/{build → dist}/tools/vault/types/collect_context.d.ts.map +0 -0
  171. /package/{build → dist}/tools/vault/types/list_all.d.ts +0 -0
  172. /package/{build → dist}/tools/vault/types/list_all.d.ts.map +0 -0
  173. /package/{build → dist}/tools/vault/types/read_specific.d.ts +0 -0
  174. /package/{build → dist}/tools/vault/types/read_specific.d.ts.map +0 -0
  175. /package/{build → dist}/tools/vault/types/search.d.ts +0 -0
  176. /package/{build → dist}/tools/vault/types/search.d.ts.map +0 -0
  177. /package/{build → dist}/tools/vault/utils/actions/collect_context.d.ts.map +0 -0
  178. /package/{build → dist}/tools/vault/utils/actions/index_rag.d.ts +0 -0
  179. /package/{build → dist}/tools/vault/utils/actions/index_rag.d.ts.map +0 -0
  180. /package/{build → dist}/tools/vault/utils/actions/list_all.d.ts.map +0 -0
  181. /package/{build → dist}/tools/vault/utils/actions/load_memory.d.ts.map +0 -0
  182. /package/{build → dist}/tools/vault/utils/actions/read.d.ts.map +0 -0
  183. /package/{build → dist}/tools/vault/utils/actions/search.d.ts.map +0 -0
  184. /package/{build → dist}/tools/vault/utils/actions/stats.d.ts.map +0 -0
  185. /package/{build → dist}/tools/vault/utils/constants.d.ts +0 -0
  186. /package/{build → dist}/tools/vault/utils/constants.d.ts.map +0 -0
  187. /package/{build → dist}/tools/vault/utils/document.d.ts.map +0 -0
  188. /package/{build → dist}/tools/vault/utils/shared.d.ts.map +0 -0
  189. /package/{build → dist}/tools/vault/utils.d.ts.map +0 -0
  190. /package/{build → dist}/tools/write_property/index.d.ts.map +0 -0
  191. /package/{build → dist}/tools/write_property/params.d.ts +0 -0
  192. /package/{build → dist}/tools/write_property/params.d.ts.map +0 -0
  193. /package/{build → dist}/utils/DirectoryWalker.d.ts.map +0 -0
  194. /package/{build → dist}/utils/Embedder.d.ts +0 -0
  195. /package/{build → dist}/utils/Embedder.d.ts.map +0 -0
  196. /package/{build → dist}/utils/Indexer.d.ts.map +0 -0
  197. /package/{build → dist}/utils/LLMClient.d.ts +0 -0
  198. /package/{build → dist}/utils/LLMClient.d.ts.map +0 -0
  199. /package/{build → dist}/utils/LocalReranker.d.ts +0 -0
  200. /package/{build → dist}/utils/LocalReranker.d.ts.map +0 -0
  201. /package/{build → dist}/utils/RAGIndexer.d.ts.map +0 -0
  202. /package/{build → dist}/utils/RerankerClient.d.ts +0 -0
  203. /package/{build → dist}/utils/RerankerClient.d.ts.map +0 -0
  204. /package/{build → dist}/utils/VaultManger/VaultManager.d.ts.map +0 -0
  205. /package/{build → dist}/utils/VaultManger/VaultPathError.d.ts +0 -0
  206. /package/{build → dist}/utils/VaultManger/VaultPathError.d.ts.map +0 -0
  207. /package/{build → dist}/utils/VaultManger/index.d.ts.map +0 -0
  208. /package/{build → dist}/utils/VaultManger/types.d.ts.map +0 -0
  209. /package/{build → dist}/utils/VaultWatcher.d.ts +0 -0
  210. /package/{build → dist}/utils/VaultWatcher.d.ts.map +0 -0
  211. /package/{build → dist}/utils/VectorDB.d.ts +0 -0
  212. /package/{build → dist}/utils/VectorDB.d.ts.map +0 -0
  213. /package/{build → dist}/utils/constants.d.ts +0 -0
  214. /package/{build → dist}/utils/constants.d.ts.map +0 -0
  215. /package/{build → dist}/utils/createToolError.d.ts +0 -0
  216. /package/{build → dist}/utils/createToolError.d.ts.map +0 -0
  217. /package/{build → dist}/utils/getVaultManager.d.ts.map +0 -0
  218. /package/{build → dist}/utils/processor/LinkExtractor.d.ts +0 -0
  219. /package/{build → dist}/utils/processor/LinkExtractor.d.ts.map +0 -0
  220. /package/{build → dist}/utils/processor/MatterParser.d.ts.map +0 -0
  221. /package/{build → dist}/utils/processor/types.d.ts +0 -0
  222. /package/{build → dist}/utils/processor/types.d.ts.map +0 -0
  223. /package/{build → dist}/utils/semaphore.d.ts +0 -0
  224. /package/{build → dist}/utils/semaphore.d.ts.map +0 -0
@@ -0,0 +1,130 @@
1
+ import { appendFile, mkdir } from "node:fs/promises";
2
+ import { dirname } from "node:path";
3
+ function isJsonObject(value) {
4
+ return !!value && typeof value === "object" && !Array.isArray(value);
5
+ }
6
+ function parseFirstTextPayload(result) {
7
+ if (!Array.isArray(result.content)) {
8
+ return null;
9
+ }
10
+ let textPayload = null;
11
+ for (const chunk of result.content) {
12
+ if (chunk.type !== "text") {
13
+ continue;
14
+ }
15
+ if (!("text" in chunk) || typeof chunk.text !== "string") {
16
+ continue;
17
+ }
18
+ textPayload = chunk.text;
19
+ break;
20
+ }
21
+ if (!textPayload)
22
+ return null;
23
+ try {
24
+ const parsed = JSON.parse(textPayload);
25
+ return isJsonObject(parsed) ? parsed : null;
26
+ }
27
+ catch {
28
+ return null;
29
+ }
30
+ }
31
+ function parseCompression(compression) {
32
+ if (!isJsonObject(compression)) {
33
+ return null;
34
+ }
35
+ const mode = compression["mode"];
36
+ const estimatedTokens = compression["estimated_tokens"];
37
+ const truncated = compression["truncated"];
38
+ const outputChars = compression["output_chars"];
39
+ const sourceChars = compression["source_chars"];
40
+ const maxOutputChars = compression["max_output_chars"];
41
+ if ((mode !== "aggressive" && mode !== "balanced" && mode !== "none") ||
42
+ typeof estimatedTokens !== "number" ||
43
+ typeof truncated !== "boolean" ||
44
+ typeof outputChars !== "number" ||
45
+ typeof sourceChars !== "number" ||
46
+ (maxOutputChars !== null && typeof maxOutputChars !== "number")) {
47
+ return null;
48
+ }
49
+ return {
50
+ mode: mode,
51
+ estimated_tokens: Math.max(0, Math.floor(estimatedTokens)),
52
+ truncated: truncated,
53
+ output_chars: Math.max(0, Math.floor(outputChars)),
54
+ source_chars: Math.max(0, Math.floor(sourceChars)),
55
+ max_output_chars: maxOutputChars === null
56
+ ? null
57
+ : Math.max(0, Math.floor(maxOutputChars)),
58
+ };
59
+ }
60
+ function inferDocCount(action, payload) {
61
+ if (Array.isArray(payload["documents"])) {
62
+ return payload["documents"].length;
63
+ }
64
+ if (typeof payload["documents_count"] === "number") {
65
+ return Math.max(0, Math.floor(payload["documents_count"]));
66
+ }
67
+ if (action === "search" && typeof payload["found"] === "number") {
68
+ return Math.max(0, Math.floor(payload["found"]));
69
+ }
70
+ if (action === "read" &&
71
+ (typeof payload["filename"] === "string" ||
72
+ typeof payload["fullPath"] === "string" ||
73
+ typeof payload["filePath"] === "string")) {
74
+ return 1;
75
+ }
76
+ return 0;
77
+ }
78
+ function parseCacheHit(payload) {
79
+ const cache = payload["cache"];
80
+ if (!isJsonObject(cache)) {
81
+ return undefined;
82
+ }
83
+ if (typeof cache["hit"] !== "boolean") {
84
+ return undefined;
85
+ }
86
+ return cache["hit"];
87
+ }
88
+ export function buildVaultResponseMetric(action, result) {
89
+ if (result.isError) {
90
+ return null;
91
+ }
92
+ const payload = parseFirstTextPayload(result);
93
+ if (!payload) {
94
+ return null;
95
+ }
96
+ const compression = parseCompression(payload["compression"]);
97
+ if (!compression) {
98
+ return null;
99
+ }
100
+ return {
101
+ timestamp: new Date().toISOString(),
102
+ action,
103
+ mode: compression.mode,
104
+ estimated_tokens: compression.estimated_tokens,
105
+ truncated: compression.truncated,
106
+ doc_count: inferDocCount(action, payload),
107
+ output_chars: compression.output_chars,
108
+ source_chars: compression.source_chars,
109
+ max_output_chars: compression.max_output_chars,
110
+ cache_hit: parseCacheHit(payload),
111
+ };
112
+ }
113
+ export async function recordVaultResponseMetric(action, result) {
114
+ const logPath = process.env["VAULT_METRICS_LOG_PATH"]?.trim();
115
+ if (!logPath) {
116
+ return;
117
+ }
118
+ const metric = buildVaultResponseMetric(action, result);
119
+ if (!metric) {
120
+ return;
121
+ }
122
+ try {
123
+ await mkdir(dirname(logPath), { recursive: true });
124
+ await appendFile(logPath, `${JSON.stringify(metric)}\n`, "utf8");
125
+ }
126
+ catch {
127
+ // Metrics logging should never fail tool execution.
128
+ }
129
+ }
130
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/tools/vault/metrics.ts"],"names":[],"mappings":"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"}
@@ -37,8 +37,8 @@ export declare const obsidianContentQueryParamsZod: z.ZodObject<{
37
37
  quiet: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
38
38
  }, "strip", z.ZodTypeAny, {
39
39
  action: "search" | "read" | "list_all" | "stats" | "collect_context" | "load_memory" | "search_vault_by_semantic" | "index_vault_to_vectordb";
40
- quiet?: boolean | undefined;
41
40
  filename?: string | undefined;
41
+ quiet?: boolean | undefined;
42
42
  keyword?: string | undefined;
43
43
  topic?: string | undefined;
44
44
  query?: string | undefined;
@@ -56,8 +56,8 @@ export declare const obsidianContentQueryParamsZod: z.ZodObject<{
56
56
  maxOutputChars?: number | undefined;
57
57
  }, {
58
58
  action: "search" | "read" | "list_all" | "stats" | "collect_context" | "load_memory" | "search_vault_by_semantic" | "index_vault_to_vectordb";
59
- quiet?: boolean | undefined;
60
59
  filename?: string | undefined;
60
+ quiet?: boolean | undefined;
61
61
  keyword?: string | undefined;
62
62
  topic?: string | undefined;
63
63
  query?: string | undefined;
@@ -0,0 +1,148 @@
1
+ import { z } from "zod";
2
+ export const responseTypeSchema = z
3
+ .enum(["text", "audio", "image", "resource", "resource_link"])
4
+ .describe("The type of content being returned");
5
+ export const compressionModeSchema = z
6
+ .enum(["aggressive", "balanced", "none"])
7
+ .default("balanced")
8
+ .describe("Compression strategy for tool output. aggressive: smallest output, balanced: default, none: keep as much original content as possible.");
9
+ const maxOutputCharsSchema = z
10
+ .number()
11
+ .min(500)
12
+ .max(12000)
13
+ .describe("Optional hard cap for output size in characters. Helps control token cost in long responses.");
14
+ const quietMode = z
15
+ .boolean()
16
+ .default(true)
17
+ .describe("If true, suppresses non-error output messages. Default is false.");
18
+ // input properties schema
19
+ export const obsidianContentActions = z
20
+ .enum([
21
+ "search",
22
+ "read",
23
+ "list_all",
24
+ "stats",
25
+ "collect_context",
26
+ "load_memory",
27
+ "search_vault_by_semantic",
28
+ "index_vault_to_vectordb",
29
+ ])
30
+ .describe("The action to perform: search documents, read specific file, list all content, get stats, collect contextual memory packets, load stored memory, semantic search, or trigger indexing");
31
+ export const obsidianContentKeyword = z
32
+ .string()
33
+ .describe("Keyword to search for in documents (required for search action)");
34
+ export const obsidianContentQuery = z
35
+ .string()
36
+ .describe("Natural language query for semantic search (required for search_vault_by_semantic action)");
37
+ export const obsidianContentFilename = z
38
+ .string()
39
+ .describe("Specific filename to read (required for read action)");
40
+ export const obsidianContentLimit = z
41
+ .number()
42
+ .min(1)
43
+ .max(100)
44
+ .describe("Maximum number of results to return (default: 10 for search, unlimited for others)");
45
+ export const obsidianContentIncludeContent = z
46
+ .boolean()
47
+ .default(true)
48
+ .describe("Whether to include document content in search results (default: true)");
49
+ export const obsidianContentIncludeFrontmatter = z
50
+ .boolean()
51
+ .default(false)
52
+ .describe("Whether to include frontmatter metadata in results (default: false)");
53
+ export const obsidianContentExcerptLength = z
54
+ .number()
55
+ .min(100)
56
+ .max(2000)
57
+ .default(500)
58
+ .describe("Length of content excerpt to include in search results (default: 500)");
59
+ export const obsidianContentTopic = z
60
+ .string()
61
+ .min(1)
62
+ .describe("Topic to collect contextual memory for (collect_context action)");
63
+ export const obsidianContentScope = z
64
+ .enum(["topic", "all"])
65
+ .default("topic")
66
+ .describe("Scope for collect_context. topic: collect docs relevant to topic, all: collect from the entire vault.");
67
+ export const obsidianContentMaxDocs = z
68
+ .number()
69
+ .int()
70
+ .min(1)
71
+ .max(100)
72
+ .default(20)
73
+ .describe("Maximum number of documents to process for collect_context");
74
+ export const obsidianContentMaxCharsPerDoc = z
75
+ .number()
76
+ .int()
77
+ .min(200)
78
+ .max(8000)
79
+ .default(1800)
80
+ .describe("Maximum number of characters extracted per document for collect_context");
81
+ export const obsidianContentMemoryMode = z
82
+ .enum(["response_only", "vault_note", "both"])
83
+ .default("response_only")
84
+ .describe("Memory output mode for collect_context. response_only: return packet only, vault_note: save to vault note only, both: return and save.");
85
+ export const obsidianContentContinuationToken = z
86
+ .string()
87
+ .min(1)
88
+ .describe("Continuation token to resume a previous collect_context batch operation");
89
+ export const obsidianContentMemoryPath = z
90
+ .string()
91
+ .describe("Path to a stored memory note for load_memory (default: memory/context_memory_snapshot.v1.md)");
92
+ // input schema
93
+ export const obsidianContentQueryParamsZod = z.object({
94
+ action: obsidianContentActions,
95
+ keyword: obsidianContentKeyword.optional(),
96
+ query: obsidianContentQuery.optional(),
97
+ filename: obsidianContentFilename.optional(),
98
+ limit: obsidianContentLimit.optional(),
99
+ includeContent: obsidianContentIncludeContent.optional(),
100
+ includeFrontmatter: obsidianContentIncludeFrontmatter.optional(),
101
+ excerptLength: obsidianContentExcerptLength.optional(),
102
+ topic: obsidianContentTopic.optional(),
103
+ scope: obsidianContentScope.optional(),
104
+ maxDocs: obsidianContentMaxDocs.optional(),
105
+ maxCharsPerDoc: obsidianContentMaxCharsPerDoc.optional(),
106
+ memoryMode: obsidianContentMemoryMode.optional(),
107
+ continuationToken: obsidianContentContinuationToken.optional(),
108
+ memoryPath: obsidianContentMemoryPath.optional(),
109
+ compressionMode: compressionModeSchema.optional(),
110
+ maxOutputChars: maxOutputCharsSchema.optional(),
111
+ quiet: quietMode.optional(),
112
+ });
113
+ export const aiInstructionsSchema = z
114
+ .object({
115
+ purpose: z
116
+ .string()
117
+ .describe("The purpose of providing this content to the AI"),
118
+ usage: z.string().describe("How the AI should use this content"),
119
+ content_type: z
120
+ .string()
121
+ .describe("The format of the content, e.g., markdown"),
122
+ })
123
+ .describe("Instructions for AI on how to process the document content");
124
+ export const metadataSchema = z
125
+ .object({
126
+ fullPath: z.string().describe("The full path to the file in the vault"),
127
+ title: z
128
+ .string()
129
+ .nullable()
130
+ .describe("The title of the document, if available"),
131
+ tags: z
132
+ .array(z.string())
133
+ .describe("List of tags associated with the document"),
134
+ category: z.string().describe("Category of the document, if available"),
135
+ date: z
136
+ .string()
137
+ .nullable()
138
+ .describe("Creation date of the document in ISO 8601 format, if available"),
139
+ summary: z
140
+ .string()
141
+ .nullable()
142
+ .describe("Brief summary or abstract of the document, if available"),
143
+ completed: z
144
+ .boolean()
145
+ .describe("Indicates whether a task or item is completed"),
146
+ })
147
+ .describe("Metadata extracted from the document frontmatter, if available");
148
+ //# sourceMappingURL=params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../../src/tools/vault/params.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import { z } from "zod";
2
+ import { compressionModeSchema, responseTypeSchema, } from "../../../tools/vault/params.js";
3
+ export const collectContextScopeSchema = z.enum(["topic", "all"]);
4
+ export const collectContextMemoryModeSchema = z.enum([
5
+ "response_only",
6
+ "vault_note",
7
+ "both",
8
+ ]);
9
+ export const collectContextRelevanceSchema = z.enum(["high", "medium", "low"]);
10
+ export const collectContextTokenV1Schema = z.object({
11
+ v: z.literal(1),
12
+ cursor: z.number().int().min(0),
13
+ scope: collectContextScopeSchema,
14
+ topic: z.string().nullable(),
15
+ maxDocs: z.number().int().min(1),
16
+ maxCharsPerDoc: z.number().int().min(200),
17
+ memoryMode: collectContextMemoryModeSchema,
18
+ });
19
+ export const collectContextDocumentSchema = z.object({
20
+ filename: z.string(),
21
+ fullPath: z.string(),
22
+ title: z.string(),
23
+ tags: z.array(z.string()),
24
+ doc_hash: z.string(),
25
+ summary: z.string(),
26
+ excerpt: z.string(),
27
+ evidence_snippets: z.array(z.string()),
28
+ relevance: collectContextRelevanceSchema,
29
+ stats: z.object({
30
+ contentLength: z.number().int().nonnegative(),
31
+ wordCount: z.number().int().nonnegative(),
32
+ hasContent: z.boolean(),
33
+ }),
34
+ backlinks_count: z.number().int().nonnegative(),
35
+ truncated: z.boolean(),
36
+ });
37
+ export const collectContextMemoryPacketSchema = z.object({
38
+ topicSummary: z.string(),
39
+ keyFacts: z.array(z.string()),
40
+ experienceBullets: z.array(z.string()),
41
+ sourceRefs: z.array(z.object({
42
+ filePath: z.string(),
43
+ title: z.string(),
44
+ relevance: collectContextRelevanceSchema,
45
+ evidenceSnippets: z.array(z.string()),
46
+ })),
47
+ openQuestions: z.array(z.string()),
48
+ confidence: z.number().min(0).max(1),
49
+ });
50
+ export const collectContextPayloadSchema = z.object({
51
+ action: z.literal("collect_context"),
52
+ scope: collectContextScopeSchema,
53
+ topic: z.string().nullable(),
54
+ matched_total: z.number().int().nonnegative(),
55
+ total_in_vault: z.number().int().nonnegative(),
56
+ documents: z.array(collectContextDocumentSchema),
57
+ memory_packet: collectContextMemoryPacketSchema,
58
+ memory_mode: collectContextMemoryModeSchema,
59
+ memory_write: z.object({
60
+ requested: z.boolean(),
61
+ status: z.enum(["not_requested", "written", "failed"]),
62
+ note_path: z.string().optional(),
63
+ generated_at: z.string().optional(),
64
+ source_hash: z.string().optional(),
65
+ reason: z.string().optional(),
66
+ }),
67
+ cache: z
68
+ .object({
69
+ key: z.string(),
70
+ hit: z.boolean(),
71
+ schema_version: z.string(),
72
+ topic: z.string().nullable(),
73
+ doc_hash: z.string(),
74
+ mode: collectContextMemoryModeSchema,
75
+ })
76
+ .optional(),
77
+ batch: z.object({
78
+ start_cursor: z.number().int().nonnegative(),
79
+ processed_docs: z.number().int().nonnegative(),
80
+ consumed_candidates: z.number().int().nonnegative(),
81
+ max_docs: z.number().int().positive(),
82
+ max_chars_per_doc: z.number().int().min(200),
83
+ has_more: z.boolean(),
84
+ continuation_token: z.string().nullable(),
85
+ }),
86
+ });
87
+ export const collectContextCompressionSchema = z.object({
88
+ mode: compressionModeSchema,
89
+ source_chars: z.number().int().nonnegative(),
90
+ output_chars: z.number().int().nonnegative(),
91
+ estimated_tokens: z.number().int().nonnegative(),
92
+ max_output_chars: z.number().int().positive().nullable(),
93
+ truncated: z.boolean(),
94
+ expand_hint: z.string(),
95
+ });
96
+ export const collectContextResponseDataSchema = collectContextPayloadSchema.extend({
97
+ compression: collectContextCompressionSchema,
98
+ });
99
+ export const collectContextResponseSchema = z.object({
100
+ type: responseTypeSchema,
101
+ text: collectContextResponseDataSchema,
102
+ });
103
+ //# sourceMappingURL=collect_context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect_context.js","sourceRoot":"","sources":["../../../../src/tools/vault/types/collect_context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { z } from "zod";
2
+ import { responseTypeSchema } from "../../../tools/vault/params.js";
3
+ import { FrontMatterSchema } from "../../../utils/processor/types.js";
4
+ // import { metadataSchema } from '@/tools/vault/types/@/tools/vault/params.js';
5
+ // 실제 응답 구조에 맞춘 스키마
6
+ const metadataSchema = FrontMatterSchema;
7
+ const documentStatsSchema = z
8
+ .object({
9
+ contentLength: z
10
+ .number()
11
+ .describe("Total number of characters in the content"),
12
+ })
13
+ .describe("Document statistics");
14
+ const documentSchema = z
15
+ .object({
16
+ filename: z.string().describe("The filename of the document"),
17
+ fullPath: z.string().describe("The full path to the file in the vault"),
18
+ metadata: metadataSchema,
19
+ stats: documentStatsSchema,
20
+ })
21
+ .describe("Document information");
22
+ const vaultOverviewSchema = z
23
+ .object({
24
+ total_documents: z
25
+ .number()
26
+ .describe("Total number of documents in the vault"),
27
+ showing: z.number().describe("Number of documents being displayed"),
28
+ })
29
+ .describe("Vault overview statistics");
30
+ const aiInstructionsSchema = z
31
+ .object({
32
+ purpose: z.string().describe("Purpose of the response"),
33
+ usage: z.string().describe("How to use the response"),
34
+ note: z.string().describe("Additional notes"),
35
+ })
36
+ .describe("AI instructions for using the response");
37
+ // 실제 listAllDocuments 응답 구조
38
+ export const listAllDocumentsDataSchema = z
39
+ .object({
40
+ vault_overview: vaultOverviewSchema,
41
+ documents: z
42
+ .array(documentSchema)
43
+ .describe("List of all documents in the vault"),
44
+ })
45
+ .describe("Complete response data for listing all documents");
46
+ // list all documents response schema - 실제 MCP 응답 구조에 맞춤
47
+ export const listAllDocumentsResponseSchema = z
48
+ .object({
49
+ type: responseTypeSchema,
50
+ text: listAllDocumentsDataSchema,
51
+ })
52
+ .describe("Response schema for listing all documents in the Obsidian vault");
53
+ //# sourceMappingURL=list_all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list_all.js","sourceRoot":"","sources":["../../../../src/tools/vault/types/list_all.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,gFAAgF;AAEhF,mBAAmB;AACnB,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAEzC,MAAM,mBAAmB,GAAG,CAAC;KAC3B,MAAM,CAAC;IACP,aAAa,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,2CAA2C,CAAC;CACvD,CAAC;KACD,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAElC,MAAM,cAAc,GAAG,CAAC;KACtB,MAAM,CAAC;IACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IAC7D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACvE,QAAQ,EAAE,cAAc;IACxB,KAAK,EAAE,mBAAmB;CAC1B,CAAC;KACD,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAEnC,MAAM,mBAAmB,GAAG,CAAC;KAC3B,MAAM,CAAC;IACP,eAAe,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,CAAC,wCAAwC,CAAC;IACpD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;CACnE,CAAC;KACD,QAAQ,CAAC,2BAA2B,CAAC,CAAC;AAExC,MAAM,oBAAoB,GAAG,CAAC;KAC5B,MAAM,CAAC;IACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CAC7C,CAAC;KACD,QAAQ,CAAC,wCAAwC,CAAC,CAAC;AAErD,4BAA4B;AAC5B,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACzC,MAAM,CAAC;IACP,cAAc,EAAE,mBAAmB;IACnC,SAAS,EAAE,CAAC;SACV,KAAK,CAAC,cAAc,CAAC;SACrB,QAAQ,CAAC,oCAAoC,CAAC;CAChD,CAAC;KACD,QAAQ,CAAC,kDAAkD,CAAC,CAAC;AAE/D,wDAAwD;AACxD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACP,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,0BAA0B;CAChC,CAAC;KACD,QAAQ,CAAC,iEAAiE,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { z } from "zod";
2
+ import { responseTypeSchema } from "../../../tools/vault/params.js";
3
+ import { FrontMatterSchema } from "../../../utils/processor/types.js";
4
+ const statsSchema = z
5
+ .object({
6
+ wordCount: z.number().describe("Total number of words in the content"),
7
+ lineCount: z.number().describe("Total number of lines in the content"),
8
+ contentLength: z
9
+ .number()
10
+ .describe("Total number of characters in the content from index"),
11
+ hasContent: z.boolean().describe("Whether the document has any content"),
12
+ characterCount: z
13
+ .number()
14
+ .describe("Total number of characters in the content"),
15
+ })
16
+ .describe("Basic statistics about the document content");
17
+ const backlinkSchema = z.object({
18
+ filePath: z.string(),
19
+ title: z.string(),
20
+ });
21
+ export const readSpecificFileDocumentData = z
22
+ .object({
23
+ filePath: z.string().describe("The full path to the file"),
24
+ filename: z
25
+ .string()
26
+ .describe("The name of the file that was read")
27
+ .optional(), // filename은 이제 최상위가 아닐 수 있음
28
+ frontmatter: FrontMatterSchema.describe("The frontmatter metadata of the file"),
29
+ contentLength: z.number(),
30
+ imageLinks: z.array(z.string()),
31
+ documentLinks: z.array(z.string()),
32
+ content: z.string().describe("The full text content of the file"),
33
+ stats: statsSchema,
34
+ backlinks: z.array(backlinkSchema).optional(),
35
+ })
36
+ .describe("Response schema for reading a specific file from the Obsidian vault");
37
+ export const readSpecificFileResponseSchema = z.object({
38
+ type: responseTypeSchema,
39
+ text: readSpecificFileDocumentData,
40
+ });
41
+ //# sourceMappingURL=read_specific.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read_specific.js","sourceRoot":"","sources":["../../../../src/tools/vault/types/read_specific.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,GAAG,CAAC;KACnB,MAAM,CAAC;IACP,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACtE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACtE,aAAa,EAAE,CAAC;SACd,MAAM,EAAE;SACR,QAAQ,CAAC,sDAAsD,CAAC;IAClE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACxE,cAAc,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,CAAC,2CAA2C,CAAC;CACvD,CAAC;KACD,QAAQ,CAAC,6CAA6C,CAAC,CAAC;AAE1D,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC;KAC3C,MAAM,CAAC;IACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IAC1D,QAAQ,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,CAAC,oCAAoC,CAAC;SAC9C,QAAQ,EAAE,EAAE,4BAA4B;IAC1C,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CACtC,sCAAsC,CACtC;IACD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IACjE,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC;KACD,QAAQ,CACR,qEAAqE,CACrE,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,IAAI,EAAE,kBAAkB;IACxB,IAAI,EAAE,4BAA4B;CAClC,CAAC,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { z } from "zod";
2
+ import { FrontMatterSchema } from "../../../utils/processor/types.js";
3
+ const DocumentMetadataSchema = FrontMatterSchema;
4
+ const DocumentStatsSchema = z.object({
5
+ contentLength: z.number(),
6
+ hasContent: z.boolean(),
7
+ wordCount: z.number(),
8
+ });
9
+ // Schema for content when includeContent is true
10
+ const FullContentSchema = z.object({
11
+ full: z.string(),
12
+ excerpt: z.string(),
13
+ });
14
+ // Schema for content when includeContent is false
15
+ const PreviewContentSchema = z.object({
16
+ preview: z.string(),
17
+ note: z.string(),
18
+ });
19
+ // Schema for a single document
20
+ export const DocumentSchema = z.object({
21
+ filename: z.string(),
22
+ fullPath: z.string(),
23
+ metadata: DocumentMetadataSchema,
24
+ stats: DocumentStatsSchema,
25
+ content: z.union([FullContentSchema, PreviewContentSchema]),
26
+ });
27
+ // Schema for the main successful search result
28
+ export const SearchSuccessSchema = z.object({
29
+ query: z.string(),
30
+ found: z.number(),
31
+ total_in_vault: z.number(),
32
+ documents: z.array(DocumentSchema),
33
+ });
34
+ // Schema for when no documents are found
35
+ export const SearchNotFoundSchema = z.object({
36
+ query: z.string(),
37
+ found: z.literal(0),
38
+ message: z.string(),
39
+ suggestion: z.string(),
40
+ });
41
+ // Schema for the quiet mode response
42
+ export const SearchQuietSchema = z.object({
43
+ found: z.number(),
44
+ filenames: z.array(z.string()),
45
+ });
46
+ // Schema for an error response
47
+ export const SearchErrorSchema = z.object({
48
+ error: z.string(),
49
+ action: z.string(),
50
+ parameters: z.any(),
51
+ });
52
+ // Union schema for all possible search results
53
+ export const SearchResultSchema = z.union([
54
+ SearchSuccessSchema,
55
+ SearchNotFoundSchema,
56
+ SearchQuietSchema,
57
+ SearchErrorSchema,
58
+ ]);
59
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/tools/vault/types/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,sBAAsB,GAAG,iBAAiB,CAAC;AACjD,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,iDAAiD;AACjD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;CAChB,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,sBAAsB;IAChC,KAAK,EAAE,mBAAmB;IAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;CAC3D,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;CAClC,CAAC,CAAC;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,qCAAqC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAEH,+BAA+B;AAC/B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE;CACnB,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC;IACzC,mBAAmB;IACnB,oBAAoB;IACpB,iBAAiB;IACjB,iBAAiB;CACjB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { ObsidianContentQueryParams } from "../../../../tools/vault/params.js";
3
+ import type { VaultManager } from "../../../../utils/VaultManger/VaultManager.js";
4
+ export declare function collectContext(vaultManager: VaultManager, params: ObsidianContentQueryParams): Promise<CallToolResult>;
5
+ //# sourceMappingURL=collect_context.d.ts.map