@agenticmail/enterprise 0.5.216 → 0.5.218

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.
@@ -4,12 +4,12 @@ import { HelpButton } from '../components/help-button.js';
4
4
 
5
5
  // ─── Constants ───────────────────────────────────────────
6
6
  var NODE_W = 200;
7
- var NODE_H = 64;
8
- var AGENT_W = 160;
9
- var AGENT_H = 52;
10
- var H_GAP = 48; // horizontal gap (left→right flow)
11
- var V_GAP = 24; // vertical gap between lanes
12
- var PAD = 40;
7
+ var NODE_H = 52;
8
+ var AGENT_W = 130;
9
+ var AGENT_H = 40;
10
+ var H_GAP = 32; // horizontal gap (left→right flow)
11
+ var V_GAP = 12; // vertical gap between lanes
12
+ var PAD = 16;
13
13
 
14
14
  var STATUS_COLORS = { created: '#6366f1', assigned: '#f59e0b', in_progress: '#06b6d4', completed: '#22c55e', failed: '#ef4444', cancelled: '#6b7394' };
15
15
  var PRIORITY_COLORS = { urgent: '#ef4444', high: '#f59e0b', normal: '#6366f1', low: '#6b7394' };
@@ -35,7 +35,7 @@ function injectCSS() {
35
35
  .tp-flow-active { animation: flowDash 1.2s linear infinite; }
36
36
  .tp-node-active { animation: taskPulse 2s ease-in-out infinite; }
37
37
  .tp-node:hover { transform: scale(1.03); z-index: 10; }
38
- .tp-chain-tag { font-size: 9px; padding: 1px 5px; border-radius: 4px; font-weight: 600; letter-spacing: 0.02em; }
38
+ .tp-chain-tag { font-size: 9px; padding: 1px 5px; border-radius: 4px; font-weight: 600; letter-spacing: 0.02em; white-space: nowrap; flex-shrink: 0; }
39
39
  `;
40
40
  document.head.appendChild(style);
41
41
  }
@@ -116,7 +116,7 @@ function layoutChains(tasks) {
116
116
  title: firstTask.title,
117
117
  });
118
118
 
119
- y += maxH + V_GAP + 16; // extra space between chains
119
+ y += maxH + V_GAP + 8; // space between chains
120
120
  });
121
121
 
122
122
  // Layout orphans as simple rows per agent
@@ -151,7 +151,7 @@ function circularPath(from, to) {
151
151
  var y1 = from.y + from.h / 2;
152
152
  var x2 = to.x;
153
153
  var y2 = to.y + to.h / 2;
154
- var lift = 40;
154
+ var lift = 28;
155
155
  var topY = Math.min(y1, y2) - lift;
156
156
  return 'M ' + x1 + ' ' + y1 + ' C ' + (x1 + 50) + ' ' + topY + ', ' + (x2 - 50) + ' ' + topY + ', ' + x2 + ' ' + y2;
157
157
  }
@@ -706,8 +706,8 @@ export function TaskPipelinePage() {
706
706
  position: 'absolute', left: node.x, top: node.y, width: node.w, height: node.h,
707
707
  background: isHovered ? 'rgba(255,255,255,0.06)' : 'rgba(255,255,255,0.02)',
708
708
  border: '1px solid ' + (isExpanded ? sc : isHovered || isChainHl ? sc + '66' : 'rgba(255,255,255,0.1)'),
709
- borderLeft: '3px solid ' + sc,
710
- borderRadius: 10, padding: '6px 10px', cursor: 'pointer',
709
+ /* borderLeft removed */
710
+ borderRadius: 6, padding: '5px 8px', cursor: 'pointer', overflow: 'hidden',
711
711
  transition: 'all 0.15s', opacity: dim ? 0.15 : 1,
712
712
  backdropFilter: 'blur(6px)',
713
713
  display: 'flex', flexDirection: 'column', justifyContent: 'center', gap: 3, userSelect: 'none',
@@ -716,16 +716,16 @@ export function TaskPipelinePage() {
716
716
  // Agent + title row
717
717
  h('div', { style: { display: 'flex', alignItems: 'center', gap: 5 } },
718
718
  (agentMap[t.assignedTo] && agentMap[t.assignedTo].avatar)
719
- ? h('img', { src: agentMap[t.assignedTo].avatar, style: { width: 20, height: 20, borderRadius: '50%', border: '1.5px solid ' + sc + '66', objectFit: 'cover', flexShrink: 0 } })
720
- : h('div', { style: { width: 20, height: 20, borderRadius: '50%', background: sc + '33', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: 8, fontWeight: 700, color: sc, flexShrink: 0, border: '1px solid ' + sc + '44' } },
719
+ ? h('img', { src: agentMap[t.assignedTo].avatar, style: { width: 16, height: 16, borderRadius: '50%', border: '1px solid ' + sc + '66', objectFit: 'cover', flexShrink: 0 } })
720
+ : h('div', { style: { width: 16, height: 16, borderRadius: '50%', background: sc + '33', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: 7, fontWeight: 700, color: sc, flexShrink: 0, border: '1px solid ' + sc + '44' } },
721
721
  (t.assignedToName || t.assignedTo || '?').charAt(0).toUpperCase()
722
722
  ),
723
- h('span', { style: { fontSize: 11, fontWeight: 600, color: 'var(--tp-text)', flex: 1, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' } }, t.title)
723
+ h('span', { style: { fontSize: 10, fontWeight: 600, color: 'var(--tp-text)', flex: 1, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' } }, t.title)
724
724
  ),
725
725
  // Status + agent name + time
726
- h('div', { style: { display: 'flex', alignItems: 'center', gap: 4, flexWrap: 'wrap' } },
726
+ h('div', { style: { display: 'flex', alignItems: 'center', gap: 4, flexWrap: 'nowrap', overflow: 'hidden' } },
727
727
  tag(sc, t.status.replace('_', ' ')),
728
- h('span', { style: { fontSize: 9, color: 'var(--tp-text-dim)' } }, t.assignedToName || t.assignedTo),
728
+ h('span', { style: { fontSize: 9, color: 'var(--tp-text-dim)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', minWidth: 0 } }, t.assignedToName || t.assignedTo),
729
729
  t.delegationType && tag(DELEGATION_COLORS[t.delegationType] || '#6b7394', t.delegationType),
730
730
  h('span', { style: { fontSize: 9, color: 'var(--tp-text-dim)', marginLeft: 'auto' } }, timeAgo(t.createdAt))
731
731
  ),
@@ -743,9 +743,9 @@ export function TaskPipelinePage() {
743
743
  if (!anchor) return null;
744
744
  var flowY = anchor.y + anchor.h + 20;
745
745
  var flowX = anchor.x;
746
- var STEP_W = 120;
747
- var STEP_H = 44;
748
- var STEP_GAP = 48;
746
+ var STEP_W = 100;
747
+ var STEP_H = 36;
748
+ var STEP_GAP = 32;
749
749
  var ARROW_W = STEP_GAP;
750
750
 
751
751
  // Build person-centric flow steps: createdBy → assignedTo for each chain task, then final status
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agenticmail/enterprise",
3
- "version": "0.5.216",
3
+ "version": "0.5.218",
4
4
  "description": "AgenticMail Enterprise — cloud-hosted AI agent identity, email, auth & compliance for organizations",
5
5
  "type": "module",
6
6
  "bin": {
@@ -4,12 +4,12 @@ import { HelpButton } from '../components/help-button.js';
4
4
 
5
5
  // ─── Constants ───────────────────────────────────────────
6
6
  var NODE_W = 200;
7
- var NODE_H = 64;
8
- var AGENT_W = 160;
9
- var AGENT_H = 52;
10
- var H_GAP = 48; // horizontal gap (left→right flow)
11
- var V_GAP = 24; // vertical gap between lanes
12
- var PAD = 40;
7
+ var NODE_H = 52;
8
+ var AGENT_W = 130;
9
+ var AGENT_H = 40;
10
+ var H_GAP = 32; // horizontal gap (left→right flow)
11
+ var V_GAP = 12; // vertical gap between lanes
12
+ var PAD = 16;
13
13
 
14
14
  var STATUS_COLORS = { created: '#6366f1', assigned: '#f59e0b', in_progress: '#06b6d4', completed: '#22c55e', failed: '#ef4444', cancelled: '#6b7394' };
15
15
  var PRIORITY_COLORS = { urgent: '#ef4444', high: '#f59e0b', normal: '#6366f1', low: '#6b7394' };
@@ -35,7 +35,7 @@ function injectCSS() {
35
35
  .tp-flow-active { animation: flowDash 1.2s linear infinite; }
36
36
  .tp-node-active { animation: taskPulse 2s ease-in-out infinite; }
37
37
  .tp-node:hover { transform: scale(1.03); z-index: 10; }
38
- .tp-chain-tag { font-size: 9px; padding: 1px 5px; border-radius: 4px; font-weight: 600; letter-spacing: 0.02em; }
38
+ .tp-chain-tag { font-size: 9px; padding: 1px 5px; border-radius: 4px; font-weight: 600; letter-spacing: 0.02em; white-space: nowrap; flex-shrink: 0; }
39
39
  `;
40
40
  document.head.appendChild(style);
41
41
  }
