@noteplanco/noteplan-mcp 1.1.18 → 1.1.21

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 (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +46 -0
  3. package/dist/noteplan/file-reader.d.ts.map +1 -1
  4. package/dist/noteplan/file-reader.js +131 -19
  5. package/dist/noteplan/file-reader.js.map +1 -1
  6. package/dist/noteplan/file-writer.d.ts.map +1 -1
  7. package/dist/noteplan/file-writer.js +3 -1
  8. package/dist/noteplan/file-writer.js.map +1 -1
  9. package/dist/noteplan/file-writer.test.js +5 -0
  10. package/dist/noteplan/file-writer.test.js.map +1 -1
  11. package/dist/noteplan/frontmatter-parser.d.ts +5 -2
  12. package/dist/noteplan/frontmatter-parser.d.ts.map +1 -1
  13. package/dist/noteplan/frontmatter-parser.js +106 -32
  14. package/dist/noteplan/frontmatter-parser.js.map +1 -1
  15. package/dist/noteplan/frontmatter-parser.test.js +216 -0
  16. package/dist/noteplan/frontmatter-parser.test.js.map +1 -1
  17. package/dist/noteplan/sqlite-writer.d.ts.map +1 -1
  18. package/dist/noteplan/sqlite-writer.js +10 -0
  19. package/dist/noteplan/sqlite-writer.js.map +1 -1
  20. package/dist/noteplan/unified-store.d.ts.map +1 -1
  21. package/dist/noteplan/unified-store.js +5 -3
  22. package/dist/noteplan/unified-store.js.map +1 -1
  23. package/dist/server.d.ts.map +1 -1
  24. package/dist/server.js +108 -13
  25. package/dist/server.js.map +1 -1
  26. package/dist/tools/notes.d.ts +2 -0
  27. package/dist/tools/notes.d.ts.map +1 -1
  28. package/dist/tools/notes.js +32 -9
  29. package/dist/tools/notes.js.map +1 -1
  30. package/dist/tools/notes.test.js +62 -4
  31. package/dist/tools/notes.test.js.map +1 -1
  32. package/dist/tools/plugins.d.ts +17 -3
  33. package/dist/tools/plugins.d.ts.map +1 -1
  34. package/dist/tools/plugins.js +259 -69
  35. package/dist/tools/plugins.js.map +1 -1
  36. package/dist/tools/tasks.d.ts +131 -0
  37. package/dist/tools/tasks.d.ts.map +1 -1
  38. package/dist/tools/tasks.js +203 -0
  39. package/dist/tools/tasks.js.map +1 -1
  40. package/dist/tools/tasks.test.d.ts +2 -0
  41. package/dist/tools/tasks.test.d.ts.map +1 -0
  42. package/dist/tools/tasks.test.js +51 -0
  43. package/dist/tools/tasks.test.js.map +1 -0
  44. package/dist/utils/confirmation-tokens.d.ts.map +1 -1
  45. package/dist/utils/confirmation-tokens.js +6 -0
  46. package/dist/utils/confirmation-tokens.js.map +1 -1
  47. package/dist/utils/confirmation-tokens.test.js +42 -0
  48. package/dist/utils/confirmation-tokens.test.js.map +1 -1
  49. package/dist/utils/filename-normalize.d.ts +21 -0
  50. package/dist/utils/filename-normalize.d.ts.map +1 -0
  51. package/dist/utils/filename-normalize.js +32 -0
  52. package/dist/utils/filename-normalize.js.map +1 -0
  53. package/dist/utils/filename-normalize.test.d.ts +2 -0
  54. package/dist/utils/filename-normalize.test.d.ts.map +1 -0
  55. package/dist/utils/filename-normalize.test.js +63 -0
  56. package/dist/utils/filename-normalize.test.js.map +1 -0
  57. package/dist/utils/folder-matcher.d.ts.map +1 -1
  58. package/dist/utils/folder-matcher.js +10 -0
  59. package/dist/utils/folder-matcher.js.map +1 -1
  60. package/dist/utils/folder-matcher.test.d.ts +2 -0
  61. package/dist/utils/folder-matcher.test.d.ts.map +1 -0
  62. package/dist/utils/folder-matcher.test.js +37 -0
  63. package/dist/utils/folder-matcher.test.js.map +1 -0
  64. package/dist/utils/server-config.d.ts +9 -0
  65. package/dist/utils/server-config.d.ts.map +1 -0
  66. package/dist/utils/server-config.js +17 -0
  67. package/dist/utils/server-config.js.map +1 -0
  68. package/dist/utils/server-config.test.d.ts +2 -0
  69. package/dist/utils/server-config.test.d.ts.map +1 -0
  70. package/dist/utils/server-config.test.js +51 -0
  71. package/dist/utils/server-config.test.js.map +1 -0
  72. package/package.json +1 -1
@@ -156,4 +156,46 @@ describe('validateAndConsumeConfirmationToken', () => {
156
156
  expect(retry).toEqual({ ok: false, reason: 'invalid' });
157
157
  });
158
158
  });
