@batalabs/virlow-mcp-core 3.11.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.
Files changed (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/api.d.ts +118 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +109 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/embedding-cache.d.ts +34 -0
  8. package/dist/embedding-cache.d.ts.map +1 -0
  9. package/dist/embedding-cache.js +108 -0
  10. package/dist/embedding-cache.js.map +1 -0
  11. package/dist/exposure.d.ts +42 -0
  12. package/dist/exposure.d.ts.map +1 -0
  13. package/dist/exposure.js +74 -0
  14. package/dist/exposure.js.map +1 -0
  15. package/dist/index.d.ts +16 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +10 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/memories-enabled.d.ts +16 -0
  20. package/dist/memories-enabled.d.ts.map +1 -0
  21. package/dist/memories-enabled.js +29 -0
  22. package/dist/memories-enabled.js.map +1 -0
  23. package/dist/memories.d.ts +86 -0
  24. package/dist/memories.d.ts.map +1 -0
  25. package/dist/memories.js +350 -0
  26. package/dist/memories.js.map +1 -0
  27. package/dist/memory-note.d.ts +45 -0
  28. package/dist/memory-note.d.ts.map +1 -0
  29. package/dist/memory-note.js +144 -0
  30. package/dist/memory-note.js.map +1 -0
  31. package/dist/memory-tree.d.ts +28 -0
  32. package/dist/memory-tree.d.ts.map +1 -0
  33. package/dist/memory-tree.js +68 -0
  34. package/dist/memory-tree.js.map +1 -0
  35. package/dist/notes.d.ts +109 -0
  36. package/dist/notes.d.ts.map +1 -0
  37. package/dist/notes.js +234 -0
  38. package/dist/notes.js.map +1 -0
  39. package/dist/vault.d.ts +35 -0
  40. package/dist/vault.d.ts.map +1 -0
  41. package/dist/vault.js +73 -0
  42. package/dist/vault.js.map +1 -0
  43. package/package.json +43 -0
@@ -0,0 +1,35 @@
1
+ export declare class LockedError extends Error {
2
+ }
3
+ export interface UnlockedSession {
4
+ key: CryptoKey;
5
+ userId: string;
6
+ email: string;
7
+ }
8
+ export declare class Vault {
9
+ private readonly autoLockMs;
10
+ private _session;
11
+ private _timerHandle;
12
+ /** Listeners registered via `onLock =` or `addLockListener()`. Multiple
13
+ * consumers (MemoryStore, NotesService, ...) each need their cache cleared
14
+ * on lock; a single-slot callback would let the second registration
15
+ * silently clobber the first. */
16
+ private lockListeners;
17
+ constructor(autoLockMs?: number);
18
+ /** Alias for `addLockListener` kept for call-site brevity (`vault.onLock = fn`).
19
+ * Assigning multiple times ADDS a listener each time — it does not replace
20
+ * a previous one. */
21
+ set onLock(fn: () => void);
22
+ addLockListener(fn: () => void): void;
23
+ setUnlocked(session: UnlockedSession): void;
24
+ lock(): void;
25
+ isUnlocked(): boolean;
26
+ status(): {
27
+ locked: boolean;
28
+ email?: string;
29
+ };
30
+ touch(): void;
31
+ get session(): UnlockedSession;
32
+ private _scheduleAutoLock;
33
+ private _clearTimer;
34
+ }
35
+ //# sourceMappingURL=vault.d.ts.map
@@ -0,0 +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;IAOzB,OAAO,CAAC,WAAW;CAMpB"}
package/dist/vault.js ADDED
@@ -0,0 +1,73 @@
1
+ export class LockedError extends Error {
2
+ }
3
+ export class Vault {
4
+ autoLockMs;
5
+ _session = null;
6
+ _timerHandle = null;
7
+ /** Listeners registered via `onLock =` or `addLockListener()`. Multiple
8
+ * consumers (MemoryStore, NotesService, ...) each need their cache cleared
9
+ * on lock; a single-slot callback would let the second registration
10
+ * silently clobber the first. */
11
+ lockListeners = [];
12
+ constructor(autoLockMs = 4 * 60 * 60 * 1000) {
13
+ this.autoLockMs = autoLockMs;
14
+ }
15
+ /** Alias for `addLockListener` kept for call-site brevity (`vault.onLock = fn`).
16
+ * Assigning multiple times ADDS a listener each time — it does not replace
17
+ * a previous one. */
18
+ set onLock(fn) {
19
+ this.addLockListener(fn);
20
+ }
21
+ addLockListener(fn) {
22
+ this.lockListeners.push(fn);
23
+ }
24
+ setUnlocked(session) {
25
+ this._session = session;
26
+ this._scheduleAutoLock();
27
+ }
28
+ lock() {
29
+ if (this._session === null) {
30
+ return; // Already locked, idempotent
31
+ }
32
+ this._clearTimer();
33
+ this._session = null;
34
+ for (const listener of this.lockListeners) {
35
+ listener();
36
+ }
37
+ }
38
+ isUnlocked() {
39
+ return this._session !== null;
40
+ }
41
+ status() {
42
+ if (this._session === null) {
43
+ return { locked: true };
44
+ }
45
+ return { locked: false, email: this._session.email };
46
+ }
47
+ touch() {
48
+ if (this._session === null) {
49
+ return; // Already locked, ignore
50
+ }
51
+ this._clearTimer();
52
+ this._scheduleAutoLock();
53
+ }
54
+ get session() {
55
+ if (this._session === null) {
56
+ throw new LockedError('Vault is locked. Ask the user to run the unlock tool to sign in and unlock their Virlow vault.');
57
+ }
58
+ return this._session;
59
+ }
60
+ _scheduleAutoLock() {
61
+ this._timerHandle = setTimeout(() => {
62
+ this.lock();
63
+ }, this.autoLockMs);
64
+ this._timerHandle.unref?.();
65
+ }
66
+ _clearTimer() {
67
+ if (this._timerHandle !== null) {
68
+ clearTimeout(this._timerHandle);
69
+ this._timerHandle = null;
70
+ }
71
+ }
72
+ }
73
+ //# sourceMappingURL=vault.js.map
@@ -0,0 +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;IAEO,iBAAiB;QACvB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACpB,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;CACF"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@batalabs/virlow-mcp-core",
3
+ "version": "3.11.4",
4
+ "type": "module",
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
+ "license": "MIT",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ }
12
+ },
13
+ "dependencies": {
14
+ "yaml": ">=2.8.3 <3",
15
+ "@batalabs/virlow-crypto": "3.11.4",
16
+ "@batalabs/virlow-memory": "3.11.4"
17
+ },
18
+ "devDependencies": {
19
+ "@types/node": "^22.10.0",
20
+ "typescript": "^5.8.0",
21
+ "vitest": "^3.0.0"
22
+ },
23
+ "main": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
+ "files": [
26
+ "LICENSE",
27
+ "README.md",
28
+ "dist"
29
+ ],
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "git+https://github.com/batalabs/virlow-app.git",
36
+ "directory": "packages/mcp-core"
37
+ },
38
+ "scripts": {
39
+ "test": "vitest run",
40
+ "type-check": "tsc --noEmit",
41
+ "build": "tsc -p tsconfig.build.json"
42
+ }
43
+ }