@@ -116,7 +116,7 @@ function layoutChains(tasks) {
116
116
  title: firstTask.title,
117
117
  });
118
118
 
119
- y += maxH + V_GAP + 16; // extra space between chains
119
+ y += maxH + V_GAP + 8; // space between chains
120
120
  });
121
121
 
122
122
  // Layout orphans as simple rows per agent
@@ -151,7 +151,7 @@ function circularPath(from, to) {
151
151
  var y1 = from.y + from.h / 2;
152
152
  var x2 = to.x;
153
153
  var y2 = to.y + to.h / 2;
154
- var lift = 40;
154
+ var lift = 28;
155
155
  var topY = Math.min(y1, y2) - lift;
156
156
  return 'M ' + x1 + ' ' + y1 + ' C ' + (x1 + 50) + ' ' + topY + ', ' + (x2 - 50) + ' ' + topY + ', ' + x2 + ' ' + y2;
157
157
  }
@@ -706,8 +706,8 @@ export function TaskPipelinePage() {
706
706
  position: 'absolute', left: node.x, top: node.y, width: node.w, height: node.h,
707
707
  background: isHovered ? 'rgba(255,255,255,0.06)' : 'rgba(255,255,255,0.02)',
708
708
  border: '1px solid ' + (isExpanded ? sc : isHovered || isChainHl ? sc + '66' : 'rgba(255,255,255,0.1)'),
709
- borderLeft: '3px solid ' + sc,
710
- borderRadius: 10, padding: '6px 10px', cursor: 'pointer',
709
+ /* borderLeft removed */
710
+ borderRadius: 6, padding: '5px 8px', cursor: 'pointer', overflow: 'hidden',
711
711
  transition: 'all 0.15s', opacity: dim ? 0.15 : 1,
712
712
  backdropFilter: 'blur(6px)',
713
713
  display: 'flex', flexDirection: 'column', justifyContent: 'center', gap: 3, userSelect: 'none',
@@ -716,16 +716,16 @@ export function TaskPipelinePage() {
716
716
  // Agent + title row
717
717
  h('div', { style: { display: 'flex', alignItems: 'center', gap: 5 } },
718
718
  (agentMap[t.assignedTo] && agentMap[t.assignedTo].avatar)
719
- ? h('img', { src: agentMap[t.assignedTo].avatar, style: { width: 20, height: 20, borderRadius: '50%', border: '1.5px solid ' + sc + '66', objectFit: 'cover', flexShrink: 0 } })
720
- : h('div', { style: { width: 20, height: 20, borderRadius: '50%', background: sc + '33', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: 8, fontWeight: 700, color: sc, flexShrink: 0, border: '1px solid ' + sc + '44' } },
719
+ ? h('img', { src: agentMap[t.assignedTo].avatar, style: { width: 16, height: 16, borderRadius: '50%', border: '1px solid ' + sc + '66', objectFit: 'cover', flexShrink: 0 } })
720
+ : h('div', { style: { width: 16, height: 16, borderRadius: '50%', background: sc + '33', display: 'flex', alignItems: 'center', justifyContent: 'center', fontSize: 7, fontWeight: 700, color: sc, flexShrink: 0, border: '1px solid ' + sc + '44' } },
721
721
  (t.assignedToName || t.assignedTo || '?').charAt(0).toUpperCase()
722
722
  ),
723
- h('span', { style: { fontSize: 11, fontWeight: 600, color: 'var(--tp-text)', flex: 1, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' } }, t.title)
723
+ h('span', { style: { fontSize: 10, fontWeight: 600, color: 'var(--tp-text)', flex: 1, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' } }, t.title)
724
724
  ),
725
725
  // Status + agent name + time
726
- h('div', { style: { display: 'flex', alignItems: 'center', gap: 4, flexWrap: 'wrap' } },
726
+ h('div', { style: { display: 'flex', alignItems: 'center', gap: 4, flexWrap: 'nowrap', overflow: 'hidden' } },
727
727
  tag(sc, t.status.replace('_', ' ')),
728
- h('span', { style: { fontSize: 9, color: 'var(--tp-text-dim)' } }, t.assignedToName || t.assignedTo),
728
+ h('span', { style: { fontSize: 9, color: 'var(--tp-text-dim)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', minWidth: 0 } }, t.assignedToName || t.assignedTo),
729
729
  t.delegationType && tag(DELEGATION_COLORS[t.delegationType] || '#6b7394', t.delegationType),
730
730
  h('span', { style: { fontSize: 9, color: 'var(--tp-text-dim)', marginLeft: 'auto' } }, timeAgo(t.createdAt))
731
731
  ),
@@ -743,9 +743,9 @@ export function TaskPipelinePage() {
743
743
  if (!anchor) return null;
744
744
  var flowY = anchor.y + anchor.h + 20;
745
745
  var flowX = anchor.x;
746
- var STEP_W = 120;
747
- var STEP_H = 44;
748
- var STEP_GAP = 48;
746
+ var STEP_W = 100;
747
+ var STEP_H = 36;
748
+ var STEP_GAP = 32;
749
749
  var ARROW_W = STEP_GAP;
750
750
 
751
751
  // Build person-centric flow steps: createdBy → assignedTo for each chain task, then final status