@batalabs/virlow-mcp-core 3.14.1 → 3.14.4
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/dist/cjs/vault.d.ts +35 -0
- package/dist/cjs/vault.js +41 -1
- package/dist/tools.d.ts +4 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +49 -0
- package/dist/tools.js.map +1 -1
- package/dist/vault.d.ts +35 -0
- package/dist/vault.d.ts.map +1 -1
- package/dist/vault.js +41 -1
- package/dist/vault.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/vault.d.ts
CHANGED
|
@@ -29,6 +29,41 @@ export declare class Vault {
|
|
|
29
29
|
};
|
|
30
30
|
touch(): void;
|
|
31
31
|
get session(): UnlockedSession;
|
|
32
|
+
/**
|
|
33
|
+
* The largest delay `setTimeout` can actually hold: a 32-bit signed integer
|
|
34
|
+
* of milliseconds, about 24.9 days.
|
|
35
|
+
*/
|
|
36
|
+
private static readonly MAX_TIMEOUT_MS;
|
|
37
|
+
/**
|
|
38
|
+
* Arm the auto-lock, unless the configured delay cannot be one.
|
|
39
|
+
*
|
|
40
|
+
* The guard is the whole point. `setTimeout` does not treat an out-of-range
|
|
41
|
+
* delay as "later" or as an error — it coerces it to **1 millisecond** and
|
|
42
|
+
* fires:
|
|
43
|
+
*
|
|
44
|
+
* TimeoutOverflowWarning: Infinity does not fit into a 32-bit signed
|
|
45
|
+
* integer. Timeout duration was set to 1.
|
|
46
|
+
*
|
|
47
|
+
* So `new Vault(Number.POSITIVE_INFINITY)`, which reads as "never auto-lock,
|
|
48
|
+
* something else owns the timeout", locked the vault a millisecond after
|
|
49
|
+
* every unlock and every touch. The hosted connector is built exactly that
|
|
50
|
+
* way — its session store owns the idle timeout — and the result was a vault
|
|
51
|
+
* that reported itself unlocked on the request that opened it and locked on
|
|
52
|
+
* every request after:
|
|
53
|
+
*
|
|
54
|
+
* status -> {"locked": false, "email": "..."}
|
|
55
|
+
* list_folders -> "Vault is locked." (2 seconds later, same session)
|
|
56
|
+
*
|
|
57
|
+
* Nothing in the store was wrong, which is what made it so hard to see: the
|
|
58
|
+
* session was found on every request, and the vault built from it had already
|
|
59
|
+
* locked itself. touch() re-armed the same 1ms timer, so activity made it
|
|
60
|
+
* worse rather than better.
|
|
61
|
+
*
|
|
62
|
+
* A delay that cannot be scheduled therefore means no auto-lock at all, which
|
|
63
|
+
* is what every caller passing one intends. Zero and negatives are the same
|
|
64
|
+
* case — a vault that locks on the next tick is not a security posture, it is
|
|
65
|
+
* a broken one — and a caller wanting an immediate lock has `lock()`.
|
|
66
|
+
*/
|
|
32
67
|
private _scheduleAutoLock;
|
|
33
68
|
private _clearTimer;
|
|
34
69
|
}
|
package/dist/cjs/vault.js
CHANGED
|
@@ -61,10 +61,50 @@ class Vault {
|
|
|
61
61
|
}
|
|
62
62
|
return this._session;
|
|
63
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* The largest delay `setTimeout` can actually hold: a 32-bit signed integer
|
|
66
|
+
* of milliseconds, about 24.9 days.
|
|
67
|
+
*/
|
|
68
|
+
static MAX_TIMEOUT_MS = 2_147_483_647;
|
|
69
|
+
/**
|
|
70
|
+
* Arm the auto-lock, unless the configured delay cannot be one.
|
|
71
|
+
*
|
|
72
|
+
* The guard is the whole point. `setTimeout` does not treat an out-of-range
|
|
73
|
+
* delay as "later" or as an error — it coerces it to **1 millisecond** and
|
|
74
|
+
* fires:
|
|
75
|
+
*
|
|
76
|
+
* TimeoutOverflowWarning: Infinity does not fit into a 32-bit signed
|
|
77
|
+
* integer. Timeout duration was set to 1.
|
|
78
|
+
*
|
|
79
|
+
* So `new Vault(Number.POSITIVE_INFINITY)`, which reads as "never auto-lock,
|
|
80
|
+
* something else owns the timeout", locked the vault a millisecond after
|
|
81
|
+
* every unlock and every touch. The hosted connector is built exactly that
|
|
82
|
+
* way — its session store owns the idle timeout — and the result was a vault
|
|
83
|
+
* that reported itself unlocked on the request that opened it and locked on
|
|
84
|
+
* every request after:
|
|
85
|
+
*
|
|
86
|
+
* status -> {"locked": false, "email": "..."}
|
|
87
|
+
* list_folders -> "Vault is locked." (2 seconds later, same session)
|
|
88
|
+
*
|
|
89
|
+
* Nothing in the store was wrong, which is what made it so hard to see: the
|
|
90
|
+
* session was found on every request, and the vault built from it had already
|
|
91
|
+
* locked itself. touch() re-armed the same 1ms timer, so activity made it
|
|
92
|
+
* worse rather than better.
|
|
93
|
+
*
|
|
94
|
+
* A delay that cannot be scheduled therefore means no auto-lock at all, which
|
|
95
|
+
* is what every caller passing one intends. Zero and negatives are the same
|
|
96
|
+
* case — a vault that locks on the next tick is not a security posture, it is
|
|
97
|
+
* a broken one — and a caller wanting an immediate lock has `lock()`.
|
|
98
|
+
*/
|
|
64
99
|
_scheduleAutoLock() {
|
|
100
|
+
const ms = this.autoLockMs;
|
|
101
|
+
if (!Number.isFinite(ms) || ms <= 0 || ms > Vault.MAX_TIMEOUT_MS) {
|
|
102
|
+
this._timerHandle = null;
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
65
105
|
this._timerHandle = setTimeout(() => {
|
|
66
106
|
this.lock();
|
|
67
|
-
},
|
|
107
|
+
}, ms);
|
|
68
108
|
this._timerHandle.unref?.();
|
|
69
109
|
}
|
|
70
110
|
_clearTimer() {
|
package/dist/tools.d.ts
CHANGED
|
@@ -113,6 +113,10 @@ export declare function buildServer(opts: BuildServerOptions & {
|
|
|
113
113
|
* is that server-initiated notifications (`tools/list_changed`) have nowhere to
|
|
114
114
|
* go; a client that needs them should use the stdio or local HTTP transport,
|
|
115
115
|
* where streaming is free.
|
|
116
|
+
*
|
|
117
|
+
* Which is why GET is answered with 405 here rather than being passed down. See
|
|
118
|
+
* the note on `noStandaloneStream` below: not offering the stream and *saying
|
|
119
|
+
* so* are two different things, and a client cannot tell them apart by waiting.
|
|
116
120
|
*/
|
|
117
121
|
export declare function createMcpRequestHandler(opts: BuildServerOptions & {
|
|
118
122
|
services?: ServerServices;
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAY,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAe,KAAK,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,KAAK,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,iEAAiE;IACjE,MAAM,EAAE,cAAc,CAAC;IACvB;;;;;;OAMG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAC7D,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC5B;AA0DD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAgCvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,GACvD,WAAW,CA6bb;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,EAAY,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAe,KAAK,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,KAAK,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,iEAAiE;IACjE,MAAM,EAAE,cAAc,CAAC;IACvB;;;;;;OAMG;IACH,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAC7D,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;CAC5B;AA0DD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAgCvE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,GACvD,WAAW,CA6bb;AA2BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,kBAAkB,GAAG;IAAE,QAAQ,CAAC,EAAE,cAAc,CAAA;CAAE,GACvD,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA+CzC"}
|
package/dist/tools.js
CHANGED
|
@@ -396,6 +396,27 @@ export function buildServer(opts) {
|
|
|
396
396
|
}));
|
|
397
397
|
return { server, vault };
|
|
398
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* The 405 a client gets when it asks for the standalone SSE stream.
|
|
401
|
+
*
|
|
402
|
+
* `Allow` names the methods that do work, so the refusal is actionable rather
|
|
403
|
+
* than just a rejection. The body is a JSON-RPC error because an MCP client
|
|
404
|
+
* reads bodies on this endpoint as JSON-RPC; `id: null` is correct for an error
|
|
405
|
+
* about the connection rather than about a request within it.
|
|
406
|
+
*/
|
|
407
|
+
function noStandaloneStream() {
|
|
408
|
+
return new Response(JSON.stringify({
|
|
409
|
+
jsonrpc: '2.0',
|
|
410
|
+
id: null,
|
|
411
|
+
error: {
|
|
412
|
+
code: -32000,
|
|
413
|
+
message: 'Method Not Allowed: this server does not offer a standalone SSE stream.',
|
|
414
|
+
},
|
|
415
|
+
}), {
|
|
416
|
+
status: 405,
|
|
417
|
+
headers: { 'Content-Type': 'application/json', Allow: 'POST, DELETE' },
|
|
418
|
+
});
|
|
419
|
+
}
|
|
399
420
|
/**
|
|
400
421
|
* Serve the tool surface over HTTP as a Web-standard handler.
|
|
401
422
|
*
|
|
@@ -421,9 +442,37 @@ export function buildServer(opts) {
|
|
|
421
442
|
* is that server-initiated notifications (`tools/list_changed`) have nowhere to
|
|
422
443
|
* go; a client that needs them should use the stdio or local HTTP transport,
|
|
423
444
|
* where streaming is free.
|
|
445
|
+
*
|
|
446
|
+
* Which is why GET is answered with 405 here rather than being passed down. See
|
|
447
|
+
* the note on `noStandaloneStream` below: not offering the stream and *saying
|
|
448
|
+
* so* are two different things, and a client cannot tell them apart by waiting.
|
|
424
449
|
*/
|
|
425
450
|
export function createMcpRequestHandler(opts) {
|
|
426
451
|
return async (request) => {
|
|
452
|
+
// GET is the client asking to open the standalone SSE stream on which a
|
|
453
|
+
// server pushes its own messages. This server has no such stream to give,
|
|
454
|
+
// and the specification is explicit about how to say that: "If the server
|
|
455
|
+
// does not offer an SSE stream at this endpoint, the server MUST return
|
|
456
|
+
// HTTP 405 Method Not Allowed." A client that gets a 405 stops asking and
|
|
457
|
+
// proceeds over POST, which is the entire protocol here.
|
|
458
|
+
//
|
|
459
|
+
// Passing GET down to the transport instead is what broke the hosted
|
|
460
|
+
// connector, and it broke it in the most expensive possible way — by
|
|
461
|
+
// succeeding. handleGetRequest ignores enableJsonResponse and always opens
|
|
462
|
+
// a real SSE ReadableStream, so the reply was 200 with
|
|
463
|
+
// `Content-Type: text/event-stream`, a promise of a stream. The `finally`
|
|
464
|
+
// below then closed the transport and the stream died, empty, ~35ms later.
|
|
465
|
+
//
|
|
466
|
+
// To the client that is not a refusal, it is a stream that dropped. So it
|
|
467
|
+
// reconnected. Once a second, indefinitely, never advancing to the POST
|
|
468
|
+
// that would have initialized it, while the server logged a tidy column of
|
|
469
|
+
// `GET /api/connector/mcp 200` and looked perfectly healthy. The MCP
|
|
470
|
+
// Inspector connected to the same server without trouble because it POSTs
|
|
471
|
+
// `initialize` first and treats the standalone stream as optional — which
|
|
472
|
+
// is exactly why "works with one client, not another" was the shape of
|
|
473
|
+
// this bug.
|
|
474
|
+
if (request.method === 'GET')
|
|
475
|
+
return noStandaloneStream();
|
|
427
476
|
const { WebStandardStreamableHTTPServerTransport } = await import('@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js');
|
|
428
477
|
const { server } = buildServer(opts);
|
|
429
478
|
const transport = new WebStandardStreamableHTTPServerTransport({
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/vault.d.ts
CHANGED
|
@@ -29,6 +29,41 @@ export declare class Vault {
|
|
|
29
29
|
};
|
|
30
30
|
touch(): void;
|
|
31
31
|
get session(): UnlockedSession;
|
|
32
|
+
/**
|
|
33
|
+
* The largest delay `setTimeout` can actually hold: a 32-bit signed integer
|
|
34
|
+
* of milliseconds, about 24.9 days.
|
|
35
|
+
*/
|
|
36
|
+
private static readonly MAX_TIMEOUT_MS;
|
|
37
|
+
/**
|
|
38
|
+
* Arm the auto-lock, unless the configured delay cannot be one.
|
|
39
|
+
*
|
|
40
|
+
* The guard is the whole point. `setTimeout` does not treat an out-of-range
|
|
41
|
+
* delay as "later" or as an error — it coerces it to **1 millisecond** and
|
|
42
|
+
* fires:
|
|
43
|
+
*
|
|
44
|
+
* TimeoutOverflowWarning: Infinity does not fit into a 32-bit signed
|
|
45
|
+
* integer. Timeout duration was set to 1.
|
|
46
|
+
*
|
|
47
|
+
* So `new Vault(Number.POSITIVE_INFINITY)`, which reads as "never auto-lock,
|
|
48
|
+
* something else owns the timeout", locked the vault a millisecond after
|
|
49
|
+
* every unlock and every touch. The hosted connector is built exactly that
|
|
50
|
+
* way — its session store owns the idle timeout — and the result was a vault
|
|
51
|
+
* that reported itself unlocked on the request that opened it and locked on
|
|
52
|
+
* every request after:
|
|
53
|
+
*
|
|
54
|
+
* status -> {"locked": false, "email": "..."}
|
|
55
|
+
* list_folders -> "Vault is locked." (2 seconds later, same session)
|
|
56
|
+
*
|
|
57
|
+
* Nothing in the store was wrong, which is what made it so hard to see: the
|
|
58
|
+
* session was found on every request, and the vault built from it had already
|
|
59
|
+
* locked itself. touch() re-armed the same 1ms timer, so activity made it
|
|
60
|
+
* worse rather than better.
|
|
61
|
+
*
|
|
62
|
+
* A delay that cannot be scheduled therefore means no auto-lock at all, which
|
|
63
|
+
* is what every caller passing one intends. Zero and negatives are the same
|
|
64
|
+
* case — a vault that locks on the next tick is not a security posture, it is
|
|
65
|
+
* a broken one — and a caller wanting an immediate lock has `lock()`.
|
|
66
|
+
*/
|
|
32
67
|
private _scheduleAutoLock;
|
|
33
68
|
private _clearTimer;
|
|
34
69
|
}
|
package/dist/vault.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAEzC,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,KAAK;IAUJ,OAAO,CAAC,QAAQ,CAAC,UAAU;IATvC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,YAAY,CAA+B;IAEnD;;;qCAGiC;IACjC,OAAO,CAAC,aAAa,CAAyB;gBAEjB,UAAU,GAAE,MAA2B;IAEpE;;yBAEqB;IACrB,IAAI,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,EAExB;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIrC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAK3C,IAAI,IAAI,IAAI;IAWZ,UAAU,IAAI,OAAO;IAIrB,MAAM,IAAI;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAO7C,KAAK,IAAI,IAAI;IAQb,IAAI,OAAO,IAAI,eAAe,CAO7B;IAED,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,KAAK;CAAG;AAEzC,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,KAAK;IAUJ,OAAO,CAAC,QAAQ,CAAC,UAAU;IATvC,OAAO,CAAC,QAAQ,CAAgC;IAChD,OAAO,CAAC,YAAY,CAA+B;IAEnD;;;qCAGiC;IACjC,OAAO,CAAC,aAAa,CAAyB;gBAEjB,UAAU,GAAE,MAA2B;IAEpE;;yBAEqB;IACrB,IAAI,MAAM,CAAC,EAAE,EAAE,MAAM,IAAI,EAExB;IAED,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIrC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAK3C,IAAI,IAAI,IAAI;IAWZ,UAAU,IAAI,OAAO;IAIrB,MAAM,IAAI;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAO7C,KAAK,IAAI,IAAI;IAQb,IAAI,OAAO,IAAI,eAAe,CAO7B;IAED;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,WAAW;CAMpB"}
|
package/dist/vault.js
CHANGED
|
@@ -57,10 +57,50 @@ export class Vault {
|
|
|
57
57
|
}
|
|
58
58
|
return this._session;
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* The largest delay `setTimeout` can actually hold: a 32-bit signed integer
|
|
62
|
+
* of milliseconds, about 24.9 days.
|
|
63
|
+
*/
|
|
64
|
+
static MAX_TIMEOUT_MS = 2_147_483_647;
|
|
65
|
+
/**
|
|
66
|
+
* Arm the auto-lock, unless the configured delay cannot be one.
|
|
67
|
+
*
|
|
68
|
+
* The guard is the whole point. `setTimeout` does not treat an out-of-range
|
|
69
|
+
* delay as "later" or as an error — it coerces it to **1 millisecond** and
|
|
70
|
+
* fires:
|
|
71
|
+
*
|
|
72
|
+
* TimeoutOverflowWarning: Infinity does not fit into a 32-bit signed
|
|
73
|
+
* integer. Timeout duration was set to 1.
|
|
74
|
+
*
|
|
75
|
+
* So `new Vault(Number.POSITIVE_INFINITY)`, which reads as "never auto-lock,
|
|
76
|
+
* something else owns the timeout", locked the vault a millisecond after
|
|
77
|
+
* every unlock and every touch. The hosted connector is built exactly that
|
|
78
|
+
* way — its session store owns the idle timeout — and the result was a vault
|
|
79
|
+
* that reported itself unlocked on the request that opened it and locked on
|
|
80
|
+
* every request after:
|
|
81
|
+
*
|
|
82
|
+
* status -> {"locked": false, "email": "..."}
|
|
83
|
+
* list_folders -> "Vault is locked." (2 seconds later, same session)
|
|
84
|
+
*
|
|
85
|
+
* Nothing in the store was wrong, which is what made it so hard to see: the
|
|
86
|
+
* session was found on every request, and the vault built from it had already
|
|
87
|
+
* locked itself. touch() re-armed the same 1ms timer, so activity made it
|
|
88
|
+
* worse rather than better.
|
|
89
|
+
*
|
|
90
|
+
* A delay that cannot be scheduled therefore means no auto-lock at all, which
|
|
91
|
+
* is what every caller passing one intends. Zero and negatives are the same
|
|
92
|
+
* case — a vault that locks on the next tick is not a security posture, it is
|
|
93
|
+
* a broken one — and a caller wanting an immediate lock has `lock()`.
|
|
94
|
+
*/
|
|
60
95
|
_scheduleAutoLock() {
|
|
96
|
+
const ms = this.autoLockMs;
|
|
97
|
+
if (!Number.isFinite(ms) || ms <= 0 || ms > Vault.MAX_TIMEOUT_MS) {
|
|
98
|
+
this._timerHandle = null;
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
61
101
|
this._timerHandle = setTimeout(() => {
|
|
62
102
|
this.lock();
|
|
63
|
-
},
|
|
103
|
+
}, ms);
|
|
64
104
|
this._timerHandle.unref?.();
|
|
65
105
|
}
|
|
66
106
|
_clearTimer() {
|
package/dist/vault.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;CAAG;AAQzC,MAAM,OAAO,KAAK;IAUa;IATrB,QAAQ,GAA2B,IAAI,CAAC;IACxC,YAAY,GAA0B,IAAI,CAAC;IAEnD;;;qCAGiC;IACzB,aAAa,GAAsB,EAAE,CAAC;IAE9C,YAA6B,aAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAAvC,eAAU,GAAV,UAAU,CAA6B;IAAG,CAAC;IAExE;;yBAEqB;IACrB,IAAI,MAAM,CAAC,EAAc;QACvB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,EAAc;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,OAAwB;QAClC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,6BAA6B;QACvC,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1C,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAChC,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,yBAAyB;QACnC,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,WAAW,CACnB,gGAAgG,CACjG,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,WAAY,SAAQ,KAAK;CAAG;AAQzC,MAAM,OAAO,KAAK;IAUa;IATrB,QAAQ,GAA2B,IAAI,CAAC;IACxC,YAAY,GAA0B,IAAI,CAAC;IAEnD;;;qCAGiC;IACzB,aAAa,GAAsB,EAAE,CAAC;IAE9C,YAA6B,aAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAAvC,eAAU,GAAV,UAAU,CAA6B;IAAG,CAAC;IAExE;;yBAEqB;IACrB,IAAI,MAAM,CAAC,EAAc;QACvB,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,EAAc;QAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,OAAwB;QAClC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,6BAA6B;QACvC,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1C,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;IAChC,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvD,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,OAAO,CAAC,yBAAyB;QACnC,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO;QACT,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,IAAI,WAAW,CACnB,gGAAgG,CACjG,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAU,cAAc,GAAG,aAAa,CAAC;IAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACK,iBAAiB;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;IAC9B,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC/B,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@batalabs/virlow-mcp-core",
|
|
3
|
-
"version": "3.14.
|
|
3
|
+
"version": "3.14.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Virlow MCP connector core: encrypted note and memory access, folder exposure, and the memories opt-in. Shared by the local virlow-mcp CLI and the hosted connector.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
27
27
|
"yaml": ">=2.8.3 <3",
|
|
28
28
|
"zod": "^3.24.0",
|
|
29
|
-
"@batalabs/virlow-crypto": "3.14.
|
|
30
|
-
"@batalabs/virlow-memory": "3.14.
|
|
29
|
+
"@batalabs/virlow-crypto": "3.14.4",
|
|
30
|
+
"@batalabs/virlow-memory": "3.14.4"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "^22.10.0",
|