rax-flow 0.1.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.
- package/dashboard/index.html +420 -0
- package/dist/benchmark.d.ts +10 -0
- package/dist/benchmark.d.ts.map +1 -0
- package/dist/benchmark.js +123 -0
- package/dist/benchmark.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +115 -0
- package/dist/bin.js.map +1 -0
- package/dist/bootstrap.d.ts +8 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +22 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/bridge-adapter-templates.d.ts +4 -0
- package/dist/bridge-adapter-templates.d.ts.map +1 -0
- package/dist/bridge-adapter-templates.js +185 -0
- package/dist/bridge-adapter-templates.js.map +1 -0
- package/dist/bridge-test.d.ts +7 -0
- package/dist/bridge-test.d.ts.map +1 -0
- package/dist/bridge-test.js +89 -0
- package/dist/bridge-test.js.map +1 -0
- package/dist/dashboard.d.ts +4 -0
- package/dist/dashboard.d.ts.map +1 -0
- package/dist/dashboard.js +49 -0
- package/dist/dashboard.js.map +1 -0
- package/dist/doctor.d.ts +6 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +70 -0
- package/dist/doctor.js.map +1 -0
- package/dist/evolve.d.ts +7 -0
- package/dist/evolve.d.ts.map +1 -0
- package/dist/evolve.js +48 -0
- package/dist/evolve.js.map +1 -0
- package/dist/host-init-templates.d.ts +16 -0
- package/dist/host-init-templates.d.ts.map +1 -0
- package/dist/host-init-templates.js +119 -0
- package/dist/host-init-templates.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/init-host.d.ts +10 -0
- package/dist/init-host.d.ts.map +1 -0
- package/dist/init-host.js +232 -0
- package/dist/init-host.js.map +1 -0
- package/dist/install.d.ts +8 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +99 -0
- package/dist/install.js.map +1 -0
- package/dist/run.d.ts +16 -0
- package/dist/run.d.ts.map +1 -0
- package/dist/run.js +238 -0
- package/dist/run.js.map +1 -0
- package/dist/styles.d.ts +12 -0
- package/dist/styles.d.ts.map +1 -0
- package/dist/styles.js +12 -0
- package/dist/styles.js.map +1 -0
- package/dist/vendor-manifests.d.ts +22 -0
- package/dist/vendor-manifests.d.ts.map +1 -0
- package/dist/vendor-manifests.js +94 -0
- package/dist/vendor-manifests.js.map +1 -0
- package/dist/ws-relay.d.ts +12 -0
- package/dist/ws-relay.d.ts.map +1 -0
- package/dist/ws-relay.js +148 -0
- package/dist/ws-relay.js.map +1 -0
- package/package.json +28 -0
- package/src/benchmark.ts +156 -0
- package/src/bin.ts +127 -0
- package/src/bootstrap.ts +36 -0
- package/src/bridge-adapter-templates.ts +181 -0
- package/src/bridge-test.ts +107 -0
- package/src/dashboard.ts +51 -0
- package/src/doctor.ts +92 -0
- package/src/evolve.ts +74 -0
- package/src/host-init-templates.ts +134 -0
- package/src/index.ts +10 -0
- package/src/init-host.ts +285 -0
- package/src/install.ts +118 -0
- package/src/run.ts +317 -0
- package/src/styles.ts +12 -0
- package/src/vendor-manifests.ts +113 -0
- package/src/ws-relay.ts +156 -0
- package/tsconfig.json +12 -0
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8">
|
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
+
<title>RAX | Internal Explorer</title>
|
|
8
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
9
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
|
|
10
|
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
11
|
+
<link
|
|
12
|
+
href="https://fonts.googleapis.com/css2?family=Geist:wght@100;400;600;900&family=Geist+Mono:wght@400;600&display=swap"
|
|
13
|
+
rel="stylesheet">
|
|
14
|
+
<style>
|
|
15
|
+
:root {
|
|
16
|
+
--vercel-bg: #000;
|
|
17
|
+
--vercel-gray: #111;
|
|
18
|
+
--vercel-border: #333;
|
|
19
|
+
--vercel-text: #fff;
|
|
20
|
+
--vercel-accent: #0070f3;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
body {
|
|
24
|
+
font-family: 'Geist', sans-serif;
|
|
25
|
+
background-color: var(--vercel-bg);
|
|
26
|
+
color: var(--vercel-text);
|
|
27
|
+
-webkit-font-smoothing: antialiased;
|
|
28
|
+
overflow-x: hidden;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.mono {
|
|
32
|
+
font-family: 'Geist Mono', monospace;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.card {
|
|
36
|
+
background: var(--vercel-bg);
|
|
37
|
+
border: 1px solid var(--vercel-border);
|
|
38
|
+
border-radius: 8px;
|
|
39
|
+
transition: border-color 0.2s ease;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.card:hover {
|
|
43
|
+
border-color: #666;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
input[type="password"],
|
|
47
|
+
textarea {
|
|
48
|
+
background: #000;
|
|
49
|
+
border: 1px solid var(--vercel-border);
|
|
50
|
+
color: white;
|
|
51
|
+
padding: 8px 12px;
|
|
52
|
+
border-radius: 6px;
|
|
53
|
+
font-size: 13px;
|
|
54
|
+
outline: none;
|
|
55
|
+
transition: border-color 0.2s;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
input[type="password"]:focus,
|
|
59
|
+
textarea:focus {
|
|
60
|
+
border-color: var(--vercel-accent);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.btn-primary {
|
|
64
|
+
background: white;
|
|
65
|
+
color: black;
|
|
66
|
+
font-weight: 600;
|
|
67
|
+
padding: 6px 12px;
|
|
68
|
+
border-radius: 6px;
|
|
69
|
+
font-size: 13px;
|
|
70
|
+
transition: opacity 0.2s;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.btn-primary:hover {
|
|
74
|
+
opacity: 0.9;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.custom-scrollbar::-webkit-scrollbar {
|
|
78
|
+
width: 4px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.custom-scrollbar::-webkit-scrollbar-track {
|
|
82
|
+
background: transparent;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.custom-scrollbar::-webkit-scrollbar-thumb {
|
|
86
|
+
background: #333;
|
|
87
|
+
border-radius: 10px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* Fix for stretching: explicit height constraints on chart containers */
|
|
91
|
+
.chart-container {
|
|
92
|
+
position: relative;
|
|
93
|
+
height: 180px;
|
|
94
|
+
width: 100%;
|
|
95
|
+
}
|
|
96
|
+
</style>
|
|
97
|
+
</head>
|
|
98
|
+
|
|
99
|
+
<body class="selection:bg-blue-500/30">
|
|
100
|
+
<!-- Navbar -->
|
|
101
|
+
<nav
|
|
102
|
+
class="border-b border-zinc-800 px-8 h-14 flex items-center justify-between sticky top-0 bg-black/80 backdrop-blur-md z-50">
|
|
103
|
+
<div class="flex items-center gap-8">
|
|
104
|
+
<span class="font-bold tracking-tighter text-lg uppercase">RAX Authority</span>
|
|
105
|
+
<div class="h-4 w-px bg-zinc-800 hidden md:block"></div>
|
|
106
|
+
<div class="hidden md:flex gap-6 text-xs font-medium text-zinc-400">
|
|
107
|
+
<a href="#" class="text-white">Home</a>
|
|
108
|
+
<a href="#" class="hover:text-white transition-colors">Mutations</a>
|
|
109
|
+
<a href="#" class="hover:text-white transition-colors">Security</a>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
<button onclick="syncAll()"
|
|
113
|
+
class="bg-zinc-100 text-black font-black text-[9px] uppercase tracking-widest px-4 py-1.5 rounded hover:bg-white transition-colors">
|
|
114
|
+
Sync Explorer Data
|
|
115
|
+
</button>
|
|
116
|
+
</nav>
|
|
117
|
+
|
|
118
|
+
<main class="max-w-5xl mx-auto p-8 space-y-10">
|
|
119
|
+
<!-- Project Header -->
|
|
120
|
+
<div class="flex justify-between items-center border-b border-zinc-800 pb-6">
|
|
121
|
+
<div class="space-y-1">
|
|
122
|
+
<h2 class="text-xl font-bold tracking-tight">Internal Flow Insights</h2>
|
|
123
|
+
<p class="text-zinc-500 text-[11px]">Private, local-only monitoring of your AI orchestrator's health.
|
|
124
|
+
</p>
|
|
125
|
+
</div>
|
|
126
|
+
<div id="statusBadge"
|
|
127
|
+
class="px-2 py-0.5 bg-zinc-900 border border-zinc-800 rounded text-[9px] font-bold text-zinc-500 uppercase tracking-widest">
|
|
128
|
+
OFFLINE
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<!-- Metrics Grid (Rigid 6 columns) -->
|
|
133
|
+
<div
|
|
134
|
+
class="grid grid-cols-2 md:grid-cols-6 border border-zinc-800 rounded-lg divide-x divide-z divide-zinc-800 overflow-hidden bg-zinc-900/20 mb-6">
|
|
135
|
+
<div class="p-5">
|
|
136
|
+
<p class="text-zinc-500 text-[9px] font-black uppercase tracking-widest mb-1">Invocations</p>
|
|
137
|
+
<span class="text-xl font-bold tracking-tighter mono" id="invocations">--</span>
|
|
138
|
+
</div>
|
|
139
|
+
<div class="p-5">
|
|
140
|
+
<p class="text-zinc-500 text-[9px] font-black uppercase tracking-widest mb-1">Avg Clear</p>
|
|
141
|
+
<span class="text-xl font-bold tracking-tighter mono text-emerald-500" id="avgScore">--</span>
|
|
142
|
+
</div>
|
|
143
|
+
<div class="p-5">
|
|
144
|
+
<p class="text-zinc-500 text-[9px] font-black uppercase tracking-widest mb-1">Darwin Rate</p>
|
|
145
|
+
<span class="text-xl font-bold tracking-tighter mono text-amber-500" id="mutationRate">--</span>
|
|
146
|
+
</div>
|
|
147
|
+
<div class="p-5">
|
|
148
|
+
<p class="text-zinc-500 text-[9px] font-black uppercase tracking-widest mb-1">Active Hubs</p>
|
|
149
|
+
<span class="text-xl font-bold tracking-tighter mono text-blue-500" id="clusters">--</span>
|
|
150
|
+
</div>
|
|
151
|
+
<div class="p-5">
|
|
152
|
+
<p class="text-zinc-500 text-[9px] font-black uppercase tracking-widest mb-1">Graph Nodes</p>
|
|
153
|
+
<span class="text-xl font-bold tracking-tighter mono text-indigo-500" id="graphNodes">--</span>
|
|
154
|
+
</div>
|
|
155
|
+
<div class="p-5">
|
|
156
|
+
<p class="text-zinc-500 text-[9px] font-black uppercase tracking-widest mb-1">Graph Edges</p>
|
|
157
|
+
<span class="text-xl font-bold tracking-tighter mono text-violet-500" id="graphEdges">--</span>
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
|
|
161
|
+
<!-- Charts Section -->
|
|
162
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6">
|
|
163
|
+
<div class="card p-5 space-y-4">
|
|
164
|
+
<div class="flex items-center justify-between">
|
|
165
|
+
<h3 class="text-xs font-bold uppercase tracking-widest text-zinc-400">Logic Accuracy</h3>
|
|
166
|
+
<div class="text-[9px] mono text-emerald-500">LIVE</div>
|
|
167
|
+
</div>
|
|
168
|
+
<div class="chart-container">
|
|
169
|
+
<canvas id="accuracyChart"></canvas>
|
|
170
|
+
</div>
|
|
171
|
+
</div>
|
|
172
|
+
<div class="card p-5 space-y-4">
|
|
173
|
+
<div class="flex items-center justify-between">
|
|
174
|
+
<h3 class="text-xs font-bold uppercase tracking-widest text-zinc-400">Mutation Efficiency</h3>
|
|
175
|
+
<div class="text-[9px] mono text-blue-500">AGGREGATE</div>
|
|
176
|
+
</div>
|
|
177
|
+
<div class="chart-container">
|
|
178
|
+
<canvas id="efficiencyChart"></canvas>
|
|
179
|
+
</div>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
|
|
183
|
+
<!-- Feeds Section -->
|
|
184
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
|
185
|
+
<div class="space-y-4">
|
|
186
|
+
<h3 class="text-xs font-bold uppercase tracking-widest text-zinc-500">Global Mutation Log</h3>
|
|
187
|
+
<div
|
|
188
|
+
class="border border-zinc-800 rounded-lg overflow-hidden bg-black h-64 overflow-y-auto custom-scrollbar">
|
|
189
|
+
<table class="w-full text-left border-collapse">
|
|
190
|
+
<thead
|
|
191
|
+
class="bg-zinc-900/50 text-[9px] font-bold text-zinc-500 uppercase tracking-tight border-b border-zinc-800 sticky top-0">
|
|
192
|
+
<tr>
|
|
193
|
+
<th class="px-5 py-2.5">Time</th>
|
|
194
|
+
<th class="px-5 py-2.5">Mutation</th>
|
|
195
|
+
<th class="px-5 py-2.5 text-right">Impact</th>
|
|
196
|
+
</tr>
|
|
197
|
+
</thead>
|
|
198
|
+
<tbody id="mutationTableBody" class="divide-y divide-zinc-800 text-[11px]">
|
|
199
|
+
<tr>
|
|
200
|
+
<td colspan="3" class="px-5 py-4 text-center text-zinc-600 italic">No data synced.</td>
|
|
201
|
+
</tr>
|
|
202
|
+
</tbody>
|
|
203
|
+
</table>
|
|
204
|
+
</div>
|
|
205
|
+
</div>
|
|
206
|
+
<div class="space-y-4">
|
|
207
|
+
<h3 class="text-xs font-bold uppercase tracking-widest text-zinc-500">Live Semantic Links</h3>
|
|
208
|
+
<div class="border border-zinc-800 rounded-lg overflow-hidden bg-black h-64 overflow-y-auto custom-scrollbar p-1"
|
|
209
|
+
id="semanticFeed">
|
|
210
|
+
<div class="px-5 py-4 text-center text-zinc-600 italic text-[11px]">No active traversal.</div>
|
|
211
|
+
</div>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
<!-- Security Tool -->
|
|
217
|
+
<div class="card p-6 bg-zinc-950/40 border-dashed border-zinc-700">
|
|
218
|
+
<div class="flex flex-col md:flex-row md:items-center justify-between gap-4 mb-4">
|
|
219
|
+
<div>
|
|
220
|
+
<h3 class="text-xs font-bold uppercase tracking-widest text-zinc-400">HMAC Command Generator
|
|
221
|
+
</h3>
|
|
222
|
+
<p class="text-[10px] text-zinc-500">Generate cryptographically signed requests for any kernel
|
|
223
|
+
payload.</p>
|
|
224
|
+
</div>
|
|
225
|
+
<div class="flex gap-2">
|
|
226
|
+
<input type="password" id="hmacSecret" placeholder="Hub Admin Secret"
|
|
227
|
+
class="bg-black border border-zinc-800 rounded px-3 py-1 text-[10px] w-48 focus:border-zinc-500 outline-none"
|
|
228
|
+
oninput="autoSign()">
|
|
229
|
+
</div>
|
|
230
|
+
</div>
|
|
231
|
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
232
|
+
<textarea id="payloadInput" class="h-28 w-full mono text-xs p-3" placeholder='{"action": "admin_stats"}'
|
|
233
|
+
oninput="autoSign()"></textarea>
|
|
234
|
+
<div class="bg-black border border-zinc-800 rounded-md p-3 text-[10px] mono text-blue-400 overflow-auto break-all h-28 custom-scrollbar font-normal"
|
|
235
|
+
id="signedOutput">
|
|
236
|
+
{}
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
</main>
|
|
241
|
+
|
|
242
|
+
<script>
|
|
243
|
+
let charts = {};
|
|
244
|
+
|
|
245
|
+
function initCharts() {
|
|
246
|
+
Chart.defaults.color = '#555';
|
|
247
|
+
Chart.defaults.font.family = 'Geist Mono';
|
|
248
|
+
Chart.defaults.font.size = 9;
|
|
249
|
+
|
|
250
|
+
const ctx1 = document.getElementById('accuracyChart').getContext('2d');
|
|
251
|
+
charts.accuracy = new Chart(ctx1, {
|
|
252
|
+
type: 'line',
|
|
253
|
+
data: {
|
|
254
|
+
labels: ['T-6h', 'T-5h', 'T-4h', 'T-3h', 'T-2h', 'T-1h', 'Now'],
|
|
255
|
+
datasets: [{
|
|
256
|
+
data: [0.65, 0.68, 0.72, 0.70, 0.78, 0.82, 0.84],
|
|
257
|
+
borderColor: '#0070f3',
|
|
258
|
+
backgroundColor: (c) => {
|
|
259
|
+
const gradient = c.chart.ctx.createLinearGradient(0, 0, 0, 180);
|
|
260
|
+
gradient.addColorStop(0, 'rgba(0, 112, 243, 0.2)');
|
|
261
|
+
gradient.addColorStop(1, 'transparent');
|
|
262
|
+
return gradient;
|
|
263
|
+
},
|
|
264
|
+
fill: true,
|
|
265
|
+
tension: 0.4,
|
|
266
|
+
borderWidth: 2,
|
|
267
|
+
pointRadius: 0
|
|
268
|
+
}]
|
|
269
|
+
},
|
|
270
|
+
options: {
|
|
271
|
+
responsive: true,
|
|
272
|
+
maintainAspectRatio: false,
|
|
273
|
+
plugins: { legend: { display: false } },
|
|
274
|
+
scales: {
|
|
275
|
+
y: { min: 0.5, max: 1, grid: { color: '#1a1a1a' }, border: { display: false } },
|
|
276
|
+
x: { grid: { display: false }, border: { display: false } }
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
const ctx2 = document.getElementById('efficiencyChart').getContext('2d');
|
|
282
|
+
charts.efficiency = new Chart(ctx2, {
|
|
283
|
+
type: 'bar',
|
|
284
|
+
data: {
|
|
285
|
+
labels: ['Cons', 'Log', 'Eff', 'Ada', 'Rel'],
|
|
286
|
+
datasets: [{
|
|
287
|
+
data: [0.85, 0.76, 0.92, 0.81, 0.98],
|
|
288
|
+
backgroundColor: '#333',
|
|
289
|
+
borderRadius: 4
|
|
290
|
+
}]
|
|
291
|
+
},
|
|
292
|
+
options: {
|
|
293
|
+
responsive: true,
|
|
294
|
+
maintainAspectRatio: false,
|
|
295
|
+
plugins: { legend: { display: false } },
|
|
296
|
+
scales: {
|
|
297
|
+
y: { grid: { color: '#1a1a1a' }, border: { display: false }, ticks: { display: false } },
|
|
298
|
+
x: { grid: { display: false }, border: { display: false } }
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
function generateSignature(payloadStr, secret) {
|
|
305
|
+
const timestamp = (Date.now() / 1000).toString();
|
|
306
|
+
const message = payloadStr + "|" + timestamp;
|
|
307
|
+
const signature = CryptoJS.HmacSHA256(message, secret).toString();
|
|
308
|
+
return { signature, timestamp };
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
function autoSign() {
|
|
312
|
+
const secret = document.getElementById('hmacSecret').value;
|
|
313
|
+
const payloadStr = document.getElementById('payloadInput').value || '{"action": "admin_stats"}';
|
|
314
|
+
if (!secret) return;
|
|
315
|
+
|
|
316
|
+
try {
|
|
317
|
+
const { signature, timestamp } = generateSignature(payloadStr, secret);
|
|
318
|
+
const fullRequest = {
|
|
319
|
+
action: "admin_stats",
|
|
320
|
+
payload: JSON.parse(payloadStr),
|
|
321
|
+
signature: signature,
|
|
322
|
+
timestamp: timestamp
|
|
323
|
+
};
|
|
324
|
+
document.getElementById('signedOutput').innerText = JSON.stringify(fullRequest, null, 2);
|
|
325
|
+
} catch (e) { }
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
function syncAll() {
|
|
329
|
+
// Local User Dashboard is "easily accessible" - no mandatory secret for stats
|
|
330
|
+
const statusBadge = document.getElementById('statusBadge');
|
|
331
|
+
statusBadge.innerText = "RETRIEVING LOCAL STATS...";
|
|
332
|
+
statusBadge.className = "px-2 py-0.5 bg-blue-500/10 border border-blue-500/20 rounded text-[9px] font-bold text-blue-500 uppercase tracking-widest animate-pulse";
|
|
333
|
+
|
|
334
|
+
// Simulating a request to 'user_stats' (unsecured)
|
|
335
|
+
setTimeout(() => {
|
|
336
|
+
statusBadge.innerText = "USER ACCESS VERIFIED";
|
|
337
|
+
statusBadge.className = "px-2 py-0.5 bg-emerald-500/10 border border-emerald-500/20 rounded text-[9px] font-bold text-emerald-500 uppercase tracking-widest";
|
|
338
|
+
|
|
339
|
+
// MOCK RESPONSE from Kernel admin_stats
|
|
340
|
+
const mockResponse = {
|
|
341
|
+
aggregates: {
|
|
342
|
+
global_success_rate: 0.864,
|
|
343
|
+
total_mutations: 124,
|
|
344
|
+
graph_nodes: 156,
|
|
345
|
+
graph_edges: 432
|
|
346
|
+
},
|
|
347
|
+
history: [
|
|
348
|
+
{ timestamp: new Date(Date.now() - 1000 * 60 * 2).toISOString(), score: { overall: 0.88 }, mutation: { type: 'ARCHITECTURAL_INSERT', id: 'mut_x82f' } },
|
|
349
|
+
{ timestamp: new Date(Date.now() - 1000 * 60 * 12).toISOString(), score: { overall: 0.76 }, mutation: { type: 'PARAMETER_TWEAK', id: 'mut_a921' } },
|
|
350
|
+
{ timestamp: new Date(Date.now() - 1000 * 60 * 60).toISOString(), score: { overall: 0.92 }, mutation: null },
|
|
351
|
+
{ timestamp: new Date(Date.now() - 1000 * 60 * 60 * 4).toISOString(), score: { overall: 0.81 }, mutation: { type: 'UPGRADE_TO_ORACLE', id: 'mut_k912' } }
|
|
352
|
+
]
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
updateDynamicContent(mockResponse);
|
|
356
|
+
}, 800);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
function updateDynamicContent(data) {
|
|
360
|
+
const stats = data.aggregates;
|
|
361
|
+
|
|
362
|
+
// Stats
|
|
363
|
+
document.getElementById('invocations').innerText = "1,248,092";
|
|
364
|
+
document.getElementById('avgScore').innerText = stats.global_success_rate.toFixed(3);
|
|
365
|
+
document.getElementById('mutationRate').innerText = "94.2%";
|
|
366
|
+
document.getElementById('graphNodes').innerText = stats.graph_nodes;
|
|
367
|
+
document.getElementById('graphEdges').innerText = stats.graph_edges;
|
|
368
|
+
|
|
369
|
+
// Update Line Chart with new data point
|
|
370
|
+
charts.accuracy.data.datasets[0].data.push(0.85 + (Math.random() * 0.1));
|
|
371
|
+
charts.accuracy.data.datasets[0].data.shift();
|
|
372
|
+
charts.accuracy.update();
|
|
373
|
+
|
|
374
|
+
// Update Bar Chart
|
|
375
|
+
charts.efficiency.data.datasets[0].data = charts.efficiency.data.datasets[0].data.map(v => v + (Math.random() - 0.5) * 0.05);
|
|
376
|
+
charts.efficiency.update();
|
|
377
|
+
|
|
378
|
+
// Table update
|
|
379
|
+
const body = document.getElementById('mutationTableBody');
|
|
380
|
+
const history = data.history.filter(h => h.mutation);
|
|
381
|
+
|
|
382
|
+
body.innerHTML = history.map(h => `
|
|
383
|
+
<tr class="hover:bg-zinc-900/40 transition-colors">
|
|
384
|
+
<td class="px-5 py-3 text-zinc-500 mono">${new Date(h.timestamp).toLocaleTimeString()}</td>
|
|
385
|
+
<td class="px-5 py-3 font-semibold">${h.mutation.id || h.mutation.type}</td>
|
|
386
|
+
<td class="px-5 py-3 text-right text-emerald-500 font-bold mono">+4.2%</td>
|
|
387
|
+
</tr>
|
|
388
|
+
`).join('');
|
|
389
|
+
|
|
390
|
+
// Semantic Feed update
|
|
391
|
+
const feed = document.getElementById('semanticFeed');
|
|
392
|
+
const links = [
|
|
393
|
+
{ from: 'auth_api', to: 'login_agent', type: 'depends_on' },
|
|
394
|
+
{ from: 'login_agent', to: 'audit_log', type: 'produced' },
|
|
395
|
+
{ from: 'audit_log', to: 'compliance_report', type: 'relates_to' },
|
|
396
|
+
{ from: 'checkout_logic', to: 'payment_agent', type: 'triggered_by' }
|
|
397
|
+
];
|
|
398
|
+
feed.innerHTML = links.map(l => `
|
|
399
|
+
<div class="flex items-center gap-2 p-2 hover:bg-zinc-900/40 rounded transition-colors border-b border-zinc-900 last:border-0 group">
|
|
400
|
+
<div class="text-[10px] mono text-zinc-400 truncate w-24 text-right">${l.from}</div>
|
|
401
|
+
<div class="flex-1 h-px bg-zinc-800 relative">
|
|
402
|
+
<div class="absolute inset-0 flex items-center justify-center">
|
|
403
|
+
<span class="bg-black px-1 text-[8px] mono text-zinc-600 group-hover:text-blue-500 transition-colors uppercase leading-none">${l.type}</span>
|
|
404
|
+
</div>
|
|
405
|
+
</div>
|
|
406
|
+
<div class="text-[10px] mono text-zinc-400 truncate w-24">${l.to}</div>
|
|
407
|
+
</div>
|
|
408
|
+
`).join('');
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
function copyToClipboard() {
|
|
412
|
+
const text = document.getElementById('signedOutput').innerText;
|
|
413
|
+
navigator.clipboard.writeText(text).then(() => alert("Signed JSON copied to clipboard."));
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
window.onload = initCharts;
|
|
417
|
+
</script>
|
|
418
|
+
</body>
|
|
419
|
+
|
|
420
|
+
</html>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface BenchOptions {
|
|
2
|
+
cwd: string;
|
|
3
|
+
prompt: string;
|
|
4
|
+
output?: string;
|
|
5
|
+
providerOverride?: string;
|
|
6
|
+
bridgeCommandOverride?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function runBenchmark(options: BenchOptions): Promise<number>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=benchmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../src/benchmark.ts"],"names":[],"mappings":"AASA,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AA0DD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAkFzE"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { performance } from "node:perf_hooks";
|
|
4
|
+
import { CoreOrchestrator } from "@rax-flow/core";
|
|
5
|
+
import { buildOfficialAgentsRuntime } from "@rax-flow/agents";
|
|
6
|
+
import { ClaudeAdapter, GenericRestAdapter, HostBridgeAdapter, OpenAIAdapter } from "@rax-flow/providers";
|
|
7
|
+
import { c } from "./styles.js";
|
|
8
|
+
import { readFile } from "node:fs/promises";
|
|
9
|
+
async function loadConfig(cwd) {
|
|
10
|
+
const file = path.join(cwd, ".raxrc");
|
|
11
|
+
const raw = await readFile(file, "utf8");
|
|
12
|
+
return JSON.parse(raw);
|
|
13
|
+
}
|
|
14
|
+
function createProviders(config, bridgeCommandOverride) {
|
|
15
|
+
const providers = {};
|
|
16
|
+
const hostCfg = config.providers?.host;
|
|
17
|
+
const bridgeCommand = bridgeCommandOverride ?? process.env[hostCfg?.bridgeCommandEnv ?? "RAX_HOST_BRIDGE_COMMAND"];
|
|
18
|
+
providers.host = new HostBridgeAdapter({
|
|
19
|
+
model: hostCfg?.model ?? "host-managed",
|
|
20
|
+
mode: hostCfg?.mode ?? "auto",
|
|
21
|
+
command: bridgeCommand,
|
|
22
|
+
timeoutMs: hostCfg?.timeoutMs ?? 20000
|
|
23
|
+
});
|
|
24
|
+
const openaiKey = process.env[config.providers?.openai?.apiKeyEnv ?? "OPENAI_API_KEY"];
|
|
25
|
+
if (openaiKey) {
|
|
26
|
+
providers.openai = new OpenAIAdapter(openaiKey, config.providers?.openai?.baseUrl);
|
|
27
|
+
}
|
|
28
|
+
const claudeKey = process.env[config.providers?.claude?.apiKeyEnv ?? "ANTHROPIC_API_KEY"];
|
|
29
|
+
if (claudeKey) {
|
|
30
|
+
providers.claude = new ClaudeAdapter(claudeKey, config.providers?.claude?.baseUrl);
|
|
31
|
+
}
|
|
32
|
+
const restEndpoint = config.providers?.rest?.endpoint;
|
|
33
|
+
if (restEndpoint) {
|
|
34
|
+
const restToken = process.env[config.providers?.rest?.tokenEnv ?? "RAX_REST_TOKEN"];
|
|
35
|
+
providers.rest = new GenericRestAdapter(restEndpoint, restToken);
|
|
36
|
+
}
|
|
37
|
+
return providers;
|
|
38
|
+
}
|
|
39
|
+
function pseudoScore(text) {
|
|
40
|
+
const clean = text.trim();
|
|
41
|
+
if (!clean)
|
|
42
|
+
return 0;
|
|
43
|
+
const lengthScore = Math.min(clean.length / 1200, 1);
|
|
44
|
+
const structureScore = ["{", "}", "-", "1.", "2."].reduce((acc, token) => acc + (clean.includes(token) ? 0.08 : 0), 0);
|
|
45
|
+
return Math.min(1, 0.45 + lengthScore * 0.35 + structureScore);
|
|
46
|
+
}
|
|
47
|
+
export async function runBenchmark(options) {
|
|
48
|
+
let config;
|
|
49
|
+
try {
|
|
50
|
+
config = await loadConfig(options.cwd);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
console.error(c.red("Missing .raxrc. Run `rax-flow install` first."));
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
const providers = createProviders(config, options.bridgeCommandOverride);
|
|
57
|
+
const selectedProvider = options.providerOverride ?? config.defaultProvider ?? "host";
|
|
58
|
+
const provider = providers[selectedProvider] ?? Object.values(providers)[0];
|
|
59
|
+
if (!provider) {
|
|
60
|
+
console.error(c.red("No provider configured for benchmark."));
|
|
61
|
+
return 1;
|
|
62
|
+
}
|
|
63
|
+
const baselineStart = performance.now();
|
|
64
|
+
const baselineRaw = await provider.callModel(options.prompt, { temperature: 0.2, maxTokens: 1200 });
|
|
65
|
+
const baselineLatency = performance.now() - baselineStart;
|
|
66
|
+
const agents = buildOfficialAgentsRuntime({
|
|
67
|
+
providers,
|
|
68
|
+
defaultProvider: selectedProvider,
|
|
69
|
+
strongProvider: config.strongProvider ?? "host",
|
|
70
|
+
providerModels: {
|
|
71
|
+
host: config.providers?.host?.model ?? "host-managed",
|
|
72
|
+
openai: config.providers?.openai?.model ?? "gpt-4.1-mini",
|
|
73
|
+
claude: config.providers?.claude?.model ?? "claude-3-5-sonnet-latest",
|
|
74
|
+
rest: config.providers?.rest?.model ?? "generic-llm"
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
const orchestrator = new CoreOrchestrator(providers, agents, {}, { maxParallel: 4, cacheTtlMs: 0 });
|
|
78
|
+
const raxStart = performance.now();
|
|
79
|
+
const rax = await orchestrator.run({
|
|
80
|
+
taskId: `bench_${Date.now()}`,
|
|
81
|
+
userPrompt: options.prompt,
|
|
82
|
+
context: { benchmark: true }
|
|
83
|
+
});
|
|
84
|
+
const raxLatency = performance.now() - raxStart;
|
|
85
|
+
const baselineCorrectness = pseudoScore(baselineRaw.output);
|
|
86
|
+
const report = {
|
|
87
|
+
generatedAt: new Date().toISOString(),
|
|
88
|
+
prompt: options.prompt,
|
|
89
|
+
baseline: {
|
|
90
|
+
correctness: baselineCorrectness,
|
|
91
|
+
cost: 0,
|
|
92
|
+
latencyMs: Math.round(baselineLatency),
|
|
93
|
+
stability: baselineCorrectness * 0.9,
|
|
94
|
+
humanIntervention: baselineCorrectness < 0.7 ? 0.6 : 0.3
|
|
95
|
+
},
|
|
96
|
+
orchestrated: {
|
|
97
|
+
correctness: rax.result.confidence,
|
|
98
|
+
cost: rax.metrics.totalCostUsd,
|
|
99
|
+
latencyMs: Math.round(raxLatency),
|
|
100
|
+
stability: rax.result.success ? 0.9 : 0.5,
|
|
101
|
+
humanIntervention: rax.metrics.humanInterventionRequired ? 0.6 : 0.1
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const delta = {
|
|
105
|
+
correctness: +(report.orchestrated.correctness - report.baseline.correctness).toFixed(3),
|
|
106
|
+
cost: +(report.orchestrated.cost - report.baseline.cost).toFixed(3),
|
|
107
|
+
latencyMs: report.orchestrated.latencyMs - report.baseline.latencyMs,
|
|
108
|
+
stability: +(report.orchestrated.stability - report.baseline.stability).toFixed(3),
|
|
109
|
+
humanIntervention: +(report.orchestrated.humanIntervention - report.baseline.humanIntervention).toFixed(3)
|
|
110
|
+
};
|
|
111
|
+
const full = { ...report, delta };
|
|
112
|
+
const outputFile = path.resolve(options.cwd, options.output ?? "benchmarks/reports/latest.json");
|
|
113
|
+
await mkdir(path.dirname(outputFile), { recursive: true });
|
|
114
|
+
await writeFile(outputFile, `${JSON.stringify(full, null, 2)}\n`, "utf8");
|
|
115
|
+
console.log(c.blue("RAX-FLOW Benchmark"));
|
|
116
|
+
console.log(`report: ${outputFile}`);
|
|
117
|
+
console.log(`delta correctness: ${delta.correctness}`);
|
|
118
|
+
console.log(`delta latency(ms): ${delta.latencyMs}`);
|
|
119
|
+
console.log(`delta stability: ${delta.stability}`);
|
|
120
|
+
console.log(`delta humanIntervention: ${delta.humanIntervention}`);
|
|
121
|
+
return 0;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=benchmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../src/benchmark.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":""}
|