@noteplanco/noteplan-mcp 1.1.1

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 (155) hide show
  1. package/README.md +257 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +8 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/noteplan/embeddings.d.ts +170 -0
  7. package/dist/noteplan/embeddings.d.ts.map +1 -0
  8. package/dist/noteplan/embeddings.js +684 -0
  9. package/dist/noteplan/embeddings.js.map +1 -0
  10. package/dist/noteplan/file-reader.d.ts +77 -0
  11. package/dist/noteplan/file-reader.d.ts.map +1 -0
  12. package/dist/noteplan/file-reader.js +488 -0
  13. package/dist/noteplan/file-reader.js.map +1 -0
  14. package/dist/noteplan/file-writer.d.ts +108 -0
  15. package/dist/noteplan/file-writer.d.ts.map +1 -0
  16. package/dist/noteplan/file-writer.js +621 -0
  17. package/dist/noteplan/file-writer.js.map +1 -0
  18. package/dist/noteplan/filter-store.d.ts +28 -0
  19. package/dist/noteplan/filter-store.d.ts.map +1 -0
  20. package/dist/noteplan/filter-store.js +180 -0
  21. package/dist/noteplan/filter-store.js.map +1 -0
  22. package/dist/noteplan/frontmatter-parser.d.ts +45 -0
  23. package/dist/noteplan/frontmatter-parser.d.ts.map +1 -0
  24. package/dist/noteplan/frontmatter-parser.js +259 -0
  25. package/dist/noteplan/frontmatter-parser.js.map +1 -0
  26. package/dist/noteplan/fuzzy-search.d.ts +7 -0
  27. package/dist/noteplan/fuzzy-search.d.ts.map +1 -0
  28. package/dist/noteplan/fuzzy-search.js +66 -0
  29. package/dist/noteplan/fuzzy-search.js.map +1 -0
  30. package/dist/noteplan/markdown-parser.d.ts +87 -0
  31. package/dist/noteplan/markdown-parser.d.ts.map +1 -0
  32. package/dist/noteplan/markdown-parser.js +519 -0
  33. package/dist/noteplan/markdown-parser.js.map +1 -0
  34. package/dist/noteplan/preferences.d.ts +44 -0
  35. package/dist/noteplan/preferences.d.ts.map +1 -0
  36. package/dist/noteplan/preferences.js +156 -0
  37. package/dist/noteplan/preferences.js.map +1 -0
  38. package/dist/noteplan/ripgrep-search.d.ts +29 -0
  39. package/dist/noteplan/ripgrep-search.d.ts.map +1 -0
  40. package/dist/noteplan/ripgrep-search.js +110 -0
  41. package/dist/noteplan/ripgrep-search.js.map +1 -0
  42. package/dist/noteplan/sqlite-reader.d.ts +77 -0
  43. package/dist/noteplan/sqlite-reader.d.ts.map +1 -0
  44. package/dist/noteplan/sqlite-reader.js +605 -0
  45. package/dist/noteplan/sqlite-reader.js.map +1 -0
  46. package/dist/noteplan/sqlite-writer.d.ts +63 -0
  47. package/dist/noteplan/sqlite-writer.d.ts.map +1 -0
  48. package/dist/noteplan/sqlite-writer.js +574 -0
  49. package/dist/noteplan/sqlite-writer.js.map +1 -0
  50. package/dist/noteplan/types.d.ts +97 -0
  51. package/dist/noteplan/types.d.ts.map +1 -0
  52. package/dist/noteplan/types.js +33 -0
  53. package/dist/noteplan/types.js.map +1 -0
  54. package/dist/noteplan/unified-store.d.ts +289 -0
  55. package/dist/noteplan/unified-store.d.ts.map +1 -0
  56. package/dist/noteplan/unified-store.js +1308 -0
  57. package/dist/noteplan/unified-store.js.map +1 -0
  58. package/dist/server.d.ts +4 -0
  59. package/dist/server.d.ts.map +1 -0
  60. package/dist/server.js +2468 -0
  61. package/dist/server.js.map +1 -0
  62. package/dist/tools/calendar.d.ts +311 -0
  63. package/dist/tools/calendar.d.ts.map +1 -0
  64. package/dist/tools/calendar.js +504 -0
  65. package/dist/tools/calendar.js.map +1 -0
  66. package/dist/tools/embeddings.d.ts +244 -0
  67. package/dist/tools/embeddings.d.ts.map +1 -0
  68. package/dist/tools/embeddings.js +226 -0
  69. package/dist/tools/embeddings.js.map +1 -0
  70. package/dist/tools/events.d.ts +176 -0
  71. package/dist/tools/events.d.ts.map +1 -0
  72. package/dist/tools/events.js +326 -0
  73. package/dist/tools/events.js.map +1 -0
  74. package/dist/tools/filters.d.ts +205 -0
  75. package/dist/tools/filters.d.ts.map +1 -0
  76. package/dist/tools/filters.js +347 -0
  77. package/dist/tools/filters.js.map +1 -0
  78. package/dist/tools/memory.d.ts +6 -0
  79. package/dist/tools/memory.d.ts.map +1 -0
  80. package/dist/tools/memory.js +161 -0
  81. package/dist/tools/memory.js.map +1 -0
  82. package/dist/tools/notes.d.ts +1221 -0
  83. package/dist/tools/notes.d.ts.map +1 -0
  84. package/dist/tools/notes.js +1868 -0
  85. package/dist/tools/notes.js.map +1 -0
  86. package/dist/tools/plugins.d.ts +140 -0
  87. package/dist/tools/plugins.d.ts.map +1 -0
  88. package/dist/tools/plugins.js +782 -0
  89. package/dist/tools/plugins.js.map +1 -0
  90. package/dist/tools/reminders.d.ts +207 -0
  91. package/dist/tools/reminders.d.ts.map +1 -0
  92. package/dist/tools/reminders.js +323 -0
  93. package/dist/tools/reminders.js.map +1 -0
  94. package/dist/tools/search.d.ts +58 -0
  95. package/dist/tools/search.d.ts.map +1 -0
  96. package/dist/tools/search.js +373 -0
  97. package/dist/tools/search.js.map +1 -0
  98. package/dist/tools/spaces.d.ts +484 -0
  99. package/dist/tools/spaces.d.ts.map +1 -0
  100. package/dist/tools/spaces.js +870 -0
  101. package/dist/tools/spaces.js.map +1 -0
  102. package/dist/tools/tasks.d.ts +313 -0
  103. package/dist/tools/tasks.d.ts.map +1 -0
  104. package/dist/tools/tasks.js +690 -0
  105. package/dist/tools/tasks.js.map +1 -0
  106. package/dist/tools/themes.d.ts +91 -0
  107. package/dist/tools/themes.d.ts.map +1 -0
  108. package/dist/tools/themes.js +294 -0
  109. package/dist/tools/themes.js.map +1 -0
  110. package/dist/tools/ui.d.ts +89 -0
  111. package/dist/tools/ui.d.ts.map +1 -0
  112. package/dist/tools/ui.js +137 -0
  113. package/dist/tools/ui.js.map +1 -0
  114. package/dist/utils/applescript.d.ts +5 -0
  115. package/dist/utils/applescript.d.ts.map +1 -0
  116. package/dist/utils/applescript.js +27 -0
  117. package/dist/utils/applescript.js.map +1 -0
  118. package/dist/utils/confirmation-tokens.d.ts +19 -0
  119. package/dist/utils/confirmation-tokens.d.ts.map +1 -0
  120. package/dist/utils/confirmation-tokens.js +58 -0
  121. package/dist/utils/confirmation-tokens.js.map +1 -0
  122. package/dist/utils/date-filters.d.ts +15 -0
  123. package/dist/utils/date-filters.d.ts.map +1 -0
  124. package/dist/utils/date-filters.js +129 -0
  125. package/dist/utils/date-filters.js.map +1 -0
  126. package/dist/utils/date-utils.d.ts +113 -0
  127. package/dist/utils/date-utils.d.ts.map +1 -0
  128. package/dist/utils/date-utils.js +341 -0
  129. package/dist/utils/date-utils.js.map +1 -0
  130. package/dist/utils/folder-matcher.d.ts +14 -0
  131. package/dist/utils/folder-matcher.d.ts.map +1 -0
  132. package/dist/utils/folder-matcher.js +191 -0
  133. package/dist/utils/folder-matcher.js.map +1 -0
  134. package/dist/utils/version.d.ts +10 -0
  135. package/dist/utils/version.d.ts.map +1 -0
  136. package/dist/utils/version.js +88 -0
  137. package/dist/utils/version.js.map +1 -0
  138. package/docs/plugin-api/Calendar.md +448 -0
  139. package/docs/plugin-api/CalendarItem.md +198 -0
  140. package/docs/plugin-api/Clipboard.md +101 -0
  141. package/docs/plugin-api/CommandBar.md +251 -0
  142. package/docs/plugin-api/DataStore.md +700 -0
  143. package/docs/plugin-api/Editor.md +982 -0
  144. package/docs/plugin-api/HTMLView.md +337 -0
  145. package/docs/plugin-api/NoteObject.md +588 -0
  146. package/docs/plugin-api/NotePlan.md +398 -0
  147. package/docs/plugin-api/ParagraphObject.md +242 -0
  148. package/docs/plugin-api/RangeObject.md +56 -0
  149. package/docs/plugin-api/getting-started.md +545 -0
  150. package/docs/plugin-api/plugin-api-condensed.md +526 -0
  151. package/docs/plugin-api/plugin.json +26 -0
  152. package/docs/plugin-api/script.js +542 -0
  153. package/package.json +60 -0
  154. package/scripts/calendar-helper +0 -0
  155. package/scripts/reminders-helper +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/noteplan/embeddings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { Note, NoteType, Folder } from './types.js';
