@agenticmail/enterprise 0.5.65 → 0.5.67

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,47 @@
1
+ import {
2
+ AgentRuntime,
3
+ EmailChannel,
4
+ FollowUpScheduler,
5
+ SessionManager,
6
+ SubAgentManager,
7
+ ToolRegistry,
8
+ callLLM,
9
+ createAgentRuntime,
10
+ createNoopHooks,
11
+ createRuntimeHooks,
12
+ estimateMessageTokens,
13
+ estimateTokens,
14
+ executeTool,
15
+ runAgentLoop,
16
+ toolsToDefinitions
17
+ } from "./chunk-FYYEDVXN.js";
18
+ import "./chunk-TYW5XTOW.js";
19
+ import "./chunk-JLSQOQ5L.js";
20
+ import {
21
+ PROVIDER_REGISTRY,
22
+ listAllProviders,
23
+ resolveApiKeyForProvider,
24
+ resolveProvider
25
+ } from "./chunk-67KZYSLU.js";
26
+ import "./chunk-KFQGP6VL.js";
27
+ export {
28
+ AgentRuntime,
29
+ EmailChannel,
30
+ FollowUpScheduler,
31
+ PROVIDER_REGISTRY,
32
+ SessionManager,
33
+ SubAgentManager,
34
+ ToolRegistry,
35
+ callLLM,
36
+ createAgentRuntime,
37
+ createNoopHooks,
38
+ createRuntimeHooks,
39
+ estimateMessageTokens,
40
+ estimateTokens,
41
+ executeTool,
42
+ listAllProviders,
43
+ resolveApiKeyForProvider,
44
+ resolveProvider,
45
+ runAgentLoop,
46
+ toolsToDefinitions
47
+ };
@@ -0,0 +1,12 @@
1
+ import {
2
+ createServer
3
+ } from "./chunk-CHX4QRYU.js";
4
+ import "./chunk-3SMTCIR4.js";
5
+ import "./chunk-JLSQOQ5L.js";
6
+ import "./chunk-RO537U6H.js";
7
+ import "./chunk-DRXMYYKN.js";
8
+ import "./chunk-67KZYSLU.js";
9
+ import "./chunk-KFQGP6VL.js";
10
+ export {
11
+ createServer
12
+ };
@@ -0,0 +1,12 @@
1
+ import {
2
+ createServer
3
+ } from "./chunk-2BIPHRH2.js";
4
+ import "./chunk-3SMTCIR4.js";
5
+ import "./chunk-JLSQOQ5L.js";
6
+ import "./chunk-RO537U6H.js";
7
+ import "./chunk-DRXMYYKN.js";
8
+ import "./chunk-67KZYSLU.js";
9
+ import "./chunk-KFQGP6VL.js";
10
+ export {
11
+ createServer
12
+ };
@@ -0,0 +1,20 @@
1
+ import {
2
+ promptCompanyInfo,
3
+ promptDatabase,
4
+ promptDeployment,
5
+ promptDomain,
6
+ promptRegistration,
7
+ provision,
8
+ runSetupWizard
9
+ } from "./chunk-2STD5FFE.js";
10
+ import "./chunk-WP76IB36.js";
11
+ import "./chunk-KFQGP6VL.js";
12
+ export {
13
+ promptCompanyInfo,
14
+ promptDatabase,
15
+ promptDeployment,
16
+ promptDomain,
17
+ promptRegistration,
18
+ provision,
19
+ runSetupWizard
20
+ };
@@ -0,0 +1,20 @@
1
+ import {
2
+ promptCompanyInfo,
3
+ promptDatabase,
4
+ promptDeployment,
5
+ promptDomain,
6
+ promptRegistration,
7
+ provision,
8
+ runSetupWizard
9
+ } from "./chunk-ORQTLTFF.js";
10
+ import "./chunk-WP76IB36.js";
11
+ import "./chunk-KFQGP6VL.js";
12
+ export {
13
+ promptCompanyInfo,
14
+ promptDatabase,
15
+ promptDeployment,
16
+ promptDomain,
17
+ promptRegistration,
18
+ provision,
19
+ runSetupWizard
20
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticmail/enterprise",
3
- "version": "0.5.65",
3
+ "version": "0.5.67",
4
4
  "description": "AgenticMail Enterprise — cloud-hosted AI agent identity, email, auth & compliance for organizations",
5
5
  "type": "module",
6
6
  "bin": {
@@ -284,7 +284,6 @@ export function createAuthRoutes(
284
284
 
285
285
  const hasUsers = stats.totalUsers > 0;
286
286
  const hasCompanyName = !!(settings?.name && settings.name !== '' && settings.name !== 'My Company');
287
- const hasSmtp = !!(settings?.smtpHost);
288
287
  const hasAgents = stats.totalAgents > 0;
289
288
 
290
289
  return c.json({
@@ -293,7 +292,6 @@ export function createAuthRoutes(
293
292
  checklist: {
294
293
  adminCreated: hasUsers,
295
294
  companyConfigured: hasCompanyName,
296
- emailConfigured: hasSmtp,
297
295
  agentCreated: hasAgents,
298
296
  },
299
297
  });
@@ -225,35 +225,15 @@ export function SettingsPage() {
225
225
  )
226
226
  ),
227
227
  h('div', { className: 'card' },
228
- h('div', { className: 'card-header' }, h('h3', null, 'SMTP Configuration')),
228
+ h('div', { className: 'card-header' }, h('h3', null, 'Email Configuration')),
229
229
  h('div', { className: 'card-body' },
230
- h('p', { style: { color: 'var(--text-secondary)', fontSize: 13, marginBottom: 16 } }, 'Configure outbound email delivery. Leave blank to use the default AgenticMail relay.'),
231
- h('div', { style: { display: 'grid', gridTemplateColumns: '2fr 1fr', gap: 16 } },
232
- h('div', { className: 'form-group' },
233
- h('label', { className: 'form-label' }, 'SMTP Host'),
234
- h('input', { className: 'input', value: settings.smtpHost || '', onChange: e => setSettings(s => ({ ...s, smtpHost: e.target.value })), placeholder: 'smtp.gmail.com' })
235
- ),
236
- h('div', { className: 'form-group' },
237
- h('label', { className: 'form-label' }, 'SMTP Port'),
238
- h('input', { className: 'input', type: 'number', value: settings.smtpPort || '', onChange: e => setSettings(s => ({ ...s, smtpPort: e.target.value })), placeholder: '587' })
239
- )
240
- ),
241
- h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 16 } },
242
- h('div', { className: 'form-group' },
243
- h('label', { className: 'form-label' }, 'SMTP Username'),
244
- h('input', { className: 'input', value: settings.smtpUser || '', onChange: e => setSettings(s => ({ ...s, smtpUser: e.target.value })), placeholder: 'you@gmail.com' })
245
- ),
246
- h('div', { className: 'form-group' },
247
- h('label', { className: 'form-label' }, 'SMTP Password'),
248
- h('input', { className: 'input', type: 'password', value: settings.smtpPass || '', onChange: e => setSettings(s => ({ ...s, smtpPass: e.target.value })), placeholder: 'App password' })
230
+ h('div', { style: { display: 'flex', alignItems: 'center', gap: 12, padding: 16, background: 'var(--bg-tertiary)', borderRadius: 'var(--radius)' } },
231
+ h('div', { style: { fontSize: 24 } }, '\u2709\uFE0F'),
232
+ h('div', null,
233
+ h('p', { style: { fontSize: 14, fontWeight: 600, marginBottom: 4 } }, 'Email is configured per agent'),
234
+ h('p', { style: { fontSize: 13, color: 'var(--text-muted)' } }, 'Each agent has its own email credentials (IMAP/SMTP, Microsoft 365 OAuth, or Google OAuth). Configure email from each agent\'s detail page under the Email tab.')
249
235
  )
250
- ),
251
- h('div', { className: 'form-group' },
252
- h('label', { className: 'form-label' }, 'DKIM Private Key'),
253
- h('textarea', { className: 'input', value: settings.dkimPrivateKey || '', onChange: e => setSettings(s => ({ ...s, dkimPrivateKey: e.target.value })), placeholder: '-----BEGIN RSA PRIVATE KEY-----', rows: 3, style: { fontFamily: 'var(--font-mono)', fontSize: 11 } }),
254
- h('p', { className: 'form-help' }, 'Optional. Used for email authentication (DKIM signing).')
255
- ),
256
- h('button', { className: 'btn btn-primary', onClick: () => apiCall('/settings', { method: 'PATCH', body: JSON.stringify({ smtpHost: settings.smtpHost || null, smtpPort: settings.smtpPort ? Number(settings.smtpPort) : null, smtpUser: settings.smtpUser || null, smtpPass: settings.smtpPass || null, dkimPrivateKey: settings.dkimPrivateKey || null }) }).then(d => { setSettings(d); toast('SMTP settings saved', 'success'); }).catch(e => toast(e.message, 'error')) }, 'Save SMTP Settings')
236
+ )
257
237
  )
258
238
  ),
259
239
  h('div', { className: 'card', style: { marginTop: 16 } },
@@ -525,6 +525,14 @@ export function createAgentRoutes(opts: {
525
525
  // Save to agent config
526
526
  const _managed = lifecycle.getAgent(agentId); if (_managed) { _managed.config.emailConfig = emailConfig; _managed.updatedAt = new Date().toISOString(); }
527
527
 
528
+ // Also update the primary agents table email if we have one
529
+ if (emailConfig.email) {
530
+ try {
531
+ const adminDb = getAdminDb();
532
+ if (adminDb) await adminDb.updateAgent(agentId, { email: emailConfig.email });
533
+ } catch { /* non-critical */ }
534
+ }
535
+
528
536
  return c.json({
529
537
  success: true,
530
538
  emailConfig: {