@agenticmail/enterprise 0.5.475 → 0.5.476

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.
@@ -138,7 +138,8 @@ export function SettingsPage() {
138
138
  var cfg = d.toolSecurityConfig || {};
139
139
  setToolSec({
140
140
  security: cfg.security || { pathSandbox: { enabled: true, allowedDirs: [], blockedPatterns: [] }, ssrf: { enabled: true, allowedHosts: [], blockedCidrs: [] }, commandSanitizer: { enabled: true, mode: 'blocklist', allowedCommands: [], blockedPatterns: [] } },
141
- middleware: cfg.middleware || { audit: { enabled: true, redactKeys: [] }, rateLimit: { enabled: true, overrides: {} }, circuitBreaker: { enabled: true }, telemetry: { enabled: true } }
141
+ middleware: cfg.middleware || { audit: { enabled: true, redactKeys: [] }, rateLimit: { enabled: true, overrides: {} }, circuitBreaker: { enabled: true }, telemetry: { enabled: true } },
142
+ toolConfig: cfg.toolConfig || {}
142
143
  });
143
144
  }).catch(() => {});
144
145
  apiCall('/settings/firewall').then(function(d) {
@@ -1014,7 +1015,7 @@ export function SettingsPage() {
1014
1015
  tab === 'tool-security' && h(ToolSecurityTab, { toolSec: toolSec, setToolSec: function(v) { setToolSec(v); setToolSecDirty(true); }, saving: toolSecSaving, dirty: toolSecDirty, onSave: function() {
1015
1016
  setToolSecSaving(true);
1016
1017
  apiCall('/settings/tool-security', { method: 'PUT', body: JSON.stringify(toolSec) })
1017
- .then(function(d) { setToolSec({ security: (d.toolSecurityConfig || {}).security || toolSec.security, middleware: (d.toolSecurityConfig || {}).middleware || toolSec.middleware }); setToolSecDirty(false); toast('Tool security settings saved', 'success'); })
1018
+ .then(function(d) { var c = d.toolSecurityConfig || {}; setToolSec({ security: c.security || toolSec.security, middleware: c.middleware || toolSec.middleware, toolConfig: c.toolConfig || toolSec.toolConfig }); setToolSecDirty(false); toast('Tool security settings saved', 'success'); })
1018
1019
  .catch(function(e) { toast(e.message, 'error'); })
1019
1020
  .finally(function() { setToolSecSaving(false); });
1020
1021
  } }),
@@ -1347,17 +1348,29 @@ function ToolSecurityTab(props) {
1347
1348
 
1348
1349
  var sec = toolSec.security || {};
1349
1350
  var mw = toolSec.middleware || {};
1351
+ var tc = toolSec.toolConfig || {};
1352
+ var ws = (tc.web && tc.web.search) || {};
1350
1353
 
1351
1354
  var setSec = function(key, value) {
1352
1355
  var next = Object.assign({}, sec);
1353
1356
  next[key] = value;
1354
- setToolSec({ security: next, middleware: mw });
1357
+ setToolSec({ security: next, middleware: mw, toolConfig: tc });
1355
1358
  };
1356
1359
 
1357
1360
  var setMw = function(key, value) {
1358
1361
  var next = Object.assign({}, mw);
1359
1362
  next[key] = value;
1360
- setToolSec({ security: sec, middleware: next });
1363
+ setToolSec({ security: sec, middleware: next, toolConfig: tc });
1364
+ };
1365
+
1366
+ var setWebSearch = function(field, value) {
1367
+ var nextWs = Object.assign({}, ws);
1368
+ nextWs[field] = value;
1369
+ var nextWeb = Object.assign({}, tc.web || {});
1370
+ nextWeb.search = nextWs;
1371
+ var nextTc = Object.assign({}, tc);
1372
+ nextTc.web = nextWeb;
1373
+ setToolSec({ security: sec, middleware: mw, toolConfig: nextTc });
1361
1374
  };
1362
1375
 
1363
1376
  var patchSec = function(section, field, value) {
@@ -1399,6 +1412,78 @@ function ToolSecurityTab(props) {
1399
1412
  }, saving ? 'Saving...' : 'Save Settings')
1400
1413
  ),
1401
1414
 
1415
+ // ── WEB SEARCH CONFIG ──
1416
+ h('div', { style: _sectionTitleStyle }, 'Web Search'),
1417
+ h('div', { style: _gridStyle },
1418
+ h('div', { style: Object.assign({}, _cardStyle, { gridColumn: '1 / -1' }) },
1419
+ h('div', { style: _cardTitleStyle }, I.globe(), ' Web Search API Keys'),
1420
+ h('div', { style: _cardDescStyle }, 'Configure API keys for agent web search. Without a key, agents fall back to DuckDuckGo (free but limited). Brave is recommended for best results.'),
1421
+ h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 16, marginTop: 12 } },
1422
+ h('div', null,
1423
+ h('label', { style: { fontSize: 13, fontWeight: 500 } }, 'Search Provider'),
1424
+ h('select', {
1425
+ style: { width: '100%', padding: '8px 12px', borderRadius: 8, border: '1px solid var(--border)', background: 'var(--bg-secondary)', color: 'var(--text-primary)', marginTop: 4 },
1426
+ value: ws.provider || 'brave',
1427
+ onChange: function(e) { setWebSearch('provider', e.target.value); }
1428
+ },
1429
+ h('option', { value: 'brave' }, 'Brave Search (recommended)'),
1430
+ h('option', { value: 'perplexity' }, 'Perplexity Sonar'),
1431
+ h('option', { value: 'grok' }, 'xAI Grok')
1432
+ )
1433
+ ),
1434
+ h('div', null,
1435
+ h('label', { style: { fontSize: 13, fontWeight: 500 } }, 'Max Results'),
1436
+ h('input', {
1437
+ type: 'number', min: 1, max: 10,
1438
+ style: { width: '100%', padding: '8px 12px', borderRadius: 8, border: '1px solid var(--border)', background: 'var(--bg-secondary)', color: 'var(--text-primary)', marginTop: 4 },
1439
+ value: ws.maxResults || 5,
1440
+ onChange: function(e) { setWebSearch('maxResults', parseInt(e.target.value) || 5); }
1441
+ })
1442
+ )
1443
+ ),
1444
+ h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: 16, marginTop: 16 } },
1445
+ h('div', null,
1446
+ h('label', { style: { fontSize: 13, fontWeight: 500 } }, 'Brave API Key'),
1447
+ h('input', {
1448
+ type: 'password', placeholder: 'BSA...',
1449
+ style: { width: '100%', padding: '8px 12px', borderRadius: 8, border: '1px solid var(--border)', background: 'var(--bg-secondary)', color: 'var(--text-primary)', marginTop: 4 },
1450
+ value: ws.apiKey || '',
1451
+ onChange: function(e) { setWebSearch('apiKey', e.target.value); }
1452
+ }),
1453
+ h('div', { style: { fontSize: 11, color: 'var(--text-muted)', marginTop: 4 } }, 'Get key at api.search.brave.com')
1454
+ ),
1455
+ h('div', null,
1456
+ h('label', { style: { fontSize: 13, fontWeight: 500 } }, 'Perplexity API Key'),
1457
+ h('input', {
1458
+ type: 'password', placeholder: 'pplx-...',
1459
+ style: { width: '100%', padding: '8px 12px', borderRadius: 8, border: '1px solid var(--border)', background: 'var(--bg-secondary)', color: 'var(--text-primary)', marginTop: 4 },
1460
+ value: (ws.perplexity && ws.perplexity.apiKey) || '',
1461
+ onChange: function(e) {
1462
+ var nextP = Object.assign({}, ws.perplexity || {});
1463
+ nextP.apiKey = e.target.value;
1464
+ setWebSearch('perplexity', nextP);
1465
+ }
1466
+ }),
1467
+ h('div', { style: { fontSize: 11, color: 'var(--text-muted)', marginTop: 4 } }, 'Get key at perplexity.ai')
1468
+ ),
1469
+ h('div', null,
1470
+ h('label', { style: { fontSize: 13, fontWeight: 500 } }, 'xAI / Grok API Key'),
1471
+ h('input', {
1472
+ type: 'password', placeholder: 'xai-...',
1473
+ style: { width: '100%', padding: '8px 12px', borderRadius: 8, border: '1px solid var(--border)', background: 'var(--bg-secondary)', color: 'var(--text-primary)', marginTop: 4 },
1474
+ value: (ws.grok && ws.grok.apiKey) || '',
1475
+ onChange: function(e) {
1476
+ var nextG = Object.assign({}, ws.grok || {});
1477
+ nextG.apiKey = e.target.value;
1478
+ setWebSearch('grok', nextG);
1479
+ }
1480
+ }),
1481
+ h('div', { style: { fontSize: 11, color: 'var(--text-muted)', marginTop: 4 } }, 'Get key at console.x.ai')
1482
+ )
1483
+ )
1484
+ )
1485
+ ),
1486
+
1402
1487
  // ── SECURITY SECTION ──
