obsidian-mcp-server 1.5.8 → 2.0.2

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 (221) hide show
  1. package/README.md +248 -104
  2. package/dist/config/index.d.ts +41 -0
  3. package/dist/config/index.js +191 -0
  4. package/dist/index.d.ts +1 -5
  5. package/dist/index.js +296 -18
  6. package/dist/mcp-server/server.d.ts +33 -0
  7. package/dist/mcp-server/server.js +211 -0
  8. package/dist/mcp-server/tools/obsidianDeleteFileTool/index.d.ts +12 -0
  9. package/dist/mcp-server/tools/obsidianDeleteFileTool/index.js +12 -0
  10. package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.d.ts +51 -0
  11. package/dist/mcp-server/tools/obsidianDeleteFileTool/logic.js +168 -0
  12. package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.d.ts +19 -0
  13. package/dist/mcp-server/tools/obsidianDeleteFileTool/registration.js +91 -0
  14. package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.d.ts +12 -0
  15. package/dist/mcp-server/tools/obsidianGlobalSearchTool/index.js +12 -0
  16. package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.d.ts +77 -0
  17. package/dist/mcp-server/tools/obsidianGlobalSearchTool/logic.js +341 -0
  18. package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.d.ts +18 -0
  19. package/dist/mcp-server/tools/obsidianGlobalSearchTool/registration.js +69 -0
  20. package/dist/mcp-server/tools/obsidianListFilesTool/index.d.ts +12 -0
  21. package/dist/mcp-server/tools/obsidianListFilesTool/index.js +12 -0
  22. package/dist/mcp-server/tools/obsidianListFilesTool/logic.d.ts +64 -0
  23. package/dist/mcp-server/tools/obsidianListFilesTool/logic.js +179 -0
  24. package/dist/mcp-server/tools/obsidianListFilesTool/registration.d.ts +19 -0
  25. package/dist/mcp-server/tools/obsidianListFilesTool/registration.js +96 -0
  26. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.d.ts +3 -0
  27. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/index.js +2 -0
  28. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.d.ts +42 -0
  29. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/logic.js +152 -0
  30. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.d.ts +3 -0
  31. package/dist/mcp-server/tools/obsidianManageFrontmatterTool/registration.js +52 -0
  32. package/dist/mcp-server/tools/obsidianManageTagsTool/index.d.ts +3 -0
  33. package/dist/mcp-server/tools/obsidianManageTagsTool/index.js +2 -0
  34. package/dist/mcp-server/tools/obsidianManageTagsTool/logic.d.ts +28 -0
  35. package/dist/mcp-server/tools/obsidianManageTagsTool/logic.js +161 -0
  36. package/dist/mcp-server/tools/obsidianManageTagsTool/registration.d.ts +3 -0
  37. package/dist/mcp-server/tools/obsidianManageTagsTool/registration.js +52 -0
  38. package/dist/mcp-server/tools/obsidianReadFileTool/index.d.ts +12 -0
  39. package/dist/mcp-server/tools/obsidianReadFileTool/index.js +12 -0
  40. package/dist/mcp-server/tools/obsidianReadFileTool/logic.d.ts +87 -0
  41. package/dist/mcp-server/tools/obsidianReadFileTool/logic.js +216 -0
  42. package/dist/mcp-server/tools/obsidianReadFileTool/registration.d.ts +20 -0
  43. package/dist/mcp-server/tools/obsidianReadFileTool/registration.js +101 -0
  44. package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.d.ts +12 -0
  45. package/dist/mcp-server/tools/obsidianSearchReplaceTool/index.js +12 -0
  46. package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.d.ts +255 -0
  47. package/dist/mcp-server/tools/obsidianSearchReplaceTool/logic.js +583 -0
  48. package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.d.ts +22 -0
  49. package/dist/mcp-server/tools/obsidianSearchReplaceTool/registration.js +111 -0
  50. package/dist/mcp-server/tools/obsidianUpdateFileTool/index.d.ts +12 -0
  51. package/dist/mcp-server/tools/obsidianUpdateFileTool/index.js +12 -0
  52. package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.d.ts +183 -0
  53. package/dist/mcp-server/tools/obsidianUpdateFileTool/logic.js +490 -0
  54. package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.d.ts +21 -0
  55. package/dist/mcp-server/tools/obsidianUpdateFileTool/registration.js +108 -0
  56. package/dist/mcp-server/transports/authentication/authContext.d.ts +33 -0
  57. package/dist/mcp-server/transports/authentication/authContext.js +24 -0
  58. package/dist/mcp-server/transports/authentication/authMiddleware.d.ts +30 -0
  59. package/dist/mcp-server/transports/authentication/authMiddleware.js +145 -0
  60. package/dist/mcp-server/transports/authentication/authUtils.d.ts +18 -0
  61. package/dist/mcp-server/transports/authentication/authUtils.js +45 -0
  62. package/dist/mcp-server/transports/authentication/oauthMiddleware.d.ts +24 -0
  63. package/dist/mcp-server/transports/authentication/oauthMiddleware.js +109 -0
  64. package/dist/mcp-server/transports/authentication/types.d.ts +17 -0
  65. package/dist/mcp-server/transports/authentication/types.js +5 -0
  66. package/dist/mcp-server/transports/httpTransport.d.ts +24 -0
  67. package/dist/mcp-server/transports/httpTransport.js +496 -0
  68. package/dist/mcp-server/transports/stdioTransport.d.ts +42 -0
  69. package/dist/mcp-server/transports/stdioTransport.js +63 -0
  70. package/dist/services/obsidianRestAPI/index.d.ts +15 -0
  71. package/dist/services/obsidianRestAPI/index.js +17 -0
  72. package/dist/services/obsidianRestAPI/methods/activeFileMethods.d.ts +38 -0
  73. package/dist/services/obsidianRestAPI/methods/activeFileMethods.js +62 -0
  74. package/dist/services/obsidianRestAPI/methods/commandMethods.d.ts +22 -0
  75. package/dist/services/obsidianRestAPI/methods/commandMethods.js +31 -0
  76. package/dist/services/obsidianRestAPI/methods/openMethods.d.ts +16 -0
  77. package/dist/services/obsidianRestAPI/methods/openMethods.js +21 -0
  78. package/dist/services/obsidianRestAPI/methods/patchMethods.d.ts +37 -0
  79. package/dist/services/obsidianRestAPI/methods/patchMethods.js +94 -0
  80. package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.d.ts +42 -0
  81. package/dist/services/obsidianRestAPI/methods/periodicNoteMethods.js +66 -0
  82. package/dist/services/obsidianRestAPI/methods/searchMethods.d.ts +25 -0
  83. package/dist/services/obsidianRestAPI/methods/searchMethods.js +36 -0
  84. package/dist/services/obsidianRestAPI/methods/vaultMethods.d.ts +58 -0
  85. package/dist/services/obsidianRestAPI/methods/vaultMethods.js +144 -0
  86. package/dist/services/obsidianRestAPI/service.d.ts +195 -0
  87. package/dist/services/obsidianRestAPI/service.js +379 -0
  88. package/dist/services/obsidianRestAPI/types.d.ts +127 -0
  89. package/dist/services/obsidianRestAPI/types.js +7 -0
  90. package/dist/services/obsidianRestAPI/vaultCache/index.d.ts +4 -0
  91. package/dist/services/obsidianRestAPI/vaultCache/index.js +4 -0
  92. package/dist/services/obsidianRestAPI/vaultCache/service.d.ts +88 -0
  93. package/dist/services/obsidianRestAPI/vaultCache/service.js +299 -0
  94. package/dist/types-global/errors.d.ts +73 -0
  95. package/dist/types-global/errors.js +71 -0
  96. package/dist/utils/index.d.ts +5 -8
  97. package/dist/utils/index.js +13 -9
  98. package/dist/utils/internal/asyncUtils.d.ts +54 -0
  99. package/dist/utils/internal/asyncUtils.js +101 -0
  100. package/dist/utils/internal/errorHandler.d.ts +176 -0
  101. package/dist/utils/internal/errorHandler.js +351 -0
  102. package/dist/utils/internal/index.d.ts +4 -0
  103. package/dist/utils/internal/index.js +4 -0
  104. package/dist/utils/internal/logger.d.ts +141 -0
  105. package/dist/utils/internal/logger.js +406 -0
  106. package/dist/utils/internal/requestContext.d.ts +83 -0
  107. package/dist/utils/internal/requestContext.js +72 -0
  108. package/dist/utils/metrics/index.d.ts +1 -0
  109. package/dist/utils/metrics/index.js +1 -0
  110. package/dist/utils/metrics/tokenCounter.d.ts +27 -0
  111. package/dist/utils/metrics/tokenCounter.js +128 -0
  112. package/dist/utils/obsidian/index.d.ts +5 -0
  113. package/dist/utils/obsidian/index.js +5 -0
  114. package/dist/utils/obsidian/obsidianApiUtils.d.ts +14 -0
  115. package/dist/utils/obsidian/obsidianApiUtils.js +29 -0
  116. package/dist/utils/obsidian/obsidianStatUtils.d.ts +68 -0
  117. package/dist/utils/obsidian/obsidianStatUtils.js +143 -0
  118. package/dist/utils/parsing/dateParser.d.ts +56 -0
  119. package/dist/utils/parsing/dateParser.js +104 -0
  120. package/dist/utils/parsing/index.d.ts +2 -0
  121. package/dist/utils/parsing/index.js +3 -0
  122. package/dist/utils/parsing/jsonParser.d.ts +80 -0
  123. package/dist/utils/parsing/jsonParser.js +133 -0
  124. package/dist/utils/security/idGenerator.d.ts +140 -0
  125. package/dist/utils/security/idGenerator.js +194 -0
  126. package/dist/utils/security/index.d.ts +3 -0
  127. package/dist/utils/security/index.js +3 -0
  128. package/dist/utils/security/rateLimiter.d.ts +156 -0
  129. package/dist/utils/security/rateLimiter.js +235 -0
  130. package/dist/utils/security/sanitization.d.ts +244 -0
  131. package/dist/utils/security/sanitization.js +599 -0
  132. package/package.json +58 -37
  133. package/dist/index.js.map +0 -1
  134. package/dist/mcp/handlers.d.ts +0 -29
  135. package/dist/mcp/handlers.js +0 -305
  136. package/dist/mcp/handlers.js.map +0 -1
  137. package/dist/mcp/index.d.ts +0 -6
  138. package/dist/mcp/index.js +0 -7
  139. package/dist/mcp/index.js.map +0 -1
  140. package/dist/mcp/server.d.ts +0 -18
  141. package/dist/mcp/server.js +0 -240
  142. package/dist/mcp/server.js.map +0 -1
  143. package/dist/mcp/types.d.ts +0 -70
  144. package/dist/mcp/types.js +0 -49
  145. package/dist/mcp/types.js.map +0 -1
  146. package/dist/obsidian/client.d.ts +0 -109
  147. package/dist/obsidian/client.js +0 -403
  148. package/dist/obsidian/client.js.map +0 -1
  149. package/dist/obsidian/errors.d.ts +0 -28
  150. package/dist/obsidian/errors.js +0 -75
  151. package/dist/obsidian/errors.js.map +0 -1
  152. package/dist/obsidian/index.d.ts +0 -6
  153. package/dist/obsidian/index.js +0 -7
  154. package/dist/obsidian/index.js.map +0 -1
  155. package/dist/obsidian/types.d.ts +0 -107
  156. package/dist/obsidian/types.js +0 -12
  157. package/dist/obsidian/types.js.map +0 -1
  158. package/dist/resources/index.d.ts +0 -13
  159. package/dist/resources/index.js +0 -15
  160. package/dist/resources/index.js.map +0 -1
  161. package/dist/resources/tags.d.ts +0 -39
  162. package/dist/resources/tags.js +0 -257
  163. package/dist/resources/tags.js.map +0 -1
  164. package/dist/resources/types.d.ts +0 -27
  165. package/dist/resources/types.js +0 -5
  166. package/dist/resources/types.js.map +0 -1
  167. package/dist/tools/base.d.ts +0 -46
  168. package/dist/tools/base.js +0 -88
  169. package/dist/tools/base.js.map +0 -1
  170. package/dist/tools/files/content.d.ts +0 -58
  171. package/dist/tools/files/content.js +0 -171
  172. package/dist/tools/files/content.js.map +0 -1
  173. package/dist/tools/files/index.d.ts +0 -14
  174. package/dist/tools/files/index.js +0 -22
  175. package/dist/tools/files/index.js.map +0 -1
  176. package/dist/tools/files/list.d.ts +0 -35
  177. package/dist/tools/files/list.js +0 -133
  178. package/dist/tools/files/list.js.map +0 -1
  179. package/dist/tools/index.d.ts +0 -21
  180. package/dist/tools/index.js +0 -31
  181. package/dist/tools/index.js.map +0 -1
  182. package/dist/tools/properties/index.d.ts +0 -14
  183. package/dist/tools/properties/index.js +0 -19
  184. package/dist/tools/properties/index.js.map +0 -1
  185. package/dist/tools/properties/manager.d.ts +0 -62
  186. package/dist/tools/properties/manager.js +0 -302
  187. package/dist/tools/properties/manager.js.map +0 -1
  188. package/dist/tools/properties/tools.d.ts +0 -47
  189. package/dist/tools/properties/tools.js +0 -239
  190. package/dist/tools/properties/tools.js.map +0 -1
  191. package/dist/tools/properties/types.d.ts +0 -141
  192. package/dist/tools/properties/types.js +0 -70
  193. package/dist/tools/properties/types.js.map +0 -1
  194. package/dist/tools/search/complex.d.ts +0 -38
  195. package/dist/tools/search/complex.js +0 -270
  196. package/dist/tools/search/complex.js.map +0 -1
  197. package/dist/tools/search/index.d.ts +0 -14
  198. package/dist/tools/search/index.js +0 -20
  199. package/dist/tools/search/index.js.map +0 -1
  200. package/dist/tools/search/simple.d.ts +0 -25
  201. package/dist/tools/search/simple.js +0 -127
  202. package/dist/tools/search/simple.js.map +0 -1
  203. package/dist/utils/errors.d.ts +0 -24
  204. package/dist/utils/errors.js +0 -59
  205. package/dist/utils/errors.js.map +0 -1
  206. package/dist/utils/idGenerator.d.ts +0 -15
  207. package/dist/utils/idGenerator.js +0 -21
  208. package/dist/utils/idGenerator.js.map +0 -1
  209. package/dist/utils/index.js.map +0 -1
  210. package/dist/utils/logging.d.ts +0 -245
  211. package/dist/utils/logging.js +0 -417
  212. package/dist/utils/logging.js.map +0 -1
  213. package/dist/utils/rate-limiting.d.ts +0 -50
  214. package/dist/utils/rate-limiting.js +0 -94
  215. package/dist/utils/rate-limiting.js.map +0 -1
  216. package/dist/utils/tokenization.d.ts +0 -28
  217. package/dist/utils/tokenization.js +0 -75
  218. package/dist/utils/tokenization.js.map +0 -1
  219. package/dist/utils/validation.d.ts +0 -22
  220. package/dist/utils/validation.js +0 -92
  221. package/dist/utils/validation.js.map +0 -1
