@agenticmail/enterprise 0.4.3 → 0.5.1

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.
Files changed (159) hide show
  1. package/README.md +608 -923
  2. package/dashboards/django/app.py +12 -0
  3. package/dashboards/django/static/styles.css +449 -246
  4. package/dashboards/django/templates/activity.html +130 -0
  5. package/dashboards/django/templates/approvals.html +115 -0
  6. package/dashboards/django/templates/community-skills.html +89 -0
  7. package/dashboards/django/templates/domain-status.html +59 -0
  8. package/dashboards/django/templates/knowledge-contributions.html +58 -0
  9. package/dashboards/django/templates/knowledge.html +104 -0
  10. package/dashboards/django/templates/layout.html +161 -36
  11. package/dashboards/django/templates/skill-connections.html +73 -0
  12. package/dashboards/django/templates/workforce.html +116 -0
  13. package/dashboards/django/views/__init__.py +14 -0
  14. package/dashboards/django/views/new_pages.py +38 -0
  15. package/dashboards/dotnet/Program.cs +8 -0
  16. package/dashboards/dotnet/Routes/ActivityRoutes.cs +35 -0
  17. package/dashboards/dotnet/Routes/ApprovalRoutes.cs +36 -0
  18. package/dashboards/dotnet/Routes/CommunitySkillRoutes.cs +36 -0
  19. package/dashboards/dotnet/Routes/DomainStatusRoutes.cs +49 -0
  20. package/dashboards/dotnet/Routes/KnowledgeContributionRoutes.cs +42 -0
  21. package/dashboards/dotnet/Routes/KnowledgeRoutes.cs +40 -0
  22. package/dashboards/dotnet/Routes/SkillConnectionRoutes.cs +52 -0
  23. package/dashboards/dotnet/Routes/WorkforceRoutes.cs +55 -0
  24. package/dashboards/dotnet/Services/HtmlBuilder.cs +17 -8
  25. package/dashboards/dotnet/wwwroot/styles.css +508 -246
  26. package/dashboards/express/app.js +8 -0
  27. package/dashboards/express/public/styles.css +163 -272
  28. package/dashboards/express/routes/activity.js +101 -0
  29. package/dashboards/express/routes/approvals.js +100 -0
  30. package/dashboards/express/routes/community-skills.js +83 -0
  31. package/dashboards/express/routes/domain-status.js +78 -0
  32. package/dashboards/express/routes/knowledge-contributions.js +85 -0
  33. package/dashboards/express/routes/knowledge.js +83 -0
  34. package/dashboards/express/routes/skill-connections.js +86 -0
  35. package/dashboards/express/routes/workforce.js +126 -0
  36. package/dashboards/express/views/layout.js +54 -33
  37. package/dashboards/go/handlers/activity.go +30 -0
  38. package/dashboards/go/handlers/approvals.go +31 -0
  39. package/dashboards/go/handlers/community_skills.go +32 -0
  40. package/dashboards/go/handlers/domain_status.go +62 -0
  41. package/dashboards/go/handlers/knowledge.go +35 -0
  42. package/dashboards/go/handlers/knowledge_contributions.go +37 -0
  43. package/dashboards/go/handlers/skill_connections.go +59 -0
  44. package/dashboards/go/handlers/workforce.go +60 -0
  45. package/dashboards/go/main.go +8 -0
  46. package/dashboards/go/static/styles.css +508 -246
  47. package/dashboards/go/templates/layout.go +16 -11
  48. package/dashboards/html/index.html +136 -15
  49. package/dashboards/html/public/styles.css +531 -134
  50. package/dashboards/html/src/pages/activity.js +137 -0
  51. package/dashboards/html/src/pages/approvals.js +155 -0
  52. package/dashboards/html/src/pages/community-skills.js +236 -0
  53. package/dashboards/html/src/pages/domain-status.js +182 -0
  54. package/dashboards/html/src/pages/knowledge-contributions.js +319 -0
  55. package/dashboards/html/src/pages/knowledge.js +251 -0
  56. package/dashboards/html/src/pages/skill-connections.js +293 -0
  57. package/dashboards/html/src/pages/workforce.js +418 -0
  58. package/dashboards/html/src/router.js +51 -0
  59. package/dashboards/java/AgenticMailDashboard.java +8 -0
  60. package/dashboards/java/handlers/ActivityHandler.java +42 -0
  61. package/dashboards/java/handlers/ApprovalsHandler.java +43 -0
  62. package/dashboards/java/handlers/CommunitySkillsHandler.java +45 -0
  63. package/dashboards/java/handlers/DomainStatusHandler.java +58 -0
  64. package/dashboards/java/handlers/KnowledgeContributionsHandler.java +51 -0
  65. package/dashboards/java/handlers/KnowledgeHandler.java +49 -0
  66. package/dashboards/java/handlers/SkillConnectionsHandler.java +61 -0
  67. package/dashboards/java/handlers/WorkforceHandler.java +64 -0
  68. package/dashboards/java/static/styles.css +508 -250
  69. package/dashboards/java/templates/Layout.java +14 -6
  70. package/dashboards/laravel/controllers/ActivityController.php +18 -0
  71. package/dashboards/laravel/controllers/ApprovalsController.php +18 -0
  72. package/dashboards/laravel/controllers/CommunitySkillsController.php +18 -0
  73. package/dashboards/laravel/controllers/DomainStatusController.php +18 -0
  74. package/dashboards/laravel/controllers/KnowledgeContributionsController.php +18 -0
  75. package/dashboards/laravel/controllers/KnowledgeController.php +18 -0
  76. package/dashboards/laravel/controllers/SkillConnectionsController.php +18 -0
  77. package/dashboards/laravel/controllers/WorkforceController.php +18 -0
  78. package/dashboards/laravel/index.php +56 -0
  79. package/dashboards/laravel/public/styles.css +163 -279
  80. package/dashboards/laravel/views/activity.php +127 -0
  81. package/dashboards/laravel/views/approvals.php +152 -0
  82. package/dashboards/laravel/views/community-skills.php +131 -0
  83. package/dashboards/laravel/views/domain-status.php +167 -0
  84. package/dashboards/laravel/views/knowledge-contributions.php +185 -0
  85. package/dashboards/laravel/views/knowledge.php +167 -0
  86. package/dashboards/laravel/views/layout.php +54 -41
  87. package/dashboards/laravel/views/skill-connections.php +192 -0
  88. package/dashboards/laravel/views/workforce.php +265 -0
  89. package/dashboards/php/components/layout.php +21 -16
  90. package/dashboards/php/index.php +1 -1
  91. package/dashboards/php/pages/activity.php +35 -0
  92. package/dashboards/php/pages/approvals.php +36 -0
  93. package/dashboards/php/pages/community-skills.php +39 -0
  94. package/dashboards/php/pages/domain-status.php +87 -0
  95. package/dashboards/php/pages/knowledge-contributions.php +47 -0
  96. package/dashboards/php/pages/knowledge.php +43 -0
  97. package/dashboards/php/pages/skill-connections.php +94 -0
  98. package/dashboards/php/pages/workforce.php +89 -0
  99. package/dashboards/php/public/styles.css +168 -74
  100. package/dashboards/python/app.py +16 -0
  101. package/dashboards/python/routes/activity.py +11 -0
  102. package/dashboards/python/routes/approvals.py +11 -0
  103. package/dashboards/python/routes/community_skills.py +11 -0
  104. package/dashboards/python/routes/domain_status.py +11 -0
  105. package/dashboards/python/routes/knowledge.py +11 -0
  106. package/dashboards/python/routes/knowledge_contributions.py +11 -0
  107. package/dashboards/python/routes/skill_connections.py +11 -0
  108. package/dashboards/python/routes/workforce.py +11 -0
  109. package/dashboards/python/static/styles.css +163 -276
  110. package/dashboards/python/templates/activity.html +87 -0
  111. package/dashboards/python/templates/approvals.html +86 -0
  112. package/dashboards/python/templates/community-skills.html +69 -0
  113. package/dashboards/python/templates/domain-status.html +64 -0
  114. package/dashboards/python/templates/knowledge-contributions.html +71 -0
  115. package/dashboards/python/templates/knowledge.html +69 -0
  116. package/dashboards/python/templates/layout.html +103 -68
  117. package/dashboards/python/templates/skill-connections.html +72 -0
  118. package/dashboards/python/templates/workforce.html +112 -0
  119. package/dashboards/rails/app.rb +8 -0
  120. package/dashboards/rails/public/styles.css +506 -259
  121. package/dashboards/rails/routes/activity.rb +10 -0
  122. package/dashboards/rails/routes/approvals.rb +10 -0
  123. package/dashboards/rails/routes/community_skills.rb +11 -0
  124. package/dashboards/rails/routes/domain_status.rb +16 -0
  125. package/dashboards/rails/routes/knowledge.rb +11 -0
  126. package/dashboards/rails/routes/knowledge_contributions.rb +12 -0
  127. package/dashboards/rails/routes/skill_connections.rb +15 -0
  128. package/dashboards/rails/routes/workforce.rb +16 -0
  129. package/dashboards/rails/views/activity.erb +56 -0
  130. package/dashboards/rails/views/approvals.erb +60 -0
  131. package/dashboards/rails/views/community_skills.erb +69 -0
  132. package/dashboards/rails/views/domain_status.erb +75 -0
  133. package/dashboards/rails/views/knowledge.erb +67 -0
  134. package/dashboards/rails/views/knowledge_contributions.erb +70 -0
  135. package/dashboards/rails/views/layout.erb +23 -15
  136. package/dashboards/rails/views/skill_connections.erb +109 -0
  137. package/dashboards/rails/views/workforce.erb +124 -0
  138. package/dashboards/ruby/app.rb +8 -0
  139. package/dashboards/ruby/public/styles.css +506 -254
  140. package/dashboards/ruby/routes/activity.rb +10 -0
  141. package/dashboards/ruby/routes/approvals.rb +10 -0
  142. package/dashboards/ruby/routes/community_skills.rb +11 -0
  143. package/dashboards/ruby/routes/domain_status.rb +16 -0
  144. package/dashboards/ruby/routes/knowledge.rb +11 -0
  145. package/dashboards/ruby/routes/knowledge_contributions.rb +12 -0
  146. package/dashboards/ruby/routes/skill_connections.rb +15 -0
  147. package/dashboards/ruby/routes/workforce.rb +16 -0
  148. package/dashboards/ruby/views/activity.erb +56 -0
  149. package/dashboards/ruby/views/approvals.erb +60 -0
  150. package/dashboards/ruby/views/community_skills.erb +69 -0
  151. package/dashboards/ruby/views/domain_status.erb +75 -0
  152. package/dashboards/ruby/views/knowledge.erb +67 -0
  153. package/dashboards/ruby/views/knowledge_contributions.erb +70 -0
  154. package/dashboards/ruby/views/layout.erb +22 -13
  155. package/dashboards/ruby/views/skill_connections.erb +109 -0
  156. package/dashboards/ruby/views/workforce.erb +124 -0
  157. package/dashboards/shared/styles.css +505 -281
  158. package/dashboards/shared-styles.css +534 -45
  159. package/package.json +1 -1
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Activity page - Shows recent agent activity and system events
3
+ */
4
+ function renderActivity() {
5
+ return `
6
+ <div class="page-title">Activity</div>
7
+
8
+ <div class="stat-grid">
9
+ <div class="stat-card">
10
+ <div class="stat-label">Total Events</div>
11
+ <div class="stat-value">2,847</div>
12
+ <div class="stat-change" style="color: var(--success)">+12% this week</div>
13
+ </div>
14
+ <div class="stat-card">
15
+ <div class="stat-label">Agent Actions</div>
16
+ <div class="stat-value">1,923</div>
17
+ <div class="stat-change" style="color: var(--success)">+8% this week</div>
18
+ </div>
19
+ <div class="stat-card">
20
+ <div class="stat-label">System Events</div>
21
+ <div class="stat-value">924</div>
22
+ <div class="stat-change" style="color: var(--text-muted)">No change</div>
23
+ </div>
24
+ </div>
25
+
26
+ <div class="card">
27
+ <div class="card-header">
28
+ <h3>Recent Activity</h3>
29
+ <div>
30
+ <select class="input" style="width: auto; margin-right: 8px;">
31
+ <option>All Events</option>
32
+ <option>Agent Actions</option>
33
+ <option>System Events</option>
34
+ <option>Security Events</option>
35
+ </select>
36
+ <button class="btn btn-secondary">
37
+ <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
38
+ <path d="M3 14.25V1.75a.75.75 0 0 1 1.5 0v12.5a.75.75 0 0 1-1.5 0zM8.5 1.75a.75.75 0 0 0-1.5 0v12.5a.75.75 0 0 0 1.5 0V1.75zM13 1.75a.75.75 0 0 0-1.5 0v12.5a.75.75 0 0 0 1.5 0V1.75z"/>
39
+ </svg>
40
+ Filter
41
+ </button>
42
+ </div>
43
+ </div>
44
+ <div class="card-body">
45
+ <div style="overflow-x: auto;">
46
+ <table>
47
+ <thead>
48
+ <tr>
49
+ <th>Time</th>
50
+ <th>Event</th>
51
+ <th>Agent</th>
52
+ <th>Details</th>
53
+ <th>Status</th>
54
+ </tr>
55
+ </thead>
56
+ <tbody>
57
+ <tr>
58
+ <td>2 mins ago</td>
59
+ <td>Email sent</td>
60
+ <td>
61
+ <div style="display: flex; align-items: center; gap: 8px;">
62
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--accent-soft); color: var(--accent-text); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">A</div>
63
+ Alice
64
+ </div>
65
+ </td>
66
+ <td>Sent monthly report to stakeholders</td>
67
+ <td><span class="badge badge-success">Success</span></td>
68
+ </tr>
69
+ <tr>
70
+ <td>5 mins ago</td>
71
+ <td>Knowledge updated</td>
72
+ <td>
73
+ <div style="display: flex; align-items: center; gap: 8px;">
74
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--success-soft); color: var(--success); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">B</div>
75
+ Bob
76
+ </div>
77
+ </td>
78
+ <td>Updated customer service protocols</td>
79
+ <td><span class="badge badge-success">Success</span></td>
80
+ </tr>
81
+ <tr>
82
+ <td>12 mins ago</td>
83
+ <td>Agent deployed</td>
84
+ <td>
85
+ <div style="display: flex; align-items: center; gap: 8px;">
86
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--warning-soft); color: var(--warning); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">C</div>
87
+ Charlie
88
+ </div>
89
+ </td>
90
+ <td>Deployed to production environment</td>
91
+ <td><span class="badge badge-success">Success</span></td>
92
+ </tr>
93
+ <tr>
94
+ <td>18 mins ago</td>
95
+ <td>Skill learned</td>
96
+ <td>
97
+ <div style="display: flex; align-items: center; gap: 8px;">
98
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--info-soft); color: var(--info); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">D</div>
99
+ Diana
100
+ </div>
101
+ </td>
102
+ <td>Acquired new data analysis skill</td>
103
+ <td><span class="badge badge-success">Success</span></td>
104
+ </tr>
105
+ <tr>
106
+ <td>25 mins ago</td>
107
+ <td>System backup</td>
108
+ <td>
109
+ <div style="display: flex; align-items: center; gap: 8px;">
110
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--bg-tertiary); color: var(--text-muted); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">S</div>
111
+ System
112
+ </div>
113
+ </td>
114
+ <td>Automated backup completed</td>
115
+ <td><span class="badge badge-success">Success</span></td>
116
+ </tr>
117
+ <tr>
118
+ <td>32 mins ago</td>
119
+ <td>Connection failed</td>
120
+ <td>
121
+ <div style="display: flex; align-items: center; gap: 8px;">
122
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--accent-soft); color: var(--accent-text); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">A</div>
123
+ Alice
124
+ </div>
125
+ </td>
126
+ <td>Failed to connect to external API</td>
127
+ <td><span class="badge badge-danger">Failed</span></td>
128
+ </tr>
129
+ </tbody>
130
+ </table>
131
+ </div>
132
+ </div>
133
+ </div>
134
+ `;
135
+ }
136
+
137
+ export { renderActivity };
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Approvals page - Manage agent action approvals and permissions
3
+ */
4
+ function renderApprovals() {
5
+ return `
6
+ <div class="page-title">Approvals</div>
7
+
8
+ <div class="stat-grid">
9
+ <div class="stat-card">
10
+ <div class="stat-label">Pending Approvals</div>
11
+ <div class="stat-value">7</div>
12
+ <div class="stat-change" style="color: var(--warning)">Requires attention</div>
13
+ </div>
14
+ <div class="stat-card">
15
+ <div class="stat-label">Approved Today</div>
16
+ <div class="stat-value">23</div>
17
+ <div class="stat-change" style="color: var(--success)">+15% vs yesterday</div>
18
+ </div>
19
+ <div class="stat-card">
20
+ <div class="stat-label">Auto-approved</div>
21
+ <div class="stat-value">156</div>
22
+ <div class="stat-change" style="color: var(--text-muted)">Automated</div>
23
+ </div>
24
+ </div>
25
+
26
+ <div class="card">
27
+ <div class="card-header">
28
+ <h3>Pending Approvals</h3>
29
+ <div>
30
+ <button class="btn btn-secondary">
31
+ <svg width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
32
+ <path d="M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z"/>
33
+ <path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.061L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/>
34
+ </svg>
35
+ Approve All
36
+ </button>
37
+ </div>
38
+ </div>
39
+ <div class="card-body">
40
+ <div style="overflow-x: auto;">
41
+ <table>
42
+ <thead>
43
+ <tr>
44
+ <th>Agent</th>
45
+ <th>Action</th>
46
+ <th>Details</th>
47
+ <th>Risk Level</th>
48
+ <th>Requested</th>
49
+ <th>Actions</th>
50
+ </tr>
51
+ </thead>
52
+ <tbody>
53
+ <tr>
54
+ <td>
55
+ <div style="display: flex; align-items: center; gap: 8px;">
56
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--accent-soft); color: var(--accent-text); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">A</div>
57
+ Alice
58
+ </div>
59
+ </td>
60
+ <td>Send Email</td>
61
+ <td>Marketing campaign to 5,000 subscribers</td>
62
+ <td><span class="badge badge-warning">Medium</span></td>
63
+ <td>5 mins ago</td>
64
+ <td>
65
+ <button class="btn btn-sm" style="background: var(--success); color: white; margin-right: 4px;">Approve</button>
66
+ <button class="btn btn-sm btn-danger">Deny</button>
67
+ </td>
68
+ </tr>
69
+ <tr>
70
+ <td>
71
+ <div style="display: flex; align-items: center; gap: 8px;">
72
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--success-soft); color: var(--success); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">B</div>
73
+ Bob
74
+ </div>
75
+ </td>
76
+ <td>Database Update</td>
77
+ <td>Update customer preferences table</td>
78
+ <td><span class="badge badge-danger">High</span></td>
79
+ <td>12 mins ago</td>
80
+ <td>
81
+ <button class="btn btn-sm" style="background: var(--success); color: white; margin-right: 4px;">Approve</button>
82
+ <button class="btn btn-sm btn-danger">Deny</button>
83
+ </td>
84
+ </tr>
85
+ <tr>
86
+ <td>
87
+ <div style="display: flex; align-items: center; gap: 8px;">
88
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--warning-soft); color: var(--warning); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">C</div>
89
+ Charlie
90
+ </div>
91
+ </td>
92
+ <td>API Call</td>
93
+ <td>Call external payment processing API</td>
94
+ <td><span class="badge badge-danger">High</span></td>
95
+ <td>18 mins ago</td>
96
+ <td>
97
+ <button class="btn btn-sm" style="background: var(--success); color: white; margin-right: 4px;">Approve</button>
98
+ <button class="btn btn-sm btn-danger">Deny</button>
99
+ </td>
100
+ </tr>
101
+ <tr>
102
+ <td>
103
+ <div style="display: flex; align-items: center; gap: 8px;">
104
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--info-soft); color: var(--info); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">D</div>
105
+ Diana
106
+ </div>
107
+ </td>
108
+ <td>File Access</td>
109
+ <td>Read sensitive customer data files</td>
110
+ <td><span class="badge badge-warning">Medium</span></td>
111
+ <td>25 mins ago</td>
112
+ <td>
113
+ <button class="btn btn-sm" style="background: var(--success); color: white; margin-right: 4px;">Approve</button>
114
+ <button class="btn btn-sm btn-danger">Deny</button>
115
+ </td>
116
+ </tr>
117
+ <tr>
118
+ <td>
119
+ <div style="display: flex; align-items: center; gap: 8px;">
120
+ <div style="width: 24px; height: 24px; border-radius: 50%; background: var(--accent-soft); color: var(--accent-text); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600;">E</div>
121
+ Eve
122
+ </div>
123
+ </td>
124
+ <td>System Command</td>
125
+ <td>Execute system maintenance script</td>
126
+ <td><span class="badge badge-success">Low</span></td>
127
+ <td>32 mins ago</td>
128
+ <td>
129
+ <button class="btn btn-sm" style="background: var(--success); color: white; margin-right: 4px;">Approve</button>
130
+ <button class="btn btn-sm btn-danger">Deny</button>
131
+ </td>
132
+ </tr>
133
+ </tbody>
134
+ </table>
135
+ </div>
136
+ </div>
137
+ </div>
138
+
139
+ <div class="card" style="margin-top: 24px;">
140
+ <div class="card-header">
141
+ <h3>Approval Rules</h3>
142
+ <button class="btn btn-secondary">Add Rule</button>
143
+ </div>
144
+ <div class="card-body">
145
+ <div class="empty-state">
146
+ <h3>No custom approval rules configured</h3>
147
+ <p>Set up automatic approval rules to streamline your workflow</p>
148
+ <button class="btn btn-secondary">Create Rule</button>
149
+ </div>
150
+ </div>
151
+ </div>
152
+ `;
153
+ }
154
+
155
+ export { renderApprovals };
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Community Skills page - Browse and install skills from the community
3
+ */
4
+ function renderCommunitySkills() {
5
+ return `
6
+ <div class="page-title">Community Skills</div>
7
+
8
+ <div class="stat-grid">
9
+ <div class="stat-card">
10
+ <div class="stat-label">Available Skills</div>
11
+ <div class="stat-value">1,247</div>
12
+ <div class="stat-change" style="color: var(--success)">+23 this week</div>
13
+ </div>
14
+ <div class="stat-card">
15
+ <div class="stat-label">Installed</div>
16
+ <div class="stat-value">18</div>
17
+ <div class="stat-change" style="color: var(--success)">+3 this week</div>
18
+ </div>
19
+ <div class="stat-card">
20
+ <div class="stat-label">Updates Available</div>
21
+ <div class="stat-value">5</div>
22
+ <div class="stat-change" style="color: var(--warning)">Requires attention</div>
23
+ </div>
24
+ </div>
25
+
26
+ <div style="display: flex; gap: 16px; margin-bottom: 24px; align-items: center;">
27
+ <input class="input" placeholder="Search skills..." style="flex: 1;">
28
+ <select class="input" style="width: auto;">
29
+ <option>All Categories</option>
30
+ <option>Communication</option>
31
+ <option>Data Analysis</option>
32
+ <option>Automation</option>
33
+ <option>Security</option>
34
+ <option>Integration</option>
35
+ </select>
36
+ <select class="input" style="width: auto;">
37
+ <option>Most Popular</option>
38
+ <option>Recently Added</option>
39
+ <option>Most Downloaded</option>
40
+ <option>Highest Rated</option>
41
+ </select>
42
+ </div>
43
+
44
+ <div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px;">
45
+ <!-- Skill Card 1 -->
46
+ <div class="card">
47
+ <div class="card-header">
48
+ <div>
49
+ <h3>Advanced Email Templates</h3>
50
+ <div style="font-size: 11px; color: var(--text-muted); margin-top: 2px;">
51
+ by AgenticMail Team
52
+ </div>
53
+ </div>
54
+ <div style="display: flex; gap: 4px; align-items: center;">
55
+ <span style="font-size: 12px; color: var(--warning);">★★★★★</span>
56
+ <span style="font-size: 11px; color: var(--text-muted);">(248)</span>
57
+ </div>
58
+ </div>
59
+ <div class="card-body">
60
+ <p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;">
61
+ Create professional email templates with dynamic content, conditional blocks, and advanced formatting.
62
+ </p>
63
+ <div style="display: flex; gap: 4px; margin-bottom: 12px;">
64
+ <span class="badge badge-primary">Communication</span>
65
+ <span class="badge badge-info">Templates</span>
66
+ </div>
67
+ <div style="display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: var(--text-muted); margin-bottom: 16px;">
68
+ <span>1.2k downloads</span>
69
+ <span>Updated 2 days ago</span>
70
+ </div>
71
+ <button class="btn btn-primary" style="width: 100%;">Install</button>
72
+ </div>
73
+ </div>
74
+
75
+ <!-- Skill Card 2 -->
76
+ <div class="card">
77
+ <div class="card-header">
78
+ <div>
79
+ <h3>Data Visualization</h3>
80
+ <div style="font-size: 11px; color: var(--text-muted); margin-top: 2px;">
81
+ by DataViz Inc
82
+ </div>
83
+ </div>
84
+ <div style="display: flex; gap: 4px; align-items: center;">
85
+ <span style="font-size: 12px; color: var(--warning);">★★★★☆</span>
86
+ <span style="font-size: 11px; color: var(--text-muted);">(156)</span>
87
+ </div>
88
+ </div>
89
+ <div class="card-body">
90
+ <p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;">
91
+ Generate beautiful charts, graphs, and interactive dashboards from your data sources.
92
+ </p>
93
+ <div style="display: flex; gap: 4px; margin-bottom: 12px;">
94
+ <span class="badge badge-success">Data Analysis</span>
95
+ <span class="badge badge-info">Charts</span>
96
+ </div>
97
+ <div style="display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: var(--text-muted); margin-bottom: 16px;">
98
+ <span>856 downloads</span>
99
+ <span>Updated 5 days ago</span>
100
+ </div>
101
+ <button class="btn btn-primary" style="width: 100%;">Install</button>
102
+ </div>
103
+ </div>
104
+
105
+ <!-- Skill Card 3 -->
106
+ <div class="card">
107
+ <div class="card-header">
108
+ <div>
109
+ <h3>Slack Integration</h3>
110
+ <div style="font-size: 11px; color: var(--text-muted); margin-top: 2px;">
111
+ by Slack
112
+ </div>
113
+ </div>
114
+ <div style="display: flex; gap: 4px; align-items: center;">
115
+ <span style="font-size: 12px; color: var(--warning);">★★★★★</span>
116
+ <span style="font-size: 11px; color: var(--text-muted);">(492)</span>
117
+ </div>
118
+ </div>
119
+ <div class="card-body">
120
+ <p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;">
121
+ Send messages, create channels, and manage Slack workspaces directly from your agents.
122
+ </p>
123
+ <div style="display: flex; gap: 4px; margin-bottom: 12px;">
124
+ <span class="badge badge-warning">Integration</span>
125
+ <span class="badge badge-primary">Communication</span>
126
+ </div>
127
+ <div style="display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: var(--text-muted); margin-bottom: 16px;">
128
+ <span>2.1k downloads</span>
129
+ <span>Updated 1 day ago</span>
130
+ </div>
131
+ <div style="display: flex; gap: 4px;">
132
+ <button class="btn" style="background: var(--success); color: white; flex: 1;">
133
+ <svg width="14" height="14" fill="currentColor" viewBox="0 0 16 16">
134
+ <path d="M10.97 4.97a.235.235 0 0 0-.02.022L7.477 9.417 5.384 7.323a.75.75 0 0 0-1.06 1.061L6.97 11.03a.75.75 0 0 0 1.079-.02l3.992-4.99a.75.75 0 0 0-1.071-1.05z"/>
135
+ </svg>
136
+ Installed
137
+ </button>
138
+ <button class="btn btn-secondary" style="width: auto;">Update</button>
139
+ </div>
140
+ </div>
141
+ </div>
142
+
143
+ <!-- Skill Card 4 -->
144
+ <div class="card">
145
+ <div class="card-header">
146
+ <div>
147
+ <h3>Security Scanner</h3>
148
+ <div style="font-size: 11px; color: var(--text-muted); margin-top: 2px;">
149
+ by SecureTech
150
+ </div>
151
+ </div>
152
+ <div style="display: flex; gap: 4px; align-items: center;">
153
+ <span style="font-size: 12px; color: var(--warning);">★★★★☆</span>
154
+ <span style="font-size: 11px; color: var(--text-muted);">(89)</span>
155
+ </div>
156
+ </div>
157
+ <div class="card-body">
158
+ <p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;">
159
+ Scan files, URLs, and network connections for security threats and vulnerabilities.
160
+ </p>
161
+ <div style="display: flex; gap: 4px; margin-bottom: 12px;">
162
+ <span class="badge badge-danger">Security</span>
163
+ <span class="badge badge-warning">Scanning</span>
164
+ </div>
165
+ <div style="display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: var(--text-muted); margin-bottom: 16px;">
166
+ <span>234 downloads</span>
167
+ <span>Updated 1 week ago</span>
168
+ </div>
169
+ <button class="btn btn-primary" style="width: 100%;">Install</button>
170
+ </div>
171
+ </div>
172
+
173
+ <!-- Skill Card 5 -->
174
+ <div class="card">
175
+ <div class="card-header">
176
+ <div>
177
+ <h3>Task Automation</h3>
178
+ <div style="font-size: 11px; color: var(--text-muted); margin-top: 2px;">
179
+ by AutoFlow
180
+ </div>
181
+ </div>
182
+ <div style="display: flex; gap: 4px; align-items: center;">
183
+ <span style="font-size: 12px; color: var(--warning);">★★★★★</span>
184
+ <span style="font-size: 11px; color: var(--text-muted);">(367)</span>
185
+ </div>
186
+ </div>
187
+ <div class="card-body">
188
+ <p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;">
189
+ Automate repetitive tasks with workflow builders, schedulers, and trigger systems.
190
+ </p>
191
+ <div style="display: flex; gap: 4px; margin-bottom: 12px;">
192
+ <span class="badge badge-info">Automation</span>
193
+ <span class="badge badge-success">Workflow</span>
194
+ </div>
195
+ <div style="display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: var(--text-muted); margin-bottom: 16px;">
196
+ <span>1.5k downloads</span>
197
+ <span>Updated 3 days ago</span>
198
+ </div>
199
+ <button class="btn btn-primary" style="width: 100%;">Install</button>
200
+ </div>
201
+ </div>
202
+
203
+ <!-- Skill Card 6 -->
204
+ <div class="card">
205
+ <div class="card-header">
206
+ <div>
207
+ <h3>API Documentation</h3>
208
+ <div style="font-size: 11px; color: var(--text-muted); margin-top: 2px;">
209
+ by DevTools Pro
210
+ </div>
211
+ </div>
212
+ <div style="display: flex; gap: 4px; align-items: center;">
213
+ <span style="font-size: 12px; color: var(--warning);">★★★☆☆</span>
214
+ <span style="font-size: 11px; color: var(--text-muted);">(73)</span>
215
+ </div>
216
+ </div>
217
+ <div class="card-body">
218
+ <p style="font-size: 13px; color: var(--text-secondary); margin-bottom: 12px;">
219
+ Automatically generate comprehensive API documentation from your code and schemas.
220
+ </p>
221
+ <div style="display: flex; gap: 4px; margin-bottom: 12px;">
222
+ <span class="badge badge-info">Documentation</span>
223
+ <span class="badge badge-primary">API</span>
224
+ </div>
225
+ <div style="display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: var(--text-muted); margin-bottom: 16px;">
226
+ <span>189 downloads</span>
227
+ <span>Updated 2 weeks ago</span>
228
+ </div>
229
+ <button class="btn btn-primary" style="width: 100%;">Install</button>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ `;
234
+ }
235
+
236
+ export { renderCommunitySkills };