enhance_swarm 1.0.0

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 (64) hide show
  1. checksums.yaml +7 -0
  2. data/.enhance_swarm/agent_scripts/frontend_agent.md +39 -0
  3. data/.enhance_swarm/user_patterns.json +37 -0
  4. data/CHANGELOG.md +184 -0
  5. data/LICENSE +21 -0
  6. data/PRODUCTION_TEST_LOG.md +502 -0
  7. data/README.md +905 -0
  8. data/Rakefile +28 -0
  9. data/USAGE_EXAMPLES.md +477 -0
  10. data/examples/enhance_workflow.md +346 -0
  11. data/examples/rails_project.md +253 -0
  12. data/exe/enhance-swarm +30 -0
  13. data/lib/enhance_swarm/additional_commands.rb +299 -0
  14. data/lib/enhance_swarm/agent_communicator.rb +460 -0
  15. data/lib/enhance_swarm/agent_reviewer.rb +283 -0
  16. data/lib/enhance_swarm/agent_spawner.rb +462 -0
  17. data/lib/enhance_swarm/cleanup_manager.rb +245 -0
  18. data/lib/enhance_swarm/cli.rb +1592 -0
  19. data/lib/enhance_swarm/command_executor.rb +78 -0
  20. data/lib/enhance_swarm/configuration.rb +324 -0
  21. data/lib/enhance_swarm/control_agent.rb +307 -0
  22. data/lib/enhance_swarm/dependency_validator.rb +195 -0
  23. data/lib/enhance_swarm/error_recovery.rb +785 -0
  24. data/lib/enhance_swarm/generator.rb +194 -0
  25. data/lib/enhance_swarm/interrupt_handler.rb +512 -0
  26. data/lib/enhance_swarm/logger.rb +106 -0
  27. data/lib/enhance_swarm/mcp_integration.rb +85 -0
  28. data/lib/enhance_swarm/monitor.rb +28 -0
  29. data/lib/enhance_swarm/notification_manager.rb +444 -0
  30. data/lib/enhance_swarm/orchestrator.rb +313 -0
  31. data/lib/enhance_swarm/output_streamer.rb +281 -0
  32. data/lib/enhance_swarm/process_monitor.rb +266 -0
  33. data/lib/enhance_swarm/progress_tracker.rb +215 -0
  34. data/lib/enhance_swarm/project_analyzer.rb +612 -0
  35. data/lib/enhance_swarm/resource_manager.rb +177 -0
  36. data/lib/enhance_swarm/retry_handler.rb +40 -0
  37. data/lib/enhance_swarm/session_manager.rb +247 -0
  38. data/lib/enhance_swarm/signal_handler.rb +95 -0
  39. data/lib/enhance_swarm/smart_defaults.rb +708 -0
  40. data/lib/enhance_swarm/task_integration.rb +150 -0
  41. data/lib/enhance_swarm/task_manager.rb +174 -0
  42. data/lib/enhance_swarm/version.rb +5 -0
  43. data/lib/enhance_swarm/visual_dashboard.rb +555 -0
  44. data/lib/enhance_swarm/web_ui.rb +211 -0
  45. data/lib/enhance_swarm.rb +69 -0
  46. data/setup.sh +86 -0
  47. data/sig/enhance_swarm.rbs +4 -0
  48. data/templates/claude/CLAUDE.md +160 -0
  49. data/templates/claude/MCP.md +117 -0
  50. data/templates/claude/PERSONAS.md +114 -0
  51. data/templates/claude/RULES.md +221 -0
  52. data/test_builtin_functionality.rb +121 -0
  53. data/test_core_components.rb +156 -0
  54. data/test_real_claude_integration.rb +285 -0
  55. data/test_security.rb +150 -0
  56. data/test_smart_defaults.rb +155 -0
  57. data/test_task_integration.rb +173 -0
  58. data/test_web_ui.rb +245 -0
  59. data/web/assets/css/main.css +645 -0
  60. data/web/assets/js/kanban.js +499 -0
  61. data/web/assets/js/main.js +525 -0
  62. data/web/templates/dashboard.html.erb +226 -0
  63. data/web/templates/kanban.html.erb +193 -0
  64. metadata +293 -0
