@agenticmail/enterprise 0.5.93 → 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.
@@ -3746,35 +3746,36 @@ function DeploymentSection(props) {
3746
3746
 
3747
3747
  var startDeployEdit = function() {
3748
3748
  setDeployForm({
3749
- target: deployment.target || 'docker',
3750
- region: deployment.region || 'iad',
3749
+ target: deployment.target || 'fly',
3750
+ region: deployment.region || deployment.config?.cloud?.region || 'iad',
3751
3751
  imageTag: (deployment.config?.docker?.tag) || deployment.imageTag || 'latest',
3752
3752
  memory: (deployment.config?.docker?.memory) || deployment.memory || '512m',
3753
3753
  cpu: (deployment.config?.docker?.cpu) || deployment.cpu || '0.5',
3754
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 || '',
3755
3760
  });
3756
3761
  setEditingDeploy(true);
3757
3762
  };
3758
3763
 
3759
3764
  var saveDeploy = function() {
3760
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
+ }
3761
3774
  var updates = {
3762
3775
  deployment: {
3763
3776
  target: deployForm.target,
3764
3777
  region: deployForm.region,
3765
- imageTag: deployForm.imageTag,
3766
- memory: deployForm.memory,
3767
- cpu: deployForm.cpu,
3768
- config: {
3769
- docker: {
3770
- image: 'agenticmail/agent',
3771
- tag: deployForm.imageTag,
3772
- ports: deployForm.ports.split(',').map(function(p) { return parseInt(p.trim()) || 3000; }),
3773
- memory: deployForm.memory,
3774
- cpu: deployForm.cpu,
3775
- restart: 'unless-stopped',
3776
- }
3777
- }
3778
+ config: deployConfig
3778
3779
  }
3779
3780
  };
3780
3781
  var isRunning = ea.state === 'running' || ea.state === 'active' || ea.state === 'degraded';
@@ -3861,7 +3862,18 @@ function DeploymentSection(props) {
3861
3862
  )
3862
3863
  )
3863
3864
  ),
3864
- (deployForm.target === 'docker' || deployForm.target === 'fly') && h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr 1fr 1fr', gap: 16 } },
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 } },
3865
3877
  h('div', { className: 'form-group' },
3866
3878
  h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'Image Tag'),
3867
3879
  h('input', { className: 'input', value: deployForm.imageTag, onChange: function(e) { setDf('imageTag', e.target.value); } })
@@ -3878,6 +3890,20 @@ function DeploymentSection(props) {
3878
3890
  h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'Ports'),
3879
3891
  h('input', { className: 'input', value: deployForm.ports, onChange: function(e) { setDf('ports', e.target.value); }, placeholder: '3000' })
3880
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
+ )
3881
3907
  )
3882
3908
  )
3883
3909
  ),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticmail/enterprise",
3
- "version": "0.5.93",
3
+ "version": "0.5.94",
4
4
  "description": "AgenticMail Enterprise — cloud-hosted AI agent identity, email, auth & compliance for organizations",
5
5
  "type": "module",
6
6
  "bin": {
@@ -3746,35 +3746,36 @@ function DeploymentSection(props) {
3746
3746
 
3747
3747
  var startDeployEdit = function() {
3748
3748
  setDeployForm({
3749
- target: deployment.target || 'docker',
3750
- region: deployment.region || 'iad',
3749
+ target: deployment.target || 'fly',
3750
+ region: deployment.region || deployment.config?.cloud?.region || 'iad',
3751
3751
  imageTag: (deployment.config?.docker?.tag) || deployment.imageTag || 'latest',
3752
3752
  memory: (deployment.config?.docker?.memory) || deployment.memory || '512m',
3753
3753
  cpu: (deployment.config?.docker?.cpu) || deployment.cpu || '0.5',
3754
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 || '',
3755
3760
  });
3756
3761
  setEditingDeploy(true);
3757
3762
  };
3758
3763
 
3759
3764
  var saveDeploy = function() {
3760
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
+ }
3761
3774
  var updates = {
3762
3775
  deployment: {
3763
3776
  target: deployForm.target,
3764
3777
  region: deployForm.region,
3765
- imageTag: deployForm.imageTag,
3766
- memory: deployForm.memory,
3767
- cpu: deployForm.cpu,
3768
- config: {
3769
- docker: {
3770
- image: 'agenticmail/agent',
3771
- tag: deployForm.imageTag,
3772
- ports: deployForm.ports.split(',').map(function(p) { return parseInt(p.trim()) || 3000; }),
3773
- memory: deployForm.memory,
3774
- cpu: deployForm.cpu,
3775
- restart: 'unless-stopped',
3776
- }
3777
- }
3778
+ config: deployConfig
3778
3779
  }
3779
3780
  };
3780
3781
  var isRunning = ea.state === 'running' || ea.state === 'active' || ea.state === 'degraded';
@@ -3861,7 +3862,18 @@ function DeploymentSection(props) {
3861
3862
  )
3862
3863
  )
3863
3864
  ),
3864
- (deployForm.target === 'docker' || deployForm.target === 'fly') && h('div', { style: { display: 'grid', gridTemplateColumns: '1fr 1fr 1fr 1fr', gap: 16 } },
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 } },
3865
3877
  h('div', { className: 'form-group' },
3866
3878
  h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'Image Tag'),
3867
3879
  h('input', { className: 'input', value: deployForm.imageTag, onChange: function(e) { setDf('imageTag', e.target.value); } })
@@ -3878,6 +3890,20 @@ function DeploymentSection(props) {
3878
3890
  h('label', { style: { display: 'block', fontSize: 12, fontWeight: 600, color: 'var(--text-secondary)', marginBottom: 4 } }, 'Ports'),
3879
3891
  h('input', { className: 'input', value: deployForm.ports, onChange: function(e) { setDf('ports', e.target.value); }, placeholder: '3000' })
3880
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
+ )
3881
3907
  )
3882
3908
  )
3883
3909
  ),