@opendatalabs/personal-server-ts-server 1.3.2 → 1.3.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/api-auth.d.ts.map +1 -1
- package/dist/api-auth.js +5 -0
- package/dist/api-auth.js.map +1 -1
- package/dist/storage/hierarchy.d.ts +7 -0
- package/dist/storage/hierarchy.d.ts.map +1 -1
- package/dist/storage/hierarchy.js +42 -1
- package/dist/storage/hierarchy.js.map +1 -1
- package/dist/storage/node-data-storage.d.ts.map +1 -1
- package/dist/storage/node-data-storage.js +4 -1
- package/dist/storage/node-data-storage.js.map +1 -1
- package/dist/ui/ps-lite-debug.js +456 -105
- package/package.json +3 -3
package/dist/api-auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-auth.d.ts","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,2CAA2C,CAAC;AAOnD,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,WAAW,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACjD,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;CAC/C;AA6CD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,iBAAiB,GACtB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"api-auth.d.ts","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,2CAA2C,CAAC;AAOnD,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,WAAW,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACjD,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;CAC/C;AA6CD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,iBAAiB,GACtB,yBAAyB,CA+E3B"}
|
package/dist/api-auth.js
CHANGED
|
@@ -76,6 +76,10 @@ export function createServerApiAuth(deps) {
|
|
|
76
76
|
result.mechanism === "control-plane-token")) {
|
|
77
77
|
return { builder: result.auth.signer, grantId: "owner" };
|
|
78
78
|
}
|
|
79
|
+
// Fail closed: a builder grant read can't be authorized if we can't
|
|
80
|
+
// identify this server's owner to bind the grant to.
|
|
81
|
+
if (!deps.serverOwner)
|
|
82
|
+
throw serverNotConfigured();
|
|
79
83
|
const selectedEntry = deps.dataStorage?.findEntry({
|
|
80
84
|
scope: input.scope,
|
|
81
85
|
fileId: input.fileId,
|
|
@@ -85,6 +89,7 @@ export function createServerApiAuth(deps) {
|
|
|
85
89
|
grantId: result.auth.payload.grantId ?? input.grantId,
|
|
86
90
|
requestedScope: input.scope,
|
|
87
91
|
fileId: input.fileId ?? selectedEntry?.fileId ?? undefined,
|
|
92
|
+
serverOwner: deps.serverOwner,
|
|
88
93
|
}, {
|
|
89
94
|
authSessionVerifier: deps.gateway,
|
|
90
95
|
grantVerifier: deps.gateway,
|
package/dist/api-auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-auth.js","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api-auth.js","sourceRoot":"","sources":["../src/api-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAGpB,MAAM,4CAA4C,CAAC;AAKpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EACL,aAAa,EACb,aAAa,EACb,wBAAwB,GACzB,MAAM,8CAA8C,CAAC;AAkBtD,SAAS,mBAAmB;IAC1B,OAAO,IAAI,aAAa,CACtB,GAAG,EACH,uBAAuB,EACvB,0FAA0F,CAC3F,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CACd,MAAc,EACd,WAAsC;IAEtC,OAAO,OAAO,CACZ,WAAW,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CAClE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAAgB,EAChB,IAAuB;IAEvB,OAAO,mBAAmB,CAAC;QACzB,OAAO;QACP,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,oBAAoB,EAAE,IAAI,CAAC,UAAU;QACrC,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,OAAsB,EACtB,MAAqB;IAErB,IAAI,qBAAqB,IAAI,OAAO,EAAE,CAAC;QACrC,IAAI,MAAM,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC;YAAE,OAAO;QACtD,MAAM,IAAI,wBAAwB,EAAE,CAAC;IACvC,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,wBAAwB,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAuB;IAEvB,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,OAAO;YAC1B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,cAAc;gBAAE,OAAO;YAClC,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,MAAM,mBAAmB,EAAE,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,aAAa,CAAC;oBACtB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;oBAC1B,QAAQ,EAAE,IAAI,CAAC,WAAW;iBAC3B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,OAAO;YAChC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,IACE,MAAM,CAAC,cAAc;gBACrB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,EAC7C,CAAC;gBACD,OAAO;YACT,CAAC;YACD,MAAM,uBAAuB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,KAAkC;YAC3D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;YACnE,CAAC;YACD,yDAAyD;YACzD,sEAAsE;YACtE,wDAAwD;YACxD,kEAAkE;YAClE,mEAAmE;YACnE,4DAA4D;YAC5D,8BAA8B;YAC9B,wEAAwE;YACxE,uEAAuE;YACvE,qEAAqE;YACrE,yDAAyD;YACzD,sEAAsE;YACtE,sEAAsE;YACtE,oEAAoE;YACpE,iEAAiE;YACjE,oEAAoE;YACpE,IACE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC;gBAC7C,CAAC,MAAM,CAAC,SAAS,KAAK,aAAa;oBACjC,MAAM,CAAC,SAAS,KAAK,qBAAqB,CAAC,EAC7C,CAAC;gBACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YAC3D,CAAC;YAED,oEAAoE;YACpE,qDAAqD;YACrD,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,MAAM,mBAAmB,EAAE,CAAC;YAEnD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC;gBAChD,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,oBAAoB,CACtC;gBACE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;gBAC1B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;gBACrD,cAAc,EAAE,KAAK,CAAC,KAAK;gBAC3B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,aAAa,EAAE,MAAM,IAAI,SAAS;gBAC1D,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,EACD;gBACE,mBAAmB,EAAE,IAAI,CAAC,OAAO;gBACjC,aAAa,EAAE,IAAI,CAAC,OAAO;gBAC3B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;aAC9C,CACF,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QAC5D,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -14,7 +14,14 @@ export declare function writeBlockManifest(options: HierarchyManagerOptions, sco
|
|
|
14
14
|
export declare function readScopeBlocks(options: HierarchyManagerOptions, scope: string, collectedAt: string, readOptions: {
|
|
15
15
|
cursor?: string;
|
|
16
16
|
maxBytes: number;
|
|
17
|
+
blockIds?: readonly string[];
|
|
17
18
|
}): Promise<ReadScopeBlocksResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Manifest as a table of contents. Unlike the internal reader this returns null
|
|
21
|
+
* for a scope that was stored before block sidecars existed, so callers can
|
|
22
|
+
* degrade instead of failing.
|
|
23
|
+
*/
|
|
24
|
+
export declare function readScopeBlockManifest(options: HierarchyManagerOptions, scope: string, collectedAt: string): Promise<DataBlockManifest | null>;
|
|
18
25
|
export declare function hasScopeBlocks(options: HierarchyManagerOptions, scope: string, collectedAt: string): Promise<boolean>;
|
|
19
26
|
/** List version filenames for a scope, newest first. Empty array if scope dir doesn't exist. */
|
|
20
27
|
export declare function listVersions(options: HierarchyManagerOptions, scope: string): Promise<string[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../src/storage/hierarchy.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EACjB,MAAM,yDAAyD,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../src/storage/hierarchy.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAIL,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EACjB,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC7B,MAAM,sDAAsD,CAAC;AAO9D,sDAAsD;AACtD,wBAAsB,aAAa,CACjC,OAAO,EAAE,uBAAuB,EAChC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,WAAW,CAAC,CAuBtB;AAED,iCAAiC;AACjC,wBAAsB,YAAY,CAChC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAI3B;AAED,0EAA0E;AAC1E,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAgB/C;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,cAAc,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B,GACA,OAAO,CAAC,uBAAuB,CAAC,CAsFlC;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAYnC;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,gGAAgG;AAChG,wBAAsB,YAAY,CAChC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBnB;AAED;wFACwF;AACxF,wBAAsB,cAAc,CAClC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAKf"}
|
|
@@ -3,7 +3,7 @@ import { dirname, join, relative } from "node:path";
|
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { DataFileEnvelopeSchema, } from "@opendatalabs/vana-sdk/browser";
|
|
5
5
|
import { buildDataFilePath, buildScopeDir, filenameToTimestamp, } from "@opendatalabs/personal-server-ts-core/storage/hierarchy";
|
|
6
|
-
import { DataBlockStorageError, encodeDataBlockCursor, validateDataBlockCursor, } from "@opendatalabs/personal-server-ts-core/storage/blocks";
|
|
6
|
+
import { DataBlockStorageError, encodeDataBlockCursor, selectScopeBlocksByIds, validateDataBlockCursor, } from "@opendatalabs/personal-server-ts-core/storage/blocks";
|
|
7
7
|
import { previewJsonEnvelopePrefix } from "@opendatalabs/personal-server-ts-core/storage/preview";
|
|
8
8
|
const TEXT_PAGE_MEDIA_TYPE = "text/plain; charset=utf-8";
|
|
9
9
|
const textEncoder = new TextEncoder();
|
|
@@ -67,6 +67,17 @@ export async function writeBlockManifest(options, scope, collectedAt, manifest,
|
|
|
67
67
|
}
|
|
68
68
|
export async function readScopeBlocks(options, scope, collectedAt, readOptions) {
|
|
69
69
|
const manifest = await readBlockManifest(options, scope, collectedAt);
|
|
70
|
+
if (readOptions.blockIds?.length) {
|
|
71
|
+
const selection = await selectScopeBlocksByIds(manifest, readOptions.blockIds, { maxBytes: readOptions.maxBytes }, (blockId) => readBlockPayloadIfPresent(options, scope, collectedAt, blockId));
|
|
72
|
+
return {
|
|
73
|
+
scope: manifest.scope,
|
|
74
|
+
collectedAt: manifest.collectedAt,
|
|
75
|
+
...(manifest.schemaId ? { schemaId: manifest.schemaId } : {}),
|
|
76
|
+
contentKind: manifest.contentKind,
|
|
77
|
+
blocks: selection.blocks,
|
|
78
|
+
warnings: [...manifest.warnings, ...selection.warnings],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
70
81
|
const cursor = readOptions.cursor
|
|
71
82
|
? validateDataBlockCursor(readOptions.cursor, { scope, collectedAt })
|
|
72
83
|
: undefined;
|
|
@@ -124,6 +135,23 @@ export async function readScopeBlocks(options, scope, collectedAt, readOptions)
|
|
|
124
135
|
warnings: manifest.warnings,
|
|
125
136
|
};
|
|
126
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Manifest as a table of contents. Unlike the internal reader this returns null
|
|
140
|
+
* for a scope that was stored before block sidecars existed, so callers can
|
|
141
|
+
* degrade instead of failing.
|
|
142
|
+
*/
|
|
143
|
+
export async function readScopeBlockManifest(options, scope, collectedAt) {
|
|
144
|
+
try {
|
|
145
|
+
return await readBlockManifest(options, scope, collectedAt);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
if (err instanceof DataBlockStorageError &&
|
|
149
|
+
err.code === "block_manifest_not_found") {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
throw err;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
127
155
|
export async function hasScopeBlocks(options, scope, collectedAt) {
|
|
128
156
|
try {
|
|
129
157
|
await access(buildBlockManifestPath(options.dataDir, scope, collectedAt));
|
|
@@ -200,6 +228,19 @@ async function readBlockPayload(options, scope, collectedAt, blockId) {
|
|
|
200
228
|
throw err;
|
|
201
229
|
}
|
|
202
230
|
}
|
|
231
|
+
/** Payload read for block-addressed selection: a missing id is a warning, not a throw. */
|
|
232
|
+
async function readBlockPayloadIfPresent(options, scope, collectedAt, blockId) {
|
|
233
|
+
try {
|
|
234
|
+
return await readBlockPayload(options, scope, collectedAt, blockId);
|
|
235
|
+
}
|
|
236
|
+
catch (err) {
|
|
237
|
+
if (err instanceof DataBlockStorageError &&
|
|
238
|
+
err.code === "block_payload_not_found") {
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
throw err;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
203
244
|
function pageBlock(block, offsetBytes, maxBytes) {
|
|
204
245
|
const text = typeof block.value === "string" ? block.value : JSON.stringify(block.value);
|
|
205
246
|
const bytes = textEncoder.encode(text);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../../src/storage/hierarchy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../../src/storage/hierarchy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-data-storage.d.ts","sourceRoot":"","sources":["../../src/storage/node-data-storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-data-storage.d.ts","sourceRoot":"","sources":["../../src/storage/node-data-storage.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,KAAK,EAGV,eAAe,EAEhB,MAAM,6CAA6C,CAAC;AAGrD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,GACxB,eAAe,CA+GjB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { deleteAllForScope, deleteDataFile, readDataFile, readDataFilePreview, hasScopeBlocks, readScopeBlocks, writeBlockManifest, writeDataFile, } from "./hierarchy.js";
|
|
1
|
+
import { deleteAllForScope, deleteDataFile, readDataFile, readDataFilePreview, hasScopeBlocks, readScopeBlockManifest, readScopeBlocks, writeBlockManifest, writeDataFile, } from "./hierarchy.js";
|
|
2
2
|
export function createNodeDataStorage(deps) {
|
|
3
3
|
return {
|
|
4
4
|
kind: "node-fs-sqlite",
|
|
@@ -41,6 +41,9 @@ export function createNodeDataStorage(deps) {
|
|
|
41
41
|
hasScopeBlocks(scope, collectedAt) {
|
|
42
42
|
return hasScopeBlocks(deps.hierarchyOptions, scope, collectedAt);
|
|
43
43
|
},
|
|
44
|
+
readBlockManifest(scope, collectedAt) {
|
|
45
|
+
return readScopeBlockManifest(deps.hierarchyOptions, scope, collectedAt);
|
|
46
|
+
},
|
|
44
47
|
writeEnvelope(envelope) {
|
|
45
48
|
return writeDataFile(deps.hierarchyOptions, envelope);
|
|
46
49
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-data-storage.js","sourceRoot":"","sources":["../../src/storage/node-data-storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-data-storage.js","sourceRoot":"","sources":["../../src/storage/node-data-storage.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/ps-lite-debug.js
CHANGED
|
@@ -106401,6 +106401,101 @@ function assignBlockIds(blocks) {
|
|
|
106401
106401
|
}));
|
|
106402
106402
|
}
|
|
106403
106403
|
|
|
106404
|
+
// ../core/dist/storage/blocks/select.js
|
|
106405
|
+
var MAX_SELECTED_BLOCK_IDS = 50;
|
|
106406
|
+
var WARNING_ID_SAMPLE = 10;
|
|
106407
|
+
var TEXT_PAGE_MEDIA_TYPE = "text/plain; charset=utf-8";
|
|
106408
|
+
var textEncoder2 = new TextEncoder();
|
|
106409
|
+
var textDecoder = new TextDecoder();
|
|
106410
|
+
async function selectScopeBlocksByIds(manifest, blockIds, options, loadBlock) {
|
|
106411
|
+
const maxBytes = Math.max(1, options.maxBytes);
|
|
106412
|
+
const refById = new Map(manifest.blocks.map((ref) => [ref.id, ref]));
|
|
106413
|
+
const requested = [];
|
|
106414
|
+
const seen = /* @__PURE__ */ new Set();
|
|
106415
|
+
let cappedIds = 0;
|
|
106416
|
+
for (const blockId of blockIds) {
|
|
106417
|
+
if (typeof blockId !== "string" || !blockId || seen.has(blockId))
|
|
106418
|
+
continue;
|
|
106419
|
+
seen.add(blockId);
|
|
106420
|
+
if (requested.length >= MAX_SELECTED_BLOCK_IDS) {
|
|
106421
|
+
cappedIds += 1;
|
|
106422
|
+
continue;
|
|
106423
|
+
}
|
|
106424
|
+
requested.push(blockId);
|
|
106425
|
+
}
|
|
106426
|
+
const blocks = [];
|
|
106427
|
+
const missingIds = [];
|
|
106428
|
+
const skippedIds = [];
|
|
106429
|
+
const warnings = [];
|
|
106430
|
+
let bytes2 = 0;
|
|
106431
|
+
for (let index = 0; index < requested.length; index += 1) {
|
|
106432
|
+
const blockId = requested[index];
|
|
106433
|
+
const ref = refById.get(blockId);
|
|
106434
|
+
if (!ref) {
|
|
106435
|
+
missingIds.push(blockId);
|
|
106436
|
+
continue;
|
|
106437
|
+
}
|
|
106438
|
+
if (blocks.length > 0 && bytes2 + ref.sizeBytes > maxBytes) {
|
|
106439
|
+
skippedIds.push(...requested.slice(index));
|
|
106440
|
+
break;
|
|
106441
|
+
}
|
|
106442
|
+
const block = await loadBlock(blockId);
|
|
106443
|
+
if (!block) {
|
|
106444
|
+
missingIds.push(blockId);
|
|
106445
|
+
continue;
|
|
106446
|
+
}
|
|
106447
|
+
const page = pageBlock(block, maxBytes - bytes2);
|
|
106448
|
+
blocks.push(page.block);
|
|
106449
|
+
bytes2 += page.block.sizeBytes;
|
|
106450
|
+
if (page.truncated) {
|
|
106451
|
+
skippedIds.push(...requested.slice(index + 1));
|
|
106452
|
+
break;
|
|
106453
|
+
}
|
|
106454
|
+
}
|
|
106455
|
+
if (cappedIds > 0) {
|
|
106456
|
+
warnings.push({
|
|
106457
|
+
code: "block_selection_capped",
|
|
106458
|
+
message: `${cappedIds} block ids beyond the ${MAX_SELECTED_BLOCK_IDS} id limit were ignored`
|
|
106459
|
+
});
|
|
106460
|
+
}
|
|
106461
|
+
if (missingIds.length > 0) {
|
|
106462
|
+
warnings.push({
|
|
106463
|
+
code: "block_not_found",
|
|
106464
|
+
message: `${missingIds.length} requested block ids are not in this scope: ${summarizeIds(missingIds)}`
|
|
106465
|
+
});
|
|
106466
|
+
}
|
|
106467
|
+
if (skippedIds.length > 0) {
|
|
106468
|
+
warnings.push({
|
|
106469
|
+
code: "block_selection_truncated",
|
|
106470
|
+
message: `maxBytes reached; ${skippedIds.length} requested blocks were not returned: ${summarizeIds(skippedIds)}. Request them in a follow-up read.`
|
|
106471
|
+
});
|
|
106472
|
+
}
|
|
106473
|
+
return { blocks, warnings };
|
|
106474
|
+
}
|
|
106475
|
+
function summarizeIds(ids) {
|
|
106476
|
+
const sample = ids.slice(0, WARNING_ID_SAMPLE).join(", ");
|
|
106477
|
+
return ids.length > WARNING_ID_SAMPLE ? `${sample}, ...(${ids.length - WARNING_ID_SAMPLE} more)` : sample;
|
|
106478
|
+
}
|
|
106479
|
+
function pageBlock(block, maxBytes) {
|
|
106480
|
+
const text = typeof block.value === "string" ? block.value : JSON.stringify(block.value);
|
|
106481
|
+
const bytes2 = textEncoder2.encode(text);
|
|
106482
|
+
if (bytes2.length <= maxBytes) {
|
|
106483
|
+
return { block, truncated: false };
|
|
106484
|
+
}
|
|
106485
|
+
const end = Math.max(1, maxBytes);
|
|
106486
|
+
return {
|
|
106487
|
+
block: {
|
|
106488
|
+
...block,
|
|
106489
|
+
path: `${block.path}[bytes 0:${end}]`,
|
|
106490
|
+
mediaType: block.mediaType.startsWith("text/") ? block.mediaType : TEXT_PAGE_MEDIA_TYPE,
|
|
106491
|
+
value: textDecoder.decode(bytes2.slice(0, end)),
|
|
106492
|
+
sizeBytes: end,
|
|
106493
|
+
truncated: true
|
|
106494
|
+
},
|
|
106495
|
+
truncated: true
|
|
106496
|
+
};
|
|
106497
|
+
}
|
|
106498
|
+
|
|
106404
106499
|
// ../core/dist/storage/blocks/errors.js
|
|
106405
106500
|
var DataBlockStorageError = class extends Error {
|
|
106406
106501
|
code;
|
|
@@ -106413,9 +106508,9 @@ var DataBlockStorageError = class extends Error {
|
|
|
106413
106508
|
|
|
106414
106509
|
// ../core/dist/storage/preview.js
|
|
106415
106510
|
var DEFAULT_PREVIEW_NODE_BUDGET = 15e3;
|
|
106416
|
-
var
|
|
106511
|
+
var textEncoder3 = new TextEncoder();
|
|
106417
106512
|
function utf8Length(text) {
|
|
106418
|
-
return
|
|
106513
|
+
return textEncoder3.encode(text).byteLength;
|
|
106419
106514
|
}
|
|
106420
106515
|
function clipToUtf8Bytes(text, maxBytes) {
|
|
106421
106516
|
if (maxBytes <= 0)
|
|
@@ -106710,9 +106805,9 @@ function summarizeScopes(entries, options) {
|
|
|
106710
106805
|
var DEFAULT_INDEXED_DB_NAME = "personal-server-lite-storage";
|
|
106711
106806
|
var DEFAULT_INDEXED_DB_STORE = "state";
|
|
106712
106807
|
var DEFAULT_INDEXED_DB_KEY = "data-storage-v1";
|
|
106713
|
-
var
|
|
106714
|
-
var
|
|
106715
|
-
var
|
|
106808
|
+
var TEXT_PAGE_MEDIA_TYPE2 = "text/plain; charset=utf-8";
|
|
106809
|
+
var textEncoder4 = new TextEncoder();
|
|
106810
|
+
var textDecoder2 = new TextDecoder();
|
|
106716
106811
|
function schemaIdFromEnvelope(envelope) {
|
|
106717
106812
|
const schemaId = envelope.schemaId;
|
|
106718
106813
|
return typeof schemaId === "string" ? schemaId : void 0;
|
|
@@ -107067,6 +107162,17 @@ async function createPersistentPsLiteStorage(adapter, persistence = createIndexe
|
|
|
107067
107162
|
}, "Block sidecar cache write failed; serving read from local envelope");
|
|
107068
107163
|
}
|
|
107069
107164
|
}
|
|
107165
|
+
if (options.blockIds?.length) {
|
|
107166
|
+
const selection = await selectScopeBlocksByIds(manifest, options.blockIds, { maxBytes: options.maxBytes }, async (blockId) => inMemoryBlocks?.find((candidate) => candidate.id === blockId) ?? await readBlockPayloadFromStores(fileStore, fallbackStore, blockPayloadPath(scope, collectedAt2, blockId)));
|
|
107167
|
+
return {
|
|
107168
|
+
scope: manifest.scope,
|
|
107169
|
+
collectedAt: manifest.collectedAt,
|
|
107170
|
+
...manifest.schemaId ? { schemaId: manifest.schemaId } : {},
|
|
107171
|
+
contentKind: manifest.contentKind,
|
|
107172
|
+
blocks: selection.blocks,
|
|
107173
|
+
warnings: [...manifest.warnings, ...selection.warnings]
|
|
107174
|
+
};
|
|
107175
|
+
}
|
|
107070
107176
|
const cursorResult = options.cursor ? validateDataBlockCursor(options.cursor, { scope, collectedAt: collectedAt2 }) : { ok: true, cursor: null };
|
|
107071
107177
|
if (!cursorResult.ok) {
|
|
107072
107178
|
throw new DataBlockStorageError("cursor_invalid", cursorResult.error.message);
|
|
@@ -107109,7 +107215,7 @@ async function createPersistentPsLiteStorage(adapter, persistence = createIndexe
|
|
|
107109
107215
|
blocks.length = 0;
|
|
107110
107216
|
continue;
|
|
107111
107217
|
}
|
|
107112
|
-
const page =
|
|
107218
|
+
const page = pageBlock2(block, offset, maxBytes - bytes2);
|
|
107113
107219
|
blocks.push(page.block);
|
|
107114
107220
|
bytes2 += page.block.sizeBytes;
|
|
107115
107221
|
if (page.nextOffset !== void 0) {
|
|
@@ -107135,10 +107241,12 @@ async function createPersistentPsLiteStorage(adapter, persistence = createIndexe
|
|
|
107135
107241
|
warnings: manifest.warnings
|
|
107136
107242
|
};
|
|
107137
107243
|
},
|
|
107138
|
-
async
|
|
107244
|
+
async readBlockManifest(scope, collectedAt2) {
|
|
107139
107245
|
const manifestPath = blockManifestPath(scope, collectedAt2);
|
|
107140
|
-
|
|
107141
|
-
|
|
107246
|
+
return await fileStore.readBlockManifest?.(manifestPath) ?? (fileStore === fallbackStore ? null : await fallbackStore.readBlockManifest?.(manifestPath)) ?? null;
|
|
107247
|
+
},
|
|
107248
|
+
async hasScopeBlocks(scope, collectedAt2) {
|
|
107249
|
+
return Boolean(await storagePort.readBlockManifest?.(scope, collectedAt2));
|
|
107142
107250
|
},
|
|
107143
107251
|
async canReadScopeBlocks(scope, collectedAt2) {
|
|
107144
107252
|
if (await storagePort.hasScopeBlocks?.(scope, collectedAt2)) {
|
|
@@ -107319,20 +107427,20 @@ async function createPersistentPsLiteStorage(adapter, persistence = createIndexe
|
|
|
107319
107427
|
async function readPreviewFromFileStore(store, path, maxBytes) {
|
|
107320
107428
|
return await store.readEnvelopePreview?.(path, { maxBytes }) ?? null;
|
|
107321
107429
|
}
|
|
107322
|
-
function
|
|
107430
|
+
function pageBlock2(block, offsetBytes, maxBytes) {
|
|
107323
107431
|
const text = typeof block.value === "string" ? block.value : JSON.stringify(block.value);
|
|
107324
|
-
const bytes2 =
|
|
107432
|
+
const bytes2 = textEncoder4.encode(text);
|
|
107325
107433
|
if (offsetBytes <= 0 && bytes2.length <= maxBytes) {
|
|
107326
107434
|
return { block };
|
|
107327
107435
|
}
|
|
107328
107436
|
const start = Math.min(Math.max(0, offsetBytes), bytes2.length);
|
|
107329
107437
|
const end = Math.min(bytes2.length, start + Math.max(1, maxBytes));
|
|
107330
|
-
const value =
|
|
107438
|
+
const value = textDecoder2.decode(bytes2.slice(start, end));
|
|
107331
107439
|
return {
|
|
107332
107440
|
block: {
|
|
107333
107441
|
...block,
|
|
107334
107442
|
path: `${block.path}[bytes ${start}:${end}]`,
|
|
107335
|
-
mediaType: block.mediaType.startsWith("text/") ? block.mediaType :
|
|
107443
|
+
mediaType: block.mediaType.startsWith("text/") ? block.mediaType : TEXT_PAGE_MEDIA_TYPE2,
|
|
107336
107444
|
value,
|
|
107337
107445
|
sizeBytes: end - start,
|
|
107338
107446
|
truncated: end < bytes2.length
|
|
@@ -107983,11 +108091,21 @@ var ScopeMismatchError = class extends ProtocolError {
|
|
|
107983
108091
|
super(403, "SCOPE_MISMATCH", "Scope not granted", details);
|
|
107984
108092
|
}
|
|
107985
108093
|
};
|
|
108094
|
+
var GrantOwnerMismatchError = class extends ProtocolError {
|
|
108095
|
+
constructor(details) {
|
|
108096
|
+
super(403, "GRANT_OWNER_MISMATCH", "Grant was not issued by this server's owner", details);
|
|
108097
|
+
}
|
|
108098
|
+
};
|
|
107986
108099
|
var PsUnavailableError = class extends ProtocolError {
|
|
107987
108100
|
constructor(details) {
|
|
107988
108101
|
super(503, "PS_UNAVAILABLE", "Personal Server runtime unavailable", details);
|
|
107989
108102
|
}
|
|
107990
108103
|
};
|
|
108104
|
+
var ServerNotConfiguredError = class extends ProtocolError {
|
|
108105
|
+
constructor(details) {
|
|
108106
|
+
super(500, "SERVER_NOT_CONFIGURED", "Server is not configured", details);
|
|
108107
|
+
}
|
|
108108
|
+
};
|
|
107991
108109
|
|
|
107992
108110
|
// ../core/dist/auth/request.js
|
|
107993
108111
|
function resolveOrigin(origin) {
|
|
@@ -109885,6 +110003,18 @@ async function verifyDataReadPolicy(input, ports) {
|
|
|
109885
110003
|
actual: input.signer
|
|
109886
110004
|
});
|
|
109887
110005
|
}
|
|
110006
|
+
if (!input.serverOwner) {
|
|
110007
|
+
throw new ServerNotConfiguredError({
|
|
110008
|
+
reason: "serverOwner is required to verify grant ownership"
|
|
110009
|
+
});
|
|
110010
|
+
}
|
|
110011
|
+
if (!grant.grantorAddress || grant.grantorAddress.toLowerCase() !== input.serverOwner.toLowerCase()) {
|
|
110012
|
+
throw new GrantOwnerMismatchError({
|
|
110013
|
+
grantId: grant.id,
|
|
110014
|
+
expected: input.serverOwner,
|
|
110015
|
+
actual: grant.grantorAddress ?? null
|
|
110016
|
+
});
|
|
110017
|
+
}
|
|
109888
110018
|
return grant;
|
|
109889
110019
|
}
|
|
109890
110020
|
|
|
@@ -110092,6 +110222,53 @@ var McpDataReadError = class extends Error {
|
|
|
110092
110222
|
};
|
|
110093
110223
|
function createMcpDataReadClient(options) {
|
|
110094
110224
|
const basePath = options.basePath ?? "/v1/data";
|
|
110225
|
+
async function authorizeScopeRead(params) {
|
|
110226
|
+
const safeScope = encodeURIComponent(params.scope);
|
|
110227
|
+
const signingUri = `${basePath}/${safeScope}`;
|
|
110228
|
+
const authorization = await signMcpGranteeRequest({
|
|
110229
|
+
account: options.granteeAccount,
|
|
110230
|
+
aud: options.serverOrigin,
|
|
110231
|
+
method: "GET",
|
|
110232
|
+
uri: signingUri,
|
|
110233
|
+
grantId: params.grantId
|
|
110234
|
+
});
|
|
110235
|
+
const url2 = new URL(signingUri, options.serverOrigin).toString();
|
|
110236
|
+
const request2 = new Request(url2, {
|
|
110237
|
+
method: "GET",
|
|
110238
|
+
headers: { Authorization: authorization }
|
|
110239
|
+
});
|
|
110240
|
+
try {
|
|
110241
|
+
const authResult = await options.dataApiDeps.auth.authorizeBuilderRead({
|
|
110242
|
+
request: request2,
|
|
110243
|
+
scope: params.scope,
|
|
110244
|
+
grantId: params.grantId,
|
|
110245
|
+
fileId: params.fileId
|
|
110246
|
+
});
|
|
110247
|
+
return { request: request2, authResult };
|
|
110248
|
+
} catch (err2) {
|
|
110249
|
+
if (err2 instanceof ProtocolError) {
|
|
110250
|
+
throw new McpDataReadError(err2.code, err2.toJSON());
|
|
110251
|
+
}
|
|
110252
|
+
throw err2;
|
|
110253
|
+
}
|
|
110254
|
+
}
|
|
110255
|
+
async function writeReadAccessLog(request2, params) {
|
|
110256
|
+
const logId = options.dataApiDeps.createLogId?.() ?? crypto.randomUUID();
|
|
110257
|
+
const timestamp = (options.dataApiDeps.now ?? (() => /* @__PURE__ */ new Date()))().toISOString();
|
|
110258
|
+
const ipAddress = request2.headers.get("x-forwarded-for") ?? request2.headers.get("x-real-ip") ?? "unknown";
|
|
110259
|
+
const userAgent = request2.headers.get("user-agent") ?? "unknown";
|
|
110260
|
+
await options.dataApiDeps.accessLogWriter.write({
|
|
110261
|
+
logId,
|
|
110262
|
+
grantId: params.authResult?.grantId ?? params.grantId,
|
|
110263
|
+
builder: params.authResult?.builder ?? options.granteeAccount.address,
|
|
110264
|
+
action: "read",
|
|
110265
|
+
scope: params.scope,
|
|
110266
|
+
timestamp,
|
|
110267
|
+
ipAddress,
|
|
110268
|
+
userAgent
|
|
110269
|
+
});
|
|
110270
|
+
return { logId, timestamp, ipAddress, userAgent };
|
|
110271
|
+
}
|
|
110095
110272
|
return {
|
|
110096
110273
|
async listScopes({ scopePrefix, limit, offset } = {}) {
|
|
110097
110274
|
const params = new URLSearchParams();
|
|
@@ -110135,7 +110312,7 @@ function createMcpDataReadClient(options) {
|
|
|
110135
110312
|
hasBlocks
|
|
110136
110313
|
};
|
|
110137
110314
|
},
|
|
110138
|
-
async readScopeBlocks({ scope, grantId, cursor, maxBytes }) {
|
|
110315
|
+
async readScopeBlocks({ scope, grantId, cursor, maxBytes, blockIds }) {
|
|
110139
110316
|
const storage = options.dataApiDeps.storage;
|
|
110140
110317
|
if (!storage.readScopeBlocks) {
|
|
110141
110318
|
throw new McpDataReadError(503, {
|
|
@@ -110155,54 +110332,19 @@ function createMcpDataReadClient(options) {
|
|
|
110155
110332
|
message: `No data found for scope "${scope}"`
|
|
110156
110333
|
});
|
|
110157
110334
|
}
|
|
110158
|
-
const
|
|
110159
|
-
|
|
110160
|
-
|
|
110161
|
-
|
|
110162
|
-
aud: options.serverOrigin,
|
|
110163
|
-
method: "GET",
|
|
110164
|
-
uri: signingUri,
|
|
110165
|
-
grantId
|
|
110166
|
-
});
|
|
110167
|
-
const url2 = new URL(signingUri, options.serverOrigin).toString();
|
|
110168
|
-
const request2 = new Request(url2, {
|
|
110169
|
-
method: "GET",
|
|
110170
|
-
headers: { Authorization: authorization }
|
|
110335
|
+
const { request: request2, authResult } = await authorizeScopeRead({
|
|
110336
|
+
scope,
|
|
110337
|
+
grantId,
|
|
110338
|
+
fileId: selectedEntry.fileId ?? void 0
|
|
110171
110339
|
});
|
|
110172
|
-
let authResult;
|
|
110173
|
-
try {
|
|
110174
|
-
authResult = await options.dataApiDeps.auth.authorizeBuilderRead({
|
|
110175
|
-
request: request2,
|
|
110176
|
-
scope,
|
|
110177
|
-
grantId,
|
|
110178
|
-
fileId: selectedEntry.fileId ?? void 0
|
|
110179
|
-
});
|
|
110180
|
-
} catch (err2) {
|
|
110181
|
-
if (err2 instanceof ProtocolError) {
|
|
110182
|
-
throw new McpDataReadError(err2.code, err2.toJSON());
|
|
110183
|
-
}
|
|
110184
|
-
throw err2;
|
|
110185
|
-
}
|
|
110186
110340
|
try {
|
|
110187
110341
|
const result = await storage.readScopeBlocks(scope, selectedEntry.collectedAt, {
|
|
110188
110342
|
cursor,
|
|
110189
|
-
maxBytes: maxBytes ?? 16384
|
|
110190
|
-
|
|
110191
|
-
const logId = options.dataApiDeps.createLogId?.() ?? crypto.randomUUID();
|
|
110192
|
-
const timestamp = (options.dataApiDeps.now ?? (() => /* @__PURE__ */ new Date()))().toISOString();
|
|
110193
|
-
const ipAddress = request2.headers.get("x-forwarded-for") ?? request2.headers.get("x-real-ip") ?? "unknown";
|
|
110194
|
-
const userAgent = request2.headers.get("user-agent") ?? "unknown";
|
|
110195
|
-
await options.dataApiDeps.accessLogWriter.write({
|
|
110196
|
-
logId,
|
|
110197
|
-
grantId: authResult?.grantId ?? grantId,
|
|
110198
|
-
builder: authResult?.builder ?? options.granteeAccount.address,
|
|
110199
|
-
action: "read",
|
|
110200
|
-
scope,
|
|
110201
|
-
timestamp,
|
|
110202
|
-
ipAddress,
|
|
110203
|
-
userAgent
|
|
110343
|
+
maxBytes: maxBytes ?? 16384,
|
|
110344
|
+
...blockIds?.length ? { blockIds } : {}
|
|
110204
110345
|
});
|
|
110205
|
-
|
|
110346
|
+
const { logId, timestamp, ipAddress, userAgent } = await writeReadAccessLog(request2, { scope, grantId, authResult });
|
|
110347
|
+
if (authResult?.grantId && authResult.builder && !cursor && !blockIds?.length && !result.nextCursor) {
|
|
110206
110348
|
reportPersonalServerReadFulfillment(options.dataApiDeps, {
|
|
110207
110349
|
builder: authResult.builder,
|
|
110208
110350
|
fileId: selectedEntry.fileId ?? void 0,
|
|
@@ -110232,6 +110374,26 @@ function createMcpDataReadClient(options) {
|
|
|
110232
110374
|
throw err2;
|
|
110233
110375
|
}
|
|
110234
110376
|
},
|
|
110377
|
+
async readBlockManifest({ scope, grantId }) {
|
|
110378
|
+
const storage = options.dataApiDeps.storage;
|
|
110379
|
+
if (!storage.readBlockManifest)
|
|
110380
|
+
return null;
|
|
110381
|
+
const selectedEntry = storage.findEntry({ scope });
|
|
110382
|
+
if (!selectedEntry) {
|
|
110383
|
+
throw new McpDataReadError(404, {
|
|
110384
|
+
error: "NOT_FOUND",
|
|
110385
|
+
message: `No data found for scope "${scope}"`
|
|
110386
|
+
});
|
|
110387
|
+
}
|
|
110388
|
+
const { request: request2, authResult } = await authorizeScopeRead({
|
|
110389
|
+
scope,
|
|
110390
|
+
grantId,
|
|
110391
|
+
fileId: selectedEntry.fileId ?? void 0
|
|
110392
|
+
});
|
|
110393
|
+
const manifest = await storage.readBlockManifest(scope, selectedEntry.collectedAt);
|
|
110394
|
+
await writeReadAccessLog(request2, { scope, grantId, authResult });
|
|
110395
|
+
return manifest;
|
|
110396
|
+
},
|
|
110235
110397
|
async readRawScopeFile({ scope, grantId, at: at3, fileId }) {
|
|
110236
110398
|
const storage = options.dataApiDeps.storage;
|
|
110237
110399
|
const selectedEntry = storage.findEntry({
|
|
@@ -110914,7 +111076,7 @@ var MiniSearch = class _MiniSearch {
|
|
|
110914
111076
|
* @param document The document to be indexed
|
|
110915
111077
|
*/
|
|
110916
111078
|
add(document2) {
|
|
110917
|
-
const { extractField, stringifyField, tokenize, processTerm, fields, idField } = this._options;
|
|
111079
|
+
const { extractField, stringifyField, tokenize, processTerm: processTerm2, fields, idField } = this._options;
|
|
110918
111080
|
const id2 = extractField(document2, idField);
|
|
110919
111081
|
if (id2 == null) {
|
|
110920
111082
|
throw new Error(`MiniSearch: document does not have ID field "${idField}"`);
|
|
@@ -110933,7 +111095,7 @@ var MiniSearch = class _MiniSearch {
|
|
|
110933
111095
|
const uniqueTerms = new Set(tokens).size;
|
|
110934
111096
|
this.addFieldLength(shortDocumentId, fieldId, this._documentCount - 1, uniqueTerms);
|
|
110935
111097
|
for (const term of tokens) {
|
|
110936
|
-
const processedTerm =
|
|
111098
|
+
const processedTerm = processTerm2(term, field);
|
|
110937
111099
|
if (Array.isArray(processedTerm)) {
|
|
110938
111100
|
for (const t10 of processedTerm) {
|
|
110939
111101
|
this.addTerm(fieldId, shortDocumentId, t10);
|
|
@@ -110995,7 +111157,7 @@ var MiniSearch = class _MiniSearch {
|
|
|
110995
111157
|
* @param document The document to be removed
|
|
110996
111158
|
*/
|
|
110997
111159
|
remove(document2) {
|
|
110998
|
-
const { tokenize, processTerm, extractField, stringifyField, fields, idField } = this._options;
|
|
111160
|
+
const { tokenize, processTerm: processTerm2, extractField, stringifyField, fields, idField } = this._options;
|
|
110999
111161
|
const id2 = extractField(document2, idField);
|
|
111000
111162
|
if (id2 == null) {
|
|
111001
111163
|
throw new Error(`MiniSearch: document does not have ID field "${idField}"`);
|
|
@@ -111013,7 +111175,7 @@ var MiniSearch = class _MiniSearch {
|
|
|
111013
111175
|
const uniqueTerms = new Set(tokens).size;
|
|
111014
111176
|
this.removeFieldLength(shortId, fieldId, this._documentCount, uniqueTerms);
|
|
111015
111177
|
for (const term of tokens) {
|
|
111016
|
-
const processedTerm =
|
|
111178
|
+
const processedTerm = processTerm2(term, field);
|
|
111017
111179
|
if (Array.isArray(processedTerm)) {
|
|
111018
111180
|
for (const t10 of processedTerm) {
|
|
111019
111181
|
this.removeTerm(fieldId, shortId, t10);
|
|
@@ -111750,8 +111912,8 @@ var MiniSearch = class _MiniSearch {
|
|
|
111750
111912
|
const results2 = query.queries.map((subquery) => this.executeQuery(subquery, options2));
|
|
111751
111913
|
return this.combineResults(results2, options2.combineWith);
|
|
111752
111914
|
}
|
|
111753
|
-
const { tokenize, processTerm, searchOptions: globalSearchOptions } = this._options;
|
|
111754
|
-
const options = { tokenize, processTerm, ...globalSearchOptions, ...searchOptions };
|
|
111915
|
+
const { tokenize, processTerm: processTerm2, searchOptions: globalSearchOptions } = this._options;
|
|
111916
|
+
const options = { tokenize, processTerm: processTerm2, ...globalSearchOptions, ...searchOptions };
|
|
111755
111917
|
const { tokenize: searchTokenize, processTerm: searchProcessTerm } = options;
|
|
111756
111918
|
const terms = searchTokenize(query).flatMap((term) => searchProcessTerm(term)).filter((term) => !!term);
|
|
111757
111919
|
const queries = terms.map(termToQuerySpec(options));
|
|
@@ -112155,16 +112317,86 @@ var SPACE_OR_PUNCTUATION = /[\n\r\p{Z}\p{P}]+/u;
|
|
|
112155
112317
|
// ../core/dist/mcp/search/index.js
|
|
112156
112318
|
var SEARCH_FIELDS = ["title", "text", "preview"];
|
|
112157
112319
|
var STORE_FIELDS = ["id", "scope", "source", "title", "preview", "blockRef"];
|
|
112320
|
+
var PREFIX_MIN_TERM_CHARS = 4;
|
|
112321
|
+
var MIN_TERM_CHARS = 2;
|
|
112322
|
+
var STOPWORDS = /* @__PURE__ */ new Set([
|
|
112323
|
+
"a",
|
|
112324
|
+
"an",
|
|
112325
|
+
"and",
|
|
112326
|
+
"are",
|
|
112327
|
+
"as",
|
|
112328
|
+
"at",
|
|
112329
|
+
"be",
|
|
112330
|
+
"but",
|
|
112331
|
+
"by",
|
|
112332
|
+
"did",
|
|
112333
|
+
"do",
|
|
112334
|
+
"does",
|
|
112335
|
+
"for",
|
|
112336
|
+
"from",
|
|
112337
|
+
"had",
|
|
112338
|
+
"has",
|
|
112339
|
+
"have",
|
|
112340
|
+
"he",
|
|
112341
|
+
"how",
|
|
112342
|
+
"i",
|
|
112343
|
+
"if",
|
|
112344
|
+
"in",
|
|
112345
|
+
"is",
|
|
112346
|
+
"it",
|
|
112347
|
+
"its",
|
|
112348
|
+
"me",
|
|
112349
|
+
"my",
|
|
112350
|
+
"no",
|
|
112351
|
+
"not",
|
|
112352
|
+
"of",
|
|
112353
|
+
"on",
|
|
112354
|
+
"or",
|
|
112355
|
+
"our",
|
|
112356
|
+
"she",
|
|
112357
|
+
"so",
|
|
112358
|
+
"that",
|
|
112359
|
+
"the",
|
|
112360
|
+
"their",
|
|
112361
|
+
"them",
|
|
112362
|
+
"then",
|
|
112363
|
+
"there",
|
|
112364
|
+
"they",
|
|
112365
|
+
"this",
|
|
112366
|
+
"to",
|
|
112367
|
+
"was",
|
|
112368
|
+
"we",
|
|
112369
|
+
"were",
|
|
112370
|
+
"what",
|
|
112371
|
+
"when",
|
|
112372
|
+
"where",
|
|
112373
|
+
"which",
|
|
112374
|
+
"who",
|
|
112375
|
+
"why",
|
|
112376
|
+
"will",
|
|
112377
|
+
"with",
|
|
112378
|
+
"you",
|
|
112379
|
+
"your"
|
|
112380
|
+
]);
|
|
112381
|
+
var SCORE_FLOOR_RATIO = 0.25;
|
|
112382
|
+
function processTerm(term) {
|
|
112383
|
+
const normalized = term.toLowerCase();
|
|
112384
|
+
if (normalized.length < MIN_TERM_CHARS)
|
|
112385
|
+
return null;
|
|
112386
|
+
return STOPWORDS.has(normalized) ? null : normalized;
|
|
112387
|
+
}
|
|
112388
|
+
var MINISEARCH_OPTIONS = {
|
|
112389
|
+
idField: "id",
|
|
112390
|
+
fields: SEARCH_FIELDS,
|
|
112391
|
+
storeFields: STORE_FIELDS,
|
|
112392
|
+
processTerm,
|
|
112393
|
+
searchOptions: {
|
|
112394
|
+
boost: { title: 2, preview: 1.2, text: 1 },
|
|
112395
|
+
prefix: (term) => term.length >= PREFIX_MIN_TERM_CHARS
|
|
112396
|
+
}
|
|
112397
|
+
};
|
|
112158
112398
|
function createMiniSearch() {
|
|
112159
|
-
return new MiniSearch(
|
|
112160
|
-
idField: "id",
|
|
112161
|
-
fields: SEARCH_FIELDS,
|
|
112162
|
-
storeFields: STORE_FIELDS,
|
|
112163
|
-
searchOptions: {
|
|
112164
|
-
boost: { title: 2, preview: 1.2, text: 1 },
|
|
112165
|
-
prefix: true
|
|
112166
|
-
}
|
|
112167
|
-
});
|
|
112399
|
+
return new MiniSearch(MINISEARCH_OPTIONS);
|
|
112168
112400
|
}
|
|
112169
112401
|
function toHit(result) {
|
|
112170
112402
|
return {
|
|
@@ -112192,24 +112424,18 @@ var MiniSearchIndex = class _MiniSearchIndex {
|
|
|
112192
112424
|
return index;
|
|
112193
112425
|
}
|
|
112194
112426
|
static load(serialized) {
|
|
112195
|
-
return new _MiniSearchIndex(MiniSearch.loadJSON(serialized,
|
|
112196
|
-
idField: "id",
|
|
112197
|
-
fields: SEARCH_FIELDS,
|
|
112198
|
-
storeFields: STORE_FIELDS,
|
|
112199
|
-
searchOptions: {
|
|
112200
|
-
boost: { title: 2, preview: 1.2, text: 1 },
|
|
112201
|
-
prefix: true
|
|
112202
|
-
}
|
|
112203
|
-
}));
|
|
112427
|
+
return new _MiniSearchIndex(MiniSearch.loadJSON(serialized, MINISEARCH_OPTIONS));
|
|
112204
112428
|
}
|
|
112205
112429
|
add(documents) {
|
|
112206
112430
|
this.index.addAll(documents);
|
|
112207
112431
|
}
|
|
112208
112432
|
search({ query, scopes, limit = 20 }) {
|
|
112209
112433
|
const allowedScopes = scopes ? new Set(scopes) : null;
|
|
112210
|
-
|
|
112434
|
+
const results = this.index.search(query, {
|
|
112211
112435
|
filter: allowedScopes ? (result) => allowedScopes.has(String(result.scope)) : void 0
|
|
112212
|
-
})
|
|
112436
|
+
});
|
|
112437
|
+
const scoreFloor = (results[0]?.score ?? 0) * SCORE_FLOOR_RATIO;
|
|
112438
|
+
return results.filter((result) => result.score >= scoreFloor).slice(0, limit).map(toHit);
|
|
112213
112439
|
}
|
|
112214
112440
|
serialize() {
|
|
112215
112441
|
return JSON.stringify(this.index);
|
|
@@ -112324,7 +112550,7 @@ var rawScopeFileInputSchema = {
|
|
|
112324
112550
|
var STRUCTURED_CONTENT_TEXT_LIMIT_BYTES = 64 * 1024;
|
|
112325
112551
|
var resultTextEncoder = new TextEncoder();
|
|
112326
112552
|
function textResult(value, isError = false) {
|
|
112327
|
-
const text = typeof value === "string" ? value : JSON.stringify(value
|
|
112553
|
+
const text = typeof value === "string" ? value : JSON.stringify(value);
|
|
112328
112554
|
const textBytes = resultTextEncoder.encode(text).byteLength;
|
|
112329
112555
|
const structuredContent = !isError && textBytes <= STRUCTURED_CONTENT_TEXT_LIMIT_BYTES && typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
112330
112556
|
return {
|
|
@@ -112363,6 +112589,25 @@ function uniqueSources(connection) {
|
|
|
112363
112589
|
}
|
|
112364
112590
|
return Array.from(set2).sort();
|
|
112365
112591
|
}
|
|
112592
|
+
function normalizeBlockIdsInput(value) {
|
|
112593
|
+
if (!Array.isArray(value))
|
|
112594
|
+
return [];
|
|
112595
|
+
const blockIds = [];
|
|
112596
|
+
const seen = /* @__PURE__ */ new Set();
|
|
112597
|
+
for (const raw of value) {
|
|
112598
|
+
if (typeof raw !== "string")
|
|
112599
|
+
continue;
|
|
112600
|
+
const blockId = raw.trim();
|
|
112601
|
+
if (!blockId || blockId.length > BLOCK_ID_MAX_CHARS || seen.has(blockId)) {
|
|
112602
|
+
continue;
|
|
112603
|
+
}
|
|
112604
|
+
seen.add(blockId);
|
|
112605
|
+
blockIds.push(blockId);
|
|
112606
|
+
if (blockIds.length >= MAX_SELECTED_BLOCK_IDS)
|
|
112607
|
+
break;
|
|
112608
|
+
}
|
|
112609
|
+
return blockIds;
|
|
112610
|
+
}
|
|
112366
112611
|
function normalizeScopeListInput(value) {
|
|
112367
112612
|
if (!Array.isArray(value))
|
|
112368
112613
|
return [];
|
|
@@ -112380,28 +112625,33 @@ function normalizeScopeListInput(value) {
|
|
|
112380
112625
|
}
|
|
112381
112626
|
return scopes;
|
|
112382
112627
|
}
|
|
112628
|
+
var MAX_MCP_TOOL_TIMEOUT_MS = 9e4;
|
|
112383
112629
|
var DEFAULT_SEARCH_LIMIT = 5;
|
|
112384
112630
|
var MAX_SEARCH_LIMIT = 50;
|
|
112385
112631
|
var MAX_SEARCH_SCOPES = 200;
|
|
112386
112632
|
var DEFAULT_SEARCH_MAX_SCOPES = MAX_SEARCH_SCOPES;
|
|
112387
112633
|
var DEFAULT_SEARCH_TIMEOUT_MS = 3e4;
|
|
112388
|
-
var MAX_SEARCH_TIMEOUT_MS =
|
|
112634
|
+
var MAX_SEARCH_TIMEOUT_MS = MAX_MCP_TOOL_TIMEOUT_MS;
|
|
112389
112635
|
var DEFAULT_SEARCH_DISCOVERY_TIMEOUT_MS = 2e3;
|
|
112390
|
-
var MAX_SEARCH_TOTAL_TIMEOUT_MS =
|
|
112636
|
+
var MAX_SEARCH_TOTAL_TIMEOUT_MS = MAX_MCP_TOOL_TIMEOUT_MS;
|
|
112391
112637
|
var DEFAULT_READ_SCOPE_MAX_BYTES = 64 * 1024;
|
|
112392
112638
|
var MAX_READ_SCOPE_MAX_BYTES = 5 * 1024 * 1024;
|
|
112393
112639
|
var DEFAULT_READ_SCOPE_TIMEOUT_MS = 6e4;
|
|
112394
|
-
var MAX_READ_SCOPE_TIMEOUT_MS =
|
|
112640
|
+
var MAX_READ_SCOPE_TIMEOUT_MS = MAX_MCP_TOOL_TIMEOUT_MS;
|
|
112395
112641
|
var DEFAULT_READ_FILE_TIMEOUT_MS = 6e4;
|
|
112396
|
-
var MAX_READ_FILE_TIMEOUT_MS =
|
|
112642
|
+
var MAX_READ_FILE_TIMEOUT_MS = MAX_MCP_TOOL_TIMEOUT_MS;
|
|
112397
112643
|
var DEFAULT_READ_FILE_MAX_BYTES = 10 * 1024 * 1024;
|
|
112398
112644
|
var MAX_READ_FILE_MAX_BYTES = 25 * 1024 * 1024;
|
|
112399
112645
|
var DEFAULT_SEARCH_MAX_BYTES = 64 * 1024;
|
|
112400
112646
|
var MAX_SEARCH_MAX_BYTES = 1024 * 1024;
|
|
112401
112647
|
var DEFAULT_SCOPE_METADATA_TIMEOUT_MS = 2e3;
|
|
112402
|
-
var
|
|
112648
|
+
var DEFAULT_LIST_BLOCKS_LIMIT = 100;
|
|
112649
|
+
var MAX_LIST_BLOCKS_LIMIT = 500;
|
|
112650
|
+
var LIST_BLOCKS_TIMEOUT_MS = 15e3;
|
|
112651
|
+
var SEARCH_MAX_PAGES_PER_SCOPE = 256;
|
|
112403
112652
|
var SEARCH_QUERY_MAX_CHARS = 256;
|
|
112404
112653
|
var SEARCH_SCOPE_MAX_CHARS = 128;
|
|
112654
|
+
var BLOCK_ID_MAX_CHARS = 128;
|
|
112405
112655
|
var SEARCH_REQUESTED_SCOPES_LIMIT = MAX_SEARCH_SCOPES * 2;
|
|
112406
112656
|
var SEARCH_SKIPPED_SCOPES_LIMIT = 50;
|
|
112407
112657
|
var SEARCH_PREVIEW_CHARS = 600;
|
|
@@ -112775,10 +113025,11 @@ var requestScopeAccess = {
|
|
|
112775
113025
|
var readScope = {
|
|
112776
113026
|
name: "read_scope",
|
|
112777
113027
|
title: "Read scope",
|
|
112778
|
-
description: "Read approved scope blocks.
|
|
113028
|
+
description: "Read approved scope blocks. Pass blockIds to fetch exact blocks; otherwise page with nextCursor.",
|
|
112779
113029
|
inputSchema: {
|
|
112780
113030
|
scope: external_exports.string().min(1).describe("Exact scope id."),
|
|
112781
113031
|
cursor: external_exports.string().min(1).optional(),
|
|
113032
|
+
blockIds: external_exports.array(external_exports.string().min(1).max(BLOCK_ID_MAX_CHARS)).min(1).max(MAX_SELECTED_BLOCK_IDS).optional().describe("Block ids from a search hit's blockRef or list_scope_blocks. Ignores cursor; maxBytes still applies."),
|
|
112782
113033
|
maxBytes: external_exports.number().int().min(1).max(MAX_READ_SCOPE_MAX_BYTES).optional(),
|
|
112783
113034
|
timeoutMs: external_exports.number().int().min(1e3).max(MAX_READ_SCOPE_TIMEOUT_MS).optional()
|
|
112784
113035
|
},
|
|
@@ -112796,6 +113047,7 @@ var readScope = {
|
|
|
112796
113047
|
}, true);
|
|
112797
113048
|
}
|
|
112798
113049
|
const cursor = typeof args.cursor === "string" ? args.cursor : void 0;
|
|
113050
|
+
const blockIds = normalizeBlockIdsInput(args.blockIds);
|
|
112799
113051
|
const maxBytes = typeof args.maxBytes === "number" ? clampInteger(args.maxBytes, DEFAULT_READ_SCOPE_MAX_BYTES, 1, MAX_READ_SCOPE_MAX_BYTES) : DEFAULT_READ_SCOPE_MAX_BYTES;
|
|
112800
113052
|
const timeoutMs = clampInteger(args.timeoutMs, DEFAULT_READ_SCOPE_TIMEOUT_MS, 1e3, MAX_READ_SCOPE_TIMEOUT_MS);
|
|
112801
113053
|
let guidance;
|
|
@@ -112821,7 +113073,8 @@ var readScope = {
|
|
|
112821
113073
|
scope,
|
|
112822
113074
|
grantId: grant.grantId,
|
|
112823
113075
|
cursor,
|
|
112824
|
-
maxBytes
|
|
113076
|
+
maxBytes,
|
|
113077
|
+
...blockIds.length > 0 ? { blockIds } : {}
|
|
112825
113078
|
}), timeoutMs, `read blocks for ${scope}`);
|
|
112826
113079
|
const nextCursor = result.nextCursor ?? null;
|
|
112827
113080
|
return textResult({
|
|
@@ -112839,7 +113092,8 @@ var readScope = {
|
|
|
112839
113092
|
hasMore: Boolean(result.nextCursor),
|
|
112840
113093
|
maxBytes,
|
|
112841
113094
|
timeoutMs,
|
|
112842
|
-
returnedBlocks: result.blocks.length
|
|
113095
|
+
returnedBlocks: result.blocks.length,
|
|
113096
|
+
...blockIds.length > 0 ? { requestedBlockIds: blockIds } : {}
|
|
112843
113097
|
}
|
|
112844
113098
|
});
|
|
112845
113099
|
} catch (err2) {
|
|
@@ -112867,6 +113121,92 @@ var readScope = {
|
|
|
112867
113121
|
}
|
|
112868
113122
|
}
|
|
112869
113123
|
};
|
|
113124
|
+
var listScopeBlocks = {
|
|
113125
|
+
name: "list_scope_blocks",
|
|
113126
|
+
title: "List scope blocks",
|
|
113127
|
+
description: "Scope table of contents: block ids, paths, sizes. Feed ids to read_scope blockIds.",
|
|
113128
|
+
inputSchema: {
|
|
113129
|
+
scope: external_exports.string().min(1).describe("Exact scope id."),
|
|
113130
|
+
offset: external_exports.number().int().min(0).optional(),
|
|
113131
|
+
limit: external_exports.number().int().min(1).max(MAX_LIST_BLOCKS_LIMIT).optional()
|
|
113132
|
+
},
|
|
113133
|
+
async handler(args, { connection, readClient }) {
|
|
113134
|
+
const scope = typeof args.scope === "string" ? args.scope : null;
|
|
113135
|
+
if (!scope) {
|
|
113136
|
+
return textResult({ error: "scope is required and must be a string" }, true);
|
|
113137
|
+
}
|
|
113138
|
+
const grant = resolveGrantForScope(connection, scope);
|
|
113139
|
+
if (!grant) {
|
|
113140
|
+
return textResult({
|
|
113141
|
+
error: "scope_not_granted",
|
|
113142
|
+
message: `Scope '${scope}' is not covered by any grant on this MCP connection.`,
|
|
113143
|
+
grantedScopes: uniqueScopes(connection)
|
|
113144
|
+
}, true);
|
|
113145
|
+
}
|
|
113146
|
+
if (typeof readClient.readBlockManifest !== "function") {
|
|
113147
|
+
return textResult({
|
|
113148
|
+
scope,
|
|
113149
|
+
blocks: [],
|
|
113150
|
+
manifestAvailable: false,
|
|
113151
|
+
reason: "this server build does not expose block manifests",
|
|
113152
|
+
nextStep: "Use read_scope with nextCursor, or search_personal_context."
|
|
113153
|
+
});
|
|
113154
|
+
}
|
|
113155
|
+
const offset = clampInteger(args.offset, 0, 0, Number.MAX_SAFE_INTEGER);
|
|
113156
|
+
const limit = clampInteger(args.limit, DEFAULT_LIST_BLOCKS_LIMIT, 1, MAX_LIST_BLOCKS_LIMIT);
|
|
113157
|
+
try {
|
|
113158
|
+
const manifest = await withTimeout(readClient.readBlockManifest({ scope, grantId: grant.grantId }), LIST_BLOCKS_TIMEOUT_MS, `read block manifest for ${scope}`);
|
|
113159
|
+
if (!manifest) {
|
|
113160
|
+
return textResult({
|
|
113161
|
+
scope,
|
|
113162
|
+
grantId: grant.grantId,
|
|
113163
|
+
blocks: [],
|
|
113164
|
+
manifestAvailable: false,
|
|
113165
|
+
reason: "no block manifest for this scope yet; it may still be indexing",
|
|
113166
|
+
nextStep: "Use read_scope with nextCursor, or search_personal_context."
|
|
113167
|
+
});
|
|
113168
|
+
}
|
|
113169
|
+
const page = manifest.blocks.slice(offset, offset + limit);
|
|
113170
|
+
const nextOffset = offset + page.length;
|
|
113171
|
+
return textResult({
|
|
113172
|
+
scope,
|
|
113173
|
+
grantId: grant.grantId,
|
|
113174
|
+
collectedAt: manifest.collectedAt,
|
|
113175
|
+
contentKind: manifest.contentKind,
|
|
113176
|
+
manifestAvailable: true,
|
|
113177
|
+
totalBlocks: manifest.blocks.length,
|
|
113178
|
+
blocks: page.map((block) => ({
|
|
113179
|
+
id: block.id,
|
|
113180
|
+
path: block.path,
|
|
113181
|
+
sizeBytes: block.sizeBytes,
|
|
113182
|
+
...block.itemCount === void 0 ? {} : { itemCount: block.itemCount }
|
|
113183
|
+
})),
|
|
113184
|
+
warnings: manifest.warnings,
|
|
113185
|
+
page: {
|
|
113186
|
+
offset,
|
|
113187
|
+
limit,
|
|
113188
|
+
returnedBlocks: page.length,
|
|
113189
|
+
...nextOffset < manifest.blocks.length ? { nextOffset } : {}
|
|
113190
|
+
}
|
|
113191
|
+
});
|
|
113192
|
+
} catch (err2) {
|
|
113193
|
+
if (err2 instanceof OperationTimeoutError) {
|
|
113194
|
+
return textResult({
|
|
113195
|
+
error: "scope_blocks_timeout",
|
|
113196
|
+
message: err2.message,
|
|
113197
|
+
timeoutMs: err2.timeoutMs
|
|
113198
|
+
}, true);
|
|
113199
|
+
}
|
|
113200
|
+
if (err2 instanceof McpDataReadError) {
|
|
113201
|
+
return textResult({ error: "data_read_failed", status: err2.status, body: err2.body }, true);
|
|
113202
|
+
}
|
|
113203
|
+
return textResult({
|
|
113204
|
+
error: "tool_handler_error",
|
|
113205
|
+
message: err2 instanceof Error ? err2.message : String(err2)
|
|
113206
|
+
}, true);
|
|
113207
|
+
}
|
|
113208
|
+
}
|
|
113209
|
+
};
|
|
112870
113210
|
function encodeSearchCursor(payload) {
|
|
112871
113211
|
const json2 = JSON.stringify(payload);
|
|
112872
113212
|
const bytes2 = new TextEncoder().encode(json2);
|
|
@@ -113011,7 +113351,6 @@ var searchPersonalContext = {
|
|
|
113011
113351
|
}
|
|
113012
113352
|
let cursor = scopeIndex === startScopeIndex ? initialBlockCursor : void 0;
|
|
113013
113353
|
let pageCount = 0;
|
|
113014
|
-
let scopeHasMatch = false;
|
|
113015
113354
|
let scopeTruncated = false;
|
|
113016
113355
|
let scopeSearched = false;
|
|
113017
113356
|
try {
|
|
@@ -113041,9 +113380,13 @@ var searchPersonalContext = {
|
|
|
113041
113380
|
}), perScopeTimeoutMs, `read blocks for ${scope}`);
|
|
113042
113381
|
const pageText = blockPageSearchText(result.blocks);
|
|
113043
113382
|
const { documents, textById } = blockPageSearchDocuments(scope, result.blocks);
|
|
113044
|
-
const pageHits = documents.length > 0 ? MiniSearchIndex.build(documents).search({
|
|
113045
|
-
|
|
113046
|
-
|
|
113383
|
+
const pageHits = documents.length > 0 ? MiniSearchIndex.build(documents).search({
|
|
113384
|
+
query,
|
|
113385
|
+
limit: limit - matches.length
|
|
113386
|
+
}) : [];
|
|
113387
|
+
for (const pageHit of pageHits) {
|
|
113388
|
+
if (matches.length >= limit)
|
|
113389
|
+
break;
|
|
113047
113390
|
const hitText = textById.get(pageHit.id) ?? pageText;
|
|
113048
113391
|
matches.push({
|
|
113049
113392
|
scope,
|
|
@@ -113051,9 +113394,13 @@ var searchPersonalContext = {
|
|
|
113051
113394
|
collectedAt: result.collectedAt,
|
|
113052
113395
|
preview: previewMatch(hitText, miniSearchMatchIndex(hitText, pageHit.terms)),
|
|
113053
113396
|
searchedChars: pageText.length,
|
|
113054
|
-
truncated: Boolean(result.nextCursor)
|
|
113397
|
+
truncated: Boolean(result.nextCursor),
|
|
113398
|
+
// The id of the block that matched, so the caller can fetch it
|
|
113399
|
+
// with read_scope({ blockIds }) instead of walking cursors.
|
|
113400
|
+
...pageHit.blockRef ? { blockRef: pageHit.blockRef } : {},
|
|
113401
|
+
score: pageHit.score,
|
|
113402
|
+
terms: pageHit.terms
|
|
113055
113403
|
});
|
|
113056
|
-
scopeHasMatch = true;
|
|
113057
113404
|
}
|
|
113058
113405
|
if (result.nextCursor) {
|
|
113059
113406
|
cursor = result.nextCursor;
|
|
@@ -113082,7 +113429,7 @@ var searchPersonalContext = {
|
|
|
113082
113429
|
}
|
|
113083
113430
|
if (matches.length >= limit) {
|
|
113084
113431
|
const nextScopeIndex = scopeIndex + 1;
|
|
113085
|
-
if (nextScopeIndex < resolved.scopes.length) {
|
|
113432
|
+
if (!nextSearchCursor && nextScopeIndex < resolved.scopes.length) {
|
|
113086
113433
|
nextSearchCursor = encodeSearchCursor({
|
|
113087
113434
|
scopeIndex: nextScopeIndex
|
|
113088
113435
|
});
|
|
@@ -113091,6 +113438,7 @@ var searchPersonalContext = {
|
|
|
113091
113438
|
}
|
|
113092
113439
|
}
|
|
113093
113440
|
const elapsedMs = Date.now() - startedAt;
|
|
113441
|
+
matches.sort((a10, b10) => (b10.score ?? -1) - (a10.score ?? -1));
|
|
113094
113442
|
return textResult({
|
|
113095
113443
|
query,
|
|
113096
113444
|
results: matches,
|
|
@@ -113175,7 +113523,7 @@ var getScopeFile = {
|
|
|
113175
113523
|
contentIncluded: false,
|
|
113176
113524
|
reason: !includeContent ? "includeContent=false" : "file exceeds maxBytes for inline MCP tool response",
|
|
113177
113525
|
nextStep: "Use resources/read with resourceUri if your MCP client supports resources, or retry with a higher maxBytes if appropriate."
|
|
113178
|
-
}
|
|
113526
|
+
})
|
|
113179
113527
|
},
|
|
113180
113528
|
{
|
|
113181
113529
|
type: "resource_link",
|
|
@@ -113201,7 +113549,7 @@ var getScopeFile = {
|
|
|
113201
113549
|
...base,
|
|
113202
113550
|
contentIncluded: true,
|
|
113203
113551
|
resourceType: "blob"
|
|
113204
|
-
}
|
|
113552
|
+
})
|
|
113205
113553
|
},
|
|
113206
113554
|
{
|
|
113207
113555
|
type: "resource",
|
|
@@ -113246,6 +113594,7 @@ var MCP_TOOLS = [
|
|
|
113246
113594
|
listGrantedScopes,
|
|
113247
113595
|
requestScopeAccess,
|
|
113248
113596
|
readScope,
|
|
113597
|
+
listScopeBlocks,
|
|
113249
113598
|
getScopeFile,
|
|
113250
113599
|
searchPersonalContext
|
|
113251
113600
|
];
|
|
@@ -123561,10 +123910,9 @@ data:
|
|
|
123561
123910
|
var DEFAULT_SERVER_NAME = "vana-personal-server-mcp";
|
|
123562
123911
|
var DEFAULT_SERVER_VERSION = "0.0.1";
|
|
123563
123912
|
var DEFAULT_MCP_TOOL_TIMEOUT_MS = 3e4;
|
|
123564
|
-
var MAX_MCP_TOOL_TIMEOUT_MS = 9e4;
|
|
123565
123913
|
var MCP_TOOL_TIMEOUT_GRACE_MS = 1e3;
|
|
123566
123914
|
var QUERY_PREVIEW_CHARS = 120;
|
|
123567
|
-
var
|
|
123915
|
+
var textEncoder5 = new TextEncoder();
|
|
123568
123916
|
var McpToolTimeoutError = class extends Error {
|
|
123569
123917
|
tool;
|
|
123570
123918
|
timeoutMs;
|
|
@@ -123657,7 +124005,7 @@ function extractActivityFinishParams(tool, result) {
|
|
|
123657
124005
|
return {};
|
|
123658
124006
|
}
|
|
123659
124007
|
function bytes(value) {
|
|
123660
|
-
return
|
|
124008
|
+
return textEncoder5.encode(value).byteLength;
|
|
123661
124009
|
}
|
|
123662
124010
|
function estimatePayloadMetrics(result) {
|
|
123663
124011
|
const textBytes = result.content?.reduce((total, item) => {
|
|
@@ -124693,7 +125041,10 @@ function createWeb3SignedPsLiteAuth(options) {
|
|
|
124693
125041
|
signer: auth.auth.signer,
|
|
124694
125042
|
grantId: auth.auth.payload.grantId ?? input.grantId,
|
|
124695
125043
|
requestedScope: input.scope,
|
|
124696
|
-
fileId: input.fileId
|
|
125044
|
+
fileId: input.fileId,
|
|
125045
|
+
// Bind the read to this PS's owner — the grant must have been issued
|
|
125046
|
+
// by us. Required now that the policy fails closed on a missing owner.
|
|
125047
|
+
serverOwner: options.ownerAddress
|
|
124697
125048
|
}, options.dataReadPolicyPorts);
|
|
124698
125049
|
return { builder: auth.auth.signer, grantId: grant.id };
|
|
124699
125050
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendatalabs/personal-server-ts-server",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.4",
|
|
4
4
|
"description": "Hono HTTP server for the Vana Personal Server — routes, middleware, composition root",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@hono/node-server": "^1.19.13",
|
|
47
|
-
"@opendatalabs/personal-server-ts-core": "1.3.
|
|
48
|
-
"@opendatalabs/personal-server-ts-lite": "1.3.
|
|
47
|
+
"@opendatalabs/personal-server-ts-core": "1.3.4",
|
|
48
|
+
"@opendatalabs/personal-server-ts-lite": "1.3.4",
|
|
49
49
|
"@opendatalabs/vana-sdk": "3.13.0",
|
|
50
50
|
"better-sqlite3": "^12.11.1",
|
|
51
51
|
"hono": "^4.12.27",
|