@batalabs/virlow-mcp-core 3.80.0 → 3.81.0
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/api.d.ts +46 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +26 -0
- package/dist/api.js.map +1 -1
- package/dist/attachment-format.d.ts +42 -0
- package/dist/attachment-format.d.ts.map +1 -0
- package/dist/attachment-format.js +205 -0
- package/dist/attachment-format.js.map +1 -0
- package/dist/attachments.d.ts +39 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +166 -0
- package/dist/attachments.js.map +1 -0
- package/dist/cjs/api.d.ts +46 -0
- package/dist/cjs/api.js +26 -0
- package/dist/cjs/attachment-format.d.ts +41 -0
- package/dist/cjs/attachment-format.js +214 -0
- package/dist/cjs/attachments.d.ts +38 -0
- package/dist/cjs/attachments.js +169 -0
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/local-paths.d.ts +26 -0
- package/dist/cjs/local-paths.js +53 -0
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +1 -1
- package/dist/http/index.js.map +1 -1
- package/dist/http/local-origin.d.ts +9 -0
- package/dist/http/local-origin.d.ts.map +1 -1
- package/dist/http/local-origin.js +19 -4
- package/dist/http/local-origin.js.map +1 -1
- package/dist/http/server.js +2 -2
- package/dist/http/server.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/local-paths.d.ts +27 -0
- package/dist/local-paths.d.ts.map +1 -0
- package/dist/local-paths.js +51 -0
- package/dist/local-paths.js.map +1 -0
- package/dist/tools.d.ts +11 -2
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +297 -2
- package/dist/tools.js.map +1 -1
- package/package.json +3 -3
package/dist/http/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { bearerFrom, defaultTokenPath, loadOrCreateToken, startHttpServer, tokenMatches, } from './server.js';
|
|
2
2
|
export type { HttpServerOptions, RunningHttpServer } from './server.js';
|
|
3
|
-
export { SECURITY_HEADERS, isAllowedOrigin, isLoopbackHost, rejectReason } from './local-origin.js';
|
|
3
|
+
export { SECURITY_HEADERS, isAllowedOrigin, isLoopbackBind, isLoopbackHost, rejectReason } from './local-origin.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/http/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/http/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { bearerFrom, defaultTokenPath, loadOrCreateToken, startHttpServer, tokenMatches, } from './server.js';
|
|
2
|
-
export { SECURITY_HEADERS, isAllowedOrigin, isLoopbackHost, rejectReason } from './local-origin.js';
|
|
2
|
+
export { SECURITY_HEADERS, isAllowedOrigin, isLoopbackBind, isLoopbackHost, rejectReason } from './local-origin.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/http/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -21,6 +21,15 @@
|
|
|
21
21
|
* own name. Enforcing there would break the supported setup while protecting a
|
|
22
22
|
* listener the operator already chose to expose.
|
|
23
23
|
*/
|
|
24
|
+
/**
|
|
25
|
+
* The ONE definition of "this machine", for a `--host` bind value, a Host
|
|
26
|
+
* header (port already stripped) and an Origin hostname alike. Strict, and
|
|
27
|
+
* closed on anything it does not recognise: `127.0.0.0/8` as a dotted quad with
|
|
28
|
+
* valid, unpadded octets, `::1` or `[::1]`, and `localhost` in any case, after
|
|
29
|
+
* trimming. Not `0.0.0.0`, `::`, `localhost.`, short forms like `127.1`, or
|
|
30
|
+
* IPv4-mapped IPv6, none of which a listener can be trusted to treat as local.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isLoopbackBind(host: string): boolean;
|
|
24
33
|
/**
|
|
25
34
|
* True when a Host header addresses this machine by a loopback name.
|
|
26
35
|
* A missing Host fails: HTTP/1.1 requires one, and a request without it is not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-origin.d.ts","sourceRoot":"","sources":["../../src/http/local-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;
|
|
1
|
+
{"version":3,"file":"local-origin.d.ts","sourceRoot":"","sources":["../../src/http/local-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMpD;AAOD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAQzE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3C,OAAO,EAAE,OAAO,GACf,MAAM,GAAG,IAAI,CAKf;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO5D,CAAC"}
|
|
@@ -21,8 +21,23 @@
|
|
|
21
21
|
* own name. Enforcing there would break the supported setup while protecting a
|
|
22
22
|
* listener the operator already chose to expose.
|
|
23
23
|
*/
|
|
24
|
-
/**
|
|
25
|
-
|
|
24
|
+
/**
|
|
25
|
+
* The ONE definition of "this machine", for a `--host` bind value, a Host
|
|
26
|
+
* header (port already stripped) and an Origin hostname alike. Strict, and
|
|
27
|
+
* closed on anything it does not recognise: `127.0.0.0/8` as a dotted quad with
|
|
28
|
+
* valid, unpadded octets, `::1` or `[::1]`, and `localhost` in any case, after
|
|
29
|
+
* trimming. Not `0.0.0.0`, `::`, `localhost.`, short forms like `127.1`, or
|
|
30
|
+
* IPv4-mapped IPv6, none of which a listener can be trusted to treat as local.
|
|
31
|
+
*/
|
|
32
|
+
export function isLoopbackBind(host) {
|
|
33
|
+
const h = host.trim().toLowerCase();
|
|
34
|
+
if (h === 'localhost' || h === '::1' || h === '[::1]')
|
|
35
|
+
return true;
|
|
36
|
+
const m = /^127\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(h);
|
|
37
|
+
if (m === null)
|
|
38
|
+
return false;
|
|
39
|
+
return m.slice(1).every((o) => Number(o) <= 255 && (o === '0' || !o.startsWith('0')));
|
|
40
|
+
}
|
|
26
41
|
/** Strip a trailing `:port`, leaving an IPv6 literal's own colons alone. */
|
|
27
42
|
function withoutPort(host) {
|
|
28
43
|
return host.replace(/:\d+$/, '').toLowerCase();
|
|
@@ -35,7 +50,7 @@ function withoutPort(host) {
|
|
|
35
50
|
export function isLoopbackHost(hostHeader) {
|
|
36
51
|
if (hostHeader === undefined || hostHeader === '')
|
|
37
52
|
return false;
|
|
38
|
-
return
|
|
53
|
+
return isLoopbackBind(withoutPort(hostHeader.trim()));
|
|
39
54
|
}
|
|
40
55
|
/**
|
|
41
56
|
* True when an Origin header is absent or loopback.
|
|
@@ -50,7 +65,7 @@ export function isAllowedOrigin(originHeader) {
|
|
|
50
65
|
if (originHeader === undefined || originHeader === '')
|
|
51
66
|
return true;
|
|
52
67
|
try {
|
|
53
|
-
return
|
|
68
|
+
return isLoopbackBind(new URL(originHeader).hostname);
|
|
54
69
|
}
|
|
55
70
|
catch {
|
|
56
71
|
// Unparseable, including the literal "null".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-origin.js","sourceRoot":"","sources":["../../src/http/local-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH
|
|
1
|
+
{"version":3,"file":"local-origin.js","sourceRoot":"","sources":["../../src/http/local-origin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,CAAC,GAAG,wCAAwC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC7B,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,4EAA4E;AAC5E,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,UAA8B;IAC3D,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAChE,OAAO,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,YAAgC;IAC9D,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnE,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,OAA2C,EAC3C,OAAgB;IAEhB,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC9D,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC;IAC9E,yBAAyB,EACvB,4GAA4G;IAC9G,iBAAiB,EAAE,MAAM;IACzB,wBAAwB,EAAE,SAAS;IACnC,iBAAiB,EAAE,aAAa;IAChC,eAAe,EAAE,UAAU;CAC5B,CAAC,CAAC"}
|
package/dist/http/server.js
CHANGED
|
@@ -3,7 +3,7 @@ import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
|
3
3
|
import { randomBytes, timingSafeEqual } from 'node:crypto';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
6
|
-
import { SECURITY_HEADERS, rejectReason } from './local-origin.js';
|
|
6
|
+
import { SECURITY_HEADERS, isLoopbackBind, rejectReason } from './local-origin.js';
|
|
7
7
|
/** Where the bearer token lives when the caller does not supply one. */
|
|
8
8
|
export function defaultTokenPath(homeDir) {
|
|
9
9
|
return path.join(homeDir, '.virlow-mcp', 'http-token');
|
|
@@ -72,7 +72,7 @@ export async function startHttpServer(opts) {
|
|
|
72
72
|
// Only a loopback bind gets the Host check: a tunnel in front of a --host
|
|
73
73
|
// listener rewrites Host to its own name, and that is the documented way to
|
|
74
74
|
// reach this from another machine. See local-origin.ts.
|
|
75
|
-
const enforceLocal = host
|
|
75
|
+
const enforceLocal = isLoopbackBind(host);
|
|
76
76
|
const httpServer = createServer((req, res) => {
|
|
77
77
|
const url = new URL(req.url ?? '/', `http://${host}`);
|
|
78
78
|
// Before anything else, including /health: a rebound page must not even be
|
package/dist/http/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6C,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { ApiError, VirlowApi } from './api.js';
|
|
2
|
-
export type { ApiFolder, ApiNote, AuthTokens, LoginResult, NoteWrite, RefreshBody } from './api.js';
|
|
2
|
+
export type { ApiFile, ApiFileWithData, ApiFolder, ApiNote, FileUpload, AuthTokens, LoginResult, NoteWrite, RefreshBody } from './api.js';
|
|
3
3
|
export { LockedError, Vault } from './vault.js';
|
|
4
4
|
export type { UnlockedSession } from './vault.js';
|
|
5
5
|
export { NotesService, SEARCH_SCAN_CAP } from './notes.js';
|
|
6
|
+
export { AttachmentsService } from './attachments.js';
|
|
7
|
+
export type { AttachmentInfo } from './attachments.js';
|
|
6
8
|
export { MemoryStore, SYNC_PAGE_LIMIT } from './memories.js';
|
|
7
9
|
export type { CachedMemory, SimilarMemory, SyncResult } from './memories.js';
|
|
8
10
|
export { MEMORY_NOTE_TYPE, mergeMeta, parseMemoryNote, serializeMemoryBody, toCodeEnvelope, } from './memory-note.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC1I,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EACL,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,QAAQ,GACT,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC1H,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACnF,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEnE;;;;;;;;;;GAUG"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { ApiError, VirlowApi } from './api.js';
|
|
2
2
|
export { LockedError, Vault } from './vault.js';
|
|
3
3
|
export { NotesService, SEARCH_SCAN_CAP } from './notes.js';
|
|
4
|
+
export { AttachmentsService } from './attachments.js';
|
|
4
5
|
export { MemoryStore, SYNC_PAGE_LIMIT } from './memories.js';
|
|
5
6
|
export { MEMORY_NOTE_TYPE, mergeMeta, parseMemoryNote, serializeMemoryBody, toCodeEnvelope, } from './memory-note.js';
|
|
6
7
|
export { MEMORIES_ROOT_NAME, ensureNamespace, resolveMemoryTree, } from './memory-tree.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EACL,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,QAAQ,GACT,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGnF;;;;;;;;;;GAUG"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EACL,eAAe,EACf,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,UAAU,EACV,QAAQ,GACT,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGnF;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one gate for every disk path a model hands the attachment tools
|
|
3
|
+
* (`path` on add_attachment, `save_to` on read_attachment).
|
|
4
|
+
*
|
|
5
|
+
* "Absolute" is not enough on Windows. path.win32.isAbsolute accepts
|
|
6
|
+
* \\server\share\x, //server/share/x, \\?\UNC\..., \\.\pipe\x and a bare /x.
|
|
7
|
+
* Touching a UNC path makes Windows try SMB to that host, which hands it the
|
|
8
|
+
* user's NTLM hash; writing to one sends decrypted vault files off the
|
|
9
|
+
* machine; device paths reach pipes and drivers rather than files. A
|
|
10
|
+
* prompt-injected model can ask for any of these, so only a plain drive path
|
|
11
|
+
* is accepted.
|
|
12
|
+
*/
|
|
13
|
+
export type PathPlatform = 'win32' | 'posix';
|
|
14
|
+
/**
|
|
15
|
+
* Returns the path to use, or throws a message the model can act on.
|
|
16
|
+
*
|
|
17
|
+
* Windows: only `X:\...` (either slash). `\\?\X:\...` is accepted and
|
|
18
|
+
* normalised to `X:\...`; every other `\\` or `//` form (UNC, `\\?\UNC\`,
|
|
19
|
+
* `\\.\` devices), a rooted path with no drive, a drive-relative path,
|
|
20
|
+
* alternate data streams and reserved device names are refused.
|
|
21
|
+
* POSIX: a leading `/`, but not `//`, which POSIX leaves
|
|
22
|
+
* implementation-defined and some systems treat as a network root.
|
|
23
|
+
*
|
|
24
|
+
* `platform` defaults to this process's; tests pass it to cover both.
|
|
25
|
+
*/
|
|
26
|
+
export declare function requireLocalAbsolutePath(p: string, label: string, platform?: PathPlatform): string;
|
|
27
|
+
//# sourceMappingURL=local-paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-paths.d.ts","sourceRoot":"","sources":["../src/local-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAiB7C;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,YAAgC,GACzC,MAAM,CAWR"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one gate for every disk path a model hands the attachment tools
|
|
3
|
+
* (`path` on add_attachment, `save_to` on read_attachment).
|
|
4
|
+
*
|
|
5
|
+
* "Absolute" is not enough on Windows. path.win32.isAbsolute accepts
|
|
6
|
+
* \\server\share\x, //server/share/x, \\?\UNC\..., \\.\pipe\x and a bare /x.
|
|
7
|
+
* Touching a UNC path makes Windows try SMB to that host, which hands it the
|
|
8
|
+
* user's NTLM hash; writing to one sends decrypted vault files off the
|
|
9
|
+
* machine; device paths reach pipes and drivers rather than files. A
|
|
10
|
+
* prompt-injected model can ask for any of these, so only a plain drive path
|
|
11
|
+
* is accepted.
|
|
12
|
+
*/
|
|
13
|
+
const currentPlatform = () => (process.platform === 'win32' ? 'win32' : 'posix');
|
|
14
|
+
/** Names Windows maps to devices in any folder, with or without an extension. */
|
|
15
|
+
const WIN_RESERVED = /^(con|prn|aux|nul|com[0-9¹²³]|lpt[0-9¹²³]|conin\$|conout\$)(\..*)?$/i;
|
|
16
|
+
function isLocalWindowsPath(p) {
|
|
17
|
+
if (!/^[A-Za-z]:[\\/]/.test(p))
|
|
18
|
+
return false;
|
|
19
|
+
// A colon past the drive is an alternate data stream (file.txt:stream).
|
|
20
|
+
if (p.indexOf(':', 2) !== -1)
|
|
21
|
+
return false;
|
|
22
|
+
return !p
|
|
23
|
+
.slice(3)
|
|
24
|
+
.split(/[\\/]/)
|
|
25
|
+
.some((segment) => WIN_RESERVED.test(segment.replace(/[ .]+$/, '')));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns the path to use, or throws a message the model can act on.
|
|
29
|
+
*
|
|
30
|
+
* Windows: only `X:\...` (either slash). `\\?\X:\...` is accepted and
|
|
31
|
+
* normalised to `X:\...`; every other `\\` or `//` form (UNC, `\\?\UNC\`,
|
|
32
|
+
* `\\.\` devices), a rooted path with no drive, a drive-relative path,
|
|
33
|
+
* alternate data streams and reserved device names are refused.
|
|
34
|
+
* POSIX: a leading `/`, but not `//`, which POSIX leaves
|
|
35
|
+
* implementation-defined and some systems treat as a network root.
|
|
36
|
+
*
|
|
37
|
+
* `platform` defaults to this process's; tests pass it to cover both.
|
|
38
|
+
*/
|
|
39
|
+
export function requireLocalAbsolutePath(p, label, platform = currentPlatform()) {
|
|
40
|
+
if (platform === 'win32') {
|
|
41
|
+
const candidate = /^\\\\\?\\[A-Za-z]:\\/.test(p) ? p.slice(4) : p;
|
|
42
|
+
if (isLocalWindowsPath(candidate))
|
|
43
|
+
return candidate;
|
|
44
|
+
throw new Error(`${label} must be a full local path like C:\\Users\\you\\file.pdf, got "${p}". ` +
|
|
45
|
+
'Network and device paths are not allowed.');
|
|
46
|
+
}
|
|
47
|
+
if (p.startsWith('/') && !p.startsWith('//'))
|
|
48
|
+
return p;
|
|
49
|
+
throw new Error(`${label} must be an absolute path like /home/you/file.pdf, got "${p}".`);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=local-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-paths.js","sourceRoot":"","sources":["../src/local-paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,eAAe,GAAG,GAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAE/F,iFAAiF;AACjF,MAAM,YAAY,GAAG,sEAAsE,CAAC;AAE5F,SAAS,kBAAkB,CAAC,CAAS;IACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,wEAAwE;IACxE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,CAAC,CAAC;SACN,KAAK,CAAC,CAAC,CAAC;SACR,KAAK,CAAC,OAAO,CAAC;SACd,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,CAAS,EACT,KAAa,EACb,WAAyB,eAAe,EAAE;IAE1C,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,kBAAkB,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,kEAAkE,CAAC,KAAK;YAC9E,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACvD,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,2DAA2D,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAC"}
|
package/dist/tools.d.ts
CHANGED
|
@@ -51,6 +51,15 @@ export interface BuildServerOptions {
|
|
|
51
51
|
* Notes tools are unaffected either way.
|
|
52
52
|
*/
|
|
53
53
|
memoriesEnabled?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Whether the attachment tools may touch this machine's disk: `path` on
|
|
56
|
+
* add_attachment and `save_to` / `overwrite` on read_attachment. Off unless
|
|
57
|
+
* a host turns it on. The local CLI and the desktop app do, because the disk
|
|
58
|
+
* is the user's own. The hosted connector never does: its disk is a server
|
|
59
|
+
* shared by every account. When off, those parameters are not in the tool
|
|
60
|
+
* schemas at all, rather than present and refused.
|
|
61
|
+
*/
|
|
62
|
+
fileAccess?: boolean;
|
|
54
63
|
/**
|
|
55
64
|
* An API client to share instead of constructing one from `apiUrl`. A host
|
|
56
65
|
* that already authenticates the user (the desktop app's proxy) passes its
|
|
@@ -96,7 +105,7 @@ export interface ServerServices {
|
|
|
96
105
|
*/
|
|
97
106
|
export declare function serverInstructions(memoriesEnabled: boolean): string;
|
|
98
107
|
/**
|
|
99
|
-
* Builds the virlow-mcp server: registers
|
|
108
|
+
* Builds the virlow-mcp server: registers every tool against a fresh
|
|
100
109
|
* VirlowApi/Vault/MemoryStore/NotesService, and returns the server plus the
|
|
101
110
|
* vault (exposed mainly so callers/tests can inspect lock state directly).
|
|
102
111
|
* Nothing here talks to the network or the model — that only happens once a
|
|
@@ -104,7 +113,7 @@ export declare function serverInstructions(memoriesEnabled: boolean): string;
|
|
|
104
113
|
*/
|
|
105
114
|
export declare function createServices(opts: BuildServerOptions): ServerServices;
|
|
106
115
|
/**
|
|
107
|
-
* Register
|
|
116
|
+
* Register every tool against the given services. Callers that need one
|
|
108
117
|
* server (stdio) can omit `services` and get a fresh set; the HTTP transport
|
|
109
118
|
* passes shared ones so every request talks to the same vault.
|
|
110
119
|
*/
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAgBA,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;AAS1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAgB/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;IAC1B;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;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;AAuDD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,OAAO,GAAG,MAAM,CAsBnE;AA6RD;;;;;;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,CAuqCb;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"}
|