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/LICENSE.md ADDED
@@ -0,0 +1,111 @@
1
+ # Fluxmail Proprietary License Agreement
2
+
3
+ Version 1.0, July 12, 2026
4
+
5
+ Copyright © 2026 Fluxmail. All rights reserved.
6
+
7
+ This Fluxmail Proprietary License Agreement (the “Agreement”) is between Fluxmail and the individual or entity accepting this Agreement (“you”). If you use the Software for an organization, you represent that you have authority to bind that organization, and “you” includes that organization.
8
+
9
+ By downloading, copying, installing, modifying, or using the Software, you accept this Agreement. If you do not accept it, do not use the Software.
10
+
11
+ ## 1. Definitions
12
+
13
+ “Software” means the Fluxmail software distributed with this Agreement, including its source code, object code, documentation, and any Fluxmail updates or modifications provided under this Agreement. Software does not include Third-Party Software.
14
+
15
+ “License Entitlement” means the users, mailboxes, instances, features, usage limits, term, and other rights authorized by a license key, built-in plan, order form, subscription record, or other written authorization issued by Fluxmail.
16
+
17
+ “Production Use” means using the Software for live personal, business, organizational, customer-facing, or revenue-generating operations. It includes processing live mailbox data or making the Software available to users other than solely for development, testing, security review, or evaluation.
18
+
19
+ “Non-Production Use” means private development, testing, security review, or evaluation that does not process live operations or provide a service to end users.
20
+
21
+ “Third-Party Software” means software identified as third-party or open-source software, including dependencies distributed with or used by the Software.
22
+
23
+ “Competing Product” means a product or service whose primary purpose is to provide third parties with a self-hosted or hosted email integration server, email-agent interface, or email API offering substantially similar core functionality to the Software. It does not include software developed and used solely for your own internal operations.
24
+
25
+ ## 2. License grant
26
+
27
+ Subject to this Agreement, Fluxmail grants you a limited, worldwide, non-exclusive, non-transferable, non-sublicensable license to:
28
+
29
+ 1. view, audit, download, copy, compile, and run the Software for Non-Production Use;
30
+ 2. make private modifications to the Software for your own use;
31
+ 3. make reasonable backup and archival copies;
32
+ 4. use GitHub’s standard public-repository features to view and fork the Software solely as needed to exercise the rights in items 1 through 3; and
33
+ 5. use the Software in Production Use only within a valid License Entitlement.
34
+
35
+ A License Entitlement may be offered without charge. A zero-dollar or built-in entitlement remains subject to this Agreement and to its stated limits.
36
+
37
+ All rights not expressly granted in this Agreement are reserved by Fluxmail.
38
+
39
+ ## 3. License Entitlements and technical controls
40
+
41
+ Your Production Use must stay within your License Entitlement. A License Entitlement applies only to the person, organization, and instances it covers. You may not share a license key outside that person or organization or use it on more instances than authorized.
42
+
43
+ You may not modify, remove, disable, circumvent, bypass, or interfere with any license-key validation, entitlement enforcement, usage metering, plan limitation, or other technical restriction in the Software. You may not enable or expose functionality protected by any of those controls except as authorized by your License Entitlement.
44
+
45
+ Modified versions and derivative works containing any part of the Software remain subject to this Agreement. Production Use of them requires a valid License Entitlement covering that use.
46
+
47
+ ## 4. Restrictions
48
+
49
+ Unless Fluxmail gives you separate written permission, you may not:
50
+
51
+ 1. distribute, publish, sell, sublicense, rent, lease, or otherwise provide the Software or a modified version to a third party;
52
+ 2. publish or maintain a fork for distributing the Software, providing production-ready builds to others, avoiding License Entitlements, or operating a Competing Product;
53
+ 3. offer the Software or its substantial features to third parties as a hosted, managed, time-sharing, or service-bureau product;
54
+ 4. white-label the Software or represent it as your own product;
55
+ 5. embed or incorporate the Software into a product or service distributed or provided to third parties;
56
+ 6. use the Software or its source code to develop, train, support, or operate a Competing Product;
57
+ 7. exceed or help another person exceed a License Entitlement;
58
+ 8. remove, alter, or obscure copyright, license, attribution, or trademark notices; or
59
+ 9. use Fluxmail names, logos, or trademarks except as allowed by applicable law or separate written permission.
60
+
61
+ These restrictions do not limit rights that applicable law does not allow Fluxmail to restrict.
62
+
63
+ ## 5. Ownership and modifications
64
+
65
+ Fluxmail and its licensors retain all right, title, and interest in the Software, including all intellectual property rights. This Agreement does not transfer ownership of the Software to you.
66
+
67
+ As between you and Fluxmail, you retain ownership of code you write independently. Your ownership of a modification does not give you rights in the underlying Software or permission to distribute or commercially exploit a combined or derivative work.
68
+
69
+ ## 6. Third-Party Software
70
+
71
+ Third-Party Software is licensed under its own terms, not this Agreement. If a third-party license conflicts with this Agreement for that Third-Party Software, the third-party license controls for that component. You are responsible for complying with applicable third-party terms.
72
+
73
+ ## 7. Orders, subscriptions, and other agreements
74
+
75
+ Pricing, payment, renewal, cancellation, support, and service terms may be stated in an order form, subscription terms, or another agreement with Fluxmail. If that agreement conflicts with this Agreement, it controls for the specific subject and parties it covers.
76
+
77
+ Each release of the Software is governed by the license version distributed with that release. Fluxmail may distribute later releases under updated terms, but updated terms do not change the license for a release you already received unless you agree otherwise.
78
+
79
+ ## 8. Term and termination
80
+
81
+ This Agreement continues until terminated. It terminates automatically if you materially breach it and do not cure the breach within 30 days after receiving notice from Fluxmail. A breach involving circumvention of technical controls, unauthorized distribution, or misuse of a license key may be terminated immediately if it cannot reasonably be cured.
82
+
83
+ When this Agreement terminates, you must stop using and delete all copies of the Software in your possession or control, except copies you must retain by law. Sections 4 through 12 survive termination. Termination does not affect rights or remedies that accrued before termination.
84
+
85
+ Expiration, cancellation, or downgrade of a License Entitlement may reduce or end your authorized Production Use without terminating this Agreement. Any grace period or restricted mode is determined by the applicable License Entitlement and the Software release you use.
86
+
87
+ ## 9. Disclaimer of warranties
88
+
89
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED “AS IS” AND “AS AVAILABLE,” WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. FLUXMAIL DISCLAIMS ALL EXPRESS, IMPLIED, AND STATUTORY WARRANTIES, INCLUDING WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, AND THAT THE SOFTWARE WILL BE SECURE, UNINTERRUPTED, OR ERROR-FREE.
90
+
91
+ ## 10. Limitation of liability
92
+
93
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, FLUXMAIL WILL NOT BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR ANY LOSS OF DATA, REVENUE, PROFITS, GOODWILL, OR BUSINESS OPPORTUNITY, ARISING OUT OF OR RELATED TO THE SOFTWARE OR THIS AGREEMENT, EVEN IF FLUXMAIL WAS ADVISED THAT SUCH DAMAGES WERE POSSIBLE.
94
+
95
+ TO THE MAXIMUM EXTENT PERMITTED BY LAW, FLUXMAIL’S TOTAL LIABILITY ARISING OUT OF OR RELATED TO THE SOFTWARE OR THIS AGREEMENT WILL NOT EXCEED THE GREATER OF (A) THE AMOUNT YOU PAID FLUXMAIL FOR THE SOFTWARE DURING THE 12 MONTHS BEFORE THE EVENT GIVING RISE TO THE CLAIM OR (B) US$100.
96
+
97
+ Some jurisdictions do not allow certain warranty disclaimers or liability limitations. In those jurisdictions, these provisions apply only to the extent permitted by law.
98
+
99
+ ## 11. Notices
100
+
101
+ Fluxmail may give you notice under this Agreement by email to any address you provided in connection with a License Entitlement, order, subscription, support request, or other communication with Fluxmail. An email notice is deemed received on the first business day after it is sent unless Fluxmail receives a delivery-failure message. You are responsible for keeping your contact information current.
102
+
103
+ ## 12. General terms
104
+
105
+ You may not assign or transfer this Agreement or your License Entitlement without Fluxmail’s prior written consent. Fluxmail may assign this Agreement in connection with a merger, acquisition, reorganization, or sale of substantially all related assets.
106
+
107
+ If any provision of this Agreement is unenforceable, it will be enforced to the maximum extent permitted, and the remaining provisions will remain in effect. A waiver must be in writing and applies only to the specific instance stated. Headings are for convenience and do not affect interpretation.
108
+
109
+ This Agreement is governed by the laws of the State of New Jersey, excluding its conflict-of-law rules. Any dispute arising out of or relating to the Software or this Agreement must be brought exclusively in a state or federal court of competent jurisdiction located in New Jersey. You and Fluxmail consent to the personal jurisdiction of those courts. This paragraph does not limit rights that applicable law does not allow a party to waive.
110
+
111
+ This Agreement, together with any applicable License Entitlement and agreement described in Section 7, is the entire agreement between you and Fluxmail about the Software and replaces prior discussions or understandings about its licensing.
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Fluxmail
2
2
 
