@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.
- package/LICENSE +21 -0
- package/README.md +46 -0
- package/dist/noteplan/file-reader.d.ts.map +1 -1
- package/dist/noteplan/file-reader.js +131 -19
- package/dist/noteplan/file-reader.js.map +1 -1
- package/dist/noteplan/file-writer.d.ts.map +1 -1
- package/dist/noteplan/file-writer.js +3 -1
- package/dist/noteplan/file-writer.js.map +1 -1
- package/dist/noteplan/file-writer.test.js +5 -0
- package/dist/noteplan/file-writer.test.js.map +1 -1
- package/dist/noteplan/frontmatter-parser.d.ts +5 -2
- package/dist/noteplan/frontmatter-parser.d.ts.map +1 -1
- package/dist/noteplan/frontmatter-parser.js +106 -32
- package/dist/noteplan/frontmatter-parser.js.map +1 -1
- package/dist/noteplan/frontmatter-parser.test.js +216 -0
- package/dist/noteplan/frontmatter-parser.test.js.map +1 -1
- package/dist/noteplan/sqlite-writer.d.ts.map +1 -1
- package/dist/noteplan/sqlite-writer.js +10 -0
- package/dist/noteplan/sqlite-writer.js.map +1 -1
- package/dist/noteplan/unified-store.d.ts.map +1 -1
- package/dist/noteplan/unified-store.js +5 -3
- package/dist/noteplan/unified-store.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +108 -13
- package/dist/server.js.map +1 -1
- package/dist/tools/notes.d.ts +2 -0
- package/dist/tools/notes.d.ts.map +1 -1
- package/dist/tools/notes.js +32 -9
- package/dist/tools/notes.js.map +1 -1
- package/dist/tools/notes.test.js +62 -4
- package/dist/tools/notes.test.js.map +1 -1
- package/dist/tools/plugins.d.ts +17 -3
- package/dist/tools/plugins.d.ts.map +1 -1
- package/dist/tools/plugins.js +259 -69
- package/dist/tools/plugins.js.map +1 -1
- package/dist/tools/tasks.d.ts +131 -0
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +203 -0
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/tasks.test.d.ts +2 -0
- package/dist/tools/tasks.test.d.ts.map +1 -0
- package/dist/tools/tasks.test.js +51 -0
- package/dist/tools/tasks.test.js.map +1 -0
- package/dist/utils/confirmation-tokens.d.ts.map +1 -1
- package/dist/utils/confirmation-tokens.js +6 -0
- package/dist/utils/confirmation-tokens.js.map +1 -1
- package/dist/utils/confirmation-tokens.test.js +42 -0
- package/dist/utils/confirmation-tokens.test.js.map +1 -1
- package/dist/utils/filename-normalize.d.ts +21 -0
- package/dist/utils/filename-normalize.d.ts.map +1 -0
- package/dist/utils/filename-normalize.js +32 -0
- package/dist/utils/filename-normalize.js.map +1 -0
- package/dist/utils/filename-normalize.test.d.ts +2 -0
- package/dist/utils/filename-normalize.test.d.ts.map +1 -0
- package/dist/utils/filename-normalize.test.js +63 -0
- package/dist/utils/filename-normalize.test.js.map +1 -0
- package/dist/utils/folder-matcher.d.ts.map +1 -1
- package/dist/utils/folder-matcher.js +10 -0
- package/dist/utils/folder-matcher.js.map +1 -1
- package/dist/utils/folder-matcher.test.d.ts +2 -0
- package/dist/utils/folder-matcher.test.d.ts.map +1 -0
- package/dist/utils/folder-matcher.test.js +37 -0
- package/dist/utils/folder-matcher.test.js.map +1 -0
- package/dist/utils/server-config.d.ts +9 -0
- package/dist/utils/server-config.d.ts.map +1 -0
- package/dist/utils/server-config.js +17 -0
- package/dist/utils/server-config.js.map +1 -0
- package/dist/utils/server-config.test.d.ts +2 -0
- package/dist/utils/server-config.test.d.ts.map +1 -0
- package/dist/utils/server-config.test.js +51 -0
- package/dist/utils/server-config.test.js.map +1 -0
- 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 @@
|
|
|
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,
|
|
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":"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"}
|
|
@@ -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 @@
|
|
|
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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"}
|