@@ -1,141 +0,0 @@
1
- /**
2
- * Property types and schemas for Obsidian notes
3
- */
4
- import { z } from "zod";
5
- /**
6
- * Define validation schemas
7
- * Allow any string for type to be more flexible
8
- */
9
- export declare const PropertyType: z.ZodString;
10
- /**
11
- * Valid status values for notes
12
- */
13
- export declare const StatusEnum: z.ZodEnum<["draft", "in-progress", "review", "complete"]>;
14
- /**
15
- * Schema for reading properties (includes timestamps)
16
- */
17
- export declare const ObsidianPropertiesSchema: z.ZodObject<{
18
- title: z.ZodOptional<z.ZodString>;
19
- created: z.ZodOptional<z.ZodString>;
20
- modified: z.ZodOptional<z.ZodString>;
21
- author: z.ZodOptional<z.ZodString>;
22
- type: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
23
- tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
24
- status: z.ZodOptional<z.ZodArray<z.ZodEnum<["draft", "in-progress", "review", "complete"]>, "many">>;
25
- version: z.ZodOptional<z.ZodString>;
26
- platform: z.ZodOptional<z.ZodString>;
27
- repository: z.ZodOptional<z.ZodString>;
28
- dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
29
- sources: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
30
- urls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
31
- papers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
32
- custom: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodUnknown, z.objectOutputType<{}, z.ZodUnknown, "strip">, z.objectInputType<{}, z.ZodUnknown, "strip">>>;
33
- }, "strip", z.ZodTypeAny, {
34
- version?: string | undefined;
35
- type?: string[] | undefined;
36
- status?: ("draft" | "in-progress" | "review" | "complete")[] | undefined;
37
- title?: string | undefined;
38
- created?: string | undefined;
39
- modified?: string | undefined;
40
- author?: string | undefined;
41
- tags?: string[] | undefined;
42
- platform?: string | undefined;
43
- repository?: string | undefined;
44
- dependencies?: string[] | undefined;
45
- sources?: string[] | undefined;
46
- urls?: string[] | undefined;
47
- papers?: string[] | undefined;
48
- custom?: z.objectOutputType<{}, z.ZodUnknown, "strip"> | undefined;
49
- }, {
50
- version?: string | undefined;
51
- type?: string[] | undefined;
52
- status?: ("draft" | "in-progress" | "review" | "complete")[] | undefined;
53
- title?: string | undefined;
54
- created?: string | undefined;
55
- modified?: string | undefined;
56
- author?: string | undefined;
57
- tags?: string[] | undefined;
58
- platform?: string | undefined;
59
- repository?: string | undefined;
60
- dependencies?: string[] | undefined;
61
- sources?: string[] | undefined;
62
- urls?: string[] | undefined;
63
- papers?: string[] | undefined;
64
- custom?: z.objectInputType<{}, z.ZodUnknown, "strip"> | undefined;
65
- }>;
66
- /**
67
- * Schema for validating property updates (excludes timestamps)
68
- */
69
- export declare const PropertyUpdateSchema: z.ZodObject<{
70
- title: z.ZodOptional<z.ZodString>;
71
- author: z.ZodOptional<z.ZodString>;
72
- type: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
73
- tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
74
- status: z.ZodOptional<z.ZodArray<z.ZodEnum<["draft", "in-progress", "review", "complete"]>, "many">>;
75
- version: z.ZodOptional<z.ZodString>;
76
- platform: z.ZodOptional<z.ZodString>;
77
- repository: z.ZodOptional<z.ZodString>;
78
- dependencies: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
79
- sources: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
80
- urls: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
81
- papers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
82
- custom: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodUnknown, z.objectOutputType<{}, z.ZodUnknown, "strip">, z.objectInputType<{}, z.ZodUnknown, "strip">>>;
83
- }, "strip", z.ZodTypeAny, {
84
- version?: string | undefined;
85
- type?: string[] | undefined;
86
- status?: ("draft" | "in-progress" | "review" | "complete")[] | undefined;
87
- title?: string | undefined;
88
- author?: string | undefined;
89
- tags?: string[] | undefined;
90
- platform?: string | undefined;
91
- repository?: string | undefined;
92
- dependencies?: string[] | undefined;
93
- sources?: string[] | undefined;
94
- urls?: string[] | undefined;
95
- papers?: string[] | undefined;
96
- custom?: z.objectOutputType<{}, z.ZodUnknown, "strip"> | undefined;
97
- }, {
98
- version?: string | undefined;
99
- type?: string[] | undefined;
100
- status?: ("draft" | "in-progress" | "review" | "complete")[] | undefined;
101
- title?: string | undefined;
102
- author?: string | undefined;
103
- tags?: string[] | undefined;
104
- platform?: string | undefined;
105
- repository?: string | undefined;
106
- dependencies?: string[] | undefined;
107
- sources?: string[] | undefined;
108
- urls?: string[] | undefined;
109
- papers?: string[] | undefined;
110
- custom?: z.objectInputType<{}, z.ZodUnknown, "strip"> | undefined;
111
- }>;
112
- /**
113
- * Derived types from schemas
114
- */
115
- export type ObsidianProperties = z.infer<typeof ObsidianPropertiesSchema>;
116
- export type PropertyUpdate = z.infer<typeof PropertyUpdateSchema>;
117
- /**
118
- * Property operation description
119
- */
120
- export interface PropertyOperation {
121
- operation: 'get' | 'update' | 'patch';
122
- filepath: string;
123
- properties?: Partial<ObsidianProperties>;
124
- replace?: boolean;
125
- }
126
- /**
127
- * Result of property validation
128
- */
129
- export interface ValidationResult {
130
- valid: boolean;
131
- errors: string[];
132
- }
133
- /**
134
- * Result of property operations
135
- */
136
- export interface PropertyManagerResult {
137
- success: boolean;
138
- message: string;
139
- properties?: ObsidianProperties;
140
- errors?: string[];
141
- }
@@ -1,70 +0,0 @@
1
- /**
2
- * Property types and schemas for Obsidian notes
3
- */
4
- import { z } from "zod";
5
- /**
6
- * Define validation schemas
7
- * Allow any string for type to be more flexible
8
- */
9
- export const PropertyType = z.string();
10
- /**
11
- * Valid status values for notes
12
- */
13
- export const StatusEnum = z.enum([
14
- "draft",
15
- "in-progress",
16
- "review",
17
- "complete"
18
- ]);
19
- /**
20
- * Schema for reading properties (includes timestamps)
21
- */
22
- export const ObsidianPropertiesSchema = z.object({
23
- // Basic Metadata
24
- // Note: Timestamps are managed automatically
25
- title: z.string().optional(),
26
- created: z.string().datetime().optional(), // Read-only, set on first creation
27
- modified: z.string().datetime().optional(), // Read-only, managed by MCP server
28
- author: z.string().optional(),
29
- // Classification
30
- type: z.array(PropertyType).optional(),
31
- // Organization
32
- tags: z.array(z.string()).optional(),
33
- // Technical Metadata
34
- status: z.array(StatusEnum).optional(),
35
- version: z.string().optional(),
36
- platform: z.string().optional(),
37
- repository: z.string().url().optional(),
38
- dependencies: z.array(z.string()).optional(),
39
- // References
40
- sources: z.array(z.string()).optional(),
41
- urls: z.array(z.string().url()).optional(),
42
- papers: z.array(z.string()).optional(),
43
- // Custom Fields
44
- custom: z.object({}).catchall(z.unknown()).optional() // Ensure 'custom' is an object if present
45
- });
46
- /**
47
- * Schema for validating property updates (excludes timestamps)
48
- */
49
- export const PropertyUpdateSchema = z.object({
50
- // Basic Metadata
51
- title: z.string().optional(),
52
- author: z.string().optional(),
53
- // Classification
54
- type: z.array(PropertyType).optional(),
55
- // Organization
56
- tags: z.array(z.string()).optional(),
57
- // Technical Metadata
58
- status: z.array(StatusEnum).optional(),
59
- version: z.string().optional(),
60
- platform: z.string().optional(),
61
- repository: z.string().url().optional(),
62
- dependencies: z.array(z.string()).optional(),
63
- // References
64
- sources: z.array(z.string()).optional(),
65
- urls: z.array(z.string().url()).optional(),
66
- papers: z.array(z.string()).optional(),
67
- // Custom Fields
68
- custom: z.object({}).catchall(z.unknown()).optional() // Ensure 'custom' is an object if present
69
- });
70
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/properties/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/B,OAAO;IACP,aAAa;IACb,QAAQ;IACR,UAAU;CACX,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,iBAAiB;IACjB,6CAA6C;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,mCAAmC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,mCAAmC;IAC/E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE7B,iBAAiB;IACjB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IAEtC,eAAe;IACf,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEpC,qBAAqB;IACrB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAE5C,aAAa;IACb,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEtC,gBAAgB;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,0CAA0C;CACjG,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,iBAAiB;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE7B,iBAAiB;IACjB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE;IAEtC,eAAe;IACf,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEpC,qBAAqB;IACrB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAE5C,aAAa;IACb,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAEtC,gBAAgB;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,0CAA0C;CACjG,CAAC,CAAC"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Complex search tool implementation
3
- */
4
- import { Tool } from "@modelcontextprotocol/sdk/types.js";
5
- import { ObsidianClient } from "../../obsidian/client.js";
6
- import { JsonLogicQuery } from "../../obsidian/types.js";
7
- import { BaseToolHandler } from "../base.js";
8
- /**
9
- * Tool name for complex search
10
- */
11
- export declare const COMPLEX_SEARCH_TOOL_NAME = "obsidian_complex_search";
12
- /**
13
- * Arguments for complex search operations
14
- */
15
- export interface ComplexSearchArgs {
16
- query: JsonLogicQuery;
17
- }
18
- /**
19
- * Tool handler for complex JsonLogic searches
20
- */
21
- export declare class ComplexSearchToolHandler extends BaseToolHandler<ComplexSearchArgs> {
22
- constructor(client: ObsidianClient);
23
- getToolDescription(): Tool;
24
- runTool(args: ComplexSearchArgs): Promise<Array<any>>;
25
- }
26
- /**
27
- * Tool handler for getting all tags used in the vault
28
- */
29
- export declare class GetTagsToolHandler extends BaseToolHandler<{
30
- path?: string;
31
- }> {
32
- private propertyManager;
33
- constructor(client: ObsidianClient);
34
- getToolDescription(): Tool;
35
- runTool(args: {
36
- path?: string;
37
- }): Promise<Array<any>>;
38
- }
@@ -1,270 +0,0 @@
1
- import { createLogger, ErrorCategoryType } from "../../utils/logging.js";
2
- import { BaseToolHandler } from "../base.js";
3
- import { PropertyManager } from "../properties/manager.js";
4
- // Create a logger for complex search operations
5
- const logger = createLogger('ComplexSearchTools');
6
- /**
7
- * Helper function to safely convert any error to an object
8
- */
9
- function errorToObject(error) {
10
- if (error instanceof Error) {
11
- return {
12
- name: error.name,
13
- message: error.message,
14
- stack: error.stack,
15
- errorCategory: ErrorCategoryType.CATEGORY_SYSTEM
16
- };
17
- }
18
- else if (typeof error === 'object' && error !== null) {
19
- return error;
20
- }
21
- else {
22
- return {
23
- error: String(error),
24
- errorCategory: ErrorCategoryType.CATEGORY_UNKNOWN
25
- };
26
- }
27
- }
28
- /**
29
- * Tool name for complex search
30
- */
31
- export const COMPLEX_SEARCH_TOOL_NAME = "obsidian_complex_search";
32
- /**
33
- * Tool handler for complex JsonLogic searches
34
- */
35
- export class ComplexSearchToolHandler extends BaseToolHandler {
36
- constructor(client) {
37
- super(COMPLEX_SEARCH_TOOL_NAME, client);
38
- }
39
- getToolDescription() {
40
- return {
41
- name: this.name,
42
- description: "Finds files based on path patterns using JsonLogic queries. Primarily supports `glob` for pattern matching (e.g., '*.md') and `var` for accessing the 'path' variable. Note: For content-based searches (full-text, tags within content, dates), use `obsidian_find_in_file`.",
43
- examples: [
44
- {
45
- description: "Find all markdown files in the 'Projects' folder",
46
- args: {
47
- query: {
48
- "glob": ["Projects/*.md", { "var": "path" }]
49
- }
50
- }
51
- },
52
- {
53
- description: "Find files in a specific subfolder",
54
- args: {
55
- query: {
56
- "glob": ["**/Test/*.md", { "var": "path" }]
57
- }
58
- }
59
- }
60
- ],
61
- inputSchema: {
62
- type: "object",
63
- properties: {
64
- query: {
65
- type: "object",
66
- description: "A JsonLogic query object targeting file paths. Example: `{\"glob\": [\"*.md\", {\"var\": \"path\"}]}` matches all markdown files."
67
- }
68
- },
69
- required: ["query"]
70
- }
71
- };
72
- }
73
- async runTool(args) {
74
- logger.startTimer('complex_search');
75
- try {
76
- logger.debug(`Executing complex search with query: ${JSON.stringify(args.query)}`, {
77
- queryType: Object.keys(args.query)[0]
78
- });
79
- // Perform search
80
- const results = await this.client.searchJson(args.query);
81
- // Format response based on result type
82
- const formattedResults = results.map(result => {
83
- if ('matches' in result) {
84
- // SimpleSearchResult
85
- return {
86
- filename: result.filename,
87
- matches: result.matches,
88
- score: result.score
89
- };
90
- }
91
- else {
92
- // SearchResult
93
- return {
94
- filename: result.filename,
95
- result: result.result
96
- };
97
- }
98
- });
99
- const elapsedMs = logger.endTimer('complex_search');
100
- logger.logOperationResult(true, 'complex_search', elapsedMs, {
101
- resultCount: results.length,
102
- queryType: Object.keys(args.query)[0]
103
- });
104
- logger.debug(`Complex search found ${results.length} results`);
105
- return this.createResponse({
106
- message: `Found ${results.length} result(s)`,
107
- results: formattedResults
108
- });
109
- }
110
- catch (error) {
111
- const elapsedMs = logger.endTimer('complex_search');
112
- logger.logOperationResult(false, 'complex_search', elapsedMs, {
113
- queryType: Object.keys(args.query)[0]
114
- });
115
- logger.error(`Complex search error`, errorToObject(error));
116
- return this.handleError(error);
117
- }
118
- }
119
- }
120
- /**
121
- * Tool handler for getting all tags used in the vault
122
- */
123
- export class GetTagsToolHandler extends BaseToolHandler {
124
- propertyManager;
125
- constructor(client) {
126
- super("obsidian_get_tags", client);
127
- this.propertyManager = new PropertyManager(client);
128
- }
129
- getToolDescription() {
130
- return {
131
- name: this.name,
132
- description: "Retrieves all tags defined in the YAML frontmatter of markdown files within your Obsidian vault, along with their usage counts and associated file paths. Optionally, limit the search to a specific folder.",
133
- examples: [
134
- {
135
- description: "Get all tags across the entire vault",
136
- args: {}
137
- },
138
- {
139
- description: "Get tags in Projects folder",
140
- args: {
141
- path: "Projects"
142
- }
143
- },
144
- {
145
- description: "Example response",
146
- args: {},
147
- response: {
148
- "tags": [
149
- {
150
- "name": "project",
151
- "count": 15,
152
- "files": [
153
- "Projects/ProjectA.md",
154
- "Projects/ProjectB.md"
155
- ]
156
- }
157
- ],
158
- "metadata": {
159
- "totalOccurrences": 45,
160
- "uniqueTags": 12,
161
- "scannedFiles": 30
162
- }
163
- }
164
- }
165
- ],
166
- inputSchema: {
167
- type: "object",
168
- properties: {
169
- path: {
170
- type: "string",
171
- description: "Optional folder path (relative to vault root) to restrict the tag search.",
172
- format: "path"
173
- }
174
- }
175
- }
176
- };
177
- }
178
- async runTool(args) {
179
- const operationId = `get_tags_${args.path || 'vault'}`;
180
- logger.startTimer(operationId);
181
- try {
182
- logger.debug(`Getting tags${args.path ? ` in path: ${args.path}` : ' in whole vault'}`);
183
- const tagMap = new Map();
184
- // Use searchJson to find files with .md extension
185
- // Using non-recursive glob first as it seemed more reliable in testing
186
- const query = args.path
187
- ? { "glob": [`${args.path}/*.md`.replace(/\\/g, '/'), { "var": "path" }] }
188
- : { "glob": ["**/*.md", { "var": "path" }] }; // Keep vault-wide as recursive
189
- logger.debug(`Constructed glob query: ${JSON.stringify(query)}`);
190
- const results = await this.client.searchJson(query);
191
- logger.debug(`searchJson returned ${results.length} results for the query.`);
192
- let scannedFiles = 0;
193
- let processedSuccessfully = 0;
194
- // Process each file to extract tags from frontmatter
195
- for (const result of results) {
196
- if (!('filename' in result))
197
- continue;
198
- try {
199
- const content = await this.client.getFileContents(result.filename);
200
- scannedFiles++;
201
- // Use PropertyManager to properly parse frontmatter
202
- const parseResult = this.propertyManager.parseProperties(content);
203
- // Check for parsing errors before accessing properties
204
- if (parseResult.error) {
205
- logger.warn(`Skipping tags for ${result.filename} due to parsing error: ${parseResult.error.message}`);
206
- continue; // Skip to the next file
207
- }
208
- // Process tags if they exist in the parsed properties
209
- const tags = parseResult.properties.tags;
210
- if (tags && Array.isArray(tags)) {
211
- // Process each tag
212
- for (const tag of tags) {
213
- // Ensure tag is a string before processing
214
- if (typeof tag === 'string') {
215
- const cleanTag = tag.startsWith('#') ? tag.substring(1) : tag; // Use updated internal logic
216
- if (!tagMap.has(cleanTag)) {
217
- tagMap.set(cleanTag, new Set());
218
- }
219
- tagMap.get(cleanTag).add(result.filename);
220
- }
221
- else {
222
- logger.warn(`Non-string tag found in ${result.filename}: ${JSON.stringify(tag)}`);
223
- }
224
- }
225
- }
226
- processedSuccessfully++;
227
- }
228
- catch (error) {
229
- logger.error(`Failed to process file ${result.filename}:`, errorToObject(error));
230
- // Continue processing other files even if one fails
231
- }
232
- }
233
- // Calculate total occurrences
234
- const totalOccurrences = Array.from(tagMap.values())
235
- .reduce((sum, files) => sum + files.size, 0);
236
- const elapsedMs = logger.endTimer(operationId);
237
- logger.logOperationResult(true, 'get_tags', elapsedMs, {
238
- uniqueTags: tagMap.size,
239
- totalOccurrences,
240
- scannedFiles,
241
- processedSuccessfully,
242
- searchPath: args.path || 'vault'
243
- });
244
- return this.createResponse({
245
- tags: Array.from(tagMap.entries())
246
- .map(([name, files]) => ({
247
- name,
248
- count: files.size,
249
- files: Array.from(files).sort()
250
- }))
251
- .sort((a, b) => b.count - a.count || a.name.localeCompare(b.name)),
252
- metadata: {
253
- totalOccurrences,
254
- uniqueTags: tagMap.size,
255
- scannedFiles,
256
- lastUpdate: Date.now() // Consider using a more accurate cache update time if available
257
- }
258
- });
259
- }
260
- catch (error) {
261
- const elapsedMs = logger.endTimer(operationId);
262
- logger.logOperationResult(false, 'get_tags', elapsedMs, {
263
- searchPath: args.path || 'vault',
264
- error: errorToObject(error)
265
- });
266
- return this.handleError(error);
267
- }
268
- }
269
- }
270
- //# sourceMappingURL=complex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"complex.js","sourceRoot":"","sources":["../../../src/tools/search/complex.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Search tools exports
3
- */
4
- export * from './complex.js';
5
- export * from './simple.js';
6
- import { ObsidianClient } from '../../obsidian/client.js';
7
- import { ComplexSearchToolHandler, GetTagsToolHandler } from './complex.js';
8
- import { FindInFileToolHandler } from './simple.js';
9
- /**
10
- * Create all search-related tool handlers
11
- * @param client The ObsidianClient instance
12
- * @returns Array of search tool handlers
13
- */
14
- export declare function createSearchToolHandlers(client: ObsidianClient): (ComplexSearchToolHandler | GetTagsToolHandler | FindInFileToolHandler)[];
@@ -1,20 +0,0 @@
1
- /**
2
- * Search tools exports
3
- */
4
- export * from './complex.js';
5
- export * from './simple.js';
6
- import { ComplexSearchToolHandler, GetTagsToolHandler } from './complex.js';
7
- import { FindInFileToolHandler } from './simple.js';
8
- /**
9
- * Create all search-related tool handlers
10
- * @param client The ObsidianClient instance
11
- * @returns Array of search tool handlers
12
- */
13
- export function createSearchToolHandlers(client) {
14
- return [
15
- new FindInFileToolHandler(client),
16
- new ComplexSearchToolHandler(client),
17
- new GetTagsToolHandler(client)
18
- ];
19
- }
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/search/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAG5B,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAsB;IAC7D,OAAO;QACL,IAAI,qBAAqB,CAAC,MAAM,CAAC;QACjC,IAAI,wBAAwB,CAAC,MAAM,CAAC;QACpC,IAAI,kBAAkB,CAAC,MAAM,CAAC;KAC/B,CAAC;AACJ,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Simple search tool implementation
3
- */
4
- import { Tool } from "@modelcontextprotocol/sdk/types.js";
5
- import { ObsidianClient } from "../../obsidian/client.js";
6
- import { BaseToolHandler } from "../base.js";
7
- /**
8
- * Tool name for simple search
9
- */
10
- export declare const SIMPLE_SEARCH_TOOL_NAME = "obsidian_find_in_file";
11
- /**
12
- * Arguments for simple search operations
13
- */
14
- export interface SearchArgs {
15
- query: string;
16
- contextLength?: number;
17
- }
18
- /**
19
- * Tool handler for simple text search across files
20
- */
21
- export declare class FindInFileToolHandler extends BaseToolHandler<SearchArgs> {
22
- constructor(client: ObsidianClient);
23
- getToolDescription(): Tool;
24
- runTool(args: SearchArgs): Promise<Array<any>>;
25
- }