fluxmail 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/LICENSE.md +111 -0
  2. package/README.md +15 -3
  3. package/dist/accounts/gmailConnection.d.ts +17 -0
  4. package/dist/accounts/gmailConnection.d.ts.map +1 -0
  5. package/dist/accounts/gmailConnection.js +32 -0
  6. package/dist/accounts/gmailConnection.js.map +1 -0
  7. package/dist/cli.js +71 -3
  8. package/dist/cli.js.map +1 -1
  9. package/dist/config.d.ts +4 -0
  10. package/dist/config.d.ts.map +1 -1
  11. package/dist/config.js +7 -1
  12. package/dist/config.js.map +1 -1
  13. package/dist/context.d.ts +2 -0
  14. package/dist/context.d.ts.map +1 -1
  15. package/dist/context.js +3 -1
  16. package/dist/context.js.map +1 -1
  17. package/dist/http/app.d.ts +2 -0
  18. package/dist/http/app.d.ts.map +1 -1
  19. package/dist/http/app.js +85 -15
  20. package/dist/http/app.js.map +1 -1
  21. package/dist/index.d.ts +2 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/mcp/buildServer.d.ts +7 -1
  26. package/dist/mcp/buildServer.d.ts.map +1 -1
  27. package/dist/mcp/buildServer.js +68 -20
  28. package/dist/mcp/buildServer.js.map +1 -1
  29. package/dist/storage/db.d.ts +134 -0
  30. package/dist/storage/db.d.ts.map +1 -1
  31. package/dist/storage/db.js +21 -0
  32. package/dist/storage/db.js.map +1 -1
  33. package/dist/storage/gmailConnectionGrants.d.ts +28 -0
  34. package/dist/storage/gmailConnectionGrants.d.ts.map +1 -0
  35. package/dist/storage/gmailConnectionGrants.js +70 -0
  36. package/dist/storage/gmailConnectionGrants.js.map +1 -0
  37. package/dist/telemetry.d.ts +28 -0
  38. package/dist/telemetry.d.ts.map +1 -0
  39. package/dist/telemetry.js +220 -0
  40. package/dist/telemetry.js.map +1 -0
  41. package/package.json +10 -6
package/dist/context.js CHANGED
@@ -3,13 +3,15 @@ import { openDb } from './storage/db.js';
3
3
  import { AccountRegistry } from './accounts/registry.js';
4
4
  import { EmailService } from './service/emailService.js';
5
5
  import { SendScheduler } from './scheduler/sendScheduler.js';
6
+ import { getTelemetry } from './telemetry.js';
6
7
  export function createContext() {
7
8
  const config = loadConfig();
8
9
  const db = openDb(config.dbPath);
9
10
  const registry = new AccountRegistry(db, config);
10
11
  const service = new EmailService(registry, db);
11
12
  const scheduler = new SendScheduler(db, service);
13
+ const telemetry = getTelemetry(config.dataDir);
12
14
  service.onScheduleChanged = () => scheduler.wake();
13
- return { config, db, registry, service, scheduler };
15
+ return { config, db, registry, service, scheduler, telemetry };
14
16
  }
15
17
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAW7D,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACnD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAuB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAmB,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AAY9D,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,iBAAiB,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACnD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AACjE,CAAC"}
@@ -4,11 +4,13 @@ import type { FluxmailConfig } from '../config.js';
4
4
  import type { FluxmailDb } from '../storage/db.js';
5
5
  import type { AccountRegistry } from '../accounts/registry.js';
6
6
  import type { EmailService } from '../service/emailService.js';
7
+ import type { Telemetry } from '../telemetry.js';
7
8
  export interface AppDeps {
8
9
  config: FluxmailConfig;
9
10
  db: FluxmailDb;
10
11
  registry: AccountRegistry;
11
12
  service: EmailService;
13
+ telemetry?: Telemetry;
12
14
  }
13
15
  export declare function createApp(deps: AppDeps): Hono<{
14
16
  Bindings: HttpBindings;
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAQ5E,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC,CAsHzE"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAW5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAAE,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC,CAkNzE"}
package/dist/http/app.js CHANGED
@@ -1,17 +1,52 @@
1
1
  import { randomBytes } from 'node:crypto';
