@telepath-computer/autofile 0.3.0 → 0.5.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/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- /** Mounts Autofile's transport-independent MCP server on Node's HTTP server. */
1
+ /** Serves MCP requests and streamed blob downloads through the same HTTP checks. */
2
2
  import { type HttpSettings } from "./config.js";
3
- import type { Store } from "./store.js";
3
+ import type { Autofile } from "./index.js";
4
4
  export interface RunningHttpServer {
5
5
  endpoint: URL;
6
6
  closed: Promise<void>;
7
7
  close(): Promise<void>;
8
8
  }
9
9
  /** Starts one modern-only Streamable HTTP endpoint around a process-shared store. */
10
- export declare function startHttpServer(store: Store, dataFolder: string, settings: HttpSettings, onError: (error: Error) => void): Promise<RunningHttpServer>;
10
+ export declare function startHttpServer(store: Autofile, settings: HttpSettings, onError: (error: Error) => void): Promise<RunningHttpServer>;
package/dist/http.js CHANGED
@@ -1,27 +1,35 @@
1
- /** Mounts Autofile's transport-independent MCP server on Node's HTTP server. */
1
+ /** Serves MCP requests and streamed blob downloads through the same HTTP checks. */
2
2
  import { createServer } from "node:http";
3
+ import { Readable } from "node:stream";
4
+ import { pipeline } from "node:stream/promises";
3
5
  import { toNodeHandler } from "@modelcontextprotocol/node";
4
6
  import { createMcpHandler } from "@modelcontextprotocol/server";
5
7
  import { normalizeHttpOrigin } from "./config.js";
6
8
  import { buildServer } from "./server.js";
7
- import { resourceNotificationUris, watchStore } from "./watch.js";
9
+ import { watchResources } from "./mcp-watch.js";
8
10
  const MAX_REQUEST_BODY_BYTES = 64 * 1024 * 1024;
9
11
  const CORS_ALLOW_HEADERS = "Content-Type, MCP-Protocol-Version, Mcp-Method, Mcp-Name";
12
+ const BLOB_METHODS = "GET, HEAD, OPTIONS";
13
+ const BLOB_EXPOSE_HEADERS = "Content-Length, Content-Range, Accept-Ranges, ETag";
14
+ const blobPathPattern = /^\/blobs\/([a-f0-9]{64})(?:\.[a-z0-9_-]+)?$/u;
10
15
  /** Starts one modern-only Streamable HTTP endpoint around a process-shared store. */
