@ni-c/imap-mcp 0.3.0 → 0.4.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.
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The vocabulary shared between the extraction host and the worker.
3
+ *
4
+ * Types only, and that is a constraint rather than a preference. The child
5
+ * process is started from its own source file — `child.ts` under vitest,
6
+ * `child.js` from `dist/` — so everything it reaches is loaded by Node
7
+ * directly, and Node's type stripping does not rewrite a `./x.js` specifier to
8
+ * the `./x.ts` that exists next to it. A type-only import is erased before that can matter. A value
9
+ * exported from here would not be, and would break `npm test` while leaving the
10
+ * build green.
11
+ */
12
+ /** A document format this server can read text out of. */
13
+ export type ExtractKind = 'pdf' | 'docx' | 'xlsx' | 'pptx' | 'odt' | 'ods';
14
+ /**
15
+ * Why an extraction produced nothing.
16
+ *
17
+ * A code, never a message. The parsers quote the document in their exceptions —
18
+ * pdf.js names byte offsets and object fragments, fflate echoes what it found —
19
+ * and that is text a stranger wrote arriving in the model's context outside the
20
+ * fence. The host turns these into sentences it wrote itself.
21
+ */
22
+ export type ExtractReason = 'no-text-layer' | 'encrypted' | 'corrupt' | 'not-a-document' | 'too-many-parts' | 'too-large' | 'timeout' | 'out-of-memory' | 'busy' | 'internal';
23
+ export interface ExtractRequest {
24
+ kind: ExtractKind;
25
+ bytes: Uint8Array;
26
+ /** Hard cap on the characters the worker may return. */
27
+ maxChars: number;
28
+ }
29
+ export interface ExtractOk {
30
+ ok: true;
31
+ text: string;
32
+ /** What `unitCount` counts, when the format has such a thing. */
33
+ unitLabel?: 'pages' | 'slides' | 'sheets';
34
+ unitCount?: number;
35
+ /**
36
+ * What the document declared, when the walk stopped short of it. A PDF may
37
+ * claim more pages than were read; the difference is reported rather than
38
+ * hidden, so a short answer is never mistaken for a short document.
39
+ */
40
+ declaredUnitCount?: number;
41
+ /** True when `maxChars` cut the document short inside the worker. */
42
+ clipped: boolean;
43
+ /**
44
+ * Text runs drawn where a reader cannot see them: outside the page box or
45
+ * below two points in a PDF; marked hidden, set below two points or coloured
46
+ * white in a Word document. A count, never a filter — see the note in
47
+ * `pdf.ts`.
48
+ */
49
+ hiddenRuns?: number;
50
+ totalRuns?: number;
51
+ }
52
+ export interface ExtractFailed {
53
+ ok: false;
54
+ reason: ExtractReason;
55
+ }
56
+ export type ExtractResponse = ExtractOk | ExtractFailed;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The vocabulary shared between the extraction host and the worker.
3
+ *
4
+ * Types only, and that is a constraint rather than a preference. The child
5
+ * process is started from its own source file — `child.ts` under vitest,
6
+ * `child.js` from `dist/` — so everything it reaches is loaded by Node
7
+ * directly, and Node's type stripping does not rewrite a `./x.js` specifier to
8
+ * the `./x.ts` that exists next to it. A type-only import is erased before that can matter. A value
9
+ * exported from here would not be, and would break `npm test` while leaving the
10
+ * build green.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/extract/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -59,4 +59,5 @@ export declare const attachmentEntry: z.ZodObject<{
59
59
  filename: z.ZodOptional<z.ZodString>;
60
60
  content_type: z.ZodOptional<z.ZodString>;
61
61
  size: z.ZodOptional<z.ZodNumber>;
62
+ extractable: z.ZodOptional<z.ZodBoolean>;
62
63
  }, z.core.$loose>;
@@ -76,6 +76,12 @@ export const attachmentEntry = z
76
76
  filename: z.string().optional(),
77
77
  content_type: z.string().optional(),
78
78
  size: z.number().optional(),
79
+ // A loose object would carry this either way; declared because the whole
80
+ // value of the field is that a reader sees it before deciding what to call.
81
+ extractable: z
82
+ .boolean()
83
+ .optional()
84
+ .describe('True when get_attachments with mode "text" can read this part as text.'),
79
85
  })
80
86
  .meta({ additionalProperties: true });
81
87
  //# sourceMappingURL=output-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output-schema.js","sourceRoot":"","sources":["../src/output-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output-schema.js","sourceRoot":"","sources":["../src/output-schema.ts"],"names":[],"mappings":"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"}