2
2
  import { Hono } from 'hono';
3
- import { isEmailError } from '@fluxmail/core';
3
+ import { EmailError, isEmailError } from '@fluxmail/core';
4
4
  import { RESPONSE_ALREADY_SENT } from '@hono/node-server/utils/response';
5
5
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
6
6
  import { authenticateApiKey } from '../storage/apiKeys.js';
7
7
  import { buildMcpServer } from '../mcp/buildServer.js';
8
8
  import { buildAuthUrl, createOAuthClient, exchangeCode } from '../accounts/googleAuth.js';
9
+ import { claimGmailConnectionGrant, inspectGmailConnectionGrant, } from '../storage/gmailConnectionGrants.js';
9
10
  import { VERSION } from '../version.js';
10
11
  const OAUTH_STATE_TTL_MS = 10 * 60 * 1000;
11
12
  export function createApp(deps) {
12
- const { config, db, registry, service } = deps;
13
+ const { config, db, registry, service, telemetry } = deps;
13
14
  const app = new Hono();
14
15
  const oauthStates = new Map();
16
+ const connectionLinkPage = (title, message) => `<html><body style="font-family: sans-serif"><h2>${title}</h2><p>${message}</p></body></html>`;
17
+ const connectionLinkError = (status) => {
18
+ if (status === 'expired') {
19
+ return {
20
+ html: connectionLinkPage('This Gmail connection link has expired', 'Run the Fluxmail command again to get a new link.'),
21
+ status: 410,
22
+ };
23
+ }
24
+ if (status === 'used') {
25
+ return {
26
+ html: connectionLinkPage('This Gmail connection link has already been used', 'Run the Fluxmail command again if you still need to connect Gmail.'),
27
+ status: 410,
28
+ };
29
+ }
30
+ return {
31
+ html: connectionLinkPage('This Gmail connection link is invalid', 'Run the Fluxmail command again to get a new link.'),
32
+ status: 400,
33
+ };
34
+ };
35
+ const connectionConfirmationPage = () => '<html><body style="font-family: sans-serif"><h2>Connect Gmail to Fluxmail</h2>' +
36
+ '<p>Continue to Google to choose the Gmail account you want to connect.</p>' +
37
+ '<form method="post">' +
38
+ '<button type="submit">Continue with Google</button></form></body></html>';
39
+ const beginGoogleOAuth = (intent) => {
40
+ const now = Date.now();
41
+ for (const [state, pending] of oauthStates) {
42
+ if (pending.expiresAt < now)
43
+ oauthStates.delete(state);
44
+ }
45
+ const state = randomBytes(16).toString('hex');
46
+ oauthStates.set(state, { expiresAt: now + OAUTH_STATE_TTL_MS, ...(intent ? { intent } : {}) });
47
+ const client = createOAuthClient(config, `${config.publicUrl}/auth/google/callback`);
48
+ return buildAuthUrl(client, state);
49
+ };
15
50
  // Connecting a mailbox is instance administration: only unscoped admin keys
16
51
  // qualify; member-scoped keys are confined to mailbox access over MCP.
17
52
  const adminAuthorized = (c, allowQueryKey = false) => {
@@ -50,7 +85,7 @@ export function createApp(deps) {
50
85
  catch {
51
86
  return c.json({ jsonrpc: '2.0', error: { code: -32700, message: 'Parse error' }, id: null }, 400);
52
87
  }
53
- const server = buildMcpServer(service.withScope(scope));
88
+ const server = buildMcpServer(service.withScope(scope), { telemetry, transport: 'http' });
54
89
  const transport = new StreamableHTTPServerTransport({
55
90
  sessionIdGenerator: undefined,
56
91
  enableJsonResponse: true,
@@ -75,21 +110,46 @@ export function createApp(deps) {
75
110
  if (!adminAuthorized(c, true)) {
76
111
  return c.text('Unauthorized: append ?key=<an admin API key>', 401);
77
112
  }
78
- const now = Date.now();
79
- for (const [state, expiry] of oauthStates) {
80
- if (expiry < now)
81
- oauthStates.delete(state);
113
+ return c.redirect(beginGoogleOAuth());
114
+ });
115
+ // Hono falls back to GET handlers for HEAD requests. Handle HEAD explicitly
116
+ // so link previews and security scanners cannot consume a one-time grant.
117
+ app.use('/auth/google/connect', async (c, next) => {
118
+ c.header('cache-control', 'no-store');
119
+ c.header('referrer-policy', 'no-referrer');
120
+ return c.req.method === 'HEAD' ? c.body(null, 204) : next();
121
+ });
122
+ app.get('/auth/google/connect', (c) => {
123
+ const token = c.req.query('token');
124
+ if (!token) {
125
+ const error = connectionLinkError('invalid');
126
+ return c.html(error.html, error.status);
82
127
  }
83
- const state = randomBytes(16).toString('hex');
84
- oauthStates.set(state, now + OAUTH_STATE_TTL_MS);
85
- const client = createOAuthClient(config, `${config.publicUrl}/auth/google/callback`);
86
- return c.redirect(buildAuthUrl(client, state));
128
+ const status = inspectGmailConnectionGrant(db, token);
129
+ if (status !== 'available') {
130
+ const error = connectionLinkError(status);
131
+ return c.html(error.html, error.status);
132
+ }
133
+ return c.html(connectionConfirmationPage());
134
+ });
135
+ app.post('/auth/google/connect', (c) => {
136
+ const token = c.req.query('token');
137
+ if (!token) {
138
+ const error = connectionLinkError('invalid');
139
+ return c.html(error.html, error.status);
140
+ }
141
+ const claim = claimGmailConnectionGrant(db, token);
142
+ if (claim.status !== 'claimed') {
143
+ const error = connectionLinkError(claim.status);
144
+ return c.html(error.html, error.status);
145
+ }
146
+ return c.redirect(beginGoogleOAuth(claim.grant));
87
147
  });
88
148
  app.get('/auth/google/callback', async (c) => {
89
149
  const state = c.req.query('state');
90
- const expiry = state ? oauthStates.get(state) : undefined;
91
- if (!state || !expiry || expiry < Date.now()) {
92
- return c.text('Invalid or expired OAuth state. Restart from /auth/google.', 400);
150
+ const pending = state ? oauthStates.get(state) : undefined;
151
+ if (!state || !pending || pending.expiresAt < Date.now()) {
152
+ return c.text('Invalid or expired OAuth state. Start the Gmail connection flow again.', 400);
93
153
  }
94
154
  oauthStates.delete(state);
95
155
  const error = c.req.query('error');
@@ -101,7 +161,17 @@ export function createApp(deps) {
101
161
  const client = createOAuthClient(config, `${config.publicUrl}/auth/google/callback`);
102
162
  try {
103
163
  const { email, displayName, tokens } = await exchangeCode(client, code);
104
- const account = registry.addGmailAccount(email, tokens, displayName);
164
+ const reauthorizeAccount = pending.intent?.reauthorizeAccountId
165
+ ? registry.getAccount(pending.intent.reauthorizeAccountId)
166
+ : undefined;
167
+ if (reauthorizeAccount?.provider !== undefined && reauthorizeAccount.provider !== 'gmail') {
168
+ throw new EmailError('invalid_request', `Account ${reauthorizeAccount.id} does not use Gmail.`);
169
+ }
170
+ if (reauthorizeAccount && reauthorizeAccount.email !== email) {
171
+ throw new EmailError('invalid_request', `Google authorized ${email}, but account ${reauthorizeAccount.id} belongs to ${reauthorizeAccount.email}. ` +
172
+ 'Try again and choose the matching Google account.');
173
+ }
174
+ const account = registry.addGmailAccount(email, tokens, displayName, pending.intent?.memberId);
105
175
  return c.html(`<html><body style="font-family: sans-serif"><h2>${email} is connected to Fluxmail</h2>` +
106
176
  `<p>Account id: <code>${account.id}</code>. You can close this tab.</p></body></html>`);
107
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/http/app.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { createContext, type AppContext } from './context.js';
2
2
  export { createApp } from './http/app.js';
3
- export { buildMcpServer } from './mcp/buildServer.js';
3
+ export { buildMcpServer, type BuildMcpServerOptions, type McpTransport } from './mcp/buildServer.js';
4
4
  export { EmailService, buildForwardBody, type SendInput, type ForwardInput } from './service/emailService.js';
5
5
  export { AccountRegistry } from './accounts/registry.js';
6
6
  export { loadConfig, loadDotEnv, resolveDataDir, configFilePath, maskStoredConfigValue, readStoredConfig, setStoredConfig, unsetStoredConfig, type FluxmailConfig, } from './config.js';
@@ -11,4 +11,5 @@ export { addMember, getMember, findMember, listMembers, removeMember, type Membe
11
11
  export { verifyLease, licensePublicKeys, PINNED_LICENSE_PUBLIC_KEYS, type LeasePayload } from './licensing/lease.js';
12
12
  export { validateLicense, releaseLicense, DEFAULT_LICENSE_SERVER_URL, LICENSE_KEY_PATTERN, type ValidateOutcome, } from './licensing/client.js';
13
13
  export { refreshLicense, startLicenseRefresher, loadInstanceId, type RefreshResult } from './licensing/refresher.js';
14
+ export { createTelemetry, isTelemetryEnabled, setTelemetryEnabled, telemetryDisabled, type Telemetry, type TelemetryProperties, } from './telemetry.js';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrH,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,KAAK,cAAc,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrH,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACrH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,mBAAmB,GACzB,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -11,4 +11,5 @@ export { addMember, getMember, findMember, listMembers, removeMember } from './s
11
11
  export { verifyLease, licensePublicKeys, PINNED_LICENSE_PUBLIC_KEYS } from './licensing/lease.js';
12
12
  export { validateLicense, releaseLicense, DEFAULT_LICENSE_SERVER_URL, LICENSE_KEY_PATTERN, } from './licensing/client.js';
13
13
  export { refreshLicense, startLicenseRefresher, loadInstanceId } from './licensing/refresher.js';
14
+ export { createTelemetry, isTelemetryEnabled, setTelemetryEnabled, telemetryDisabled, } from './telemetry.js';
14
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAqC,MAAM,2BAA2B,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,GAGhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,0BAA0B,EAAqB,MAAM,sBAAsB,CAAC;AACrH,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,cAAc,EAAsB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAmB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAiD,MAAM,sBAAsB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAqC,MAAM,2BAA2B,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,GAGhB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AACpH,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,0BAA0B,EAAqB,MAAM,sBAAsB,CAAC;AACrH,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,cAAc,EAAsB,MAAM,0BAA0B,CAAC;AACrH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,gBAAgB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import type { EmailService, SendInput } from '../service/emailService.js';
3
+ import type { Telemetry } from '../telemetry.js';
3
4
  type DraftArgs = {
4
5
  accountId?: string;
5
6
  to?: string[];
@@ -21,8 +22,13 @@ export declare function toSendRequest(args: DraftArgs & {
21
22
  }): SendInput | {
22
23
  draftId: string;
23
24
  };
25
+ export type McpTransport = 'http' | 'stdio' | 'unknown';
26
+ export interface BuildMcpServerOptions {
27
+ telemetry?: Telemetry;
28
+ transport?: McpTransport;
29
+ }
24
30
  export declare function resolveAttachmentSavePath(savePath: string, filename: string): string;
25
31
  export declare function saveAttachment(savePath: string, filename: string, content: Buffer): string;
26
- export declare function buildMcpServer(service: EmailService): McpServer;
32
+ export declare function buildMcpServer(service: EmailService, options?: BuildMcpServerOptions): McpServer;
27
33
  export {};
28
34
  //# sourceMappingURL=buildServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildServer.d.ts","sourceRoot":"","sources":["../../src/mcp/buildServer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAuE1E,KAAK,SAAS,GAAG;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAyBF,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAsBrG;AAqDD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAcpF;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAY1F;AAqBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,CAoU/D"}
1
+ {"version":3,"file":"buildServer.d.ts","sourceRoot":"","sources":["../../src/mcp/buildServer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAuEtE,KAAK,SAAS,GAAG;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAyBF,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAsBrG;AA8BD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AA4ED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAcpF;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAY1F;AAqBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE,qBAA0B,GAAG,SAAS,CA6UpG"}
@@ -141,15 +141,63 @@ function toolError(err) {
141
141
  : { error: 'internal', message: err instanceof Error ? err.message : String(err) };
142
142
  return { isError: true, content: [{ type: 'text', text: JSON.stringify(payload, null, 2) }] };
143
143
  }
144
- function handle(fn, gate) {
144
+ function toolFeatureProperties(tool, args) {
145
+ if (!args || typeof args !== 'object')
146
+ return {};
147
+ const input = args;
148
+ switch (tool) {
149
+ case 'create_draft':
150
+ return { reply: input.replyToMessageId !== undefined, reply_all: input.replyAll === true };
151
+ case 'send_email':
152
+ return {
153
+ mode: input.draftId !== undefined ? 'draft' : input.replyToMessageId !== undefined ? 'reply' : 'direct',
154
+ scheduled: input.sendAt !== undefined,
155
+ reply_all: input.replyAll === true,
156
+ };
157
+ case 'forward_email':
158
+ return { include_attachments: input.includeAttachments !== false };
159
+ case 'modify_emails':
160
+ return typeof input.action === 'string' ? { action: input.action } : {};
161
+ case 'download_attachment':
162
+ return { destination: input.savePath !== undefined ? 'disk' : 'inline' };
163
+ default:
164
+ return {};
165
+ }
166
+ }
167
+ function captureToolTelemetry(options, properties) {
168
+ try {
169
+ options.telemetry?.capture('mcp tool called', { ...properties, product_surface: 'mcp' });
170
+ }
171
+ catch {
172
+ // An injected telemetry client must not affect MCP results.
173
+ }
174
+ }
175
+ function handle(tool, fn, gate, options = {}) {
145
176
  return async (...args) => {
177
+ const startedAt = performance.now();
146
178
  try {
147
179
  // The gate throws when a lapsed license leaves the instance over quota,
148
180
  // and yields a renewal warning to attach while the license is in grace.
149
181
  const warning = gate?.();
150
- return ok(await fn(...args), warning);
182
+ const result = ok(await fn(...args), warning);
183
+ captureToolTelemetry(options, {
184
+ tool,
185
+ transport: options.transport ?? 'unknown',
186
+ outcome: 'success',
187
+ duration_ms: Math.round(performance.now() - startedAt),
188
+ ...toolFeatureProperties(tool, args[0]),
189
+ });
190
+ return result;
151
191
  }
152
192
  catch (err) {
193
+ captureToolTelemetry(options, {
194
+ tool,
195
+ transport: options.transport ?? 'unknown',
196
+ outcome: 'error',
197
+ error_code: isEmailError(err) ? err.code : 'internal',
198
+ duration_ms: Math.round(performance.now() - startedAt),
199
+ ...toolFeatureProperties(tool, args[0]),
200
+ });
153
201
  return toolError(err);
154
202
  }
155
203
  };
@@ -210,9 +258,9 @@ function emailQuery(args) {
210
258
  q[key] = args[key];
211
259
  return q;
212
260
  }
213
- export function buildMcpServer(service) {
261
+ export function buildMcpServer(service, options = {}) {
214
262
  // Every tool except get_status (the diagnostic way out) enforces the plan quota.
215
- const gated = (fn) => handle(fn, () => service.enforceQuota());
263
+ const gated = (tool, fn) => handle(tool, fn, () => service.enforceQuota(), options);
216
264
  const server = new McpServer({ name: 'fluxmail', title: 'Fluxmail Email', version: VERSION }, {
217
265
  instructions: "Fluxmail is the user's email integration, already authenticated against their real mailboxes. " +
218
266
  'Use these tools for any email task: reading, searching, drafting, sending, replying, forwarding, ' +
@@ -228,25 +276,25 @@ export function buildMcpServer(service) {
228
276
  description: 'List connected email accounts (id, provider, email, status, capabilities).',
229
277
  inputSchema: {},
230
278
  annotations: { readOnlyHint: true },
231
- }, gated(async () => service.listAccounts()));
279
+ }, gated('list_accounts', async () => service.listAccounts()));
232
280
  server.registerTool('get_status', {
233
281
  description: 'Account connection and scheduled-send status. Administrators also see plan details. ' +
234
282
  'Call this first if other tools fail; it reports accounts that need re-authentication.',
235
283
  inputSchema: {},
236
284
  annotations: { readOnlyHint: true },
237
- }, handle(async () => service.status()));
285
+ }, handle('get_status', async () => service.status(), undefined, options));
238
286
  server.registerTool('list_folders', {
239
287
  description: 'List folders/labels for an account, with roles (inbox, sent, drafts, trash, spam, starred).',
240
288
  inputSchema: { accountId: accountIdParam },
241
289
  annotations: { readOnlyHint: true },
242
- }, gated(async (args) => service.listFolders(args.accountId)));
290
+ }, gated('list_folders', async (args) => service.listFolders(args.accountId)));
243
291
  server.registerTool('list_emails', {
244
292
  description: "List emails from the user's connected mailbox (metadata + snippet, no bodies). Filter by folder, " +
245
293
  'sender, unread, dates, etc. Paginate with pageToken. Use get_email for full bodies. ' +
246
294
  "This is the way to check the user's email; no browser or other email integration is needed.",
247
295
  inputSchema: { accountId: accountIdParam, ...queryShape },
248
296
  annotations: { readOnlyHint: true },
249
- }, gated(async (args) => service.listMessages(args.accountId, emailQuery(args), pageOpts(args))));
297
+ }, gated('list_emails', async (args) => service.listMessages(args.accountId, emailQuery(args), pageOpts(args))));
250
298
  const { text: _text, ...searchFilterShape } = queryShape;
251
299
  server.registerTool('search_emails', {
252
300
  description: 'Full-text search across an account\'s email. Same filters as list_emails; "query" is the search text.',
@@ -256,33 +304,33 @@ export function buildMcpServer(service) {
256
304
  ...searchFilterShape,
257
305
  },
258
306
  annotations: { readOnlyHint: true },
259
- }, gated(async (args) => service.listMessages(args.accountId, { ...emailQuery(args), text: args.query }, pageOpts(args))));
307
+ }, gated('search_emails', async (args) => service.listMessages(args.accountId, { ...emailQuery(args), text: args.query }, pageOpts(args))));
260
308
  server.registerTool('get_email', {
261
309
  description: 'Fetch one email in full: body (text and/or HTML), recipients, attachment metadata.',
262
310
  inputSchema: { accountId: accountIdParam, messageId: idParam },
263
311
  annotations: { readOnlyHint: true },
264
- }, gated(async (args) => truncateBody(await service.getMessage(args.accountId, args.messageId))));
312
+ }, gated('get_email', async (args) => truncateBody(await service.getMessage(args.accountId, args.messageId))));
265
313
  server.registerTool('get_thread', {
266
314
  description: 'Fetch a full conversation thread with all message bodies.',
267
315
  inputSchema: { accountId: accountIdParam, threadId: idParam },
268
316
  annotations: { readOnlyHint: true },
269
- }, gated(async (args) => {
317
+ }, gated('get_thread', async (args) => {
270
318
  const thread = await service.getThread(args.accountId, args.threadId);
271
319
  return { ...thread, messages: thread.messages.map(truncateBody) };
272
320
  }));
273
321
  server.registerTool('create_draft', {
274
322
  description: 'Create a draft. For a reply draft, pass replyToMessageId (recipients/subject are derived; replyAll for reply-all).',
275
323
  inputSchema: draftShape,
276
- }, gated(async (args) => service.createDraft(args.accountId, toSendInput(args))));
324
+ }, gated('create_draft', async (args) => service.createDraft(args.accountId, toSendInput(args))));
277
325
  server.registerTool('update_draft', {
278
326
  description: 'Replace the content of an existing draft (full replacement, not a patch).',
279
327
  inputSchema: { draftId: idParam, ...draftShape },
280
- }, gated(async (args) => service.updateDraft(args.accountId, args.draftId, toSendInput(args))));
328
+ }, gated('update_draft', async (args) => service.updateDraft(args.accountId, args.draftId, toSendInput(args))));
281
329
  server.registerTool('delete_draft', {
282
330
  description: 'Delete a draft.',
283
331
  inputSchema: { accountId: accountIdParam, draftId: idParam },
284
332
  annotations: { destructiveHint: true },
285
- }, gated(async (args) => {
333
+ }, gated('delete_draft', async (args) => {
286
334
  await service.deleteDraft(args.accountId, args.draftId);
287
335
  return { deleted: args.draftId };
288
336
  }));
@@ -305,7 +353,7 @@ export function buildMcpServer(service) {
305
353
  'down goes out at the next startup). Returns a scheduleId for list/cancel.'),
306
354
  },
307
355
  annotations: { destructiveHint: true },
308
- }, gated(async (args) => {
356
+ }, gated('send_email', async (args) => {
309
357
  const { sendAt, ...sendArgs } = args;
310
358
  return sendAt !== undefined
311
359
  ? service.scheduleSend(args.accountId, toSendRequest(sendArgs), sendAt)
@@ -317,12 +365,12 @@ export function buildMcpServer(service) {
317
365
  'Fluxmail server is running.',
318
366
  inputSchema: { accountId: accountIdParam },
319
367
  annotations: { readOnlyHint: true },
320
- }, gated(async (args) => service.listScheduled(args.accountId)));
368
+ }, gated('list_scheduled_emails', async (args) => service.listScheduled(args.accountId)));
321
369
  server.registerTool('cancel_scheduled_email', {
322
370
  description: 'Cancel a pending scheduled send by scheduleId (from send_email with sendAt, or list_scheduled_emails). ' +
323
371
  'The draft stays in the Drafts folder, so the content is not lost.',
324
372
  inputSchema: { scheduleId: idParam },
325
- }, gated(async (args) => service.cancelScheduled(args.scheduleId)));
373
+ }, gated('cancel_scheduled_email', async (args) => service.cancelScheduled(args.scheduleId)));
326
374
  server.registerTool('forward_email', {
327
375
  description: 'Forward an email to new recipients: quoted original body, "Fwd:" subject, original attachments included ' +
328
376
  'unless includeAttachments=false. Optional comment appears above the forwarded content.',
@@ -335,7 +383,7 @@ export function buildMcpServer(service) {
335
383
  includeAttachments: z.boolean().optional().describe('Default true'),
336
384
  },
337
385
  annotations: { destructiveHint: true },
338
- }, gated(async (args) => {
386
+ }, gated('forward_email', async (args) => {
339
387
  const to = parseAddresses(args.to) ?? [];
340
388
  const cc = parseAddresses(args.cc);
341
389
  return service.forward(args.accountId, {
@@ -369,7 +417,7 @@ export function buildMcpServer(service) {
369
417
  labels: z.array(z.string().min(1)).max(100).optional().describe('Labels for addLabels/removeLabels'),
370
418
  },
371
419
  annotations: { destructiveHint: true },
372
- }, gated(async (args) => {
420
+ }, gated('modify_emails', async (args) => {
373
421
  let action;
374
422
  if (args.action === 'move') {
375
423
  if (!args.folder)
@@ -398,7 +446,7 @@ export function buildMcpServer(service) {
398
446
  savePath: z.string().min(1).optional().describe('Absolute file path or directory to write the attachment to'),
399
447
  },
400
448
  annotations: { readOnlyHint: false, destructiveHint: true },
401
- }, gated(async (args) => {
449
+ }, gated('download_attachment', async (args) => {
402
450
  const { meta, content } = await service.getAttachment(args.accountId, args.messageId, args.attachmentId);
403
451
  if (args.savePath) {
404
452
  const target = saveAttachment(args.savePath, meta.filename, content);
@@ -1 +1 @@
1
- {"version":3,"file":"buildServer.js","sourceRoot":"","sources":["../../src/mcp/buildServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildServer.js","sourceRoot":"","sources":["../../src/mcp/buildServer.ts"],"names":[],"mappings":"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"}