closed-loop-cli 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.

Potentially problematic release.


This version of closed-loop-cli might be problematic. Click here for more details.

Files changed (86) hide show
  1. package/dist/dashboard/server.js +237 -0
  2. package/dist/index.js +272 -0
  3. package/dist/orchestrator/agent-prompts.js +42 -0
  4. package/dist/orchestrator/autogenesis.js +973 -0
  5. package/dist/orchestrator/dgm-archive.js +223 -0
  6. package/dist/orchestrator/event-stream.js +103 -0
  7. package/dist/orchestrator/fitness-evaluator.js +99 -0
  8. package/dist/orchestrator/meta-agent.js +421 -0
  9. package/dist/orchestrator/microagent-registry.js +134 -0
  10. package/dist/orchestrator/mutation-strategies.js +174 -0
  11. package/dist/orchestrator/prompt-benchmark.js +102 -0
  12. package/dist/orchestrator/prompt-optimizer.js +169 -0
  13. package/dist/orchestrator/refactor-scanner.js +222 -0
  14. package/dist/orchestrator/research-manager.js +104 -0
  15. package/dist/orchestrator/rulez.js +135 -0
  16. package/dist/orchestrator/sahoo-gateway.js +261 -0
  17. package/dist/orchestrator/state-manager.js +121 -0
  18. package/dist/orchestrator/task-agent.js +444 -0
  19. package/dist/orchestrator/telegram-bot.js +374 -0
  20. package/dist/orchestrator/types.js +2 -0
  21. package/dist/tests/dynamic/dependencies.test.js +37 -0
  22. package/dist/tests/dynamic/dummy.test.js +7 -0
  23. package/dist/tests/dynamic/fuzzy-patch.test.js +68 -0
  24. package/dist/tests/dynamic/indexer.test.js +60 -0
  25. package/dist/tests/dynamic/openhands.test.js +83 -0
  26. package/dist/tests/dynamic/skills.test.js +88 -0
  27. package/dist/tests/run-tests.js +294 -0
  28. package/dist/tools/diff-tools.js +24 -0
  29. package/dist/tools/file-tools.js +191 -0
  30. package/dist/tools/indexer.js +301 -0
  31. package/dist/tools/math-helper.js +6 -0
  32. package/dist/tools/repo-map.js +122 -0
  33. package/dist/tools/search-tools.js +271 -0
  34. package/dist/tools/shell-tools.js +75 -0
  35. package/dist/tools/skills.js +122 -0
  36. package/dist/tools/tui-tools.js +82 -0
  37. package/docs/AI_Arch_Opt_Anti_Gaming.md +227 -0
  38. package/docs/AI_Self_Improvement_Safety.md +457 -0
  39. package/docs/Anthropic AI Agents_ Capabilities and Concerns.md +134 -0
  40. package/docs/Auto_ClosedLoop_AI_Agent.md +415 -0
  41. package/docs/Autonomous AI Agents_ Closing the Loop.docx +0 -0
  42. package/docs/Secure_AI_Sandbox_Framework.md +358 -0
  43. package/docs/skills/add-file-existence-check-utility.json +9 -0
  44. package/docs/skills/add-utility-function-for-file-existence-check.json +9 -0
  45. package/docs/skills/add-utility-function-to-module.json +9 -0
  46. package/docs/skills/extract-command-runner-utility.json +9 -0
  47. package/docs/skills/file-existence-check-utility.json +9 -0
  48. package/package.json +36 -0
  49. package/src/dashboard/public/index.css +1334 -0
  50. package/src/dashboard/public/index.html +385 -0
  51. package/src/dashboard/public/index.js +1059 -0
  52. package/src/dashboard/server.ts +209 -0
  53. package/src/index.ts +256 -0
  54. package/src/orchestrator/agent-prompts.ts +43 -0
  55. package/src/orchestrator/autogenesis.ts +1078 -0
  56. package/src/orchestrator/dgm-archive.ts +257 -0
  57. package/src/orchestrator/event-stream.ts +90 -0
  58. package/src/orchestrator/fitness-evaluator.ts +154 -0
  59. package/src/orchestrator/meta-agent.ts +434 -0
  60. package/src/orchestrator/microagent-registry.ts +115 -0
  61. package/src/orchestrator/microagents/git-helper.md +11 -0
  62. package/src/orchestrator/microagents/test-fixer.md +10 -0
  63. package/src/orchestrator/microagents/typescript-expert.md +11 -0
  64. package/src/orchestrator/mutation-strategies.ts +214 -0
  65. package/src/orchestrator/research-manager.ts +88 -0
  66. package/src/orchestrator/rulez.ts +118 -0
  67. package/src/orchestrator/sahoo-gateway.ts +300 -0
  68. package/src/orchestrator/state-manager.ts +161 -0
  69. package/src/orchestrator/system-prompt.txt +1 -0
  70. package/src/orchestrator/task-agent.ts +461 -0
  71. package/src/orchestrator/telegram-bot.ts +358 -0
  72. package/src/tests/dynamic/dependencies.test.ts +48 -0
  73. package/src/tests/dynamic/dummy.test.ts +4 -0
  74. package/src/tests/dynamic/fuzzy-patch.test.ts +42 -0
  75. package/src/tests/dynamic/indexer.test.ts +31 -0
  76. package/src/tests/dynamic/openhands.test.ts +59 -0
  77. package/src/tests/dynamic/skills.test.ts +63 -0
  78. package/src/tests/run-tests.ts +296 -0
  79. package/src/tools/diff-tools.ts +27 -0
  80. package/src/tools/file-tools.ts +187 -0
  81. package/src/tools/indexer.ts +325 -0
  82. package/src/tools/repo-map.ts +96 -0
  83. package/src/tools/search-tools.ts +258 -0
  84. package/src/tools/shell-tools.ts +90 -0
  85. package/src/tools/skills.ts +101 -0
  86. package/src/tools/tui-tools.ts +87 -0
