@noteplanco/noteplan-mcp 1.1.23 → 1.1.24
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/README.md +7 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/noteplan/attachments-paths.d.ts +13 -0
- package/dist/noteplan/attachments-paths.d.ts.map +1 -0
- package/dist/noteplan/attachments-paths.js +27 -0
- package/dist/noteplan/attachments-paths.js.map +1 -0
- package/dist/noteplan/embeddings.js +1 -1
- package/dist/noteplan/embeddings.js.map +1 -1
- package/dist/noteplan/file-reader.d.ts +37 -46
- package/dist/noteplan/file-reader.d.ts.map +1 -1
- package/dist/noteplan/file-reader.js +200 -202
- package/dist/noteplan/file-reader.js.map +1 -1
- package/dist/noteplan/file-reader.test.d.ts +2 -0
- package/dist/noteplan/file-reader.test.d.ts.map +1 -0
- package/dist/noteplan/file-reader.test.js +67 -0
- package/dist/noteplan/file-reader.test.js.map +1 -0
- package/dist/noteplan/file-writer.d.ts +35 -31
- package/dist/noteplan/file-writer.d.ts.map +1 -1
- package/dist/noteplan/file-writer.js +280 -164
- package/dist/noteplan/file-writer.js.map +1 -1
- package/dist/noteplan/file-writer.test.js +704 -191
- package/dist/noteplan/file-writer.test.js.map +1 -1
- package/dist/noteplan/filter-store.d.ts +5 -5
- package/dist/noteplan/filter-store.d.ts.map +1 -1
- package/dist/noteplan/filter-store.js +94 -79
- package/dist/noteplan/filter-store.js.map +1 -1
- package/dist/noteplan/ripgrep-search.d.ts +25 -2
- package/dist/noteplan/ripgrep-search.d.ts.map +1 -1
- package/dist/noteplan/ripgrep-search.js +75 -2
- package/dist/noteplan/ripgrep-search.js.map +1 -1
- package/dist/noteplan/space-row-utils.d.ts +20 -0
- package/dist/noteplan/space-row-utils.d.ts.map +1 -0
- package/dist/noteplan/space-row-utils.js +78 -0
- package/dist/noteplan/space-row-utils.js.map +1 -0
- package/dist/noteplan/space-row-utils.test.d.ts +2 -0
- package/dist/noteplan/space-row-utils.test.d.ts.map +1 -0
- package/dist/noteplan/space-row-utils.test.js +123 -0
- package/dist/noteplan/space-row-utils.test.js.map +1 -0
- package/dist/noteplan/sqlite-reader.d.ts +12 -27
- package/dist/noteplan/sqlite-reader.d.ts.map +1 -1
- package/dist/noteplan/sqlite-reader.js +315 -221
- package/dist/noteplan/sqlite-reader.js.map +1 -1
- package/dist/noteplan/sqlite-writer.d.ts +1 -1
- package/dist/noteplan/sqlite-writer.d.ts.map +1 -1
- package/dist/noteplan/sqlite-writer.js +2 -2
- package/dist/noteplan/sqlite-writer.js.map +1 -1
- package/dist/noteplan/unified-store.d.ts +41 -30
- package/dist/noteplan/unified-store.d.ts.map +1 -1
- package/dist/noteplan/unified-store.js +257 -159
- package/dist/noteplan/unified-store.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +142 -61
- package/dist/server.js.map +1 -1
- package/dist/tools/attachments.d.ts +9 -9
- package/dist/tools/attachments.d.ts.map +1 -1
- package/dist/tools/attachments.js +74 -83
- package/dist/tools/attachments.js.map +1 -1
- package/dist/tools/attachments.test.js +170 -129
- package/dist/tools/attachments.test.js.map +1 -1
- package/dist/tools/calendar.d.ts +16 -13
- package/dist/tools/calendar.d.ts.map +1 -1
- package/dist/tools/calendar.js +17 -16
- package/dist/tools/calendar.js.map +1 -1
- package/dist/tools/embeddings.d.ts +6 -6
- package/dist/tools/embeddings.d.ts.map +1 -1
- package/dist/tools/embeddings.js +6 -6
- package/dist/tools/embeddings.js.map +1 -1
- package/dist/tools/events.d.ts +7 -3
- package/dist/tools/events.d.ts.map +1 -1
- package/dist/tools/events.js +51 -16
- package/dist/tools/events.js.map +1 -1
- package/dist/tools/filters.d.ts +28 -33
- package/dist/tools/filters.d.ts.map +1 -1
- package/dist/tools/filters.js +42 -105
- package/dist/tools/filters.js.map +1 -1
- package/dist/tools/notes.d.ts +80 -218
- package/dist/tools/notes.d.ts.map +1 -1
- package/dist/tools/notes.js +180 -177
- package/dist/tools/notes.js.map +1 -1
- package/dist/tools/notes.test.js +242 -21
- package/dist/tools/notes.test.js.map +1 -1
- package/dist/tools/search.d.ts +4 -3
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +9 -5
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/search.test.d.ts +2 -0
- package/dist/tools/search.test.d.ts.map +1 -0
- package/dist/tools/search.test.js +37 -0
- package/dist/tools/search.test.js.map +1 -0
- package/dist/tools/spaces.d.ts +20 -20
- package/dist/tools/spaces.d.ts.map +1 -1
- package/dist/tools/spaces.js +28 -28
- package/dist/tools/spaces.js.map +1 -1
- package/dist/tools/tasks.d.ts +22 -22
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +22 -22
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/templates.d.ts +7 -7
- package/dist/tools/templates.d.ts.map +1 -1
- package/dist/tools/templates.js +4 -4
- package/dist/tools/templates.js.map +1 -1
- package/dist/tools/themes.js +1 -1
- package/dist/tools/themes.js.map +1 -1
- package/dist/transport/bridge-availability.d.ts +5 -0
- package/dist/transport/bridge-availability.d.ts.map +1 -0
- package/dist/transport/bridge-availability.js +92 -0
- package/dist/transport/bridge-availability.js.map +1 -0
- package/dist/transport/bridge-cascade.d.ts +18 -0
- package/dist/transport/bridge-cascade.d.ts.map +1 -0
- package/dist/transport/bridge-cascade.js +78 -0
- package/dist/transport/bridge-cascade.js.map +1 -0
- package/dist/transport/bridge-cascade.test.d.ts +2 -0
- package/dist/transport/bridge-cascade.test.d.ts.map +1 -0
- package/dist/transport/bridge-cascade.test.js +160 -0
- package/dist/transport/bridge-cascade.test.js.map +1 -0
- package/dist/transport/bridge-client.d.ts +197 -0
- package/dist/transport/bridge-client.d.ts.map +1 -0
- package/dist/transport/bridge-client.js +288 -0
- package/dist/transport/bridge-client.js.map +1 -0
- package/dist/transport/bridge-client.test.d.ts +2 -0
- package/dist/transport/bridge-client.test.d.ts.map +1 -0
- package/dist/transport/bridge-client.test.js +384 -0
- package/dist/transport/bridge-client.test.js.map +1 -0
- package/dist/transport/bridge-context.d.ts +10 -0
- package/dist/transport/bridge-context.d.ts.map +1 -0
- package/dist/transport/bridge-context.js +18 -0
- package/dist/transport/bridge-context.js.map +1 -0
- package/dist/transport/bridge-fs.d.ts +25 -0
- package/dist/transport/bridge-fs.d.ts.map +1 -0
- package/dist/transport/bridge-fs.js +129 -0
- package/dist/transport/bridge-fs.js.map +1 -0
- package/dist/utils/date-utils.d.ts +24 -0
- package/dist/utils/date-utils.d.ts.map +1 -1
- package/dist/utils/date-utils.js +55 -0
- package/dist/utils/date-utils.js.map +1 -1
- package/dist/utils/date-utils.test.d.ts +2 -0
- package/dist/utils/date-utils.test.d.ts.map +1 -0
- package/dist/utils/date-utils.test.js +109 -0
- package/dist/utils/date-utils.test.js.map +1 -0
- package/dist/utils/folder-access.d.ts +23 -0
- package/dist/utils/folder-access.d.ts.map +1 -0
- package/dist/utils/folder-access.js +131 -0
- package/dist/utils/folder-access.js.map +1 -0
- package/dist/utils/folder-access.test.d.ts +2 -0
- package/dist/utils/folder-access.test.d.ts.map +1 -0
- package/dist/utils/folder-access.test.js +182 -0
- package/dist/utils/folder-access.test.js.map +1 -0
- package/dist/utils/folder-matcher.d.ts.map +1 -1
- package/dist/utils/folder-matcher.js +16 -0
- package/dist/utils/folder-matcher.js.map +1 -1
- package/dist/utils/folder-matcher.test.js +42 -0
- package/dist/utils/folder-matcher.test.js.map +1 -1
- package/dist/utils/server-config.d.ts +10 -2
- package/dist/utils/server-config.d.ts.map +1 -1
- package/dist/utils/server-config.js +16 -2
- package/dist/utils/server-config.js.map +1 -1
- package/dist/utils/version.d.ts +2 -0
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +5 -1
- package/dist/utils/version.js.map +1 -1
- package/package.json +4 -3
- package/scripts/calendar-helper +0 -0
- package/scripts/reminders-helper +0 -0
package/dist/tools/themes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../src/tools/themes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../src/tools/themes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { BridgeClient } from './bridge-client.js';
|
|
2
|
+
export declare function getBridgeClient(): Promise<BridgeClient | null>;
|
|
3
|
+
/** Drop the cached client — next call will rediscover. Use after a failed request. */
|
|
4
|
+
export declare function invalidateBridgeClient(): void;
|
|
5
|
+
//# sourceMappingURL=bridge-availability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-availability.d.ts","sourceRoot":"","sources":["../../src/transport/bridge-availability.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAgBpE;AAED,sFAAsF;AACtF,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { runAppleScript } from '../utils/applescript.js';
|
|
2
|
+
import { shouldAutoLaunchNotePlan } from '../utils/server-config.js';
|
|
3
|
+
import { APPLESCRIPT_APP_NAMES, MIN_BUILD_BRIDGE, getDetectedAppName, getNotePlanVersion, } from '../utils/version.js';
|
|
4
|
+
import { BridgeClient } from './bridge-client.js';
|
|
5
|
+
const POSITIVE_TTL_MS = 60_000;
|
|
6
|
+
const NEGATIVE_TTL_MS = 5_000;
|
|
7
|
+
let cachedClient = null;
|
|
8
|
+
let cacheExpiresAt = 0;
|
|
9
|
+
let inFlight = null;
|
|
10
|
+
export async function getBridgeClient() {
|
|
11
|
+
if (cacheExpiresAt > Date.now())
|
|
12
|
+
return cachedClient;
|
|
13
|
+
if (inFlight)
|
|
14
|
+
return inFlight;
|
|
15
|
+
inFlight = (async () => {
|
|
16
|
+
try {
|
|
17
|
+
const client = await discover();
|
|
18
|
+
cachedClient = client;
|
|
19
|
+
cacheExpiresAt = Date.now() + (client ? POSITIVE_TTL_MS : NEGATIVE_TTL_MS);
|
|
20
|
+
return client;
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
inFlight = null;
|
|
24
|
+
}
|
|
25
|
+
})();
|
|
26
|
+
return inFlight;
|
|
27
|
+
}
|
|
28
|
+
/** Drop the cached client — next call will rediscover. Use after a failed request. */
|
|
29
|
+
export function invalidateBridgeClient() {
|
|
30
|
+
cachedClient = null;
|
|
31
|
+
cacheExpiresAt = 0;
|
|
32
|
+
}
|
|
33
|
+
async function discover() {
|
|
34
|
+
const { build } = getNotePlanVersion();
|
|
35
|
+
if (build > 0 && build < MIN_BUILD_BRIDGE)
|
|
36
|
+
return null;
|
|
37
|
+
const info = queryBridgeInfo();
|
|
38
|
+
if (!info)
|
|
39
|
+
return null;
|
|
40
|
+
const client = new BridgeClient(info.port, info.token, {
|
|
41
|
+
onFailure: invalidateBridgeClient,
|
|
42
|
+
});
|
|
43
|
+
if (!(await client.health()))
|
|
44
|
+
return null;
|
|
45
|
+
return client;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Try the already-detected app name first (cached during version detection)
|
|
49
|
+
* to avoid up-to-4 sequential 5-second timeouts on the common case. Falls
|
|
50
|
+
* back to iterating remaining names if the detected one doesn't match.
|
|
51
|
+
*/
|
|
52
|
+
function queryBridgeInfo() {
|
|
53
|
+
const detected = getDetectedAppName();
|
|
54
|
+
const ordered = [detected, ...APPLESCRIPT_APP_NAMES.filter((n) => n !== detected)];
|
|
55
|
+
// Default: a bare `tell application "X" to …` auto-launches X on macOS,
|
|
56
|
+
// which is desirable here because routing through NotePlan sidesteps the
|
|
57
|
+
// Files & Folders (TCC) prompts users would otherwise face from direct
|
|
58
|
+
// container access. Set NOTEPLAN_MCP_AUTOLAUNCH=false to opt out, in which
|
|
59
|
+
// case the `is running` wrapper keeps the probe passive.
|
|
60
|
+
const autoLaunch = shouldAutoLaunchNotePlan();
|
|
61
|
+
for (const appName of ordered) {
|
|
62
|
+
let raw;
|
|
63
|
+
try {
|
|
64
|
+
const script = autoLaunch
|
|
65
|
+
? `tell application "${appName}" to getMCPBridgeInfo`
|
|
66
|
+
: `if application "${appName}" is running then\n` +
|
|
67
|
+
` tell application "${appName}" to getMCPBridgeInfo\n` +
|
|
68
|
+
`end if`;
|
|
69
|
+
raw = runAppleScript(script, 5_000);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (!raw)
|
|
75
|
+
continue;
|
|
76
|
+
try {
|
|
77
|
+
const parsed = JSON.parse(raw);
|
|
78
|
+
if (parsed &&
|
|
79
|
+
typeof parsed.port === 'number' &&
|
|
80
|
+
parsed.port > 0 &&
|
|
81
|
+
typeof parsed.token === 'string' &&
|
|
82
|
+
parsed.token.length > 0) {
|
|
83
|
+
return { port: parsed.port, token: parsed.token };
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Not JSON — wrong app or stale response. Try next name.
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=bridge-availability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-availability.js","sourceRoot":"","sources":["../../src/transport/bridge-availability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,eAAe,GAAG,MAAM,CAAC;AAC/B,MAAM,eAAe,GAAG,KAAK,CAAC;AAE9B,IAAI,YAAY,GAAwB,IAAI,CAAC;AAC7C,IAAI,cAAc,GAAG,CAAC,CAAC;AACvB,IAAI,QAAQ,GAAwC,IAAI,CAAC;AAEzD,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,YAAY,CAAC;IACrD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;YAChC,YAAY,GAAG,MAAM,CAAC;YACtB,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;YAC3E,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,sBAAsB;IACpC,YAAY,GAAG,IAAI,CAAC;IACpB,cAAc,GAAG,CAAC,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,MAAM,EAAE,KAAK,EAAE,GAAG,kBAAkB,EAAE,CAAC;IACvC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,gBAAgB;QAAE,OAAO,IAAI,CAAC;IAEvD,MAAM,IAAI,GAAG,eAAe,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;QACrD,SAAS,EAAE,sBAAsB;KAClC,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe;IACtB,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;IAEnF,wEAAwE;IACxE,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,yDAAyD;IACzD,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAC;IAC9C,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;QAC9B,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU;gBACvB,CAAC,CAAC,qBAAqB,OAAO,uBAAuB;gBACrD,CAAC,CAAC,mBAAmB,OAAO,qBAAqB;oBAC/C,uBAAuB,OAAO,yBAAyB;oBACvD,QAAQ,CAAC;YACb,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG;YAAE,SAAS;QAEnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IACE,MAAM;gBACN,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAC/B,MAAM,CAAC,IAAI,GAAG,CAAC;gBACf,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;gBAChC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EACvB,CAAC;gBACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type BridgeClient } from './bridge-client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Run `bridgeOp` against the live bridge when one is available; otherwise
|
|
4
|
+
* fall through to `fallback`.
|
|
5
|
+
*
|
|
6
|
+
* Note: `bridgeOp` resolving with `undefined` is treated as "success",
|
|
7
|
+
* not "fall back" — throw to fall back.
|
|
8
|
+
*
|
|
9
|
+
* Error policy:
|
|
10
|
+
* - 4xx HTTP from bridge → propagate (bridge is healthy, the request is
|
|
11
|
+
* invalid; running the fallback would mask the real error).
|
|
12
|
+
* - 5xx / malformed JSON / empty body / timeout / connection refused
|
|
13
|
+
* → silently fall back (transport problem, not a logic error).
|
|
14
|
+
* - Any other thrown error from `bridgeOp` → propagate (it's a logical
|
|
15
|
+
* error the caller turned into an exception).
|
|
16
|
+
*/
|
|
17
|
+
export declare function bridgeOrFallback<T>(bridgeOp: (client: BridgeClient) => Promise<T>, fallback: () => Promise<T> | T): Promise<T>;
|
|
18
|
+
//# sourceMappingURL=bridge-cascade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-cascade.d.ts","sourceRoot":"","sources":["../../src/transport/bridge-cascade.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGxE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9C,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CAoCZ"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { getBridgeClient } from './bridge-availability.js';
|
|
2
|
+
import { BridgeHttpError } from './bridge-client.js';
|
|
3
|
+
import { recordBackend } from './bridge-context.js';
|
|
4
|
+
/**
|
|
5
|
+
* Run `bridgeOp` against the live bridge when one is available; otherwise
|
|
6
|
+
* fall through to `fallback`.
|
|
7
|
+
*
|
|
8
|
+
* Note: `bridgeOp` resolving with `undefined` is treated as "success",
|
|
9
|
+
* not "fall back" — throw to fall back.
|
|
10
|
+
*
|
|
11
|
+
* Error policy:
|
|
12
|
+
* - 4xx HTTP from bridge → propagate (bridge is healthy, the request is
|
|
13
|
+
* invalid; running the fallback would mask the real error).
|
|
14
|
+
* - 5xx / malformed JSON / empty body / timeout / connection refused
|
|
15
|
+
* → silently fall back (transport problem, not a logic error).
|
|
16
|
+
* - Any other thrown error from `bridgeOp` → propagate (it's a logical
|
|
17
|
+
* error the caller turned into an exception).
|
|
18
|
+
*/
|
|
19
|
+
export async function bridgeOrFallback(bridgeOp, fallback) {
|
|
20
|
+
let client = null;
|
|
21
|
+
try {
|
|
22
|
+
client = await getBridgeClient();
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// Defensive: getBridgeClient should never throw, but if discovery
|
|
26
|
+
// raises a previously-unseen exception, fall back rather than fail.
|
|
27
|
+
}
|
|
28
|
+
if (client) {
|
|
29
|
+
try {
|
|
30
|
+
const result = await bridgeOp(client);
|
|
31
|
+
recordBackend('bridge');
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
if (err instanceof BridgeHttpError) {
|
|
36
|
+
if (err.isClientError) {
|
|
37
|
+
// 4xx counts as bridge-served — the bridge processed the request
|
|
38
|
+
// and rejected it; the fallback would mask the real error.
|
|
39
|
+
recordBackend('bridge');
|
|
40
|
+
throw err;
|
|
41
|
+
}
|
|
42
|
+
// 5xx / malformed JSON / empty body — fall through. Log so support
|
|
43
|
+
// diagnosing a TCC-prompt report can see why bridge was skipped.
|
|
44
|
+
console.error(`[noteplan-mcp] bridge op failed (${err.status}); falling back: ${truncate(err.message, 200)}`);
|
|
45
|
+
}
|
|
46
|
+
else if (isTransportError(err)) {
|
|
47
|
+
// ECONNREFUSED / ECONNRESET / ETIMEDOUT / ENOTFOUND / EHOSTUNREACH
|
|
48
|
+
// — bridge crashed or port changed; let the fallback have it.
|
|
49
|
+
const code = err.code;
|
|
50
|
+
console.error(`[noteplan-mcp] bridge unreachable (${code}); falling back`);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
recordBackend('fallback');
|
|
58
|
+
return fallback();
|
|
59
|
+
}
|
|
60
|
+
const TRANSPORT_ERROR_CODES = new Set([
|
|
61
|
+
'ECONNREFUSED',
|
|
62
|
+
'ECONNRESET',
|
|
63
|
+
'ETIMEDOUT',
|
|
64
|
+
'ENOTFOUND',
|
|
65
|
+
'EHOSTUNREACH',
|
|
66
|
+
'ENETUNREACH',
|
|
67
|
+
'EPIPE',
|
|
68
|
+
]);
|
|
69
|
+
function isTransportError(err) {
|
|
70
|
+
if (typeof err !== 'object' || err === null)
|
|
71
|
+
return false;
|
|
72
|
+
const code = err.code;
|
|
73
|
+
return typeof code === 'string' && TRANSPORT_ERROR_CODES.has(code);
|
|
74
|
+
}
|
|
75
|
+
function truncate(s, max) {
|
|
76
|
+
return s.length > max ? `${s.slice(0, max)}…` : s;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=bridge-cascade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-cascade.js","sourceRoot":"","sources":["../../src/transport/bridge-cascade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAqB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA8C,EAC9C,QAA8B;IAE9B,IAAI,MAAM,GAAwB,IAAI,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,kEAAkE;QAClE,oEAAoE;IACtE,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;gBACnC,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;oBACtB,iEAAiE;oBACjE,2DAA2D;oBAC3D,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,MAAM,GAAG,CAAC;gBACZ,CAAC;gBACD,mEAAmE;gBACnE,iEAAiE;gBACjE,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,oBAAoB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAChH,CAAC;iBAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,mEAAmE;gBACnE,8DAA8D;gBAC9D,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,sCAAsC,IAAI,iBAAiB,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IACD,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1B,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,cAAc;IACd,YAAY;IACZ,WAAW;IACX,WAAW;IACX,cAAc;IACd,aAAa;IACb,OAAO;CACR,CAAC,CAAC;AAEH,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;IACjD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,GAAW;IACtC,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-cascade.test.d.ts","sourceRoot":"","sources":["../../src/transport/bridge-cascade.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { describe, expect, it, vi, beforeEach } from 'vitest';
|
|
2
|
+
import { BridgeHttpError } from './bridge-client.js';
|
|
3
|
+
// Mock bridge-availability so each test controls what `getBridgeClient`
|
|
4
|
+
// returns. The cascade helper imports it via dynamic resolution; vi.mock
|
|
5
|
+
// hoists above the import below.
|
|
6
|
+
vi.mock('./bridge-availability.js', () => ({
|
|
7
|
+
getBridgeClient: vi.fn(),
|
|
8
|
+
}));
|
|
9
|
+
import { bridgeOrFallback } from './bridge-cascade.js';
|
|
10
|
+
import { getBridgeClient } from './bridge-availability.js';
|
|
11
|
+
const mockedGetBridgeClient = vi.mocked(getBridgeClient);
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
mockedGetBridgeClient.mockReset();
|
|
14
|
+
});
|
|
15
|
+
// A minimal stand-in for BridgeClient. The cascade only ever passes it
|
|
16
|
+
// to the caller's bridgeOp, which we control in each test.
|
|
17
|
+
const fakeClient = {};
|
|
18
|
+
function transportError(code) {
|
|
19
|
+
return Object.assign(new Error(code), { code });
|
|
20
|
+
}
|
|
21
|
+
describe('bridgeOrFallback', () => {
|
|
22
|
+
describe('happy path', () => {
|
|
23
|
+
it('returns the bridge result when the bridge succeeds', async () => {
|
|
24
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
25
|
+
const result = await bridgeOrFallback(async () => 'from-bridge', () => 'from-fallback');
|
|
26
|
+
expect(result).toBe('from-bridge');
|
|
27
|
+
});
|
|
28
|
+
it('treats a bridgeOp resolving with `null` as success (not fall through)', async () => {
|
|
29
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
30
|
+
const fallback = vi.fn(() => 'fallback-was-called');
|
|
31
|
+
const result = await bridgeOrFallback(async () => null, fallback);
|
|
32
|
+
expect(result).toBeNull();
|
|
33
|
+
expect(fallback).not.toHaveBeenCalled();
|
|
34
|
+
});
|
|
35
|
+
it('treats a bridgeOp resolving with `undefined` as success (not fall through)', async () => {
|
|
36
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
37
|
+
const fallback = vi.fn(() => 'fallback-was-called');
|
|
38
|
+
const result = await bridgeOrFallback(async () => undefined, fallback);
|
|
39
|
+
expect(result).toBeUndefined();
|
|
40
|
+
expect(fallback).not.toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('no bridge available', () => {
|
|
44
|
+
it('runs the fallback when getBridgeClient resolves null', async () => {
|
|
45
|
+
mockedGetBridgeClient.mockResolvedValue(null);
|
|
46
|
+
const result = await bridgeOrFallback(async () => 'from-bridge', () => 'from-fallback');
|
|
47
|
+
expect(result).toBe('from-fallback');
|
|
48
|
+
});
|
|
49
|
+
it('runs the fallback even when getBridgeClient itself throws', async () => {
|
|
50
|
+
mockedGetBridgeClient.mockRejectedValue(new Error('discovery exploded'));
|
|
51
|
+
const result = await bridgeOrFallback(async () => 'from-bridge', () => 'from-fallback');
|
|
52
|
+
expect(result).toBe('from-fallback');
|
|
53
|
+
});
|
|
54
|
+
it('supports a sync fallback', async () => {
|
|
55
|
+
mockedGetBridgeClient.mockResolvedValue(null);
|
|
56
|
+
const result = await bridgeOrFallback(async () => 'from-bridge', () => 'sync-fallback');
|
|
57
|
+
expect(result).toBe('sync-fallback');
|
|
58
|
+
});
|
|
59
|
+
it('supports an async fallback', async () => {
|
|
60
|
+
mockedGetBridgeClient.mockResolvedValue(null);
|
|
61
|
+
const result = await bridgeOrFallback(async () => 'from-bridge', async () => 'async-fallback');
|
|
62
|
+
expect(result).toBe('async-fallback');
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe('error policy', () => {
|
|
66
|
+
it('propagates a 4xx BridgeHttpError WITHOUT calling the fallback', async () => {
|
|
67
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
68
|
+
const fallback = vi.fn();
|
|
69
|
+
await expect(bridgeOrFallback(async () => {
|
|
70
|
+
throw new BridgeHttpError('bad request', 400);
|
|
71
|
+
}, fallback)).rejects.toBeInstanceOf(BridgeHttpError);
|
|
72
|
+
expect(fallback).not.toHaveBeenCalled();
|
|
73
|
+
});
|
|
74
|
+
it('propagates a 404 BridgeHttpError WITHOUT calling the fallback', async () => {
|
|
75
|
+
// 404 is the most common 4xx and the one callers usually special-case.
|
|
76
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
77
|
+
const fallback = vi.fn();
|
|
78
|
+
await expect(bridgeOrFallback(async () => {
|
|
79
|
+
throw new BridgeHttpError('not found', 404);
|
|
80
|
+
}, fallback)).rejects.toMatchObject({ status: 404 });
|
|
81
|
+
expect(fallback).not.toHaveBeenCalled();
|
|
82
|
+
});
|
|
83
|
+
it('falls back on a 5xx BridgeHttpError', async () => {
|
|
84
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
85
|
+
const result = await bridgeOrFallback(async () => {
|
|
86
|
+
throw new BridgeHttpError('server error', 500);
|
|
87
|
+
}, () => 'fallback');
|
|
88
|
+
expect(result).toBe('fallback');
|
|
89
|
+
});
|
|
90
|
+
it('falls back on ECONNREFUSED (bridge crashed or port changed)', async () => {
|
|
91
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
92
|
+
const result = await bridgeOrFallback(async () => {
|
|
93
|
+
throw transportError('ECONNREFUSED');
|
|
94
|
+
}, () => 'fallback');
|
|
95
|
+
expect(result).toBe('fallback');
|
|
96
|
+
});
|
|
97
|
+
it('falls back on ETIMEDOUT', async () => {
|
|
98
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
99
|
+
const result = await bridgeOrFallback(async () => {
|
|
100
|
+
throw transportError('ETIMEDOUT');
|
|
101
|
+
}, () => 'fallback');
|
|
102
|
+
expect(result).toBe('fallback');
|
|
103
|
+
});
|
|
104
|
+
it('falls back on ECONNRESET / ENOTFOUND / EHOSTUNREACH', async () => {
|
|
105
|
+
for (const code of ['ECONNRESET', 'ENOTFOUND', 'EHOSTUNREACH', 'ENETUNREACH', 'EPIPE']) {
|
|
106
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
107
|
+
const result = await bridgeOrFallback(async () => {
|
|
108
|
+
throw transportError(code);
|
|
109
|
+
}, () => `fallback-after-${code}`);
|
|
110
|
+
expect(result).toBe(`fallback-after-${code}`);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
it('PROPAGATES non-BridgeHttpError, non-transport errors thrown by bridgeOp', async () => {
|
|
114
|
+
// E.g. caller throws `new Error("Filter already exists")` after seeing a 409.
|
|
115
|
+
// That's a logical error, not a transport problem — the fallback would mask it.
|
|
116
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
117
|
+
const fallback = vi.fn();
|
|
118
|
+
await expect(bridgeOrFallback(async () => {
|
|
119
|
+
throw new Error('Filter already exists');
|
|
120
|
+
}, fallback)).rejects.toThrow('Filter already exists');
|
|
121
|
+
expect(fallback).not.toHaveBeenCalled();
|
|
122
|
+
});
|
|
123
|
+
it('PROPAGATES TypeError thrown inside bridgeOp', async () => {
|
|
124
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
125
|
+
const fallback = vi.fn();
|
|
126
|
+
await expect(bridgeOrFallback(async () => {
|
|
127
|
+
throw new TypeError('cannot read property of undefined');
|
|
128
|
+
}, fallback)).rejects.toBeInstanceOf(TypeError);
|
|
129
|
+
expect(fallback).not.toHaveBeenCalled();
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
describe('integration with BridgeHttpError.isClientError', () => {
|
|
133
|
+
it.each([
|
|
134
|
+
[400, true],
|
|
135
|
+
[401, true],
|
|
136
|
+
[404, true],
|
|
137
|
+
[409, true],
|
|
138
|
+
[499, true],
|
|
139
|
+
[500, false],
|
|
140
|
+
[502, false],
|
|
141
|
+
[503, false],
|
|
142
|
+
])('status %i → propagates=%s', async (status, shouldPropagate) => {
|
|
143
|
+
mockedGetBridgeClient.mockResolvedValue(fakeClient);
|
|
144
|
+
const fallback = vi.fn(() => 'fallback');
|
|
145
|
+
const op = async () => {
|
|
146
|
+
throw new BridgeHttpError(`status ${status}`, status);
|
|
147
|
+
};
|
|
148
|
+
if (shouldPropagate) {
|
|
149
|
+
await expect(bridgeOrFallback(op, fallback)).rejects.toMatchObject({ status });
|
|
150
|
+
expect(fallback).not.toHaveBeenCalled();
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
const result = await bridgeOrFallback(op, fallback);
|
|
154
|
+
expect(result).toBe('fallback');
|
|
155
|
+
expect(fallback).toHaveBeenCalledOnce();
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
//# sourceMappingURL=bridge-cascade.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-cascade.test.js","sourceRoot":"","sources":["../../src/transport/bridge-cascade.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
export interface BridgeConfig {
|
|
2
|
+
storagePath: string;
|
|
3
|
+
fileExtension: string;
|
|
4
|
+
hasYearSubfolders: boolean;
|
|
5
|
+
appVersion: string;
|
|
6
|
+
appBuild: number;
|
|
7
|
+
appName: string;
|
|
8
|
+
isUsingCloudKit: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface BridgeFsEntry {
|
|
11
|
+
/** Filename only (last path component). */
|
|
12
|
+
name: string;
|
|
13
|
+
/** Path relative to the listed directory. For non-recursive listings this equals name. */
|
|
14
|
+
path: string;
|
|
15
|
+
isDir: boolean;
|
|
16
|
+
size: number;
|
|
17
|
+
/** ms since epoch. 0 if unavailable. */
|
|
18
|
+
mtime: number;
|
|
19
|
+
/** ms since epoch. 0 if unavailable. */
|
|
20
|
+
ctime: number;
|
|
21
|
+
}
|
|
22
|
+
export interface BridgeReadResult {
|
|
23
|
+
/** UTF-8 decoded file content. */
|
|
24
|
+
content: string;
|
|
25
|
+
size: number;
|
|
26
|
+
mtime: number;
|
|
27
|
+
ctime: number;
|
|
28
|
+
}
|
|
29
|
+
export type BridgeStatResult = {
|
|
30
|
+
exists: false;
|
|
31
|
+
} | {
|
|
32
|
+
exists: true;
|
|
33
|
+
isDir: boolean;
|
|
34
|
+
size: number;
|
|
35
|
+
mtime: number;
|
|
36
|
+
ctime: number;
|
|
37
|
+
};
|
|
38
|
+
export interface BridgeListOptions {
|
|
39
|
+
recursive?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface BridgeWriteResult {
|
|
42
|
+
ok: true;
|
|
43
|
+
size: number;
|
|
44
|
+
/** ms since epoch. */
|
|
45
|
+
mtime: number;
|
|
46
|
+
}
|
|
47
|
+
export interface BridgeWriteOptions {
|
|
48
|
+
/** Fail with 409 if the path already exists (matches `wx` flag in fs.writeFile). */
|
|
49
|
+
exclusive?: boolean;
|
|
50
|
+
}
|
|
51
|
+
/** A `FilterItem` in NotePlan's plist shape. `value` is always a string
|
|
52
|
+
* (the on-disk format); FilterHelper parses it back into the typed value
|
|
53
|
+
* client-side via `parseValue()`. */
|
|
54
|
+
export interface BridgeFilterItem {
|
|
55
|
+
param: string;
|
|
56
|
+
value: string;
|
|
57
|
+
display: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface BridgeFilterEntry {
|
|
60
|
+
name: string;
|
|
61
|
+
modifiedAt?: number;
|
|
62
|
+
createdAt?: number;
|
|
63
|
+
}
|
|
64
|
+
export interface BridgeFilterTaskMatch {
|
|
65
|
+
file: string;
|
|
66
|
+
line: number;
|
|
67
|
+
content: string;
|
|
68
|
+
matchStart: number;
|
|
69
|
+
matchEnd: number;
|
|
70
|
+
}
|
|
71
|
+
/** Mirrors the MCP's `SQLiteNoteRow`: same field names, same shapes,
|
|
72
|
+
* so the existing `rowToNote` converter can consume bridge responses. */
|
|
73
|
+
export interface BridgeSpaceRow {
|
|
74
|
+
id: string;
|
|
75
|
+
content: string;
|
|
76
|
+
note_type: number;
|
|
77
|
+
title: string;
|
|
78
|
+
filename: string;
|
|
79
|
+
parent: string | null;
|
|
80
|
+
is_dir: number;
|
|
81
|
+
created_at?: string;
|
|
82
|
+
modified_at?: string;
|
|
83
|
+
}
|
|
84
|
+
export interface BridgeClientOptions {
|
|
85
|
+
defaultTimeoutMs?: number;
|
|
86
|
+
/** Called when a request fails fatally (connection refused, 401, timeout) so the discoverer can drop its cache. */
|
|
87
|
+
onFailure?: () => void;
|
|
88
|
+
}
|
|
89
|
+
export declare class BridgeHttpError extends Error {
|
|
90
|
+
readonly status: number;
|
|
91
|
+
constructor(message: string, status: number);
|
|
92
|
+
get isClientError(): boolean;
|
|
93
|
+
}
|
|
94
|
+
export declare class BridgeClient {
|
|
95
|
+
readonly host = "127.0.0.1";
|
|
96
|
+
readonly port: number;
|
|
97
|
+
private readonly token;
|
|
98
|
+
private readonly defaultTimeoutMs;
|
|
99
|
+
private readonly onFailure?;
|
|
100
|
+
constructor(port: number, token: string, options?: BridgeClientOptions);
|
|
101
|
+
config(): Promise<BridgeConfig>;
|
|
102
|
+
/** Reachability probe — does NOT trigger onFailure since callers expect false on failure. */
|
|
103
|
+
health(): Promise<boolean>;
|
|
104
|
+
/** Read a UTF-8 text file relative to NotePlan's storage root. */
|
|
105
|
+
read(relativePath: string): Promise<BridgeReadResult>;
|
|
106
|
+
/** Read arbitrary bytes (e.g. attachment images/PDFs) as a Buffer. */
|
|
107
|
+
readBinary(relativePath: string): Promise<{
|
|
108
|
+
data: Buffer;
|
|
109
|
+
size: number;
|
|
110
|
+
mtime: number;
|
|
111
|
+
ctime: number;
|
|
112
|
+
}>;
|
|
113
|
+
/** List a directory relative to NotePlan's storage root. */
|
|
114
|
+
list(relativePath: string, options?: BridgeListOptions): Promise<BridgeFsEntry[]>;
|
|
115
|
+
/** Probe a path's existence and metadata without reading content. */
|
|
116
|
+
stat(relativePath: string): Promise<BridgeStatResult>;
|
|
117
|
+
/** Server-side tag scan over Notes/ + Calendar/. One round-trip instead of N. */
|
|
118
|
+
tags(): Promise<string[]>;
|
|
119
|
+
/** Write `content` to `relativePath` as UTF-8. Creates parent dirs. */
|
|
120
|
+
write(relativePath: string, content: string, options?: BridgeWriteOptions): Promise<BridgeWriteResult>;
|
|
121
|
+
/** Write raw bytes to `relativePath`. Used for attachment uploads. */
|
|
122
|
+
writeBinary(relativePath: string, data: Buffer): Promise<BridgeWriteResult>;
|
|
123
|
+
/** Create a directory (recursively by default). */
|
|
124
|
+
mkdir(relativePath: string, recursive?: boolean): Promise<void>;
|
|
125
|
+
/** Rename or move a file/directory. */
|
|
126
|
+
rename(fromRelativePath: string, toRelativePath: string): Promise<void>;
|
|
127
|
+
/** Delete a file or directory (recursive for directories). */
|
|
128
|
+
delete(relativePath: string): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Rewrite every `[[from]]` wikilink across the vault to `[[to]]`. Uses
|
|
131
|
+
* NotePlan's indexed reverse-link lookup and posts `.noteTitleChanged`,
|
|
132
|
+
* matching what the in-app rename does. Returns the number of distinct
|
|
133
|
+
* notes updated.
|
|
134
|
+
*/
|
|
135
|
+
rewriteWikilinks(from: string, to: string): Promise<{
|
|
136
|
+
updatedCount: number;
|
|
137
|
+
}>;
|
|
138
|
+
/**
|
|
139
|
+
* Server-side full-text search via NotePlan's SearchHelper (the same
|
|
140
|
+
* engine used by the app's UI and JS plugin bridge). All-words match,
|
|
141
|
+
* case-insensitive, multi-threaded, supports inline operators like
|
|
142
|
+
* `[is:open] meeting`. Returns ripgrep-compatible match records.
|
|
143
|
+
*/
|
|
144
|
+
search(pattern: string, options?: {
|
|
145
|
+
limit?: number;
|
|
146
|
+
}): Promise<Array<{
|
|
147
|
+
file: string;
|
|
148
|
+
line: number;
|
|
149
|
+
content: string;
|
|
150
|
+
matchStart: number;
|
|
151
|
+
matchEnd: number;
|
|
152
|
+
}>>;
|
|
153
|
+
/** Teamspace metadata pulled via NotePlan's `LocalSupabaseDatabase`. The
|
|
154
|
+
* rows match the MCP's `SQLiteNoteRow` shape so the existing converter
|
|
155
|
+
* consumes them unchanged.
|
|
156
|
+
*/
|
|
157
|
+
listTeamspaces(): Promise<BridgeSpaceRow[]>;
|
|
158
|
+
/** Returns notes AND folders (including @Trash) so the MCP can filter
|
|
159
|
+
* trash descendants client-side without running SQL. */
|
|
160
|
+
listSpaceNoteRows(options?: {
|
|
161
|
+
spaceId?: string;
|
|
162
|
+
}): Promise<BridgeSpaceRow[]>;
|
|
163
|
+
getSpaceNoteRow(by: {
|
|
164
|
+
id?: string;
|
|
165
|
+
filename?: string;
|
|
166
|
+
}): Promise<BridgeSpaceRow | null>;
|
|
167
|
+
getSpaceParentRows(id: string): Promise<BridgeSpaceRow[]>;
|
|
168
|
+
searchSpaceNoteRows(pattern: string, options?: {
|
|
169
|
+
spaceId?: string;
|
|
170
|
+
limit?: number;
|
|
171
|
+
}): Promise<BridgeSpaceRow[]>;
|
|
172
|
+
/** Filter file ops — wrap NotePlan's FilterHelper.shared so we never have
|
|
173
|
+
* to read or write the binary plist directly. */
|
|
174
|
+
listFilters(): Promise<BridgeFilterEntry[]>;
|
|
175
|
+
getFilter(name: string): Promise<{
|
|
176
|
+
name: string;
|
|
177
|
+
items: BridgeFilterItem[];
|
|
178
|
+
} | null>;
|
|
179
|
+
saveFilter(input: {
|
|
180
|
+
name: string;
|
|
181
|
+
items: BridgeFilterItem[];
|
|
182
|
+
keyword?: string;
|
|
183
|
+
overwrite?: boolean;
|
|
184
|
+
}): Promise<{
|
|
185
|
+
name: string;
|
|
186
|
+
items: BridgeFilterItem[];
|
|
187
|
+
}>;
|
|
188
|
+
renameFilter(oldName: string, newName: string): Promise<void>;
|
|
189
|
+
deleteFilter(name: string): Promise<void>;
|
|
190
|
+
/** Run NotePlan's SearchHelper with the named filter and return ripgrep-
|
|
191
|
+
* shaped task matches. Replaces the MCP's mapFilterToTaskQuery hack. */
|
|
192
|
+
filterTasks(name: string, options?: {
|
|
193
|
+
limit?: number;
|
|
194
|
+
}): Promise<BridgeFilterTaskMatch[]>;
|
|
195
|
+
private requestJson;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=bridge-client.d.ts.map
|