@agenticmail/enterprise 0.5.92 → 0.5.94
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.
- package/dist/chunk-ACYJBORO.js +15813 -0
- package/dist/chunk-D32BZJ7N.js +2191 -0
- package/dist/chunk-GR24RTBU.js +9137 -0
- package/dist/chunk-RKF2TYZA.js +898 -0
- package/dist/cli.js +1 -1
- package/dist/dashboard/pages/agent-detail.js +69 -36
- package/dist/index.js +4 -4
- package/dist/routes-YI4FNOZ6.js +6938 -0
- package/dist/runtime-HLWNKSTZ.js +49 -0
- package/dist/server-Y6EEPFQB.js +12 -0
- package/dist/setup-UPB3GJT6.js +20 -0
- package/package.json +1 -1
- package/src/dashboard/pages/agent-detail.js +69 -36
- package/src/engine/deployer.ts +36 -0
- package/src/engine/lifecycle.ts +1 -0
package/dist/cli.js
CHANGED
|
@@ -298,29 +298,36 @@ function OverviewSection(props) {
|
|
|
298
298
|
h('div', { style: { display: 'flex', alignItems: 'center', gap: 8, marginBottom: 12 } },
|
|
299
299
|
onboardingStatus?.onboarded
|
|
300
300
|
? h('span', { className: 'badge badge-success' }, I.check(), ' Onboarded')
|
|
301
|
-
: onboardingStatus?.
|
|
302
|
-
? h('span', { className: 'badge badge-info' }, I.clock(), ' In Progress')
|
|
301
|
+
: onboardingStatus?.totalPolicies > 0
|
|
302
|
+
? h('span', { className: 'badge badge-info' }, I.clock(), ' In Progress (' + (onboardingStatus.acknowledgedPolicies || 0) + '/' + onboardingStatus.totalPolicies + ')')
|
|
303
303
|
: h('span', { className: 'badge badge-warning' }, 'Not Onboarded')
|
|
304
304
|
),
|
|
305
|
-
onboardingStatus?.
|
|
306
|
-
'
|
|
305
|
+
onboardingStatus?.totalPolicies > 0 && !onboardingStatus?.onboarded && h('div', { style: { fontSize: 12, color: 'var(--text-muted)', marginBottom: 4 } },
|
|
306
|
+
'Agent will complete onboarding automatically on first run.'
|
|
307
307
|
),
|
|
308
|
-
!onboardingStatus?.onboarded &&
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
308
|
+
!onboardingStatus?.onboarded && h('div', { style: { display: 'flex', gap: 8, marginTop: 8 } },
|
|
309
|
+
!onboardingStatus?.totalPolicies && h('button', {
|
|
310
|
+
className: 'btn btn-primary btn-sm',
|
|
311
|
+
disabled: acting === 'onboard',
|
|
312
|
+
onClick: initiateOnboarding
|
|
313
|
+
}, acting === 'onboard' ? 'Starting...' : 'Start Onboarding'),
|
|
314
|
+
h('button', {
|
|
315
|
+
className: 'btn btn-ghost btn-sm',
|
|
316
|
+
disabled: acting === 'forceComplete',
|
|
317
|
+
onClick: function() {
|
|
318
|
+
setActing('forceComplete');
|
|
319
|
+
var initFirst = !onboardingStatus?.totalPolicies
|
|
320
|
+
? engineCall('/onboarding/initiate/' + agentId, { method: 'POST', body: JSON.stringify({ orgId: getOrgId() }) })
|
|
321
|
+
: Promise.resolve();
|
|
322
|
+
initFirst.then(function() {
|
|
323
|
+
return engineCall('/onboarding/force-complete/' + agentId, { method: 'POST', body: JSON.stringify({ adminId: 'admin' }) });
|
|
324
|
+
})
|
|
325
|
+
.then(function() { toast('Onboarding completed', 'success'); reload(); })
|
|
326
|
+
.catch(function(err) { toast(err.message, 'error'); })
|
|
327
|
+
.finally(function() { setActing(null); });
|
|
328
|
+
}
|
|
329
|
+
}, acting === 'forceComplete' ? 'Completing...' : 'Skip — Force Complete')
|
|
330
|
+
)
|
|
324
331
|
)
|
|
325
332
|
),
|
|
326
333
|
|
|
@@ -3739,35 +3746,36 @@ function DeploymentSection(props) {
|
|
|
3739
3746
|
|
|
3740
3747
|
var startDeployEdit = function() {
|
|
3741
3748
|
setDeployForm({
|
|
3742
|
-
target: deployment.target || '
|
|
3743
|
-
region: deployment.region || 'iad',
|
|
3749
|
+
target: deployment.target || 'fly',
|
|
3750
|
+
region: deployment.region || deployment.config?.cloud?.region || 'iad',
|
|
3744
3751
|
imageTag: (deployment.config?.docker?.tag) || deployment.imageTag || 'latest',
|
|
3745
3752
|
memory: (deployment.config?.docker?.memory) || deployment.memory || '512m',
|
|
3746
3753
|
cpu: (deployment.config?.docker?.cpu) || deployment.cpu || '0.5',
|
|
3747
3754
|
ports: (deployment.config?.docker?.ports || [3000]).join(', '),
|
|
3755
|
+
flyApiToken: deployment.config?.cloud?.apiToken || '',
|
|
3756
|
+
flyAppName: deployment.config?.cloud?.appName || '',
|
|
3757
|
+
vpsHost: deployment.config?.vps?.host || '',
|
|
3758
|
+
vpsUser: deployment.config?.vps?.user || 'root',
|
|
3759
|
+
vpsKeyPath: deployment.config?.vps?.keyPath || '',
|
|
3748
3760
|
});
|
|
3749
3761
|
setEditingDeploy(true);
|
|
3750
3762
|
};
|
|
3751
3763
|
|
|
3752
3764
|
var saveDeploy = function() {
|
|
3753
3765
|
setSavingDeploy(true);
|
|
3766
|
+
var deployConfig = {};
|
|
3767
|
+
if (deployForm.target === 'fly') {
|
|
3768
|
+
deployConfig = { cloud: { provider: 'fly', region: deployForm.region || 'iad', apiToken: deployForm.flyApiToken || undefined, appName: deployForm.flyAppName || undefined } };
|
|
3769
|
+
} else if (deployForm.target === 'docker') {
|
|
3770
|
+
deployConfig = { docker: { image: 'agenticmail/agent', tag: deployForm.imageTag, ports: deployForm.ports.split(',').map(function(p) { return parseInt(p.trim()) || 3000; }), memory: deployForm.memory, cpu: deployForm.cpu, restart: 'unless-stopped' } };
|
|
3771
|
+
} else if (deployForm.target === 'vps') {
|
|
3772
|
+
deployConfig = { vps: { host: deployForm.vpsHost || '', user: deployForm.vpsUser || 'root', keyPath: deployForm.vpsKeyPath || '' } };
|
|
3773
|
+
}
|
|
3754
3774
|
var updates = {
|
|
3755
3775
|
deployment: {
|
|
3756
3776
|
target: deployForm.target,
|
|
3757
3777
|
region: deployForm.region,
|
|
3758
|
-
|
|
3759
|
-
memory: deployForm.memory,
|
|
3760
|
-
cpu: deployForm.cpu,
|
|
3761
|
-
config: {
|
|
3762
|
-
docker: {
|
|
3763
|
-
image: 'agenticmail/agent',
|
|
3764
|
-
tag: deployForm.imageTag,
|
|
3765
|
-
ports: deployForm.ports.split(',').map(function(p) { return parseInt(p.trim()) || 3000; }),
|
|
3766
|
-
memory: deployForm.memory,
|
|
3767
|
-
cpu: deployForm.cpu,
|
|
3768
|
-
restart: 'unless-stopped',
|
|
3769
|
-
}
|
|
3770
|
-
}
|
|
3778
|
+
config: deployConfig
|
|
3771
3779
|
}
|
|
3772
3780
|
};
|
|
3773
3781
|
var isRunning = ea.state === 'running' || ea.state === 'active' || ea.state === 'degraded';
|
|
@@ -3854,7 +3862,18 @@ function DeploymentSection(props) {
|
|
|
3854
3862
|
)
|
|
3855
3863
|
)
|
|
3856
3864
|
),
|
|
3857
|
-
|
|
3865
|
+
deployForm.target === 'fly' && h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 16 } },
|
|
3866
|
+
h('div', { className: 'form-group' },
|
|
3867
|
+
h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'Fly.io API Token'),
|
|
3868
|
+
h('input', { className: 'input', type: 'password', value: deployForm.flyApiToken, onChange: function(e) { setDf('flyApiToken', e.target.value); }, placeholder: 'fo1_...' }),
|
|
3869
|
+
h('div', { style: { fontSize: 11, color: 'var(--text-muted)', marginTop: 2 } }, 'From fly.io/user/personal_access_tokens')
|
|
3870
|
+
),
|
|
3871
|
+
h('div', { className: 'form-group' },
|
|
3872
|
+
h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'App Name (optional)'),
|
|
3873
|
+
h('input', { className: 'input', value: deployForm.flyAppName, onChange: function(e) { setDf('flyAppName', e.target.value); }, placeholder: 'Auto-generated if empty' })
|
|
3874
|
+
)
|
|
3875
|
+
),
|
|
3876
|
+
deployForm.target === 'docker' && h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr 1fr 1fr', gap: 16 } },
|
|
3858
3877
|
h('div', { className: 'form-group' },
|
|
3859
3878
|
h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'Image Tag'),
|
|
3860
3879
|
h('input', { className: 'input', value: deployForm.imageTag, onChange: function(e) { setDf('imageTag', e.target.value); } })
|
|
@@ -3871,6 +3890,20 @@ function DeploymentSection(props) {
|
|
|
3871
3890
|
h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'Ports'),
|
|
3872
3891
|
h('input', { className: 'input', value: deployForm.ports, onChange: function(e) { setDf('ports', e.target.value); }, placeholder: '3000' })
|
|
3873
3892
|
)
|
|
3893
|
+
),
|
|
3894
|
+
deployForm.target === 'vps' && h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr 1fr', gap: 16 } },
|
|
3895
|
+
h('div', { className: 'form-group' },
|
|
3896
|
+
h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'Host'),
|
|
3897
|
+
h('input', { className: 'input', value: deployForm.vpsHost, onChange: function(e) { setDf('vpsHost', e.target.value); }, placeholder: '192.168.1.100' })
|
|
3898
|
+
),
|
|
3899
|
+
h('div', { className: 'form-group' },
|
|
3900
|
+
h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'User'),
|
|
3901
|
+
h('input', { className: 'input', value: deployForm.vpsUser, onChange: function(e) { setDf('vpsUser', e.target.value); }, placeholder: 'root' })
|
|
3902
|
+
),
|
|
3903
|
+
h('div', { className: 'form-group' },
|
|
3904
|
+
h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'SSH Key Path'),
|
|
3905
|
+
h('input', { className: 'input', value: deployForm.vpsKeyPath, onChange: function(e) { setDf('vpsKeyPath', e.target.value); }, placeholder: '~/.ssh/id_rsa' })
|
|
3906
|
+
)
|
|
3874
3907
|
)
|
|
3875
3908
|
)
|
|
3876
3909
|
),
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
TenantManager,
|
|
21
21
|
WorkforceManager,
|
|
22
22
|
init_guardrails
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-GR24RTBU.js";
|
|
24
24
|
import {
|
|
25
25
|
AgentRuntime,
|
|
26
26
|
EmailChannel,
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
executeTool,
|
|
36
36
|
runAgentLoop,
|
|
37
37
|
toolsToDefinitions
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-ACYJBORO.js";
|
|
39
39
|
import "./chunk-NRF3YRF7.js";
|
|
40
40
|
import "./chunk-TYW5XTOW.js";
|
|
41
41
|
import "./chunk-AQH4DFYV.js";
|
|
@@ -52,11 +52,11 @@ import {
|
|
|
52
52
|
requireRole,
|
|
53
53
|
securityHeaders,
|
|
54
54
|
validate
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-D32BZJ7N.js";
|
|
56
56
|
import {
|
|
57
57
|
provision,
|
|
58
58
|
runSetupWizard
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-RKF2TYZA.js";
|
|
60
60
|
import {
|
|
61
61
|
ENGINE_TABLES,
|
|
62
62
|
ENGINE_TABLES_POSTGRES,
|