159
+ // ── NOTEPLAN_SKIP_DRY_RUN tests ──────────────────────────────────────
160
+ describe('validateAndConsumeConfirmationToken with NOTEPLAN_SKIP_DRY_RUN', () => {
161
+ afterEach(() => {
162
+ delete process.env.NOTEPLAN_SKIP_DRY_RUN;
163
+ });
164
+ it('auto-approves when no token is provided and skip-dry-run is enabled', () => {
165
+ process.env.NOTEPLAN_SKIP_DRY_RUN = 'true';
166
+ const result = validateAndConsumeConfirmationToken(undefined, ctx());
167
+ expect(result).toEqual({ ok: true });
168
+ });
169
+ it('auto-approves when empty string token is provided and skip-dry-run is enabled', () => {
170
+ process.env.NOTEPLAN_SKIP_DRY_RUN = 'true';
171
+ const result = validateAndConsumeConfirmationToken('', ctx());
172
+ expect(result).toEqual({ ok: true });
173
+ });
174
+ it('auto-approves for whitespace-only token when skip-dry-run is enabled', () => {
175
+ process.env.NOTEPLAN_SKIP_DRY_RUN = 'true';
176
+ const result = validateAndConsumeConfirmationToken(' ', ctx());
177
+ expect(result).toEqual({ ok: true });
178
+ });
179
+ it('still validates a real token if one is explicitly provided', () => {
180
+ process.env.NOTEPLAN_SKIP_DRY_RUN = 'true';
181
+ const { confirmationToken } = issueConfirmationToken(ctx());
182
+ const result = validateAndConsumeConfirmationToken(confirmationToken, ctx());
183
+ expect(result).toEqual({ ok: true });
184
+ });
185
+ it('still rejects an invalid token if one is explicitly provided', () => {
186
+ process.env.NOTEPLAN_SKIP_DRY_RUN = 'true';
187
+ const result = validateAndConsumeConfirmationToken('bogus-token', ctx());
188
+ expect(result).toEqual({ ok: false, reason: 'invalid' });
189
+ });
190
+ it('does NOT auto-approve when skip-dry-run is disabled', () => {
191
+ process.env.NOTEPLAN_SKIP_DRY_RUN = 'false';
192
+ const result = validateAndConsumeConfirmationToken(undefined, ctx());
193
+ expect(result).toEqual({ ok: false, reason: 'missing' });
194
+ });
195
+ it('accepts NOTEPLAN_SKIP_DRY_RUN=1 as truthy', () => {
196
+ process.env.NOTEPLAN_SKIP_DRY_RUN = '1';
197
+ const result = validateAndConsumeConfirmationToken(undefined, ctx());
198
+ expect(result).toEqual({ ok: true });
199
+ });
200
+ });
159
201
  //# sourceMappingURL=confirmation-tokens.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"confirmation-tokens.test.js","sourceRoot":"","sources":["../../src/utils/confirmation-tokens.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confirmation-tokens.test.js","sourceRoot":"","sources":["../../src/utils/confirmation-tokens.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Normalize filenames to handle Unicode issues in MCP transport.