3
- Fluxmail is a self-hosted MCP server that connects AI agents to Gmail and IMAP/SMTP mailboxes. It gives MCP clients a consistent set of tools to read, search, draft, send, and organize email.
3
+ [Fluxmail](https://github.com/churichard/fluxmail-mcp) is a self-hosted MCP server that connects AI agents to Gmail and IMAP/SMTP mailboxes. It gives MCP clients a consistent set of tools to read, search, draft, send, and organize email.
4
4
 
5
5
  ## Install
6
6
 
7
- Fluxmail requires Node.js 20 or later.
7
+ Fluxmail requires Node.js 20.20.x, or Node.js 22.22 or later.
8
8
 
9
9
  ```bash
10
10
  npm install -g fluxmail
@@ -20,7 +20,15 @@ fluxmail config set GOOGLE_CLIENT_SECRET <your-client-secret>
20
20
  fluxmail accounts add gmail
21
21
  ```
22
22
 
23
- The last command opens Google's consent flow in your browser.
23
+ For a local installation, the last command starts Google's consent flow in your browser.
24
+
25
+ For Docker or a remote server, set `FLUXMAIL_PUBLIC_URL` to the server's public HTTPS address and register `<FLUXMAIL_PUBLIC_URL>/auth/google/callback` as an authorized redirect URI in Google Cloud. Run the command on the server, then open the printed URL in your local browser:
26
+
27
+ ```bash
28
+ docker compose exec fluxmail fluxmail accounts add gmail
29
+ ```
30
+
31
+ Open the printed link, then select Continue with Google. The link expires after 10 minutes and works once. Fluxmail selects the flow from `FLUXMAIL_PUBLIC_URL`; `--local` and `--hosted` override that selection when needed.
24
32
 
25
33
  ## Connect IMAP
26
34
 
@@ -51,6 +59,10 @@ Fluxmail also supports Streamable HTTP for Docker and remote deployments.
51
59
 
52
60
  See the [setup guide](https://fluxmail.ai/docs/quickstart) for Google OAuth configuration, Docker deployment, supported MCP clients, environment variables, and the complete tool list.
53
61
 
62
+ ## Telemetry
63
+
64
+ Fluxmail reports anonymous CLI and MCP feature usage to PostHog. It does not send command arguments, mailbox data, message content, account or message IDs, file paths, secrets, or error messages. Run `fluxmail telemetry disable` to turn it off. Use `fluxmail telemetry status` to check the setting or `fluxmail telemetry enable` to turn it back on. `FLUXMAIL_TELEMETRY=0` and `DO_NOT_TRACK=1` also disable telemetry. The [telemetry reference](https://github.com/churichard/fluxmail-mcp/blob/main/docs/telemetry.md) lists every event and property.
65
+
54
66
  ## License
55
67
 
56
68
  See the [repository](https://github.com/churichard/fluxmail-mcp) for license terms.
@@ -0,0 +1,17 @@
1
+ import type { FluxmailConfig } from '../config.js';
2
+ import type { FluxmailDb } from '../storage/db.js';
3
+ import { type GmailConnectionIntent } from '../storage/gmailConnectionGrants.js';
4
+ export type GmailConnectionMode = 'local' | 'hosted';
5
+ export declare function validateAccountConnectionFlags(provider: 'gmail' | 'imap', options: {
6
+ local?: boolean;
7
+ hosted?: boolean;
8
+ }): void;
9
+ export declare function selectGmailConnectionMode(config: FluxmailConfig, options: {
10
+ local?: boolean;
11
+ hosted?: boolean;
12
+ }): GmailConnectionMode;
13
+ export declare function prepareHostedGmailConnection(db: FluxmailDb, config: FluxmailConfig, intent: GmailConnectionIntent): {
14
+ connectionUrl: string;
15
+ expiresAt: number;
16
+ };
17
+ //# sourceMappingURL=gmailConnection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmailConnection.d.ts","sourceRoot":"","sources":["../../src/accounts/gmailConnection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAA8B,KAAK,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG7G,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,QAAQ,CAAC;AAOrD,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,IAAI,CAIN;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7C,mBAAmB,CAUrB;AAED,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,qBAAqB,GAC5B;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAO9C"}
@@ -0,0 +1,32 @@
1
+ import { EmailError } from '@fluxmail/core';
2
+ import { createGmailConnectionGrant } from '../storage/gmailConnectionGrants.js';
3
+ import { requireGoogleConfig } from './googleAuth.js';
4
+ function isLoopbackPublicUrl(publicUrl) {
5
+ const hostname = new URL(publicUrl).hostname;
6
+ return hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '[::1]';
7
+ }
8
+ export function validateAccountConnectionFlags(provider, options) {
9
+ if (provider === 'imap' && (options.local || options.hosted)) {
10
+ throw new EmailError('invalid_request', '--local and --hosted are only available for Gmail accounts.');
11
+ }
12
+ }
13
+ export function selectGmailConnectionMode(config, options) {
14
+ if (options.local && options.hosted) {
15
+ throw new EmailError('invalid_request', '--local and --hosted cannot be used together.');
16
+ }
17
+ if (options.hosted && !config.publicUrlConfigured) {
18
+ throw new EmailError('invalid_request', '--hosted requires FLUXMAIL_PUBLIC_URL to be set.');
19
+ }
20
+ return options.hosted || (config.publicUrlConfigured && !options.local && !isLoopbackPublicUrl(config.publicUrl))
21
+ ? 'hosted'
22
+ : 'local';
23
+ }
24
+ export function prepareHostedGmailConnection(db, config, intent) {
25
+ requireGoogleConfig(config);
26
+ const { token, expiresAt } = createGmailConnectionGrant(db, intent);
27
+ return {
28
+ connectionUrl: `${config.publicUrl}/auth/google/connect?token=${encodeURIComponent(token)}`,
29
+ expiresAt,
30
+ };
31
+ }
32
+ //# sourceMappingURL=gmailConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmailConnection.js","sourceRoot":"","sources":["../../src/accounts/gmailConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,0BAA0B,EAA8B,MAAM,qCAAqC,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAItD,SAAS,mBAAmB,CAAC,SAAiB;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;IAC7C,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,OAAO,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,QAA0B,EAC1B,OAA8C;IAE9C,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,6DAA6D,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,MAAsB,EACtB,OAA8C;IAE9C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,+CAA+C,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAClD,MAAM,IAAI,UAAU,CAAC,iBAAiB,EAAE,kDAAkD,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/G,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,OAAO,CAAC;AACd,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,EAAc,EACd,MAAsB,EACtB,MAA6B;IAE7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,0BAA0B,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO;QACL,aAAa,EAAE,GAAG,MAAM,CAAC,SAAS,8BAA8B,kBAAkB,CAAC,KAAK,CAAC,EAAE;QAC3F,SAAS;KACV,CAAC;AACJ,CAAC"}
package/dist/cli.js CHANGED
@@ -9,6 +9,7 @@ import { configFilePath, maskStoredConfigValue, readStoredConfig, resolveDataDir
9
9
  import { createApp } from './http/app.js';
10
10
  import { buildMcpServer } from './mcp/buildServer.js';
11
11
  import { runLoopbackFlow } from './accounts/googleAuth.js';
12
+ import { prepareHostedGmailConnection, selectGmailConnectionMode, validateAccountConnectionFlags, } from './accounts/gmailConnection.js';
12
13
  import { createApiKey, listApiKeys, revokeApiKey } from './storage/apiKeys.js';
13
14
  import { addMember, findMember, listMembers, removeMember } from './storage/members.js';
14
15
  import { activateLicense } from './licensing/activation.js';
@@ -18,6 +19,7 @@ import { checkLicenseState, clearLease, getEntitlements, readLeaseRow, } from '.
18
19
  import { loadInstanceId, startLicenseRefresher } from './licensing/refresher.js';
19
20
  import { VERSION } from './version.js';
20
21
  import { countPending } from './storage/scheduledSends.js';
22
+ import { getTelemetry, isTelemetryEnabled, setTelemetryEnabled, shutdownTelemetry } from './telemetry.js';
21
23
  function connectionPort(value, option) {
22
24
  const port = Number(value);
23
25
  if (!Number.isInteger(port) || port < 1 || port > 65_535) {
@@ -93,7 +95,31 @@ function warnLicense(db, log = console.error) {
93
95
  log(`Warning: ${warning}`);
94
96
  }
95
97
  const program = new Command();
96
- program.name('fluxmail').description('Fluxmail, a self-hosted MCP server for your email').version(VERSION);
98
+ program
99
+ .name('fluxmail')
100
+ .description('Fluxmail, a self-hosted MCP server for your email')
101
+ .version(VERSION, '-v, --version');
102
+ function commandPath(command) {
103
+ const names = [];
104
+ for (let current = command; current?.parent; current = current.parent)
105
+ names.unshift(current.name());
106
+ return names.join(' ');
107
+ }
108
+ program.hook('preAction', (_command, actionCommand) => {
109
+ const command = commandPath(actionCommand);
110
+ // Respect the opt-out before creating a telemetry client or recording this command.
111
+ if (command === 'telemetry disable')
112
+ return;
113
+ const dataDir = resolveDataDir();
114
+ getTelemetry(dataDir).capture('cli command used', {
115
+ product_surface: 'cli',
116
+ command,
117
+ });
118
+ });
119
+ program.hook('postAction', async (_command, actionCommand) => {
120
+ if (actionCommand.name() !== 'serve' && actionCommand.name() !== 'stdio')
121
+ await shutdownTelemetry();
122
+ });
97
123
  program
98
124
  .command('serve')
99
125
  .description('Run the HTTP server (Streamable HTTP MCP at /mcp)')
@@ -102,6 +128,7 @@ program
102
128
  const app = createApp(ctx);
103
129
  ctx.scheduler.start();
104
130
  serve({ fetch: app.fetch, port: ctx.config.port }, () => {
131
+ ctx.telemetry.capture('mcp server started', { product_surface: 'mcp', transport: 'http' });
105
132
  console.log(`Fluxmail listening on ${ctx.config.publicUrl}`);
106
133
  console.log(` MCP endpoint: ${ctx.config.publicUrl}/mcp`);
107
134
  console.log(` Auth mode: ${ctx.config.authMode}`);
@@ -127,9 +154,10 @@ program
127
154
  .description('Run as a stdio MCP server (for Claude Desktop / Claude Code local config)')
128
155
  .action(async () => {
129
156
  const ctx = createContext();
130
- const server = buildMcpServer(ctx.service);
157
+ const server = buildMcpServer(ctx.service, { telemetry: ctx.telemetry, transport: 'stdio' });
131
158
  ctx.scheduler.start();
132
159
  await server.connect(new StdioServerTransport());
160
+ ctx.telemetry.capture('mcp server started', { product_surface: 'mcp', transport: 'stdio' });
133
161
  // stdout belongs to the MCP protocol; log to stderr only.
134
162
  startLicenseRefresher({
135
163
  db: ctx.db,
@@ -149,6 +177,8 @@ accounts
149
177
  .argument('<provider>', 'Email provider: gmail or imap')
150
178
  .option('--reauthorize <account-id>', 'Reconnect an existing account')
151
179
  .option('--member <member>', 'Member (id or email) who owns the new mailbox; omit for a shared mailbox')
180
+ .option('--local', 'Use the local browser callback for Gmail')
181
+ .option('--hosted', 'Use FLUXMAIL_PUBLIC_URL for the Gmail callback')
152
182
  .option('--email <address>', 'Mailbox address (required for IMAP)')
153
183
  .option('--display-name <name>', 'Sender name for IMAP messages')
154
184
  .option('--imap-host <host>', 'IMAP server hostname')
@@ -177,6 +207,7 @@ accounts
177
207
  const ctx = createContext();
178
208
  warnLicense(ctx.db);
179
209
  try {
210
+ validateAccountConnectionFlags(provider, opts);
180
211
  if (opts.reauthorize && opts.member) {
181
212
  throw new EmailError('invalid_request', '--member cannot be combined with --reauthorize; use "fluxmail accounts assign" to change ownership.');
182
213
  }
@@ -240,6 +271,17 @@ accounts
240
271
  console.log(`Warning: ${warning.message}.`);
241
272
  return;
242
273
  }
274
+ const gmailConnectionMode = selectGmailConnectionMode(ctx.config, opts);
275
+ if (gmailConnectionMode === 'hosted') {
276
+ const { connectionUrl } = prepareHostedGmailConnection(ctx.db, ctx.config, {
277
+ ...(member ? { memberId: member.id } : {}),
278
+ ...(existing ? { reauthorizeAccountId: existing.id } : {}),
279
+ });
280
+ console.log('\nOpen this URL in your browser to connect Gmail:\n');
281
+ console.log(` ${connectionUrl}\n`);
282
+ console.log('This link expires in 10 minutes and can only be used once.');
283
+ return;
284
+ }
243
285
  const account = await runLoopbackFlow(ctx.config, (url) => {
244
286
  console.log('\nOpen this URL in your browser to authorize Gmail access:\n');
245
287
  console.log(` ${url}\n`);
@@ -614,6 +656,31 @@ configCmd
614
656
  console.log(`${key}=${maskStoredConfigValue(key, value)}`);
615
657
  }
616
658
  });
659
+ const telemetryCmd = program.command('telemetry').description('Manage anonymous usage telemetry');
660
+ telemetryCmd
661
+ .command('disable')
662
+ .description('Stop sending anonymous usage telemetry')
663
+ .action(() => {
664
+ const dataDir = resolveDataDir();
665
+ setTelemetryEnabled(dataDir, false);
666
+ console.log('Telemetry disabled.');
667
+ });
668
+ telemetryCmd
669
+ .command('enable')
670
+ .description('Allow anonymous usage telemetry')
671
+ .action(() => {
672
+ const dataDir = resolveDataDir();
673
+ setTelemetryEnabled(dataDir, true);
674
+ unsetStoredConfig(dataDir, 'FLUXMAIL_TELEMETRY');
675
+ console.log('Telemetry enabled. FLUXMAIL_TELEMETRY=0 or DO_NOT_TRACK=1 can still turn it off.');
676
+ });
677
+ telemetryCmd
678
+ .command('status')
679
+ .description('Show whether anonymous usage telemetry is enabled')
680
+ .action(() => {
681
+ const dataDir = resolveDataDir();
682
+ console.log(`Telemetry is ${isTelemetryEnabled(dataDir) ? 'enabled' : 'disabled'}.`);
683
+ });
617
684
  program
618
685
  .command('status')
619
686
  .description('Show accounts, members, entitlements, and provider availability')
@@ -622,8 +689,9 @@ program
622
689
  warnLicense(ctx.db);
623
690
  console.log(JSON.stringify(await ctx.service.status(), null, 2));
624
691
  });
625
- program.parseAsync(process.argv).catch((err) => {
692
+ program.parseAsync(process.argv).catch(async (err) => {
626
693
  console.error(`Error: ${err instanceof Error ? err.message : String(err)}`);
627
694
  process.exitCode = 1;
695
+ await shutdownTelemetry();
628
696
  });
629
697
  //# sourceMappingURL=cli.js.map
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/config.d.ts CHANGED
@@ -6,6 +6,8 @@ export interface FluxmailConfig {
6
6
  port: number;
7
7
  /** Public base URL of the HTTP server, used to build OAuth redirect URIs. */
8
8
  publicUrl: string;
9
+ /** Whether FLUXMAIL_PUBLIC_URL was explicitly set instead of using the localhost default. */
10
+ publicUrlConfigured?: boolean;
9
11
  /** Port for the ephemeral loopback OAuth listener used by `fluxmail accounts add`. */
10
12
  oauthPort: number;
11
13
  /** Bind address for the OAuth listener. Docker uses 0.0.0.0 so its published port can reach it. */
@@ -31,6 +33,8 @@ export declare function expandHome(p: string): string;
31
33
  /** Resolve (and create) the data dir, honoring cwd .env files and FLUXMAIL_DATA_DIR. */
32
34
  export declare function resolveDataDir(): string;
33
35
  export declare function configFilePath(dataDir: string): string;
36
+ /** Apply settings persisted by `fluxmail config set` without overriding the current environment. */
37
+ export declare function applyStoredConfig(dataDir: string): void;
34
38
  /** Settings persisted by `fluxmail config set`, e.g. GOOGLE_CLIENT_ID. */
35
39
  export declare function readStoredConfig(dataDir: string): Record<string, string>;
36
40
  export declare function setStoredConfig(dataDir: string, key: string, value: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,SAAS,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAkDD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,SAAgB,GAAG,IAAI,CAGpD;AAED,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5C;AAED,wFAAwF;AACxF,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAWD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKxE;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAUjF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxE;AA6DD,wBAAgB,UAAU,IAAI,cAAc,CAkC3C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,SAAS,EAAE,MAAM,CAAC;IAClB,+FAA+F;IAC/F,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAkDD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,GAAG,SAAgB,GAAG,IAAI,CAGpD;AAED,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5C;AAED,wFAAwF;AACxF,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,oGAAoG;AACpG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEvD;AAWD,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKxE;AAID,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAUjF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAMvE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAGxE;AA6DD,wBAAgB,UAAU,IAAI,cAAc,CAoC3C"}
package/dist/config.js CHANGED
@@ -82,6 +82,10 @@ export function resolveDataDir() {
82
82
  export function configFilePath(dataDir) {
83
83
  return path.join(dataDir, 'config.env');
84
84
  }
85
+ /** Apply settings persisted by `fluxmail config set` without overriding the current environment. */
86
+ export function applyStoredConfig(dataDir) {
87
+ applyDotEnvFile(configFilePath(dataDir));
88
+ }
85
89
  /** Best-effort permission tightening: chmod fails on files owned by another user, but the read may still work. */
86
90
  function tryRestrictPermissions(file) {
87
91
  try {
@@ -184,9 +188,10 @@ function loadEncryptionKey(dataDir) {
184
188
  export function loadConfig() {
185
189
  // Precedence: shell env > cwd .env.local > cwd .env > data-dir config.env.
186
190
  const dataDir = resolveDataDir();
187
- applyDotEnvFile(configFilePath(dataDir));
191
+ applyStoredConfig(dataDir);
188
192
  const port = readPort('FLUXMAIL_PORT', 8977);
189
193
  const oauthPort = readPort('FLUXMAIL_OAUTH_PORT', 8976);
194
+ const publicUrlConfigured = process.env.FLUXMAIL_PUBLIC_URL !== undefined;
190
195
  const publicUrl = readPublicUrl(port);
191
196
  const authModeEnv = process.env.FLUXMAIL_AUTH ?? 'apikey';
192
197
  if (authModeEnv !== 'apikey' && authModeEnv !== 'none') {
@@ -198,6 +203,7 @@ export function loadConfig() {
198
203
  encryptionKey: loadEncryptionKey(dataDir),
199
204
  port,
200
205
  publicUrl,
206
+ publicUrlConfigured,
201
207
  oauthPort,
202
208
  oauthHost: process.env.FLUXMAIL_OAUTH_HOST ?? '127.0.0.1',
203
209
  authMode: authModeEnv,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -3,11 +3,13 @@ import { type FluxmailDb } 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 { type Telemetry } from './telemetry.js';
6
7
  export interface AppContext {
7
8
  config: FluxmailConfig;
8
9
  db: FluxmailDb;
9
10
  registry: AccountRegistry;
10
11
  service: EmailService;
12
+ telemetry: Telemetry;
11
13
  /** Inert until start(); only the long-lived serve/stdio commands start it. */
12
14
  scheduler: SendScheduler;
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAU,KAAK,UAAU,EAAE,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;AAE7D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,8EAA8E;IAC9E,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,aAAa,IAAI,UAAU,CAQ1C"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAU,KAAK,UAAU,EAAE,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,EAAgB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,EAAE,EAAE,UAAU,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;IACrB,8EAA8E;IAC9E,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,wBAAgB,aAAa,IAAI,UAAU,CAS1C"}