11
- export async function startHttpServer(store, dataFolder, settings, onError) {
12
- const handler = createMcpHandler(() => buildServer(store), {
16
+ export async function startHttpServer(store, settings, onError) {
17
+ const handler = createMcpHandler(() => buildServer(store, { blobLocation: "http" }), {
13
18
  legacy: "reject",
14
19
  maxRequestBodySize: MAX_REQUEST_BODY_BYTES,
15
20
  onerror: onError,
16
21
  });
17
- const watcher = await watchStore(dataFolder, store, (batch) => {
18
- const uris = new Set(batch.changes.flatMap(({ uri }) => resourceNotificationUris(uri)));
22
+ const watcher = await watchResources(store, (batch) => {
23
+ const uris = new Set(batch.changes.map(({ uri }) => uri));
19
24
  for (const uri of uris) {
20
25
  handler.notify.resourceUpdated(uri);
21
26
  }
22
27
  if (batch.listChanged)
23
28
  handler.notify.resourcesChanged();
24
- }, onError);
29
+ }, onError).catch(async (error) => {
30
+ await Promise.all([store.close(), handler.close()]);
31
+ throw error;
32
+ });
25
33
  const serveMcp = toNodeHandler(handler, { maxRequestBodySize: MAX_REQUEST_BODY_BYTES });
26
34
  const allowedOrigins = new Set(settings.origins);
27
35
  const allowedHosts = new Set([
@@ -31,7 +39,23 @@ export async function startHttpServer(store, dataFolder, settings, onError) {
31
39
  ...settings.origins.map((origin) => new URL(origin).hostname.toLowerCase()),
32
40
  ]);
33
41
  const httpServer = createServer((request, response) => {
34
- void routeRequest(request, response, allowedOrigins, allowedHosts, serveMcp);
42
+ void routeRequest(request, response, allowedOrigins, allowedHosts, serveMcp, store).catch((error) => {
43
+ // Cancelling a download closes its pipeline. This is a normal client action,
44
+ // whereas storage and handler failures are reported without physical paths.
45
+ if (error instanceof Error && "code" in error
46
+ && (error.code === "ERR_STREAM_PREMATURE_CLOSE" || error.code === "ECONNRESET"))
47
+ return;
48
+ onError(new Error("Could not serve HTTP request"));
49
+ if (response.headersSent || response.destroyed)
50
+ response.destroy();
51
+ else {
52
+ response.removeHeader("Content-Length");
53
+ response.removeHeader("Content-Range");
54
+ response.removeHeader("ETag");
55
+ response.removeHeader("Cache-Control");
56
+ refuse(response, 500, "Internal Server Error\n");
57
+ }
58
+ });
35
59
  });
36
60
  const closed = new Promise((resolveClosed) => httpServer.once("close", resolveClosed));
37
61
  try {
@@ -46,6 +70,7 @@ export async function startHttpServer(store, dataFolder, settings, onError) {
46
70
  }
47
71
  catch (error) {
48
72
  await Promise.all([watcher.close(), handler.close()]);
73
+ await store.close();
49
74
  throw error;
50
75
  }
51
76
  const endpoint = new URL(`http://${urlHost(settings.host)}:${settings.port}/mcp`);
@@ -62,9 +87,17 @@ export async function startHttpServer(store, dataFolder, settings, onError) {
62
87
  httpServer.close();
63
88
  httpServer.closeAllConnections();
64
89
  await Promise.all([watcher.close(), handler.close(), closed]);
90
+ await store.close();
65
91
  }
66
92
  }
67
- async function routeRequest(request, response, allowedOrigins, allowedHosts, serveMcp) {
93
+ async function routeRequest(request, response, allowedOrigins, allowedHosts, serveMcp, store) {
94
+ const path = requestPath(request);
95
+ const isBlob = path?.startsWith("/blobs/") === true;
96
+ if (isBlob) {
97
+ response.setHeader("Vary", "Origin");
98
+ response.setHeader("X-Content-Type-Options", "nosniff");
99
+ response.setHeader("Content-Security-Policy", "sandbox");
100
+ }
68
101
  if (!isAllowedHost(request.headers.host, allowedHosts)) {
69
102
  refuse(response, 403, "Forbidden\n");
70
103
  return;
@@ -74,12 +107,18 @@ async function routeRequest(request, response, allowedOrigins, allowedHosts, ser
74
107
  refuse(response, 403, "Forbidden\n");
75
108
  return;
76
109
  }
77
- if (requestPath(request) !== "/mcp") {
110
+ if (path !== "/mcp" && !isBlob) {
78
111
  refuse(response, 404, "Not Found\n");
79
112
  return;
80
113
  }
81
114
  if (origin !== undefined)
82
115
  setCorsHeaders(response, origin);
116
+ if (isBlob && path !== undefined) {
117
+ if (origin !== undefined)
118
+ response.setHeader("Access-Control-Expose-Headers", BLOB_EXPOSE_HEADERS);
119
+ await serveBlob(request, response, path, store);
120
+ return;
121
+ }
83
122
  if (request.method === "OPTIONS") {
84
123
  response.setHeader("Connection", "close");
85
124
  response.writeHead(204, {
@@ -90,6 +129,97 @@ async function routeRequest(request, response, allowedOrigins, allowedHosts, ser
90
129
  }
91
130
  await serveMcp(request, response);
92
131
  }
132
+ async function serveBlob(request, response, path, store) {
133
+ if (request.method === "OPTIONS") {
134
+ response.writeHead(204, {
135
+ "Connection": "close",
136
+ "Access-Control-Allow-Methods": BLOB_METHODS,
137
+ "Access-Control-Allow-Headers": "Range, If-None-Match",
138
+ }).end();
139
+ return;
140
+ }
141
+ if (request.method !== "GET" && request.method !== "HEAD") {
142
+ response.setHeader("Allow", BLOB_METHODS);
143
+ refuse(response, 405, "Method Not Allowed\n");
144
+ return;
145
+ }
146
+ const hash = blobPathPattern.exec(path)?.[1];
147
+ const uri = `autofile://${path}`;
148
+ const details = hash === undefined ? undefined : await store.blobs.stat(uri);
149
+ if (details === undefined) {
150
+ refuse(response, 404, "Not Found\n");
151
+ return;
152
+ }
153
+ const etag = `"${hash}"`;
154
+ response.setHeader("Content-Type", details.mimeType);
155
+ response.setHeader("Accept-Ranges", "bytes");
156
+ response.setHeader("ETag", etag);
157
+ response.setHeader("Cache-Control", "private, max-age=31536000, immutable");
158
+ if (matchesEtag(request.headers["if-none-match"], etag)) {
159
+ response.writeHead(304).end();
160
+ return;
161
+ }
162
+ if (request.method === "HEAD") {
163
+ response.setHeader("Content-Length", details.size);
164
+ response.writeHead(200).end();
165
+ return;
166
+ }
167
+ const ifRange = request.headers["if-range"];
168
+ const range = ifRange === undefined || ifRange === etag
169
+ ? parseByteRange(request.headers.range, details.size)
170
+ : undefined;
171
+ if (range === "unsatisfiable") {
172
+ response.setHeader("Content-Range", `bytes */${details.size}`);
173
+ refuse(response, 416, "Range Not Satisfiable\n");
174
+ return;
175
+ }
176
+ const body = await store.blobs.stream(uri, range);
177
+ if (body === undefined) {
178
+ response.removeHeader("ETag");
179
+ response.removeHeader("Cache-Control");
180
+ refuse(response, 404, "Not Found\n");
181
+ return;
182
+ }
183
+ response.setHeader("Content-Length", range === undefined ? details.size : range.end - range.start);
184
+ if (range !== undefined) {
185
+ response.setHeader("Content-Range", `bytes ${range.start}-${range.end - 1}/${details.size}`);
186
+ }
187
+ response.writeHead(range === undefined ? 200 : 206);
188
+ // The pipeline propagates backpressure and cancels the store stream when the
189
+ // connection closes, keeping memory and file descriptors bounded.
190
+ // Node and DOM declarations describe the same Web stream with different
191
+ // iterator helpers. Only the Node adapter needs the richer Node declaration.
192
+ await pipeline(Readable.fromWeb(body), response);
193
+ }
194
+ function matchesEtag(header, etag) {
195
+ if (header === undefined)
196
+ return false;
197
+ return header.trim() === "*"
198
+ || header.split(",").some((candidate) => candidate.trim().replace(/^W\//u, "") === etag);
199
+ }
200
+ function parseByteRange(header, size) {
201
+ const match = header === undefined ? null : /^bytes=(\d*)-(\d*)$/iu.exec(header);
202
+ const first = match?.[1];
203
+ const last = match?.[2];
204
+ if (first === undefined || last === undefined || (first === "" && last === ""))
205
+ return undefined;
206
+ // Decimal offsets can exceed JavaScript's integer precision. Compare before
207
+ // converting so even very large ranges can be clipped to the actual blob.
208
+ const length = BigInt(size);
209
+ if (first === "") {
210
+ const suffix = BigInt(last);
211
+ if (suffix === 0n || length === 0n)
212
+ return "unsatisfiable";
213
+ return { start: Number(suffix >= length ? 0n : length - suffix), end: size };
214
+ }
215
+ const start = BigInt(first);
216
+ const end = last === "" ? length : BigInt(last) + 1n;
217
+ if (last !== "" && end <= start)
218
+ return undefined;
219
+ if (start >= length)
220
+ return "unsatisfiable";
221
+ return { start: Number(start), end: Number(end > length ? length : end) };
222
+ }
93
223
  function requestPath(request) {
94
224
  try {
95
225
  return new URL(request.url ?? "", "http://autofile.local").pathname;
@@ -140,6 +270,7 @@ function hostHeaderName(host) {
140
270
  }
141
271
  function refuse(response, status, body) {
142
272
  response.setHeader("Connection", "close");
273
+ response.setHeader("Content-Type", "text/plain; charset=utf-8");
143
274
  response.writeHead(status).end(body);
144
275
  }
145
276
  function setCorsHeaders(response, origin) {
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAAE,YAAY,EAA6C,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAqB,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,sBAAsB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAChD,MAAM,kBAAkB,GAAG,0DAA0D,CAAC;AACtF,MAAM,YAAY,GAAG,oBAAoB,CAAC;AAC1C,MAAM,mBAAmB,GAAG,oDAAoD,CAAC;AACjF,MAAM,eAAe,GAAG,8CAA8C,CAAC;AAQvE,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAe,EACf,QAAsB,EACtB,OAA+B;IAE/B,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE;QACnF,MAAM,EAAE,QAAQ;QAChB,kBAAkB,EAAE,sBAAsB;QAC1C,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACpD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,KAAK,CAAC,WAAW;YAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;IAC3D,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;QACzC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACxF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;QAC3B,WAAW;QACX,WAAW;QACX,OAAO;QACP,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC5E,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QACpD,KAAK,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC3G,6EAA6E;YAC7E,4EAA4E;YAC5E,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK;mBACxC,CAAC,KAAK,CAAC,IAAI,KAAK,4BAA4B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;gBAAE,OAAO;YAC1F,OAAO,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;YACnD,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,SAAS;gBAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;iBAC9D,CAAC;gBACJ,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;gBACxC,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;gBACvC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC9B,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;gBACvC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,aAAa,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAE7F,IAAI,CAAC;QACH,MAAM,IAAI,OAAO,CAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,EAAE;YACnD,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChD,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;gBACnD,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjC,gBAAgB,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtD,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,MAAM,CAAC,CAAC;IAClF,IAAI,OAAkC,CAAC;IACvC,OAAO;QACL,QAAQ;QACR,MAAM;QACN,KAAK;YACH,OAAO,KAAK,eAAe,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;IAEF,KAAK,UAAU,eAAe;QAC5B,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,UAAU,CAAC,mBAAmB,EAAE,CAAC;QACjC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAAwB,EACxB,QAAwB,EACxB,cAAmC,EACnC,YAAiC,EACjC,QAA0C,EAC1C,KAAe;IAEf,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;IACpD,IAAI,MAAM,EAAE,CAAC;QACX,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,QAAQ,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QACxD,QAAQ,CAAC,SAAS,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;IACtC,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IACD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IACD,IAAI,MAAM,KAAK,SAAS;QAAE,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3D,IAAI,MAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,MAAM,KAAK,SAAS;YAAE,QAAQ,CAAC,SAAS,CAAC,+BAA+B,EAAE,mBAAmB,CAAC,CAAC;QACnG,MAAM,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC1C,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE;YACtB,8BAA8B,EAAE,eAAe;YAC/C,8BAA8B,EAAE,kBAAkB;SACnD,CAAC,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,OAAwB,EACxB,QAAwB,EACxB,IAAY,EACZ,KAAe;IAEf,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE;YACtB,YAAY,EAAE,OAAO;YACrB,8BAA8B,EAAE,YAAY;YAC5C,8BAA8B,EAAE,sBAAsB;SACvD,CAAC,CAAC,GAAG,EAAE,CAAC;QACT,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1D,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,cAAc,IAAI,EAAE,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,sCAAsC,CAAC,CAAC;IAC5E,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;QACxD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;QACrD,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;IACd,IAAI,KAAK,KAAK,eAAe,EAAE,CAAC;QAC9B,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9B,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IACD,QAAQ,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACnG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,QAAQ,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,QAAQ,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpD,6EAA6E;IAC7E,kEAAkE;IAClE,wEAAwE;IACxE,6EAA6E;IAC7E,MAAM,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAsC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,WAAW,CAAC,MAA0B,EAAE,IAAY;IAC3D,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG;WACvB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AAC7F,CAAC;AAED,SAAS,cAAc,CACrB,MAA0B,EAC1B,IAAY;IAEZ,MAAM,KAAK,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IACjG,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,EAAE;YAAE,OAAO,eAAe,CAAC;QAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAC/E,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACrD,IAAI,IAAI,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,KAAK,IAAI,MAAM;QAAE,OAAO,eAAe,CAAC;IAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,WAAW,CAAC,OAAwB;IAC3C,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC,QAAQ,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,cAAmC;IAC1E,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC5D,OAAO,QAAQ,KAAK,WAAW;WAC1B,QAAQ,KAAK,WAAW;WACxB,QAAQ,KAAK,OAAO;WACpB,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,aAAa,CAAC,IAAwB,EAAE,YAAiC;IAChF,MAAM,QAAQ,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,QAAQ,KAAK,SAAS,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACvF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,IACE,cAAc,IAAI,CAAC;eAChB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,EAAE;mBACpC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,EACrD,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IACE,UAAU,KAAK,CAAC,CAAC;eACd,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;mBACnC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAChD,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,QAAwB,EAAE,MAAc,EAAE,IAAY;IACpE,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAC;IAChE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,QAAwB,EAAE,MAAc;IAC9D,QAAQ,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAC1D,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** The embedding interface. Importing it starts no server or watcher. */
2
+ export { Autofile, AutofileError } from "./store.js";
3
+ export type { AutofileProblem, AutofileRecord, BlobRange, BlobStat, ChangeEvent, RecordQuery, RecordQueryResult, TypeChanges, TypeDeclaration, TypeDefinition, WatchOptions, } from "./store.js";
4
+ export type { JsonObject, JsonPrimitive, JsonValue } from "./json.js";
5
+ export type { FormatField, PreparedSchema } from "./schema.js";
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ /** The embedding interface. Importing it starts no server or watcher. */
2
+ export { Autofile, AutofileError } from "./store.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
package/dist/json.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- /** Shared compile-time types for the plain JSON crossing store boundaries. */
1
+ /** Shared JSON types and lossless input checks at the store boundary. */
2
2
  /** A scalar JSON value. */
3
3
  export type JsonPrimitive = string | number | boolean | null;
4
4
  /** Any value representable in JSON. */
@@ -7,3 +7,5 @@ export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
7
7
  export interface JsonObject {
8
8
  [key: string]: JsonValue;
9
9
  }
10
+ /** Returns why an input is not a plain JSON object, without calling getters or toJSON. */
11
+ export declare function jsonObjectProblem(value: unknown): string | undefined;
package/dist/json.js CHANGED
@@ -1,3 +1,82 @@
1
- /** Shared compile-time types for the plain JSON crossing store boundaries. */
2
- export {};
1
+ /** Shared JSON types and lossless input checks at the store boundary. */
2
+ import { isProxy } from "node:util/types";
3
+ const isRawJson = JSON.isRawJSON;
4
+ /** Returns why an input is not a plain JSON object, without calling getters or toJSON. */
5
+ export function jsonObjectProblem(value) {
6
+ if (isProxy(value))
7
+ return "JSON proxies are not supported";
8
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
9
+ return "must be a JSON object";
10
+ }
11
+ return jsonValueProblem(value, "", new Set());
12
+ }
13
+ function jsonValueProblem(value, path, ancestors) {
14
+ const location = `JSON value at ${JSON.stringify(path || "/")}`;
15
+ if (isProxy(value))
16
+ return `${location}: proxies are not supported`;
17
+ if (isRawJson?.(value))
18
+ return `${location}: raw JSON fragments are not supported`;
19
+ if (value === null || typeof value === "string" || typeof value === "boolean")
20
+ return undefined;
21
+ if (typeof value === "number") {
22
+ return Number.isFinite(value) && !Object.is(value, -0)
23
+ ? undefined
24
+ : `${location}: must be a finite number other than negative zero`;
25
+ }
26
+ if (typeof value !== "object")
27
+ return `${location}: ${typeof value} is not supported`;
28
+ const isArray = Array.isArray(value);
29
+ const prototype = Object.getPrototypeOf(value);
30
+ if (isArray ? prototype !== Array.prototype : prototype !== Object.prototype && prototype !== null) {
31
+ return `${location}: must be a plain object or ordinary array`;
32
+ }
33
+ // Built-in prototypes can carry serialization hooks too. Check descriptors so
34
+ // the JSON snapshot cannot invoke an inherited getter or rewrite the value.
35
+ if (!Object.hasOwn(value, "toJSON")) {
36
+ for (let parent = prototype; parent !== null; parent = Object.getPrototypeOf(parent)) {
37
+ const descriptor = Object.getOwnPropertyDescriptor(parent, "toJSON");
38
+ if (descriptor === undefined)
39
+ continue;
40
+ if (!("value" in descriptor) || typeof descriptor.value === "function") {
41
+ return `${location}: inherited JSON serialization hooks are not supported`;
42
+ }
43
+ break;
44
+ }
45
+ }
46
+ if (ancestors.has(value))
47
+ return `${location}: circular references are not supported`;
48
+ const keys = Reflect.ownKeys(value);
49
+ // Arrays serialize only their numbered elements. Inspect descriptors rather
50
+ // than reading properties so getters and toJSON can never change the input.
51
+ const length = isArray ? Object.getOwnPropertyDescriptor(value, "length").value : undefined;
52
+ if (length !== undefined && keys.length !== length + 1) {
53
+ return `${location}: arrays must be dense and have no extra properties`;
54
+ }
55
+ ancestors.add(value);
56
+ try {
57
+ for (const key of keys) {
58
+ if (typeof key === "symbol")
59
+ return `${location}: symbol properties are not supported`;
60
+ if (length !== undefined) {
61
+ if (key === "length")
62
+ continue;
63
+ if (!/^(?:0|[1-9]\d*)$/u.test(key) || Number(key) >= length) {
64
+ return `${location}: arrays must have no extra properties`;
65
+ }
66
+ }
67
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
68
+ if (!("value" in descriptor) || !descriptor.enumerable) {
69
+ return `${location}: properties must be enumerable data properties`;
70
+ }
71
+ const childPath = `${path}/${key.replaceAll("~", "~0").replaceAll("/", "~1")}`;
72
+ const problem = jsonValueProblem(descriptor.value, childPath, ancestors);
73
+ if (problem !== undefined)
74
+ return problem;
75
+ }
76
+ return undefined;
77
+ }
78
+ finally {
79
+ ancestors.delete(value);
80
+ }
81
+ }
3
82
  //# sourceMappingURL=json.js.map
package/dist/json.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA,8EAA8E"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /** Derives MCP resources from public Autofile records and type declarations. */
2
+ import { type Autofile } from "./index.js";
3
+ /** Chooses the location offered when a blob exceeds the MCP inline limit. */
4
+ export interface ResourceOptions {
5
+ blobLocation?: "stdio" | "http";
6
+ }
7
+ /** The public information used in an MCP resource listing. */
8
+ export interface StoreResource {
9
+ uri: string;
10
+ name: string;
11
+ mimeType: string;
12
+ title?: string;
13
+ description?: string;
14
+ }
15
+ /** The text or binary contents of one resource. */
16
+ export type StoreResourceContents = {
17
+ uri: string;
18
+ mimeType: string;
19
+ text: string;
20
+ } | {
21
+ uri: string;
22
+ mimeType: string;
23
+ blob: string;
24
+ };
25
+ /** Resource operations shared by the MCP server and its notification adapter. */
26
+ export interface Resources {
27
+ listResources(): Promise<StoreResource[]>;
28
+ getResourceMetadata(uri: string): Promise<StoreResource | undefined>;
29
+ listTypeResources(type: string): Promise<StoreResource[]>;
30
+ readResource(uri: string): Promise<StoreResourceContents | undefined>;
31
+ }
32
+ /** Builds resource operations using only the public library interface. */
33
+ export declare function buildResources(autofile: Autofile, options?: ResourceOptions): Resources;
34
+ /** Checks addresses that can occur in an MCP resource-list cursor. */
35
+ export declare function isResourceUri(uri: string): boolean;
@@ -0,0 +1,127 @@
1
+ /** Derives MCP resources from public Autofile records and type declarations. */
2
+ import { ProtocolError, ProtocolErrorCode } from "@modelcontextprotocol/server";
3
+ import { AutofileError } from "./index.js";
4
+ const typeNamePattern = /^[a-z][a-z0-9-]*$/u;
5
+ const typeUriPattern = /^autofile:\/\/\/types\/([a-z][a-z0-9-]*)$/u;
6
+ const recordUriPattern = /^autofile:\/\/\/records\/[a-z][a-z0-9-]*\/[a-z0-9][a-z0-9-]*$/u;
7
+ const blobUriPattern = /^autofile:\/\/\/blobs\/[^/]+$/u;
8
+ const MAX_INLINE_BLOB_BYTES = 7_340_032;
9
+ /** Builds resource operations using only the public library interface. */
10
+ export function buildResources(autofile, options = {}) {
11
+ async function listResources() {
12
+ const resources = [];
13
+ for (const declaration of await autofile.types.list()) {
14
+ resources.push(...await listTypeResources(declaration.type));
15
+ }
16
+ return resources.sort(compareResources);
17
+ }
18
+ async function getResourceMetadata(uri) {
19
+ const type = typeUriPattern.exec(uri)?.[1];
20
+ if (type !== undefined) {
21
+ const declaration = await readable(() => autofile.types.get(type));
22
+ return declaration === undefined ? undefined : declarationResource(declaration);
23
+ }
24
+ if (!recordUriPattern.test(uri))
25
+ return undefined;
26
+ const record = await readable(() => autofile.records.get(uri));
27
+ return record === undefined ? undefined : recordResource(record);
28
+ }
29
+ async function listTypeResources(type) {
30
+ if (!typeNamePattern.test(type))
31
+ return [];
32
+ const declaration = await readable(() => autofile.types.get(type));
33
+ if (declaration === undefined)
34
+ return [];
35
+ const resources = [declarationResource(declaration)];
36
+ let cursor;
37
+ do {
38
+ const page = await readable(() => autofile.records.find({ type, limit: 200, cursor }));
39
+ if (page === undefined)
40
+ break;
41
+ resources.push(...page.records.map(recordResource));
42
+ // Queries exclude records that fail schema validation. A direct public
43
+ // read can still return them, including the problems needed to repair them.
44
+ for (const { uri } of page.unreadable) {
45
+ const record = await readable(() => autofile.records.get(uri));
46
+ if (record !== undefined)
47
+ resources.push(recordResource(record));
48
+ }
49
+ cursor = page.cursor;
50
+ } while (cursor !== undefined);
51
+ return resources.sort(compareResources);
52
+ }
53
+ async function readResource(uri) {
54
+ if (blobUriPattern.test(uri)) {
55
+ const details = await autofile.blobs.stat(uri);
56
+ if (details === undefined)
57
+ return undefined;
58
+ if (details.size > MAX_INLINE_BLOB_BYTES) {
59
+ const data = { uri, size: details.size, limit: MAX_INLINE_BLOB_BYTES };
60
+ const message = `The blob is ${details.size.toLocaleString("en-US")} bytes, more than the 7,340,032 bytes resources/read returns.`;
61
+ if (options.blobLocation === "http") {
62
+ const url = uri.slice("autofile:///".length);
63
+ throw new ProtocolError(ProtocolErrorCode.InvalidParams, `${message} Download it with HTTP GET from ${url}, relative to the MCP endpoint URL.`, { ...data, url });
64
+ }
65
+ if (details.path === undefined)
66
+ throw new Error("No local file is available for this blob");
67
+ throw new ProtocolError(ProtocolErrorCode.InvalidParams, `${message} Read it from the local file ${details.path}.`, { ...data, path: details.path });
68
+ }
69
+ const blob = await autofile.blobs.get(uri);
70
+ return blob === undefined ? undefined : {
71
+ uri, mimeType: blob.mimeType, blob: Buffer.from(blob.bytes).toString("base64"),
72
+ };
73
+ }
74
+ const type = typeUriPattern.exec(uri)?.[1];
75
+ const document = type !== undefined
76
+ ? await readable(() => autofile.types.get(type))
77
+ : recordUriPattern.test(uri)
78
+ ? await readable(() => autofile.records.get(uri))
79
+ : undefined;
80
+ if (document === undefined)
81
+ return undefined;
82
+ return { uri, mimeType: "application/json", text: serialize(document) };
83
+ }
84
+ return { listResources, getResourceMetadata, listTypeResources, readResource };
85
+ }
86
+ /** Checks addresses that can occur in an MCP resource-list cursor. */
87
+ export function isResourceUri(uri) {
88
+ return typeUriPattern.test(uri) || recordUriPattern.test(uri);
89
+ }
90
+ function declarationResource(declaration) {
91
+ return {
92
+ uri: declaration.uri,
93
+ name: `Type: ${declaration.type}`,
94
+ mimeType: "application/json",
95
+ description: declaration.description,
96
+ ...(declaration.title === undefined ? {} : { title: declaration.title }),
97
+ };
98
+ }
99
+ function recordResource(record) {
100
+ return {
101
+ uri: record.uri,
102
+ name: `${record.type}: ${record.key}`,
103
+ mimeType: "application/json",
104
+ ...(record.title === undefined ? {} : { title: record.title }),
105
+ };
106
+ }
107
+ function serialize(value) {
108
+ return `${JSON.stringify(value, (_key, item) => {
109
+ if (typeof item !== "object" || item === null || Array.isArray(item))
110
+ return item;
111
+ return Object.fromEntries(Object.entries(item).sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0)));
112
+ }, 2)}\n`;
113
+ }
114
+ function compareResources(left, right) {
115
+ return left.uri < right.uri ? -1 : left.uri > right.uri ? 1 : 0;
116
+ }
117
+ async function readable(read) {
118
+ try {
119
+ return await read();
120
+ }
121
+ catch (error) {
122
+ if (error instanceof AutofileError)
123
+ return undefined;
124
+ throw error;
125
+ }
126
+ }
127
+ //# sourceMappingURL=mcp-resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-resources.js","sourceRoot":"","sources":["../src/mcp-resources.ts"],"names":[],"mappings":"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"}