@essentialai/cogent-bridge 3.14.1 → 3.16.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.
Files changed (42) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/cloud/mail-credential-store.d.ts +46 -0
  3. package/dist/cloud/mail-credential-store.d.ts.map +1 -0
  4. package/dist/cloud/mail-credential-store.js +80 -0
  5. package/dist/cloud/mail-credential-store.js.map +1 -0
  6. package/dist/index.js +6 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/mail/mail-fetcher.d.ts +112 -0
  9. package/dist/mail/mail-fetcher.d.ts.map +1 -0
  10. package/dist/mail/mail-fetcher.js +186 -0
  11. package/dist/mail/mail-fetcher.js.map +1 -0
  12. package/dist/mail/mail-sender.d.ts +64 -0
  13. package/dist/mail/mail-sender.d.ts.map +1 -0
  14. package/dist/mail/mail-sender.js +68 -0
  15. package/dist/mail/mail-sender.js.map +1 -0
  16. package/dist/mail/validate.d.ts +4 -0
  17. package/dist/mail/validate.d.ts.map +1 -0
  18. package/dist/mail/validate.js +16 -0
  19. package/dist/mail/validate.js.map +1 -0
  20. package/dist/services/auto-relay.d.ts +11 -0
  21. package/dist/services/auto-relay.d.ts.map +1 -1
  22. package/dist/services/auto-relay.js +45 -0
  23. package/dist/services/auto-relay.js.map +1 -1
  24. package/dist/tools/fetch-mail.d.ts +16 -0
  25. package/dist/tools/fetch-mail.d.ts.map +1 -0
  26. package/dist/tools/fetch-mail.js +55 -0
  27. package/dist/tools/fetch-mail.js.map +1 -0
  28. package/dist/tools/register-peer.d.ts.map +1 -1
  29. package/dist/tools/register-peer.js +13 -0
  30. package/dist/tools/register-peer.js.map +1 -1
  31. package/dist/tools/send-mail.d.ts +16 -0
  32. package/dist/tools/send-mail.d.ts.map +1 -0
  33. package/dist/tools/send-mail.js +49 -0
  34. package/dist/tools/send-mail.js.map +1 -0
  35. package/dist/tools/setup-mail.d.ts +10 -0
  36. package/dist/tools/setup-mail.d.ts.map +1 -0
  37. package/dist/tools/setup-mail.js +47 -0
  38. package/dist/tools/setup-mail.js.map +1 -0
  39. package/dist/types.d.ts +11 -0
  40. package/dist/types.d.ts.map +1 -1
  41. package/package.json +3 -1
  42. package/server.json +2 -2