3
+ *
4
+ * Problems solved:
5
+ * 1. Claude sometimes sends literal \uXXXX escape sequences instead of actual
6
+ * Unicode characters (e.g., `\u2018` instead of `'`).
7
+ * 2. macOS APFS may store filenames in a different Unicode normalization form
8
+ * (NFD vs NFC), causing exact string comparisons to fail.
9
+ */
10
+ /**
11
+ * Unescape literal `\uXXXX` sequences in a string.
12
+ * Handles both BMP (`\uXXXX`) and surrogate pairs for astral characters.
13
+ */
14
+ export declare function unescapeUnicodeSequences(str: string): string;
15
+ /**
16
+ * Normalize a filename for consistent lookup:
17
+ * 1. Unescape any literal \uXXXX sequences
18
+ * 2. Apply Unicode NFC normalization
19
+ */
20
+ export declare function normalizeFilename(filename: string): string;
21
+ //# sourceMappingURL=filename-normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filename-normalize.d.ts","sourceRoot":"","sources":["../../src/utils/filename-normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY1D"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Normalize filenames to handle Unicode issues in MCP transport.
3
+ *
4
+ * Problems solved:
5
+ * 1. Claude sometimes sends literal \uXXXX escape sequences instead of actual
6
+ * Unicode characters (e.g., `\u2018` instead of `'`).
7
+ * 2. macOS APFS may store filenames in a different Unicode normalization form
8
+ * (NFD vs NFC), causing exact string comparisons to fail.
9
+ */
10
+ /**
11
+ * Unescape literal `\uXXXX` sequences in a string.
12
+ * Handles both BMP (`\uXXXX`) and surrogate pairs for astral characters.
13
+ */
14
+ export function unescapeUnicodeSequences(str) {
15
+ return str.replace(/\\u([0-9a-fA-F]{4})/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)));
16
+ }
17
+ /**
18
+ * Normalize a filename for consistent lookup:
19
+ * 1. Unescape any literal \uXXXX sequences
20
+ * 2. Apply Unicode NFC normalization
21
+ */
22
+ export function normalizeFilename(filename) {
23
+ let result = filename;
24
+ // Step 1: Unescape literal Unicode escape sequences (e.g., \u2018 → ')
25
+ if (result.includes('\\u')) {
26
+ result = unescapeUnicodeSequences(result);
27
+ }
28
+ // Step 2: NFC normalize for consistent comparison across platforms
29
+ result = result.normalize('NFC');
30
+ return result;
31
+ }
32
+ //# sourceMappingURL=filename-normalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filename-normalize.js","sourceRoot":"","sources":["../../src/utils/filename-normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAW;IAClD,OAAO,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACpD,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CACvC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,IAAI,MAAM,GAAG,QAAQ,CAAC;IAEtB,uEAAuE;IACvE,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,mEAAmE;IACnE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=filename-normalize.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filename-normalize.test.d.ts","sourceRoot":"","sources":["../../src/utils/filename-normalize.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,63 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { normalizeFilename, unescapeUnicodeSequences } from './filename-normalize.js';
3
+ describe('unescapeUnicodeSequences', () => {
4
+ it('unescapes curly single quotes', () => {
5
+ expect(unescapeUnicodeSequences('The \\u2018Law Code\\u2019')).toBe('The \u2018Law Code\u2019');
6
+ });
7
+ it('unescapes en-dash', () => {
8
+ expect(unescapeUnicodeSequences('Hammurabi \\u2013 Tyndale')).toBe('Hammurabi \u2013 Tyndale');
9
+ });
10
+ it('unescapes em-dash', () => {
11
+ expect(unescapeUnicodeSequences('A \\u2014 B')).toBe('A \u2014 B');
12
+ });
13
+ it('unescapes bullet character', () => {
14
+ expect(unescapeUnicodeSequences('\\u2022 Item')).toBe('\u2022 Item');
15
+ });
16
+ it('unescapes curly double quotes', () => {
17
+ expect(unescapeUnicodeSequences('\\u201CHello\\u201D')).toBe('\u201CHello\u201D');
18
+ });
19
+ it('leaves strings without escape sequences unchanged', () => {
20
+ expect(unescapeUnicodeSequences('Normal text')).toBe('Normal text');
21
+ });
22
+ it('handles multiple escape sequences in one string', () => {
23
+ const input = 'The \\u2018Law Code\\u2019 of Hammurabi \\u2013 Tyndale House';
24
+ const expected = 'The \u2018Law Code\u2019 of Hammurabi \u2013 Tyndale House';
25
+ expect(unescapeUnicodeSequences(input)).toBe(expected);
26
+ });
27
+ it('handles uppercase hex digits', () => {
28
+ expect(unescapeUnicodeSequences('\\u00E9')).toBe('\u00e9');
29
+ });
30
+ });
31
+ describe('normalizeFilename', () => {
32
+ it('normalizes filename with escaped curly quotes', () => {
33
+ const input = 'Notes/The \\u2018Law Code\\u2019 of Hammurabi \\u2013 Tyndale House.md';
34
+ const expected = 'Notes/The \u2018Law Code\u2019 of Hammurabi \u2013 Tyndale House.md';
35
+ expect(normalizeFilename(input)).toBe(expected);
36
+ });
37
+ it('normalizes filename with escaped bullet', () => {
38
+ const input = 'Notes/\\u2022 My List.md';
39
+ const expected = 'Notes/\u2022 My List.md';
40
+ expect(normalizeFilename(input)).toBe(expected);
41
+ });
42
+ it('leaves normal filenames unchanged', () => {
43
+ expect(normalizeFilename('Notes/My Note.md')).toBe('Notes/My Note.md');
44
+ });
45
+ it('normalizes Unicode NFC form', () => {
46
+ const nfd = 'Notes/Caf\u0065\u0301.md'; // e + combining accent (NFD)
47
+ const nfc = 'Notes/Caf\u00e9.md'; // precomposed é (NFC)
48
+ expect(normalizeFilename(nfd)).toBe(nfc);
49
+ });
50
+ it('handles pipe character in filenames', () => {
51
+ const input = 'Notes/A | B.md';
52
+ expect(normalizeFilename(input)).toBe('Notes/A | B.md');
53
+ });
54
+ it('handles the full reported filename', () => {
55
+ const input = 'Notes/The \\u2018Law Code\\u2019 of Hammurabi \\u2013 Tyndale House.md';
56
+ const result = normalizeFilename(input);
57
+ expect(result).toContain('\u2018');
58
+ expect(result).toContain('\u2019');
59
+ expect(result).toContain('\u2013');
60
+ expect(result).not.toContain('\\u');
61
+ });
62
+ });
63
+ //# sourceMappingURL=filename-normalize.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filename-normalize.test.js","sourceRoot":"","sources":["../../src/utils/filename-normalize.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"folder-matcher.d.ts","sourceRoot":"","sources":["../../src/utils/folder-matcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAuID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAiF/E"}
1
+ {"version":3,"file":"folder-matcher.d.ts","sourceRoot":"","sources":["../../src/utils/folder-matcher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAuID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CA4F/E"}
@@ -144,6 +144,16 @@ export function matchFolder(query, folders) {
144
144
  ambiguous: false,
145
145
  };
146
146
  }