package/dist/resources.js CHANGED
@@ -48,8 +48,11 @@ export function registerAttachmentResources(server, client, config) {
48
48
  // base64-encoded in a JSON-RPC response — that is context, and
49
49
  // maxDownloadBytes exists to bound what may be written to a file.
50
50
  // Using it here allowed ~34 MB of base64 in one response, where
51
- // get_attachments caps the same attachment at 1 MB.
51
+ // get_attachments caps the same attachment at 1 MB. The same
52
+ // reasoning excludes IMAP_MAX_EXTRACT_BYTES: there is no text
53
+ // mode on this door, so nothing here can be reached by it.
52
54
  maxBytes: config.imap.maxAttachmentBytes,
55
+ maxBytesName: 'IMAP_MAX_ATTACHMENT_BYTES',
53
56
  }))
54
57
  .find((entry) => entry.partId === partId);
55
58
  if (candidate === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":"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"}
package/dist/result.d.ts CHANGED
@@ -70,7 +70,13 @@ export declare function fencedUntrustedResult(trustedHeader: string, body: strin
70
70
  /**
71
71
  * Limits what an upstream error string can inject into the model context: HTML
72
72
  * error pages (captive portals, proxies answering on the mail port) are dropped
73
- * entirely, other bodies are truncated.
73
+ * entirely, other bodies are truncated, and the characters a reader cannot see
74
+ * are spelled out rather than passed through.
75
+ *
76
+ * The text is the mail server's, or that of whatever answers on its port. It
77
+ * used to be returned as it came, in this server's own voice; the escaping and
78
+ * the label the caller puts in front of it are what keep it from reading as
79
+ * something this server said.
74
80
  */
75
81
  export declare function sanitizeErrorBody(body: string): string;
76
82
  /**
package/dist/result.js CHANGED
@@ -1,4 +1,4 @@
1
- import { wrapUntrusted } from './analyze.js';
1
+ import { escapeInvisible, wrapUntrusted } from './analyze.js';
2
2
  import { MailError, ToolInputError } from './errors.js';
3
3
  export function textResult(text) {
4
4
  return { content: [{ type: 'text', text }] };
@@ -233,7 +233,13 @@ const MAX_ERROR_BODY_LENGTH = 2000;
233
233
  /**
234
234
  * Limits what an upstream error string can inject into the model context: HTML
235
235
  * error pages (captive portals, proxies answering on the mail port) are dropped
236
- * entirely, other bodies are truncated.
236
+ * entirely, other bodies are truncated, and the characters a reader cannot see
237
+ * are spelled out rather than passed through.
238
+ *
239
+ * The text is the mail server's, or that of whatever answers on its port. It
240
+ * used to be returned as it came, in this server's own voice; the escaping and
241
+ * the label the caller puts in front of it are what keep it from reading as
242
+ * something this server said.
237
243
  */
238
244
  export function sanitizeErrorBody(body) {
239
245
  const trimmed = body.trim();
@@ -244,9 +250,9 @@ export function sanitizeErrorBody(body) {
244
250
  return '(HTML error page omitted)';
245
251
  }
246
252
  if (trimmed.length > MAX_ERROR_BODY_LENGTH) {
247
- return `${trimmed.slice(0, MAX_ERROR_BODY_LENGTH)}… (truncated)`;
253
+ return `${escapeInvisible(trimmed.slice(0, MAX_ERROR_BODY_LENGTH))}… (truncated)`;
248
254
  }
249
- return trimmed;
255
+ return escapeInvisible(trimmed);
250
256
  }
251
257
  function hintFor(error) {
252
258
  switch (error.code) {
@@ -288,7 +294,10 @@ export async function run(fn) {
288
294
  }
289
295
  if (error instanceof MailError) {
290
296
  const body = sanitizeErrorBody(error.responseText);
291
- return errorResult(`${error.message}${body === '' ? '' : `\n${body}`}${hintFor(error)}`);
297
+ // Labelled as the server's words: the response text is chosen by the
298
+ // mail server, and an unlabelled line after this server's own message
299
+ // reads as a continuation of it.
300
+ return errorResult(`${error.message}${body === '' ? '' : `\nThe mail server said: ${body}`}${hintFor(error)}`);
292
301
  }
293
302
  const message = error instanceof Error ? error.message : String(error);
294
303
  return errorResult(`imap-mcp: ${message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":"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"}