@@ -0,0 +1,47 @@
1
+ import { z } from "zod";
2
+ import { successResult, errorResult } from "../errors.js";
3
+ import { saveMailCredentials, MAIL_DEFAULT_HOST } from "../cloud/mail-credential-store.js";
4
+ import { assertValidEmail } from "../mail/validate.js";
5
+ const DEFAULT_MAIL_HOST = MAIL_DEFAULT_HOST;
6
+ /**
7
+ * cogent_setup_mail — store this agent's mailbox credentials locally (Cogent Mail M2).
8
+ * The operator provisions the mailbox in the admin Mail panel (M1), which shows the
9
+ * address + password ONCE; the agent runs this tool to save them to its per-cwd 0600
10
+ * store so cogent_send_mail / cogent_fetch_mail can use them. (Auto-provision on register
11
+ * is a deferred follow-up — see the M2.7 design note.)
12
+ */
13
+ export function registerSetupMailTool(server) {
14
+ server.registerTool("cogent_setup_mail", {
15
+ title: "Configure this agent's mailbox",
16
+ description: "Store the agent's mailbox address + password (from the admin Mail panel) locally so " +
17
+ "cogent_send_mail and cogent_fetch_mail can use them. Hosts default to mail.cogent.tools " +
18
+ "(IMAP 993 / SMTP 465).",
19
+ inputSchema: {
20
+ address: z.string().describe("Full mailbox address, e.g. claude-agent-backend@mail.cogent.tools"),
21
+ password: z.string().describe("Mailbox password (shown once in the admin Mail panel on create/rotate)"),
22
+ imapHost: z.string().optional().describe(`IMAP host (default ${DEFAULT_MAIL_HOST})`),
23
+ imapPort: z.number().int().positive().optional().describe("IMAP port (default 993)"),
24
+ smtpHost: z.string().optional().describe(`SMTP host (default ${DEFAULT_MAIL_HOST})`),
25
+ smtpPort: z.number().int().positive().optional().describe("SMTP submission port (default 465)"),
26
+ },
27
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
28
+ }, async ({ address, password, imapHost, imapPort, smtpHost, smtpPort }) => {
29
+ try {
30
+ assertValidEmail(address, "address"); // reject fat-finger creds before persisting
31
+ await saveMailCredentials({
32
+ address,
33
+ password,
34
+ imapHost: imapHost ?? DEFAULT_MAIL_HOST,
35
+ imapPort: imapPort ?? 993,
36
+ smtpHost: smtpHost ?? DEFAULT_MAIL_HOST,
37
+ smtpPort: smtpPort ?? 465,
38
+ savedAt: new Date().toISOString(),
39
+ });
40
+ return successResult({ configured: true, address });
41
+ }
42
+ catch (err) {
43
+ return errorResult(err);
44
+ }
45
+ });
46
+ }
47
+ //# sourceMappingURL=setup-mail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-mail.js","sourceRoot":"","sources":["../../src/tools/setup-mail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAiB;IACrD,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,gCAAgC;QACvC,WAAW,EACT,sFAAsF;YACtF,0FAA0F;YAC1F,wBAAwB;QAC1B,WAAW,EAAE;YACX,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mEAAmE,CAAC;YACjG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wEAAwE,CAAC;YACvG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,iBAAiB,GAAG,CAAC;YACpF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACpF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,iBAAiB,GAAG,CAAC;YACpF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SAChG;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;KACzG,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACtE,IAAI,CAAC;YACH,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,4CAA4C;YAClF,MAAM,mBAAmB,CAAC;gBACxB,OAAO;gBACP,QAAQ;gBACR,QAAQ,EAAE,QAAQ,IAAI,iBAAiB;gBACvC,QAAQ,EAAE,QAAQ,IAAI,GAAG;gBACzB,QAAQ,EAAE,QAAQ,IAAI,iBAAiB;gBACvC,QAAQ,EAAE,QAAQ,IAAI,GAAG;gBACzB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC,CAAC,CAAC;YACH,OAAO,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
package/dist/types.d.ts CHANGED
@@ -39,6 +39,17 @@ export interface PeerInfo {
39
39
  workspaceId?: string;
40
40
  /** Durable thread/conversation identifier (Slice 5 / Story 8.6). On the wire; optional. */
41
41
  threadId?: string;
42
+ /**
43
+ * Cogent Mail auto-provisioned mailbox (M2.7). Present ONLY on a cloud register RESPONSE
44
+ * for a Team channel where the relay minted (or resolved) this peer's mailbox via the
45
+ * control-plane provisioner. `password` is returned ONCE (on first create / explicit rotate)
46
+ * and is never persisted server-side — the bridge saves it to its local 0600 store and drops
47
+ * it. Absent on free channels and on re-registers that don't re-issue a password.
48
+ */
49
+ mailbox?: {
50
+ address: string;
51
+ password?: string;
52
+ };
42
53
  }
43
54
  export interface MessageRecord {
44
55
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;CAC7D;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC;IACnD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC;IAC5B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;CAC7D;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC;IACnD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@essentialai/cogent-bridge",
3
- "version": "3.14.1",
3
+ "version": "3.16.0",
4
4
  "description": "MCP server for inter-Claude-Code session communication bridge",
5
5
  "type": "module",
6
6
  "workspaces": [
@@ -66,6 +66,8 @@
66
66
  "dependencies": {
67
67
  "@essentialai/cogent": "^3.6.0",
68
68
  "@modelcontextprotocol/sdk": "^1.6.1",
69
+ "imapflow": "^1.6.6",
70
+ "nodemailer": "^6.10.1",
69
71
  "ws": "^8.19.0",
70
72
  "zod": "^3.23.8"
71
73
  },
package/server.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "io.github.eaisdevelopment/cogent",
4
4
  "title": "Cogent Bridge from Essential AI Solutions (essentialai.uk)",
5
5
  "description": "MCP bridge for inter-session communication between Claude Code instances",
6
- "version": "3.14.1",
6
+ "version": "3.16.0",
7
7
  "repository": {
8
8
  "url": "https://github.com/eaisdevelopment/cogent",
9
9
  "source": "github"
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "@essentialai/cogent-bridge",
15
- "version": "3.14.1",
15
+ "version": "3.16.0",
16
16
  "runtimeHint": "npx",
17
17
  "transport": {
18
18
  "type": "stdio"