147
+ // Path-like queries that don't match exactly should not fuzzy-match.
148
+ // A multi-level path like "A/B/C" is specific enough that fuzzy-matching
149
+ // it to a different folder (e.g. "X/B") would be incorrect.
150
+ return {
151
+ matched: false,
152
+ folder: null,
153
+ score: 0,
154
+ alternatives: [],
155
+ ambiguous: false,
156
+ };
147
157
  }
148
158
  // Short queries (1-2 chars) need higher threshold
149
159
  const minThreshold = query.length <= 2 ? 0.9 : 0.7;
@@ -1 +1 @@
1
- {"version":3,"file":"folder-matcher.js","sourceRoot":"","sources":["../../src/utils/folder-matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"folder-matcher.js","sourceRoot":"","sources":["../../src/utils/folder-matcher.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAY5D;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACvC,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,sEAAsE;IACtE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAEjD,8DAA8D;IAC9D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,8EAA8E,EAAE,EAAE,CAAC,CAAC;IAE5G,gCAAgC;IAChC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAElC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAEvB,kDAAkD;IAClD,OAAO,MAAM,IAAI,IAAI,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB,CAAC,CAAS,EAAE,CAAS;IAC5C,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAW,EAAe,EAAE;QAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,UAAkB;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,kEAAkE;IAClE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,KAAa,EAAE,MAAc;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEzD,uDAAuD;IACvD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IACnD,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAEhE,4DAA4D;IAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE3D,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,6EAA6E;IAC7E,IAAI,SAAS,KAAK,UAAU,IAAI,cAAc,KAAK,eAAe;WAC7D,SAAS,KAAK,eAAe,IAAI,cAAc,KAAK,UAAU,EAAE,CAAC;QACpE,SAAS,GAAG,GAAG,CAAC;IAClB,CAAC;IACD,8CAA8C;SACzC,IAAI,SAAS,KAAK,UAAU,IAAI,gBAAgB,KAAK,UAAU,EAAE,CAAC;QACrE,SAAS,GAAG,GAAG,CAAC;IAClB,CAAC;IACD,iCAAiC;SAC5B,IAAI,cAAc,KAAK,UAAU,IAAI,qBAAqB,KAAK,UAAU,EAAE,CAAC;QAC/E,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,oCAAoC;SAC/B,IAAI,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/F,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,qCAAqC;SAChC,IAAI,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3F,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,+CAA+C;SAC1C,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjF,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,sCAAsC;SACjC,CAAC;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CACzB,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,EAC5C,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,CAAC,CACpD,CAAC;QACF,SAAS,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;IAC9E,CAAC;IAED,uDAAuD;IACvD,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAElD,OAAO,SAAS,GAAG,YAAY,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,OAAiB;IAC1D,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,2EAA2E;IAC3E,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,gDAAgD;QAChD,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACpC,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACzD,OAAO,SAAS,KAAK,UAAU,IAAI,cAAc,KAAK,eAAe;mBAChE,SAAS,KAAK,eAAe,IAAI,cAAc,KAAK,UAAU,CAAC;QACtE,CAAC,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,GAAG;gBACV,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE,KAAK;aACjB,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,yEAAyE;QACzE,4DAA4D;QAC5D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAEnD,oBAAoB;IACpB,MAAM,MAAM,GAAG,OAAO;SACnB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM;QACN,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,YAAY,CAAC;SAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,mDAAmD;QACnD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;YACvC,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC;QACD,gCAAgC;QAChC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;IAEL,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,CAAC;YACR,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEnE,0EAA0E;IAC1E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAE9E,OAAO;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,YAAY;QACZ,SAAS;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=folder-matcher.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folder-matcher.test.d.ts","sourceRoot":"","sources":["../../src/utils/folder-matcher.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { matchFolder } from './folder-matcher.js';
3
+ function makeFolder(folderPath) {
4
+ const segments = folderPath.split('/');
5
+ return {
6
+ name: segments[segments.length - 1],
7
+ path: folderPath,
8
+ source: 'local',
9
+ };
10
+ }
11
+ describe('matchFolder', () => {
12
+ describe('multi-level path queries should not fuzzy-match to wrong folders', () => {
13
+ const folders = [
14
+ makeFolder('99 🔬 Test and Temporary'),
15
+ makeFolder('99 🔬 Test and Temporary/Test Sub-folder'),
16
+ ];
17
+ it('should NOT match a non-existent multi-level path to a similar existing folder', () => {
18
+ // User requests "98 - Testing/Test Sub-folder A/Test Sub-folder B"
19
+ // which doesn't exist at all. It should NOT fuzzy-match to
20
+ // "99 🔬 Test and Temporary/Test Sub-folder"
21
+ const result = matchFolder('98 - Testing/Test Sub-folder A/Test Sub-folder B', folders);
22
+ expect(result.matched).toBe(false);
23
+ });
24
+ it('should still exact-match an existing multi-level path', () => {
25
+ const result = matchFolder('99 🔬 Test and Temporary/Test Sub-folder', folders);
26
+ expect(result.matched).toBe(true);
27
+ expect(result.folder?.path).toBe('99 🔬 Test and Temporary/Test Sub-folder');
28
+ expect(result.score).toBe(1.0);
29
+ });
30
+ it('should NOT match a 2-level non-existent path to a 1-level folder', () => {
31
+ // "A/B" should not match "A" or anything with a different structure
32
+ const result = matchFolder('Foo/Bar', [makeFolder('Foo')]);
33
+ expect(result.matched).toBe(false);
34
+ });
35
+ });
36
+ });
37
+ //# sourceMappingURL=folder-matcher.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folder-matcher.test.js","sourceRoot":"","sources":["../../src/utils/folder-matcher.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,SAAS,UAAU,CAAC,UAAkB;IACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,OAAgB;KACzB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAChF,MAAM,OAAO,GAAa;YACxB,UAAU,CAAC,0BAA0B,CAAC;YACtC,UAAU,CAAC,0CAA0C,CAAC;SACvD,CAAC;QAEF,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;YACvF,mEAAmE;YACnE,2DAA2D;YAC3D,6CAA6C;YAC7C,MAAM,MAAM,GAAG,WAAW,CACxB,kDAAkD,EAClD,OAAO,CACR,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,MAAM,GAAG,WAAW,CACxB,0CAA0C,EAC1C,OAAO,CACR,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;YAC7E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;YAC1E,oEAAoE;YACpE,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Server-level configuration from environment variables.
3
+ *
4
+ * NOTEPLAN_READ_ONLY=true → reject all write actions (safe for read-only MCP clients)
5
+ * NOTEPLAN_SKIP_DRY_RUN=true → skip the two-step dryRun/confirmationToken flow
6
+ */
7
+ export declare function isReadOnly(): boolean;
8
+ export declare function isSkipDryRun(): boolean;
9
+ //# sourceMappingURL=server-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.d.ts","sourceRoot":"","sources":["../../src/utils/server-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Server-level configuration from environment variables.
3
+ *
4
+ * NOTEPLAN_READ_ONLY=true → reject all write actions (safe for read-only MCP clients)
5
+ * NOTEPLAN_SKIP_DRY_RUN=true → skip the two-step dryRun/confirmationToken flow
6
+ */
7
+ function envBool(key) {
8
+ const v = process.env[key];
9
+ return v?.toLowerCase() === 'true' || v === '1';
10
+ }
11
+ export function isReadOnly() {
12
+ return envBool('NOTEPLAN_READ_ONLY');
13
+ }
14
+ export function isSkipDryRun() {
15
+ return envBool('NOTEPLAN_SKIP_DRY_RUN');
16
+ }
17
+ //# sourceMappingURL=server-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.js","sourceRoot":"","sources":["../../src/utils/server-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,SAAS,OAAO,CAAC,GAAW;IAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=server-config.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.test.d.ts","sourceRoot":"","sources":["../../src/utils/server-config.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ import { describe, it, expect, afterEach } from 'vitest';
2
+ import { isReadOnly, isSkipDryRun } from './server-config.js';
3
+ describe('server-config', () => {
4
+ afterEach(() => {
5
+ delete process.env.NOTEPLAN_READ_ONLY;
6
+ delete process.env.NOTEPLAN_SKIP_DRY_RUN;
7
+ });
8
+ describe('isReadOnly', () => {
9
+ it('returns false by default', () => {
10
+ expect(isReadOnly()).toBe(false);
11
+ });
12
+ it('returns true when NOTEPLAN_READ_ONLY=true', () => {
13
+ process.env.NOTEPLAN_READ_ONLY = 'true';
14
+ expect(isReadOnly()).toBe(true);
15
+ });
16
+ it('returns true when NOTEPLAN_READ_ONLY=TRUE (case-insensitive)', () => {
17
+ process.env.NOTEPLAN_READ_ONLY = 'TRUE';
18
+ expect(isReadOnly()).toBe(true);
19
+ });
20
+ it('returns true when NOTEPLAN_READ_ONLY=1', () => {
21
+ process.env.NOTEPLAN_READ_ONLY = '1';
22
+ expect(isReadOnly()).toBe(true);
23
+ });
24
+ it('returns false for other values', () => {
25
+ process.env.NOTEPLAN_READ_ONLY = 'false';
26
+ expect(isReadOnly()).toBe(false);
27
+ process.env.NOTEPLAN_READ_ONLY = 'yes';
28
+ expect(isReadOnly()).toBe(false);
29
+ process.env.NOTEPLAN_READ_ONLY = '0';
30
+ expect(isReadOnly()).toBe(false);
31
+ });
32
+ });
33
+ describe('isSkipDryRun', () => {
34
+ it('returns false by default', () => {
35
+ expect(isSkipDryRun()).toBe(false);
36
+ });
37
+ it('returns true when NOTEPLAN_SKIP_DRY_RUN=true', () => {
38
+ process.env.NOTEPLAN_SKIP_DRY_RUN = 'true';
39
+ expect(isSkipDryRun()).toBe(true);
40
+ });
41
+ it('returns true when NOTEPLAN_SKIP_DRY_RUN=1', () => {
42
+ process.env.NOTEPLAN_SKIP_DRY_RUN = '1';
43
+ expect(isSkipDryRun()).toBe(true);
44
+ });
45
+ it('returns false for other values', () => {
46
+ process.env.NOTEPLAN_SKIP_DRY_RUN = 'false';
47
+ expect(isSkipDryRun()).toBe(false);
48
+ });
49
+ });
50
+ });
51
+ //# sourceMappingURL=server-config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-config.test.js","sourceRoot":"","sources":["../../src/utils/server-config.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noteplanco/noteplan-mcp",
3
- "version": "1.1.18",
3
+ "version": "1.1.21",
4
4
  "description": "MCP server for NotePlan note and task management",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",