2
+ /**
3
+ * Get the NotePlan storage path
4
+ */
5
+ export declare function getNotePlanPath(): string;
6
+ /**
7
+ * Get the detected file extension
8
+ */
9
+ export declare function getFileExtension(): '.txt' | '.md';
10
+ /**
11
+ * Get whether year subfolders are used
12
+ */
13
+ export declare function hasYearSubfolders(): boolean;
14
+ /**
15
+ * Get all available NotePlan storage paths (for multi-source searching)
16
+ */
17
+ export declare function getAllNotePlanPaths(): string[];
18
+ /**
19
+ * Get the Calendar notes directory
20
+ */
21
+ export declare function getCalendarPath(): string;
22
+ /**
23
+ * Get the project Notes directory
24
+ */
25
+ export declare function getNotesPath(): string;
26
+ /**
27
+ * Build the calendar note file path for a given date
28
+ */
29
+ export declare function buildCalendarNotePath(dateStr: string): string;
30
+ /**
31
+ * Read a note file from the file system
32
+ */
33
+ export declare function readNoteFile(filePath: string): Note | null;
34
+ /**
35
+ * List all notes in a directory (recursive)
36
+ */
37
+ export declare function listNotesInDirectory(dirPath: string, type?: NoteType): Note[];
38
+ /**
39
+ * Count notes and subfolders in a directory (recursive, lightweight — no file reads)
40
+ */
41
+ export declare function countNotesInDirectory(dirPath: string): {
42
+ noteCount: number;
43
+ folderCount: number;
44
+ };
45
+ /**
46
+ * List all project notes
47
+ */
48
+ export declare function listProjectNotes(folder?: string): Note[];
49
+ /**
50
+ * List all calendar notes
51
+ */
52
+ export declare function listCalendarNotes(year?: string): Note[];
53
+ /**
54
+ * Get a calendar note by date - tries multiple file paths
55
+ */
56
+ export declare function getCalendarNote(dateStr: string): Note | null;
57
+ /**
58
+ * Get a note by title (searches project notes)
59
+ */
60
+ export declare function getNoteByTitle(title: string): Note | null;
61
+ /**
62
+ * List all folders in the Notes directory
63
+ */
64
+ export declare function listFolders(maxDepth?: number): Folder[];
65
+ /**
66
+ * Extract all unique tags from local notes
67
+ */
68
+ export declare function extractAllTags(): string[];
69
+ /**
70
+ * Search notes by content
71
+ */
72
+ export declare function searchLocalNotes(query: string, options?: {
73
+ types?: NoteType[];
74
+ folder?: string;
75
+ limit?: number;
76
+ }): Note[];
77
+ //# sourceMappingURL=file-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-reader.d.ts","sourceRoot":"","sources":["../../src/noteplan/file-reader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAqMpD;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,KAAK,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAU7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAuD1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,QAAiB,GAAG,IAAI,EAAE,CAyCrF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAuBjG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAGxD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,CAGvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAoC5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAkBzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAmCvD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAWzC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,GACL,IAAI,EAAE,CA0BR"}
@@ -0,0 +1,488 @@
1
+ // File system reader for local NotePlan notes
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import * as os from 'os';
5
+ import { extractTitle, extractTagsFromContent } from './markdown-parser.js';
6
+ import { extractDateFromFilename } from '../utils/date-utils.js';
7
+ // Possible NotePlan storage paths (in order of preference)
8
+ const POSSIBLE_PATHS = [
9
+ // Direct local paths (AppStore version) - preferred for local dev
10
+ path.join(os.homedir(), 'Library/Containers/co.noteplan.NotePlan3/Data/Library/Application Support/co.noteplan.NotePlan3'),
11
+ // Direct local paths (Setapp version)
12
+ path.join(os.homedir(), 'Library/Containers/co.noteplan.NotePlan-setapp/Data/Library/Application Support/co.noteplan.NotePlan-setapp'),
13
+ // Today app iCloud
14
+ path.join(os.homedir(), 'Library/Mobile Documents/iCloud~co~noteplan~Today/Documents'),
15
+ // NotePlan 3 iCloud
16
+ path.join(os.homedir(), 'Library/Mobile Documents/iCloud~co~noteplan~NotePlan3/Documents'),
17
+ // NotePlan iCloud
18
+ path.join(os.homedir(), 'Library/Mobile Documents/iCloud~co~noteplan~NotePlan/Documents'),
19
+ // NotePlan Setapp iCloud
20
+ path.join(os.homedir(), 'Library/Mobile Documents/iCloud~co~noteplan~NotePlan-setapp/Documents'),
21
+ // Legacy local container paths
22
+ path.join(os.homedir(), 'Library/Containers/co.noteplan.NotePlan3/Data/Documents'),
23
+ path.join(os.homedir(), 'Library/Containers/co.noteplan.NotePlan/Data/Documents'),
24
+ path.join(os.homedir(), 'Library/Containers/co.noteplan.NotePlan-setapp/Data/Documents'),
25
+ ];
26
+ let cachedConfig = null;
27
+ /**
28
+ * Detect the file extension used in a directory by examining existing files
29
+ */
30
+ function detectFileExtension(calendarPath) {
31
+ try {
32
+ const entries = fs.readdirSync(calendarPath, { withFileTypes: true });
33
+ let txtCount = 0;
34
+ let mdCount = 0;
35
+ let newestTxt = 0;
36
+ let newestMd = 0;
37
+ for (const entry of entries) {
38
+ if (entry.isFile()) {
39
+ // Check for daily note pattern (YYYYMMDD)
40
+ if (/^\d{8}\.(txt|md)$/.test(entry.name)) {
41
+ const filePath = path.join(calendarPath, entry.name);
42
+ const stats = fs.statSync(filePath);
43
+ if (entry.name.endsWith('.txt')) {
44
+ txtCount++;
45
+ newestTxt = Math.max(newestTxt, stats.mtimeMs);
46
+ }
47
+ else if (entry.name.endsWith('.md')) {
48
+ mdCount++;
49
+ newestMd = Math.max(newestMd, stats.mtimeMs);
50
+ }
51
+ }
52
+ }
53
+ }
54
+ // Prefer the extension with the most recent file, then by count
55
+ if (newestTxt > newestMd)
56
+ return '.txt';
57
+ if (newestMd > newestTxt)
58
+ return '.md';
59
+ if (txtCount > mdCount)
60
+ return '.txt';
61
+ return '.md'; // Default to .md
62
+ }
63
+ catch {
64
+ return '.txt'; // Default to .txt
65
+ }
66
+ }
67
+ /**
68
+ * Check if calendar notes use year subfolders (Calendar/2024/20240101.txt)
69
+ * or flat structure (Calendar/20240101.txt)
70
+ */
71
+ function detectYearSubfolders(calendarPath) {
72
+ try {
73
+ const entries = fs.readdirSync(calendarPath, { withFileTypes: true });
74
+ // Check for year directories (4 digits)
75
+ for (const entry of entries) {
76
+ if (entry.isDirectory() && /^\d{4}$/.test(entry.name)) {
77
+ // Verify it contains calendar notes
78
+ const yearPath = path.join(calendarPath, entry.name);
79
+ const yearEntries = fs.readdirSync(yearPath);
80
+ if (yearEntries.some(f => /^\d{8}\.(txt|md)$/.test(f))) {
81
+ return true;
82
+ }
83
+ }
84
+ }
85
+ // Check for flat structure (files directly in Calendar/)
86
+ for (const entry of entries) {
87
+ if (entry.isFile() && /^\d{8}\.(txt|md)$/.test(entry.name)) {
88
+ return false;
89
+ }
90
+ }
91
+ return false; // Default to flat
92
+ }
93
+ catch {
94
+ return false;
95
+ }
96
+ }
97
+ /**
98
+ * Score a storage path based on most recent modification time
99
+ * Checks the root folder and top-level folders (Calendar, Notes) - folder mtime updates when contents change
100
+ */
101
+ function scoreStoragePath(storagePath) {
102
+ let newestMtime = 0;
103
+ try {
104
+ // Check the root storage folder
105
+ const rootStats = fs.statSync(storagePath);
106
+ newestMtime = Math.max(newestMtime, rootStats.mtimeMs);
107
+ // Check Calendar folder
108
+ const calendarPath = path.join(storagePath, 'Calendar');
109
+ if (fs.existsSync(calendarPath)) {
110
+ const calendarStats = fs.statSync(calendarPath);
111
+ newestMtime = Math.max(newestMtime, calendarStats.mtimeMs);
112
+ }
113
+ // Check Notes folder
114
+ const notesPath = path.join(storagePath, 'Notes');
115
+ if (fs.existsSync(notesPath)) {
116
+ const notesStats = fs.statSync(notesPath);
117
+ newestMtime = Math.max(newestMtime, notesStats.mtimeMs);
118
+ }
119
+ }
120
+ catch {
121
+ return 0;
122
+ }
123
+ return newestMtime;
124
+ }
125
+ /**
126
+ * Check if a path contains a valid NotePlan structure (has Calendar or Notes folder)
127
+ */
128
+ function isValidNotePlanPath(storagePath) {
129
+ if (!fs.existsSync(storagePath))
130
+ return false;
131
+ const hasCalendar = fs.existsSync(path.join(storagePath, 'Calendar'));
132
+ const hasNotes = fs.existsSync(path.join(storagePath, 'Notes'));
133
+ return hasCalendar || hasNotes;
134
+ }
135
+ /**
136
+ * Detect and cache NotePlan configuration
137
+ */
138
+ function detectConfig() {
139
+ if (cachedConfig)
140
+ return cachedConfig;
141
+ // Find the best storage path by scoring each one
142
+ let bestPath = null;
143
+ let bestScore = -1;
144
+ for (const storagePath of POSSIBLE_PATHS) {
145
+ if (isValidNotePlanPath(storagePath)) {
146
+ const score = scoreStoragePath(storagePath);
147
+ if (score > bestScore) {
148
+ bestScore = score;
149
+ bestPath = storagePath;
150
+ }
151
+ }
152
+ }
153
+ if (!bestPath) {
154
+ throw new Error('NotePlan storage not found. Is NotePlan installed?');
155
+ }
156
+ const calendarPath = path.join(bestPath, 'Calendar');
157
+ const hasYearSubfolders = detectYearSubfolders(calendarPath);
158
+ // Detect extension in the right location
159
+ const extensionDetectPath = hasYearSubfolders
160
+ ? path.join(calendarPath, new Date().getFullYear().toString())
161
+ : calendarPath;
162
+ const fileExtension = fs.existsSync(extensionDetectPath)
163
+ ? detectFileExtension(extensionDetectPath)
164
+ : detectFileExtension(calendarPath);
165
+ cachedConfig = {
166
+ storagePath: bestPath,
167
+ fileExtension,
168
+ hasYearSubfolders,
169
+ };
170
+ console.error(`NotePlan config: ${bestPath} (ext: ${fileExtension}, yearFolders: ${hasYearSubfolders})`);
171
+ return cachedConfig;
172
+ }
173
+ /**
174
+ * Get the NotePlan storage path
175
+ */
176
+ export function getNotePlanPath() {
177
+ return detectConfig().storagePath;
178
+ }
179
+ /**
180
+ * Get the detected file extension
181
+ */
182
+ export function getFileExtension() {
183
+ return detectConfig().fileExtension;
184
+ }
185
+ /**
186
+ * Get whether year subfolders are used
187
+ */
188
+ export function hasYearSubfolders() {
189
+ return detectConfig().hasYearSubfolders;
190
+ }
191
+ /**
192
+ * Get all available NotePlan storage paths (for multi-source searching)
193
+ */
194
+ export function getAllNotePlanPaths() {
195
+ return POSSIBLE_PATHS.filter(isValidNotePlanPath);
196
+ }
197
+ /**
198
+ * Get the Calendar notes directory
199
+ */
200
+ export function getCalendarPath() {
201
+ return path.join(getNotePlanPath(), 'Calendar');
202
+ }
203
+ /**
204
+ * Get the project Notes directory
205
+ */
206
+ export function getNotesPath() {
207
+ return path.join(getNotePlanPath(), 'Notes');
208
+ }
209
+ /**
210
+ * Build the calendar note file path for a given date
211
+ */
212
+ export function buildCalendarNotePath(dateStr) {
213
+ const config = detectConfig();
214
+ const ext = config.fileExtension;
215
+ if (config.hasYearSubfolders) {
216
+ const year = dateStr.substring(0, 4);
217
+ return `Calendar/${year}/${dateStr}${ext}`;
218
+ }
219
+ return `Calendar/${dateStr}${ext}`;
220
+ }
221
+ /**
222
+ * Read a note file from the file system
223
+ */
224
+ export function readNoteFile(filePath) {
225
+ try {
226
+ const fullPath = path.isAbsolute(filePath) ? filePath : path.join(getNotePlanPath(), filePath);
227
+ // Reject paths outside the NotePlan data directory
228
+ const resolvedFull = path.resolve(fullPath);
229
+ const resolvedRoot = path.resolve(getNotePlanPath());
230
+ if (resolvedFull !== resolvedRoot && !resolvedFull.startsWith(`${resolvedRoot}${path.sep}`)) {
231
+ return null;
232
+ }
233
+ if (!fs.existsSync(fullPath)) {
234
+ return null;
235
+ }
236
+ const stats = fs.statSync(fullPath);
237
+ if (stats.isDirectory()) {
238
+ return null;
239
+ }
240
+ const content = fs.readFileSync(fullPath, 'utf-8');
241
+ const relativePath = path.relative(getNotePlanPath(), fullPath);
242
+ const filename = path.basename(fullPath);
243
+ // Determine note type
244
+ let type = 'note';
245
+ let date;
246
+ if (relativePath.startsWith('Calendar/') || relativePath.startsWith('Calendar\\')) {
247
+ type = 'calendar';
248
+ date = extractDateFromFilename(filename) || undefined;
249
+ }
250
+ else if (relativePath.includes('Trash/') || relativePath.includes('Trash\\') ||
251
+ relativePath.startsWith('@Trash/') || relativePath.startsWith('@Trash\\')) {
252
+ type = 'trash';
253
+ }
254
+ // Extract folder from path
255
+ const folder = path.dirname(relativePath);
256
+ return {
257
+ id: relativePath,
258
+ title: type === 'calendar' && date ? date : extractTitle(content),
259
+ filename: relativePath,
260
+ content,
261
+ type,
262
+ source: 'local',
263
+ folder: folder !== '.' ? folder : undefined,
264
+ date,
265
+ modifiedAt: stats.mtime,
266
+ createdAt: stats.birthtime,
267
+ };
268
+ }
269
+ catch (error) {
270
+ console.error(`Error reading note file ${filePath}:`, error);
271
+ return null;
272
+ }
273
+ }
274
+ /**
275
+ * List all notes in a directory (recursive)
276
+ */
277
+ export function listNotesInDirectory(dirPath, type = 'note') {
278
+ const notes = [];
279
+ try {
280
+ const fullPath = path.isAbsolute(dirPath) ? dirPath : path.join(getNotePlanPath(), dirPath);
281
+ // Reject paths outside the NotePlan data directory
282
+ const resolvedFull = path.resolve(fullPath);
283
+ const resolvedRoot = path.resolve(getNotePlanPath());
284
+ if (resolvedFull !== resolvedRoot && !resolvedFull.startsWith(`${resolvedRoot}${path.sep}`)) {
285
+ return notes;
286
+ }
287
+ if (!fs.existsSync(fullPath)) {
288
+ return notes;
289
+ }
290
+ const entries = fs.readdirSync(fullPath, { withFileTypes: true });
291
+ for (const entry of entries) {
292
+ const entryPath = path.join(fullPath, entry.name);
293
+ if (entry.isDirectory()) {
294
+ // Skip hidden directories and Trash
295
+ if (entry.name.startsWith('.') || entry.name === '@Trash' || entry.name === '@Archive') {
296
+ continue;
297
+ }
298
+ // Recurse into subdirectories
299
+ notes.push(...listNotesInDirectory(entryPath, type));
300
+ }
301
+ else if (entry.name.endsWith('.md') || entry.name.endsWith('.txt')) {
302
+ const note = readNoteFile(entryPath);
303
+ if (note) {
304
+ notes.push(note);
305
+ }
306
+ }
307
+ }
308
+ }
309
+ catch (error) {
310
+ console.error(`Error listing notes in ${dirPath}:`, error);
311
+ }
312
+ return notes;
313
+ }
314
+ /**
315
+ * Count notes and subfolders in a directory (recursive, lightweight — no file reads)
316
+ */
317
+ export function countNotesInDirectory(dirPath) {
318
+ let noteCount = 0;
319
+ let folderCount = 0;
320
+ try {
321
+ const fullPath = path.isAbsolute(dirPath) ? dirPath : path.join(getNotePlanPath(), dirPath);
322
+ if (!fs.existsSync(fullPath))
323
+ return { noteCount, folderCount };
324
+ const entries = fs.readdirSync(fullPath, { withFileTypes: true });
325
+ for (const entry of entries) {
326
+ if (entry.isDirectory()) {
327
+ if (entry.name.startsWith('.') || entry.name === '@Trash' || entry.name === '@Archive')
328
+ continue;
329
+ folderCount++;
330
+ const sub = countNotesInDirectory(path.join(fullPath, entry.name));
331
+ noteCount += sub.noteCount;
332
+ folderCount += sub.folderCount;
333
+ }
334
+ else if (entry.name.endsWith('.md') || entry.name.endsWith('.txt')) {
335
+ noteCount++;
336
+ }
337
+ }
338
+ }
339
+ catch {
340
+ // silently ignore unreadable directories
341
+ }
342
+ return { noteCount, folderCount };
343
+ }
344
+ /**
345
+ * List all project notes
346
+ */
347
+ export function listProjectNotes(folder) {
348
+ const basePath = folder ? path.join(getNotesPath(), folder) : getNotesPath();
349
+ return listNotesInDirectory(basePath, 'note');
350
+ }
351
+ /**
352
+ * List all calendar notes
353
+ */
354
+ export function listCalendarNotes(year) {
355
+ const basePath = year ? path.join(getCalendarPath(), year) : getCalendarPath();
356
+ return listNotesInDirectory(basePath, 'calendar');
357
+ }
358
+ /**
359
+ * Get a calendar note by date - tries multiple file paths
360
+ */
361
+ export function getCalendarNote(dateStr) {
362
+ const config = detectConfig();
363
+ const year = dateStr.substring(0, 4);
364
+ // Build list of paths to try (in order of preference)
365
+ const pathsToTry = [];
366
+ // First try the detected configuration
367
+ if (config.hasYearSubfolders) {
368
+ pathsToTry.push(`Calendar/${year}/${dateStr}${config.fileExtension}`);
369
+ // Also try the other extension
370
+ const otherExt = config.fileExtension === '.txt' ? '.md' : '.txt';
371
+ pathsToTry.push(`Calendar/${year}/${dateStr}${otherExt}`);
372
+ }
373
+ else {
374
+ pathsToTry.push(`Calendar/${dateStr}${config.fileExtension}`);
375
+ const otherExt = config.fileExtension === '.txt' ? '.md' : '.txt';
376
+ pathsToTry.push(`Calendar/${dateStr}${otherExt}`);
377
+ }
378
+ // Try flat structure with both extensions
379
+ pathsToTry.push(`Calendar/${dateStr}.txt`);
380
+ pathsToTry.push(`Calendar/${dateStr}.md`);
381
+ // Try year subfolder with both extensions
382
+ pathsToTry.push(`Calendar/${year}/${dateStr}.txt`);
383
+ pathsToTry.push(`Calendar/${year}/${dateStr}.md`);
384
+ // Deduplicate
385
+ const uniquePaths = [...new Set(pathsToTry)];
386
+ for (const filePath of uniquePaths) {
387
+ const note = readNoteFile(filePath);
388
+ if (note)
389
+ return note;
390
+ }
391
+ return null;
392
+ }
393
+ /**
394
+ * Get a note by title (searches project notes)
395
+ */
396
+ export function getNoteByTitle(title) {
397
+ const notes = listProjectNotes();
398
+ const lowerTitle = title.toLowerCase();
399
+ // Try exact match first
400
+ const exactMatch = notes.find((n) => n.title.toLowerCase() === lowerTitle);
401
+ if (exactMatch)
402
+ return exactMatch;
403
+ // Try filename match (without extension)
404
+ const filenameMatch = notes.find((n) => {
405
+ const basename = path.basename(n.filename, path.extname(n.filename));
406
+ return basename.toLowerCase() === lowerTitle;
407
+ });
408
+ if (filenameMatch)
409
+ return filenameMatch;
410
+ // Try partial match
411
+ const partialMatch = notes.find((n) => n.title.toLowerCase().includes(lowerTitle));
412
+ return partialMatch || null;
413
+ }
414
+ /**
415
+ * List all folders in the Notes directory
416
+ */
417
+ export function listFolders(maxDepth) {
418
+ const folders = [];
419
+ function scanDir(dirPath, relativePath = '', depth = 0) {
420
+ try {
421
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
422
+ for (const entry of entries) {
423
+ if (entry.isDirectory() && !entry.name.startsWith('.') &&
424
+ entry.name !== '@Trash' && entry.name !== '@Archive') {
425
+ const nextDepth = depth + 1;
426
+ if (typeof maxDepth === 'number' && nextDepth > maxDepth) {
427
+ continue;
428
+ }
429
+ const folderRelPath = relativePath ? `${relativePath}/${entry.name}` : entry.name;
430
+ folders.push({
431
+ path: folderRelPath,
432
+ name: entry.name,
433
+ source: 'local',
434
+ });
435
+ // Recurse unless max depth reached
436
+ if (typeof maxDepth !== 'number' || nextDepth < maxDepth) {
437
+ scanDir(path.join(dirPath, entry.name), folderRelPath, nextDepth);
438
+ }
439
+ }
440
+ }
441
+ }
442
+ catch (error) {
443
+ console.error(`Error scanning folder ${dirPath}:`, error);
444
+ }
445
+ }
446
+ scanDir(getNotesPath(), '', 0);
447
+ return folders;
448
+ }
449
+ /**
450
+ * Extract all unique tags from local notes
451
+ */
452
+ export function extractAllTags() {
453
+ const tags = new Set();
454
+ const notes = [...listProjectNotes(), ...listCalendarNotes()];
455
+ for (const note of notes) {
456
+ for (const tag of extractTagsFromContent(note.content)) {
457
+ tags.add(tag);
458
+ }
459
+ }
460
+ return Array.from(tags).sort();
461
+ }
462
+ /**
463
+ * Search notes by content
464
+ */
465
+ export function searchLocalNotes(query, options = {}) {
466
+ const { types, folder, limit = 50 } = options;
467
+ const results = [];
468
+ const lowerQuery = query.toLowerCase();
469
+ // Get notes to search
470
+ let notes = [];
471
+ if (!types || types.includes('note')) {
472
+ notes.push(...listProjectNotes(folder));
473
+ }
474
+ if (!types || types.includes('calendar')) {
475
+ notes.push(...listCalendarNotes());
476
+ }
477
+ // Search
478
+ for (const note of notes) {
479
+ if (note.content.toLowerCase().includes(lowerQuery) ||
480
+ note.title.toLowerCase().includes(lowerQuery)) {
481
+ results.push(note);
482
+ if (results.length >= limit)
483
+ break;
484
+ }
485
+ }
486
+ return results;
487
+ }
488
+ //# sourceMappingURL=file-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-reader.js","sourceRoot":"","sources":["../../src/noteplan/file-reader.ts"],"names":[],"mappings":"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"}