1403
1488
  h('div', { style: _sectionTitleStyle }, 'Security Sandboxes'),
1404
1489
  h('div', { style: _gridStyle },
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  provision,
9
9
  runSetupWizard
10
- } from "./chunk-EUXDCTOG.js";
10
+ } from "./chunk-J7UP2OA5.js";
11
11
  import {
12
12
  AgenticMailManager,
13
13
  GoogleEmailProvider,
@@ -28,7 +28,7 @@ import {
28
28
  executeTool,
29
29
  runAgentLoop,
30
30
  toolsToDefinitions
31
- } from "./chunk-3S6BEAWO.js";
31
+ } from "./chunk-MXYW4RQ7.js";
32
32
  import "./chunk-CFR5OSMI.js";
33
33
  import {
34
34
  ValidationError,
@@ -43,7 +43,7 @@ import {
43
43
  requireRole,
44
44
  securityHeaders,
45
45
  validate
46
- } from "./chunk-JDZHIZHW.js";
46
+ } from "./chunk-QM4H2GJM.js";
47
47
  import "./chunk-DJBCRQTD.js";
48
48
  import {
49
49
  PROVIDER_REGISTRY,
@@ -0,0 +1,50 @@
1
+ import {
2
+ AgentRuntime,
3
+ EmailChannel,
4
+ FollowUpScheduler,
5
+ SessionManager,
6
+ SubAgentManager,
7
+ ToolRegistry,
8
+ ageStaleMessages,
9
+ callLLM,
10
+ createAgentRuntime,
11
+ createNoopHooks,
12
+ createRuntimeHooks,
13
+ estimateMessageTokens,
14
+ estimateTokens,
15
+ executeTool,
16
+ runAgentLoop,
17
+ toolsToDefinitions,
18
+ truncateToolResults
19
+ } from "./chunk-MXYW4RQ7.js";
20
+ import "./chunk-CFR5OSMI.js";
21
+ import {
22
+ PROVIDER_REGISTRY,
23
+ listAllProviders,
24
+ resolveApiKeyForProvider,
25
+ resolveProvider
26
+ } from "./chunk-UF3ZJMJO.js";
27
+ import "./chunk-KFQGP6VL.js";
28
+ export {
29
+ AgentRuntime,
30
+ EmailChannel,
31
+ FollowUpScheduler,
32
+ PROVIDER_REGISTRY,
33
+ SessionManager,
34
+ SubAgentManager,
35
+ ToolRegistry,
36
+ ageStaleMessages,
37
+ callLLM,
38
+ createAgentRuntime,
39
+ createNoopHooks,
40
+ createRuntimeHooks,
41
+ estimateMessageTokens,
42
+ estimateTokens,
43
+ executeTool,
44
+ listAllProviders,
45
+ resolveApiKeyForProvider,
46
+ resolveProvider,
47
+ runAgentLoop,
48
+ toolsToDefinitions,
49
+ truncateToolResults
50
+ };
@@ -0,0 +1,50 @@
1
+ import {
2
+ AgentRuntime,
3
+ EmailChannel,
4
+ FollowUpScheduler,
5
+ SessionManager,
6
+ SubAgentManager,
7
+ ToolRegistry,
8
+ ageStaleMessages,
9
+ callLLM,
10
+ createAgentRuntime,
11
+ createNoopHooks,
12
+ createRuntimeHooks,
13
+ estimateMessageTokens,
14
+ estimateTokens,
15
+ executeTool,
16
+ runAgentLoop,
17
+ toolsToDefinitions,
18
+ truncateToolResults
19
+ } from "./chunk-4U77GQRU.js";
20
+ import "./chunk-CFR5OSMI.js";
21
+ import {
22
+ PROVIDER_REGISTRY,
23
+ listAllProviders,
24
+ resolveApiKeyForProvider,
25
+ resolveProvider
26
+ } from "./chunk-UF3ZJMJO.js";
27
+ import "./chunk-KFQGP6VL.js";
28
+ export {
29
+ AgentRuntime,
30
+ EmailChannel,
31
+ FollowUpScheduler,
32
+ PROVIDER_REGISTRY,
33
+ SessionManager,
34
+ SubAgentManager,
35
+ ToolRegistry,
36
+ ageStaleMessages,
37
+ callLLM,
38
+ createAgentRuntime,
39
+ createNoopHooks,
40
+ createRuntimeHooks,
41
+ estimateMessageTokens,
42
+ estimateTokens,
43
+ executeTool,
44
+ listAllProviders,
45
+ resolveApiKeyForProvider,
46
+ resolveProvider,
47
+ runAgentLoop,
48
+ toolsToDefinitions,
49
+ truncateToolResults
50
+ };
@@ -0,0 +1,36 @@
1
+ import {
2
+ createServer
3
+ } from "./chunk-QM4H2GJM.js";
4
+ import "./chunk-DJBCRQTD.js";
5
+ import "./chunk-UF3ZJMJO.js";
6
+ import "./chunk-DHPOGY7C.js";
7
+ import "./chunk-3UAFHUEC.js";
8
+ import "./chunk-Z7NVD3OQ.js";
9
+ import "./chunk-VSBC4SWO.js";
10
+ import "./chunk-AF3WSNVX.js";
11
+ import "./chunk-74ZCQKYU.js";
12
+ import "./chunk-ZNLABJCS.js";
13
+ import "./chunk-FQWJMPKW.js";
14
+ import "./chunk-WYDVMFGJ.js";
15
+ import "./chunk-IHPLR7EK.js";
16
+ import "./chunk-PSZU6FMQ.js";
17
+ import "./chunk-XFM5P2LE.js";
18
+ import "./chunk-ZB3VC2MR.js";
19
+ import "./chunk-I5IGHBXW.js";
20
+ import "./chunk-FWA7OIDL.js";
21
+ import "./chunk-WUAWWKTN.js";
22
+ import "./chunk-SDETR7MX.js";
23
+ import "./chunk-SP6ZE3MA.js";
24
+ import "./chunk-CVFIM72Q.js";
25
+ import "./chunk-7JDCMIZM.js";
26
+ import "./chunk-YDD5TC5Q.js";
27
+ import "./chunk-37ABTUFU.js";
28
+ import "./chunk-NU657BBQ.js";
29
+ import "./chunk-PGAU3W3M.js";
30
+ import "./chunk-FLQ5FLHW.js";
31
+ import "./chunk-YJ6RNSFH.js";
32
+ import "./chunk-22U7TZPN.js";
33
+ import "./chunk-KFQGP6VL.js";
34
+ export {
35
+ createServer
36
+ };
@@ -0,0 +1,36 @@
1
+ import {
2
+ createServer
3
+ } from "./chunk-TZDUALWO.js";
4
+ import "./chunk-DJBCRQTD.js";
5
+ import "./chunk-UF3ZJMJO.js";
6
+ import "./chunk-DHPOGY7C.js";
7
+ import "./chunk-3UAFHUEC.js";
8
+ import "./chunk-Z7NVD3OQ.js";
9
+ import "./chunk-VSBC4SWO.js";
10
+ import "./chunk-AF3WSNVX.js";
11
+ import "./chunk-74ZCQKYU.js";
12
+ import "./chunk-ZNLABJCS.js";
13
+ import "./chunk-FQWJMPKW.js";
14
+ import "./chunk-WYDVMFGJ.js";
15
+ import "./chunk-IHPLR7EK.js";
16
+ import "./chunk-PSZU6FMQ.js";
17
+ import "./chunk-XFM5P2LE.js";
18
+ import "./chunk-ZB3VC2MR.js";
19
+ import "./chunk-I5IGHBXW.js";
20
+ import "./chunk-FWA7OIDL.js";
21
+ import "./chunk-WUAWWKTN.js";
22
+ import "./chunk-SDETR7MX.js";
23
+ import "./chunk-SP6ZE3MA.js";
24
+ import "./chunk-CVFIM72Q.js";
25
+ import "./chunk-7JDCMIZM.js";
26
+ import "./chunk-YDD5TC5Q.js";
27
+ import "./chunk-37ABTUFU.js";
28
+ import "./chunk-NU657BBQ.js";
29
+ import "./chunk-PGAU3W3M.js";
30
+ import "./chunk-FLQ5FLHW.js";
31
+ import "./chunk-YJ6RNSFH.js";
32
+ import "./chunk-22U7TZPN.js";
33
+ import "./chunk-KFQGP6VL.js";
34
+ export {
35
+ createServer
36
+ };
@@ -0,0 +1,20 @@
1
+ import {
2
+ promptCompanyInfo,
3
+ promptDatabase,
4
+ promptDeployment,
5
+ promptDomain,
6
+ promptRegistration,
7
+ provision,
8
+ runSetupWizard
9
+ } from "./chunk-J7UP2OA5.js";
10
+ import "./chunk-HPIK224M.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-POKAN44M.js";
10
+ import "./chunk-HPIK224M.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.475",
3
+ "version": "0.5.476",
4
4
  "description": "AgenticMail Enterprise — cloud-hosted AI agent identity, email, auth & compliance for organizations",
5
5
  "type": "module",
6
6
  "bin": {