@@ -0,0 +1,226 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>EnhanceSwarm Dashboard</title>
7
+ <link rel="stylesheet" href="/assets/css/main.css">
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
9
+ </head>
10
+ <body>
11
+ <nav class="navbar">
12
+ <div class="nav-brand">
13
+ <i class="fas fa-swatchbook"></i>
14
+ <span>EnhanceSwarm</span>
15
+ </div>
16
+ <div class="nav-links">
17
+ <a href="/" class="nav-link active">
18
+ <i class="fas fa-tachometer-alt"></i> Dashboard
19
+ </a>
20
+ <a href="/kanban" class="nav-link">
21
+ <i class="fas fa-columns"></i> Kanban
22
+ </a>
23
+ <a href="/agents" class="nav-link">
24
+ <i class="fas fa-robot"></i> Agents
25
+ </a>
26
+ <a href="/project" class="nav-link">
27
+ <i class="fas fa-project-diagram"></i> Project
28
+ </a>
29
+ <a href="/config" class="nav-link">
30
+ <i class="fas fa-cog"></i> Config
31
+ </a>
32
+ </div>
33
+ </nav>
34
+
35
+ <main class="main-content">
36
+ <div class="dashboard">
37
+ <header class="dashboard-header">
38
+ <h1>
39
+ <i class="fas fa-tachometer-alt"></i>
40
+ Dashboard
41
+ </h1>
42
+ <div class="dashboard-actions">
43
+ <button class="btn btn-primary" onclick="spawnAgent()">
44
+ <i class="fas fa-plus"></i> Spawn Agent
45
+ </button>
46
+ <button class="btn btn-secondary" onclick="refreshData()">
47
+ <i class="fas fa-sync"></i> Refresh
48
+ </button>
49
+ </div>
50
+ </header>
51
+
52
+ <div class="dashboard-grid">
53
+ <!-- Status Overview -->
54
+ <div class="card">
55
+ <div class="card-header">
56
+ <h3><i class="fas fa-chart-line"></i> Status Overview</h3>
57
+ </div>
58
+ <div class="card-body">
59
+ <div class="status-grid">
60
+ <div class="status-item" id="session-status">
61
+ <div class="status-icon">
62
+ <i class="fas fa-circle"></i>
63
+ </div>
64
+ <div class="status-info">
65
+ <span class="status-label">Session</span>
66
+ <span class="status-value">Loading...</span>
67
+ </div>
68
+ </div>
69
+ <div class="status-item" id="agents-status">
70
+ <div class="status-icon">
71
+ <i class="fas fa-robot"></i>
72
+ </div>
73
+ <div class="status-info">
74
+ <span class="status-label">Active Agents</span>
75
+ <span class="status-value">0</span>
76
+ </div>
77
+ </div>
78
+ <div class="status-item" id="tasks-status">
79
+ <div class="status-icon">
80
+ <i class="fas fa-tasks"></i>
81
+ </div>
82
+ <div class="status-info">
83
+ <span class="status-label">Tasks</span>
84
+ <span class="status-value">0</span>
85
+ </div>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ </div>
90
+
91
+ <!-- Active Agents -->
92
+ <div class="card">
93
+ <div class="card-header">
94
+ <h3><i class="fas fa-robot"></i> Active Agents</h3>
95
+ </div>
96
+ <div class="card-body">
97
+ <div id="active-agents-list">
98
+ <div class="loading">Loading agents...</div>
99
+ </div>
100
+ </div>
101
+ </div>
102
+
103
+ <!-- Recent Tasks -->
104
+ <div class="card">
105
+ <div class="card-header">
106
+ <h3><i class="fas fa-list-alt"></i> Recent Tasks</h3>
107
+ <a href="/kanban" class="btn btn-small btn-outline">
108
+ <i class="fas fa-external-link-alt"></i> View All
109
+ </a>
110
+ </div>
111
+ <div class="card-body">
112
+ <div id="recent-tasks-list">
113
+ <div class="loading">Loading tasks...</div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+
118
+ <!-- Quick Actions -->
119
+ <div class="card">
120
+ <div class="card-header">
121
+ <h3><i class="fas fa-bolt"></i> Quick Actions</h3>
122
+ </div>
123
+ <div class="card-body">
124
+ <div class="quick-actions">
125
+ <button class="quick-action-btn" onclick="enhanceProject()">
126
+ <i class="fas fa-magic"></i>
127
+ <span>Enhance Project</span>
128
+ </button>
129
+ <button class="quick-action-btn" onclick="analyzeProject()">
130
+ <i class="fas fa-search"></i>
131
+ <span>Analyze Project</span>
132
+ </button>
133
+ <button class="quick-action-btn" onclick="viewMonitoring()">
134
+ <i class="fas fa-chart-area"></i>
135
+ <span>Monitor Agents</span>
136
+ </button>
137
+ <button class="quick-action-btn" onclick="setupTasks()">
138
+ <i class="fas fa-clipboard-list"></i>
139
+ <span>Setup Tasks</span>
140
+ </button>
141
+ </div>
142
+ </div>
143
+ </div>
144
+
145
+ <!-- System Health -->
146
+ <div class="card">
147
+ <div class="card-header">
148
+ <h3><i class="fas fa-heartbeat"></i> System Health</h3>
149
+ </div>
150
+ <div class="card-body">
151
+ <div id="system-health">
152
+ <div class="loading">Checking system health...</div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+
157
+ <!-- Project Info -->
158
+ <div class="card">
159
+ <div class="card-header">
160
+ <h3><i class="fas fa-info-circle"></i> Project Info</h3>
161
+ </div>
162
+ <div class="card-body">
163
+ <div id="project-info">
164
+ <div class="loading">Loading project information...</div>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ </div>
169
+ </div>
170
+ </main>
171
+
172
+ <!-- Modals -->
173
+ <div id="spawn-agent-modal" class="modal">
174
+ <div class="modal-content">
175
+ <div class="modal-header">
176
+ <h3><i class="fas fa-robot"></i> Spawn New Agent</h3>
177
+ <button class="modal-close" onclick="closeModal('spawn-agent-modal')">
178
+ <i class="fas fa-times"></i>
179
+ </button>
180
+ </div>
181
+ <div class="modal-body">
182
+ <form id="spawn-agent-form">
183
+ <div class="form-group">
184
+ <label for="agent-role">Agent Role</label>
185
+ <select id="agent-role" name="role" required>
186
+ <option value="general">General</option>
187
+ <option value="frontend">Frontend</option>
188
+ <option value="backend">Backend</option>
189
+ <option value="ux">UX/Design</option>
190
+ <option value="qa">QA/Testing</option>
191
+ </select>
192
+ </div>
193
+ <div class="form-group">
194
+ <label for="agent-task">Task Description</label>
195
+ <textarea id="agent-task" name="task" rows="3" placeholder="Describe what this agent should work on..." required></textarea>
196
+ </div>
197
+ <div class="form-group">
198
+ <label class="checkbox-label">
199
+ <input type="checkbox" id="agent-worktree" name="worktree" checked>
200
+ <span class="checkmark"></span>
201
+ Use separate git worktree
202
+ </label>
203
+ </div>
204
+ </form>
205
+ </div>
206
+ <div class="modal-footer">
207
+ <button type="button" class="btn btn-secondary" onclick="closeModal('spawn-agent-modal')">
208
+ Cancel
209
+ </button>
210
+ <button type="submit" class="btn btn-primary" form="spawn-agent-form">
211
+ <i class="fas fa-rocket"></i> Spawn Agent
212
+ </button>
213
+ </div>
214
+ </div>
215
+ </div>
216
+
217
+ <script src="/assets/js/main.js"></script>
218
+ <script>
219
+ // Initialize dashboard
220
+ document.addEventListener('DOMContentLoaded', function() {
221
+ initializeDashboard();
222
+ startAutoRefresh();
223
+ });
224
+ </script>
225
+ </body>
226
+ </html>
@@ -0,0 +1,193 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>EnhanceSwarm - Kanban Board</title>
7
+ <link rel="stylesheet" href="/assets/css/main.css">
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
9
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.15.0/Sortable.min.css">
10
+ </head>
11
+ <body>
12
+ <nav class="navbar">
13
+ <div class="nav-brand">
14
+ <i class="fas fa-swatchbook"></i>
15
+ <span>EnhanceSwarm</span>
16
+ </div>
17
+ <div class="nav-links">
18
+ <a href="/" class="nav-link">
19
+ <i class="fas fa-tachometer-alt"></i> Dashboard
20
+ </a>
21
+ <a href="/kanban" class="nav-link active">
22
+ <i class="fas fa-columns"></i> Kanban
23
+ </a>
24
+ <a href="/agents" class="nav-link">
25
+ <i class="fas fa-robot"></i> Agents
26
+ </a>
27
+ <a href="/project" class="nav-link">
28
+ <i class="fas fa-project-diagram"></i> Project
29
+ </a>
30
+ <a href="/config" class="nav-link">
31
+ <i class="fas fa-cog"></i> Config
32
+ </a>
33
+ </div>
34
+ </nav>
35
+
36
+ <main class="main-content">
37
+ <div class="kanban-container">
38
+ <header class="kanban-header">
39
+ <h1>
40
+ <i class="fas fa-columns"></i>
41
+ Task Management
42
+ </h1>
43
+ <div class="kanban-actions">
44
+ <button class="btn btn-primary" onclick="createTask()">
45
+ <i class="fas fa-plus"></i> New Task
46
+ </button>
47
+ <button class="btn btn-secondary" onclick="refreshKanban()">
48
+ <i class="fas fa-sync"></i> Refresh
49
+ </button>
50
+ <button class="btn btn-outline" onclick="exportTasks()">
51
+ <i class="fas fa-download"></i> Export
52
+ </button>
53
+ </div>
54
+ </header>
55
+
56
+ <div class="kanban-stats">
57
+ <div class="stat-item">
58
+ <span class="stat-value" id="total-tasks">0</span>
59
+ <span class="stat-label">Total Tasks</span>
60
+ </div>
61
+ <div class="stat-item">
62
+ <span class="stat-value" id="active-tasks">0</span>
63
+ <span class="stat-label">In Progress</span>
64
+ </div>
65
+ <div class="stat-item">
66
+ <span class="stat-value" id="completed-tasks">0</span>
67
+ <span class="stat-label">Completed</span>
68
+ </div>
69
+ </div>
70
+
71
+ <div class="kanban-board" id="kanban-board">
72
+ <!-- Kanban columns will be dynamically generated -->
73
+ <div class="loading-kanban">
74
+ <i class="fas fa-spinner fa-spin"></i>
75
+ <p>Loading task board...</p>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ </main>
80
+
81
+ <!-- Task Creation Modal -->
82
+ <div id="create-task-modal" class="modal">
83
+ <div class="modal-content">
84
+ <div class="modal-header">
85
+ <h3><i class="fas fa-plus"></i> Create New Task</h3>
86
+ <button class="modal-close" onclick="closeModal('create-task-modal')">
87
+ <i class="fas fa-times"></i>
88
+ </button>
89
+ </div>
90
+ <div class="modal-body">
91
+ <form id="create-task-form">
92
+ <div class="form-group">
93
+ <label for="task-title">Task Title</label>
94
+ <input type="text" id="task-title" name="title" placeholder="Enter task title..." required>
95
+ </div>
96
+ <div class="form-group">
97
+ <label for="task-description">Description</label>
98
+ <textarea id="task-description" name="description" rows="4" placeholder="Describe the task in detail..."></textarea>
99
+ </div>
100
+ <div class="form-row">
101
+ <div class="form-group">
102
+ <label for="task-priority">Priority</label>
103
+ <select id="task-priority" name="priority">
104
+ <option value="low">Low</option>
105
+ <option value="medium" selected>Medium</option>
106
+ <option value="high">High</option>
107
+ <option value="critical">Critical</option>
108
+ </select>
109
+ </div>
110
+ <div class="form-group">
111
+ <label for="task-category">Category</label>
112
+ <select id="task-category" name="category">
113
+ <option value="feature">Feature</option>
114
+ <option value="bug">Bug Fix</option>
115
+ <option value="enhancement">Enhancement</option>
116
+ <option value="research">Research</option>
117
+ <option value="documentation">Documentation</option>
118
+ </select>
119
+ </div>
120
+ </div>
121
+ <div class="form-group">
122
+ <label for="task-agents">Recommended Agents</label>
123
+ <div class="checkbox-group">
124
+ <label class="checkbox-label">
125
+ <input type="checkbox" name="agents" value="frontend">
126
+ <span class="checkmark"></span>
127
+ Frontend
128
+ </label>
129
+ <label class="checkbox-label">
130
+ <input type="checkbox" name="agents" value="backend">
131
+ <span class="checkmark"></span>
132
+ Backend
133
+ </label>
134
+ <label class="checkbox-label">
135
+ <input type="checkbox" name="agents" value="ux">
136
+ <span class="checkmark"></span>
137
+ UX/Design
138
+ </label>
139
+ <label class="checkbox-label">
140
+ <input type="checkbox" name="agents" value="qa">
141
+ <span class="checkmark"></span>
142
+ QA/Testing
143
+ </label>
144
+ </div>
145
+ </div>
146
+ </form>
147
+ </div>
148
+ <div class="modal-footer">
149
+ <button type="button" class="btn btn-secondary" onclick="closeModal('create-task-modal')">
150
+ Cancel
151
+ </button>
152
+ <button type="submit" class="btn btn-primary" form="create-task-form">
153
+ <i class="fas fa-plus"></i> Create Task
154
+ </button>
155
+ </div>
156
+ </div>
157
+ </div>
158
+
159
+ <!-- Task Details Modal -->
160
+ <div id="task-details-modal" class="modal">
161
+ <div class="modal-content">
162
+ <div class="modal-header">
163
+ <h3 id="task-details-title">Task Details</h3>
164
+ <button class="modal-close" onclick="closeModal('task-details-modal')">
165
+ <i class="fas fa-times"></i>
166
+ </button>
167
+ </div>
168
+ <div class="modal-body" id="task-details-body">
169
+ <!-- Task details will be populated dynamically -->
170
+ </div>
171
+ <div class="modal-footer">
172
+ <button type="button" class="btn btn-secondary" onclick="closeModal('task-details-modal')">
173
+ Close
174
+ </button>
175
+ <button type="button" class="btn btn-primary" onclick="editTask()">
176
+ <i class="fas fa-edit"></i> Edit Task
177
+ </button>
178
+ </div>
179
+ </div>
180
+ </div>
181
+
182
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.15.0/Sortable.min.js"></script>
183
+ <script src="/assets/js/main.js"></script>
184
+ <script src="/assets/js/kanban.js"></script>
185
+ <script>
186
+ // Initialize kanban board
187
+ document.addEventListener('DOMContentLoaded', function() {
188
+ initializeKanban();
189
+ loadKanbanData();
190
+ });
191
+ </script>
192
+ </body>
193
+ </html>