@@ -0,0 +1,385 @@
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>Closed-Loop Agent Dashboard</title>
7
+ <link rel="stylesheet" href="index.css">
8
+ <link rel="preconnect" href="https://fonts.googleapis.com">
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
+ <link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet">
11
+ </head>
12
+ <body>
13
+ <div class="app-container">
14
+ <!-- Top Header -->
15
+ <header class="app-header">
16
+ <div class="logo-area">
17
+ <div class="logo-icon"></div>
18
+ <div class="logo-text">
19
+ <h1>Closed-Loop Coding Agent</h1>
20
+ <span class="subtitle">Autonomous Evolution Monitor</span>
21
+ </div>
22
+ </div>
23
+ <div class="status-indicator">
24
+ <div id="status-dot" class="dot idle animate-pulse"></div>
25
+ <span id="status-text">IDLE</span>
26
+ </div>
27
+ </header>
28
+
29
+ <!-- Main Grid -->
30
+ <main class="dashboard-grid">
31
+ <!-- High Level Metrics -->
32
+ <section class="metrics-row">
33
+ <!-- Metric Card 1: Cycle -->
34
+ <div class="metric-card glass">
35
+ <div class="card-header">
36
+ <h3>Current Cycle</h3>
37
+ <span class="icon">🔄</span>
38
+ </div>
39
+ <div class="metric-value" id="metric-cycle">0 / -</div>
40
+ <div class="metric-label">Completed iterations</div>
41
+ </div>
42
+
43
+ <!-- Metric Card 2: Tokens -->
44
+ <div class="metric-card glass">
45
+ <div class="card-header">
46
+ <h3>Token Budget Consumption</h3>
47
+ <span class="icon">🪙</span>
48
+ </div>
49
+ <div class="metric-value" id="metric-tokens">0</div>
50
+ <div class="progress-bar-container">
51
+ <div id="tokens-progress" class="progress-bar" style="width: 0%"></div>
52
+ </div>
53
+ <div class="metric-label flex-between">
54
+ <span id="tokens-detail">0 in / 0 out</span>
55
+ <span id="tokens-limit">Limit: 500,000</span>
56
+ </div>
57
+ </div>
58
+
59
+ <!-- Metric Card 3: Performance -->
60
+ <div class="metric-card glass">
61
+ <div class="card-header">
62
+ <h3>Last Refactor Status</h3>
63
+ <span class="icon">🤖</span>
64
+ </div>
65
+ <div class="metric-value font-md" id="metric-refactor-status">No Runs</div>
66
+ <div class="metric-label" id="metric-refactor-target">Waiting for cycle...</div>
67
+ </div>
68
+
69
+ <!-- Metric Card 4: Last Updated -->
70
+ <div class="metric-card glass">
71
+ <div class="card-header">
72
+ <h3>System Sync</h3>
73
+ <span class="icon">⏳</span>
74
+ </div>
75
+ <div class="metric-value font-md" id="metric-sync">-</div>
76
+ <div class="metric-label">Real-time update heartbeat</div>
77
+ </div>
78
+
79
+ <!-- Metric Card 5: DGM Fitness (Darwin Gödel Machine) -->
80
+ <div class="metric-card glass">
81
+ <div class="card-header">
82
+ <h3>DGM Fitness</h3>
83
+ <span class="icon">&#x1F9EC;</span>
84
+ </div>
85
+ <div class="metric-value" id="metric-fitness">-</div>
86
+ <div class="progress-bar-container">
87
+ <div id="fitness-progress" class="progress-bar" style="width: 0%; background: linear-gradient(90deg, #00d4aa, #00ff88)"></div>
88
+ </div>
89
+ <div class="metric-label flex-between">
90
+ <span id="fitness-detail">Test pass rate</span>
91
+ <span id="fitness-best">Best: -</span>
92
+ </div>
93
+ </div>
94
+ </section>
95
+
96
+ <!-- Active Task Details -->
97
+ <section id="active-task-section" class="active-task-bar glass flex-between hidden">
98
+ <div class="task-info">
99
+ <span class="pulse-ring"></span>
100
+ <span class="task-label">Active Task:</span>
101
+ <span id="active-task-text" class="task-text">Running reflections...</span>
102
+ </div>
103
+ <div class="spinner-mini"></div>
104
+ </section>
105
+
106
+ <!-- Tab Navigation -->
107
+ <nav class="tabs-nav glass">
108
+ <button class="tab-btn active" data-tab="tab-overview">Overview</button>
109
+ <button class="tab-btn" data-tab="tab-sahoo">SAHOO Safety Gate</button>
110
+ <button class="tab-btn" data-tab="tab-prompt">Prompt Optimization</button>
111
+ <button class="tab-btn" data-tab="tab-learnings">Persistent Learnings</button>
112
+ <button class="tab-btn" data-tab="tab-skills">Skill Registry</button>
113
+ <button class="tab-btn" data-tab="tab-logs">Console Logs</button>
114
+ <button class="tab-btn" data-tab="tab-research">Live Research Log</button>
115
+ <button class="tab-btn" data-tab="tab-archive">DGM Archive Tree</button>
116
+ <button class="tab-btn" data-tab="tab-event-stream">Live Event Stream</button>
117
+ <button class="tab-btn" data-tab="tab-microagents">Microagents</button>
118
+ </nav>
119
+
120
+ <!-- Tab Content Area -->
121
+ <section class="tab-content-container">
122
+ <!-- Tab 1: Overview -->
123
+ <div id="tab-overview" class="tab-content active">
124
+ <div class="overview-grid">
125
+ <div class="panel glass">
126
+ <h2 class="panel-title">Latest Refactoring Action</h2>
127
+ <div id="refactor-empty" class="empty-state">No refactoring action registered yet.</div>
128
+ <div id="refactor-details" class="details-list hidden">
129
+ <div class="detail-item">
130
+ <span class="label">Target File:</span>
131
+ <span class="value code" id="refactor-file">-</span>
132
+ </div>
133
+ <div class="detail-item">
134
+ <span class="label">Refactor Goal:</span>
135
+ <span class="value" id="refactor-goal">-</span>
136
+ </div>
137
+ <div class="detail-item">
138
+ <span class="label">Outcome Status:</span>
139
+ <span class="value badge" id="refactor-success">-</span>
140
+ </div>
141
+ <div class="detail-item">
142
+ <span class="label">Outcome Summary:</span>
143
+ <span class="value" id="refactor-message">-</span>
144
+ </div>
145
+ <div class="detail-item">
146
+ <span class="label">Execution Time:</span>
147
+ <span class="value" id="refactor-time">-</span>
148
+ </div>
149
+ </div>
150
+ </div>
151
+
152
+ <div class="panel glass">
153
+ <h2 class="panel-title">System Metrics Summary</h2>
154
+ <div class="overview-metrics-grid">
155
+ <div class="mini-card">
156
+ <span class="title">Goal Drift Index (GDI)</span>
157
+ <span class="value" id="overview-gdi">-</span>
158
+ <span class="sub text-dim">Limit &le; 0.440</span>
159
+ </div>
160
+ <div class="mini-card">
161
+ <span class="title">Constraint Score (CPS)</span>
162
+ <span class="value" id="overview-cps">-</span>
163
+ <span class="sub text-dim">Target = 1.0</span>
164
+ </div>
165
+ <div class="mini-card">
166
+ <span class="title">Regression Risk</span>
167
+ <span class="value" id="overview-risk">-</span>
168
+ <span class="sub text-dim">Threshold &lt; 80%</span>
169
+ </div>
170
+ <div class="mini-card">
171
+ <span class="title">Prompt Optimization</span>
172
+ <span class="value" id="overview-prompt">-</span>
173
+ <span class="sub text-dim" id="overview-prompt-detail">-</span>
174
+ </div>
175
+ </div>
176
+ </div>
177
+ </div>
178
+ </div>
179
+
180
+ <!-- Tab 2: SAHOO -->
181
+ <div id="tab-sahoo" class="tab-content">
182
+ <div class="sahoo-container">
183
+ <div class="panel glass sahoo-metrics-panel">
184
+ <h2 class="panel-title">Mathematical Drift Coefficients</h2>
185
+ <p class="description">SAHOO regulates model modifications through multi-dimensional similarity distances to prevent regression and semantic drift.</p>
186
+
187
+ <div class="drift-bars-grid">
188
+ <!-- Bar 1: Semantic -->
189
+ <div class="drift-bar-item">
190
+ <div class="bar-info flex-between">
191
+ <span class="name">Semantic Drift <span class="desc">(Trigram Cosine Distance)</span></span>
192
+ <span class="value-badge" id="drift-val-semantic">-</span>
193
+ </div>
194
+ <div class="bar-outer">
195
+ <div id="drift-progress-semantic" class="bar-inner blue" style="width: 0%"></div>
196
+ </div>
197
+ </div>
198
+
199
+ <!-- Bar 2: Lexical -->
200
+ <div class="drift-bar-item">
201
+ <div class="bar-info flex-between">
202
+ <span class="name">Lexical Drift <span class="desc">(Levenshtein Edit Distance)</span></span>
203
+ <span class="value-badge" id="drift-val-lexical">-</span>
204
+ </div>
205
+ <div class="bar-outer">
206
+ <div id="drift-progress-lexical" class="bar-inner purple" style="width: 0%"></div>
207
+ </div>
208
+ </div>
209
+
210
+ <!-- Bar 3: Structural -->
211
+ <div class="drift-bar-item">
212
+ <div class="bar-info flex-between">
213
+ <span class="name">Structural Drift <span class="desc">(Line & Size delta)</span></span>
214
+ <span class="value-badge" id="drift-val-structural">-</span>
215
+ </div>
216
+ <div class="bar-outer">
217
+ <div id="drift-progress-structural" class="bar-inner teal" style="width: 0%"></div>
218
+ </div>
219
+ </div>
220
+
221
+ <!-- Bar 4: Distributional -->
222
+ <div class="drift-bar-item">
223
+ <div class="bar-info flex-between">
224
+ <span class="name">Distributional Drift <span class="desc">(Keyword Frequency delta)</span></span>
225
+ <span class="value-badge" id="drift-val-distributional">-</span>
226
+ </div>
227
+ <div class="bar-outer">
228
+ <div id="drift-progress-distributional" class="bar-inner orange" style="width: 0%"></div>
229
+ </div>
230
+ </div>
231
+ </div>
232
+ </div>
233
+
234
+ <div class="panel glass sahoo-halting-panel">
235
+ <h2 class="panel-title">Harness Halting Policies</h2>
236
+ <div class="halting-rules-list">
237
+ <div id="rule-gdi" class="rule-card flex-between">
238
+ <div class="rule-info">
239
+ <h4>Goal Drift Index (GDI) &le; 0.440</h4>
240
+ <p>Calculates semantic weight of drift. Triggers hard halt if surpassed.</p>
241
+ </div>
242
+ <span id="rule-status-gdi" class="rule-badge status-check">-</span>
243
+ </div>
244
+
245
+ <div id="rule-cps" class="rule-card flex-between">
246
+ <div class="rule-info">
247
+ <h4>Constraint Preservation (CPS) = 1.0</h4>
248
+ <p>Safety lock. Checks path safety, dynamic eval ban, compile success, and secret hardcoding.</p>
249
+ </div>
250
+ <span id="rule-status-cps" class="rule-badge status-check">-</span>
251
+ </div>
252
+
253
+ <div id="rule-risk" class="rule-card flex-between">
254
+ <div class="rule-info">
255
+ <h4>Regression Risk &le; 80%</h4>
256
+ <p>Gaussian CDF model of performance regression risk based on historical scores.</p>
257
+ </div>
258
+ <span id="rule-status-risk" class="rule-badge status-check">-</span>
259
+ </div>
260
+ </div>
261
+ </div>
262
+ </div>
263
+ </div>
264
+
265
+ <!-- Tab 3: Prompt Optimization -->
266
+ <div id="tab-prompt" class="tab-content">
267
+ <div class="panel glass">
268
+ <h2 class="panel-title">Prompt Benchmarking and Utility Scores</h2>
269
+ <p class="description">Prompt optimization mutates the Task Agent system prompt and benchmarks efficiency metrics (time, token usage) against a baseline task.</p>
270
+
271
+ <div id="prompt-empty" class="empty-state">No prompt benchmarking runs registered yet.</div>
272
+ <div id="prompt-details" class="hidden">
273
+ <div class="score-comparison-cards">
274
+ <div class="score-card glass flex-column flex-center">
275
+ <span class="title">Baseline Score</span>
276
+ <span class="value text-dim" id="prompt-val-baseline">0.00</span>
277
+ </div>
278
+ <div class="score-card glass flex-column flex-center">
279
+ <span class="title">Candidate Score</span>
280
+ <span class="value text-bright" id="prompt-val-candidate">0.00</span>
281
+ </div>
282
+ <div class="score-card glass flex-column flex-center" id="prompt-card-result">
283
+ <span class="title">Optimization Outcome</span>
284
+ <span class="value font-md" id="prompt-val-outcome">-</span>
285
+ </div>
286
+ </div>
287
+ <div class="detail-item" style="margin-top: 2rem;">
288
+ <span class="label">Benchmark Sync Time:</span>
289
+ <span class="value" id="prompt-time">-</span>
290
+ </div>
291
+ </div>
292
+ </div>
293
+ </div>
294
+
295
+ <!-- Tab 4: Learnings History -->
296
+ <div id="tab-learnings" class="tab-content">
297
+ <div class="panel glass">
298
+ <h2 class="panel-title">Learnings Registry (Learnings.md)</h2>
299
+ <div class="markdown-view" id="learnings-registry">
300
+ Reading persistent experiences and repo learnings...
301
+ </div>
302
+ </div>
303
+ </div>
304
+
305
+ <!-- Tab 5: Skill Registry -->
306
+ <div id="tab-skills" class="tab-content">
307
+ <div class="panel glass">
308
+ <h2 class="panel-title">Skill Registry & Playbooks</h2>
309
+ <p class="description">This registry tracks self-evolved playbooks and code refactoring achievements that have been successfully integrated into the system.</p>
310
+ <div class="skills-list-view" id="skills-list">
311
+ <div class="empty-state">Loading registered skills...</div>
312
+ </div>
313
+ </div>
314
+ </div>
315
+
316
+ <!-- Tab 5: Console Logs -->
317
+ <div id="tab-logs" class="tab-content">
318
+ <div class="panel glass flex-column full-height">
319
+ <div class="panel-header flex-between">
320
+ <h2 class="panel-title">Daemon Console Output</h2>
321
+ <button id="btn-autoscroll" class="control-btn active">Auto Scroll</button>
322
+ </div>
323
+ <pre class="terminal-log" id="console-output">Loading evolution logs...</pre>
324
+ </div>
325
+ </div>
326
+
327
+ <!-- Tab 6: Live Research Log -->
328
+ <div id="tab-research" class="tab-content">
329
+ <div class="panel glass">
330
+ <h2 class="panel-title">Live Research Decision Log</h2>
331
+ <p class="description">This log records active agent decisions, debugging actions, compiler feedback, and system state snapshots dynamically.</p>
332
+ <div id="research-empty" class="empty-state">No research sessions recorded yet. Start a task to log decisions.</div>
333
+ <div class="research-sessions-container hidden" id="research-sessions">
334
+ <!-- Render research sessions and decisions here -->
335
+ </div>
336
+ </div>
337
+ </div>
338
+
339
+ <!-- Tab 7: DGM Archive Tree -->
340
+ <div id="tab-archive" class="tab-content">
341
+ <div class="panel glass">
342
+ <h2 class="panel-title">DGM Agent Archive & Selection Tree</h2>
343
+ <p class="description">This archive tracks the evolved population nodes (stable commits) of the agent. If evolution fails repeatedly, the system backtracks to one of these verified parent states.</p>
344
+ <div id="archive-empty" class="empty-state">No evolved agent nodes in the archive yet. Complete a successful evolution step to record a parent node.</div>
345
+ <div class="archive-tree-container hidden" id="archive-tree">
346
+ <!-- Render evolved agent tree nodes here -->
347
+ </div>
348
+ </div>
349
+
350
+ <!-- Tab 8: Live Event Stream -->
351
+ <div id="tab-event-stream" class="tab-content">
352
+ <div class="panel glass flex-column full-height">
353
+ <h2 class="panel-title">OpenHands Central Event Stream</h2>
354
+ <p class="description">Live append-only stream recording agent Actions and environment Observations.</p>
355
+ <div class="event-stream-container" id="event-stream-list" style="max-height: 500px; overflow-y: auto; font-family: 'JetBrains Mono', monospace; padding: 1rem; background: rgba(0,0,0,0.2); border-radius: 8px;">
356
+ <div class="empty-state">No events recorded in the stream yet.</div>
357
+ </div>
358
+ </div>
359
+ </div>
360
+
361
+ <!-- Tab 9: Microagents -->
362
+ <div id="tab-microagents" class="tab-content">
363
+ <div class="panel glass">
364
+ <h2 class="panel-title">Active Microagents Registry</h2>
365
+ <p class="description">Lightweight specialized sub-agent instruction profiles loaded dynamically by triggers.</p>
366
+ <div class="microagents-grid" id="microagents-list" style="display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; margin-top: 1rem;">
367
+ <div class="empty-state">Loading microagents...</div>
368
+ </div>
369
+ </div>
370
+ </div>
371
+ </section>
372
+
373
+ <!-- History Timelines -->
374
+ <section class="panel glass history-timeline-section">
375
+ <h2 class="panel-title">Evolution Cycles History</h2>
376
+ <div class="timeline" id="evolution-timeline">
377
+ <div class="timeline-empty">Waiting for evolution cycles to commit...</div>
378
+ </div>
379
+ </section>
380
+ </main>
381
+ </div>
382
+
383
+ <script src="index.js"></script>
384
+ </body>
385
+ </html>