kernelbot 1.0.37 → 1.0.39

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 (41) hide show
  1. package/bin/kernel.js +499 -249
  2. package/config.example.yaml +17 -0
  3. package/knowledge_base/active_inference_foraging.md +126 -0
  4. package/knowledge_base/index.md +1 -1
  5. package/package.json +3 -1
  6. package/src/agent.js +355 -82
  7. package/src/bot.js +724 -12
  8. package/src/character.js +406 -0
  9. package/src/characters/builder.js +174 -0
  10. package/src/characters/builtins.js +421 -0
  11. package/src/conversation.js +17 -2
  12. package/src/dashboard/agents.css +469 -0
  13. package/src/dashboard/agents.html +184 -0
  14. package/src/dashboard/agents.js +873 -0
  15. package/src/dashboard/dashboard.css +281 -0
  16. package/src/dashboard/dashboard.js +579 -0
  17. package/src/dashboard/index.html +366 -0
  18. package/src/dashboard/server.js +521 -0
  19. package/src/dashboard/shared.css +700 -0
  20. package/src/dashboard/shared.js +218 -0
  21. package/src/life/engine.js +115 -26
  22. package/src/life/evolution.js +7 -5
  23. package/src/life/journal.js +5 -4
  24. package/src/life/memory.js +12 -9
  25. package/src/life/share-queue.js +7 -5
  26. package/src/prompts/orchestrator.js +76 -14
  27. package/src/prompts/workers.js +22 -0
  28. package/src/self.js +17 -5
  29. package/src/services/linkedin-api.js +190 -0
  30. package/src/services/stt.js +8 -2
  31. package/src/services/tts.js +32 -2
  32. package/src/services/x-api.js +141 -0
  33. package/src/swarm/worker-registry.js +7 -0
  34. package/src/tools/categories.js +4 -0
  35. package/src/tools/index.js +6 -0
  36. package/src/tools/linkedin.js +264 -0
  37. package/src/tools/orchestrator-tools.js +337 -2
  38. package/src/tools/x.js +256 -0
  39. package/src/utils/config.js +190 -139
  40. package/src/utils/display.js +165 -52
  41. package/src/utils/temporal-awareness.js +24 -10
@@ -0,0 +1,366 @@
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>KERNEL // Command Center</title>
7
+ <link rel="stylesheet" href="shared.css">
8
+ <link rel="stylesheet" href="dashboard.css">
9
+ </head>
10
+ <body>
11
+
12
+ <canvas id="particle-canvas"></canvas>
13
+ <div class="scanlines"></div>
14
+
15
+ <!-- ═══════ SIDEBAR ═══════ -->
16
+ <nav class="sidebar">
17
+ <div class="sidebar-logo">
18
+ <svg viewBox="0 0 32 32" shape-rendering="crispEdges">
19
+ <!-- Pixel-art spiral vortex: 3 rings with rotating gaps -->
20
+ <!-- Outer ring — gap at top-right (1 o'clock) -->
21
+ <path fill="rgba(57,255,20,0.35)" d="M10,2h10v2h-10z M8,4h2v2h-2z M6,6h2v4h-2z M4,10h2v8h-2z M6,18h2v2h-2z M8,20h2v2h-2z M10,22h14v2h-14z M24,18h2v4h-2z M26,8h2v10h-2z M24,6h2v2h-2z"/>
22
+ <!-- Middle ring — gap at bottom-right (4 o'clock) -->
23
+ <path fill="rgba(57,255,20,0.6)" d="M12,8h8v2h-8z M10,10h2v10h-2z M20,10h2v6h-2z M18,18h2v2h-2z M12,20h6v2h-6z"/>
24
+ <!-- Inner core — L-shape spiral hint -->
25
+ <path fill="#39ff14" d="M14,14h4v2h-2v2h-2z"/>
26
+ </svg>
27
+ </div>
28
+
29
+ <div class="sidebar-nav">
30
+ <a class="nav-item active" href="#gauges" title="System">
31
+ <svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 3"/></svg>
32
+ <span class="nav-label">SYS</span>
33
+ </a>
34
+ <a class="nav-item" href="#p-jobs" title="Jobs">
35
+ <svg viewBox="0 0 24 24"><rect x="4" y="4" width="16" height="5" rx="1"/><rect x="4" y="11" width="16" height="5" rx="1"/></svg>
36
+ <span class="nav-label">JOBS</span>
37
+ </a>
38
+ <a class="nav-item" href="#p-life" title="Life">
39
+ <svg viewBox="0 0 24 24"><path d="M3 12h4l3-9 4 18 3-9h4"/></svg>
40
+ <span class="nav-label">LIFE</span>
41
+ </a>
42
+ <a class="nav-item" href="#p-evo" title="Evolution">
43
+ <svg viewBox="0 0 24 24"><path d="M12 2v4m0 12v4M2 12h4m12 0h4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>
44
+ <span class="nav-label">EVO</span>
45
+ </a>
46
+ <a class="nav-item" href="#p-mem" title="Memory">
47
+ <svg viewBox="0 0 24 24"><path d="M9.5 2A2.5 2.5 0 0 1 12 4.5v15a2.5 2.5 0 0 1-4.96.44A2.5 2.5 0 0 1 2 17.5a2.5 2.5 0 0 1 .72-1.76A2.5 2.5 0 0 1 5 12a2.5 2.5 0 0 1-2-4 2.5 2.5 0 0 1 4.5-1.5"/><path d="M14.5 2A2.5 2.5 0 0 0 12 4.5v15a2.5 2.5 0 0 0 4.96.44A2.5 2.5 0 0 0 22 17.5a2.5 2.5 0 0 0-.72-1.76A2.5 2.5 0 0 0 19 12a2.5 2.5 0 0 0 2-4 2.5 2.5 0 0 0-4.5-1.5"/></svg>
48
+ <span class="nav-label">MEM</span>
49
+ </a>
50
+ <a class="nav-item" href="#p-logs" title="Logs">
51
+ <svg viewBox="0 0 24 24"><path d="M4 17l6-6-6-6M12 19h8"/></svg>
52
+ <span class="nav-label">LOGS</span>
53
+ </a>
54
+ <a class="nav-item" href="/agents.html" title="Agents">
55
+ <svg viewBox="0 0 24 24"><circle cx="12" cy="5" r="3"/><circle cx="5" cy="19" r="3"/><circle cx="19" cy="19" r="3"/><path d="M12 8v4M7.5 17.2l3-4.2M16.5 17.2l-3-4.2"/></svg>
56
+ <span class="nav-label">AGENTS</span>
57
+ </a>
58
+ </div>
59
+
60
+ <!-- Sidebar mini gauges -->
61
+ <div class="sidebar-gauges">
62
+ <div class="mini-gauge" id="sb-cpu">
63
+ <svg viewBox="0 0 38 38"><circle class="track" cx="19" cy="19" r="16"/><circle class="fill" cx="19" cy="19" r="16" stroke-dasharray="100.5" stroke-dashoffset="100.5"/></svg>
64
+ <div class="mini-gauge-label"><span class="val">--%</span><span class="lbl">CPU</span></div>
65
+ </div>
66
+ <div class="mini-gauge" id="sb-ram">
67
+ <svg viewBox="0 0 38 38"><circle class="track" cx="19" cy="19" r="16"/><circle class="fill" cx="19" cy="19" r="16" stroke-dasharray="100.5" stroke-dashoffset="100.5"/></svg>
68
+ <div class="mini-gauge-label"><span class="val">--%</span><span class="lbl">RAM</span></div>
69
+ </div>
70
+ <div class="sidebar-conn connected" id="conn-dot"></div>
71
+ </div>
72
+ </nav>
73
+
74
+ <!-- ═══════ TOP BAR ═══════ -->
75
+ <header class="top-bar">
76
+ <div class="top-bar-left">
77
+ <span class="top-bar-title">KernelBot</span>
78
+ <span class="top-bar-sep">//</span>
79
+ <span class="top-bar-nav">
80
+ <a class="top-bar-nav-item active" href="#gauges">SYSTEM</a>
81
+ <a class="top-bar-nav-item" href="#p-jobs">JOBS</a>
82
+ <a class="top-bar-nav-item" href="#p-life">LIFE</a>
83
+ <a class="top-bar-nav-item" href="#p-evo">EVO</a>
84
+ <a class="top-bar-nav-item" href="#p-mem">MEMORY</a>
85
+ <a class="top-bar-nav-item" href="#p-logs">LOGS</a>
86
+ <a class="top-bar-nav-item" href="/agents.html">AGENTS</a>
87
+ </span>
88
+ </div>
89
+ <div class="top-bar-right">
90
+ <span class="top-bar-conn" id="top-conn"></span>
91
+ <span><span class="val" id="hdr-status">ONLINE</span></span>
92
+ <span class="sep">//</span>
93
+ <span>UP <span class="val" id="hdr-uptime">--</span></span>
94
+ <span class="sep">//</span>
95
+ <span>PID <span class="val" id="hdr-pid">--</span></span>
96
+ <span class="sep">//</span>
97
+ <span>NODE <span class="val" id="hdr-node">--</span></span>
98
+ <span class="sep">//</span>
99
+ <span class="val" id="hdr-clock">--</span>
100
+ </div>
101
+ </header>
102
+
103
+ <!-- ═══════ RIGHT BAR ═══════ -->
104
+ <aside class="right-bar">
105
+ <div class="right-stat" title="Running Jobs">
106
+ <span class="r-val zero" id="rb-jobs">0</span>
107
+ <span class="r-lbl">JOBS</span>
108
+ </div>
109
+ <div class="right-divider"></div>
110
+ <div class="right-stat" title="Total Jobs">
111
+ <span class="r-val zero" id="rb-total-jobs">0</span>
112
+ <span class="r-lbl">TOTAL</span>
113
+ </div>
114
+ <div class="right-divider"></div>
115
+ <div class="right-stat" title="Life Engine">
116
+ <span class="r-dot off" id="rb-life-dot"></span>
117
+ <span class="r-lbl">LIFE</span>
118
+ </div>
119
+ <div class="right-divider"></div>
120
+ <div class="right-stat" title="Activities">
121
+ <span class="r-val zero" id="rb-activities">0</span>
122
+ <span class="r-lbl">ACTS</span>
123
+ </div>
124
+ <div class="right-divider"></div>
125
+ <div class="right-stat" title="Memories">
126
+ <span class="r-val zero" id="rb-mem">0</span>
127
+ <span class="r-lbl">MEM</span>
128
+ </div>
129
+ <div class="right-divider"></div>
130
+ <div class="right-stat" title="Share Queue">
131
+ <span class="r-val zero" id="rb-shares">0</span>
132
+ <span class="r-lbl">SHARE</span>
133
+ </div>
134
+ <div class="right-divider"></div>
135
+ <div class="right-stat" title="Evolution Proposals">
136
+ <span class="r-val zero" id="rb-evo">0</span>
137
+ <span class="r-lbl">EVO</span>
138
+ </div>
139
+ <div class="right-divider"></div>
140
+ <div class="right-stat" title="Conversations">
141
+ <span class="r-val zero" id="rb-convs">0</span>
142
+ <span class="r-lbl">CHATS</span>
143
+ </div>
144
+ <div class="right-bar-clock" id="rb-clock">--:--</div>
145
+ </aside>
146
+
147
+ <!-- ═══════ MAIN ═══════ -->
148
+ <div class="main">
149
+
150
+ <!-- Hero bar -->
151
+ <div class="hero-bar">
152
+ <canvas id="waveform-canvas"></canvas>
153
+ <div class="hero-pulse">
154
+ <div class="pulse-stat">
155
+ <span class="pulse-label">BRAIN</span>
156
+ <span class="pulse-val" id="pulse-brain">--</span>
157
+ </div>
158
+ <div class="pulse-stat">
159
+ <span class="pulse-label">ACTIVITY</span>
160
+ <span class="pulse-val idle" id="pulse-activity">IDLE</span>
161
+ </div>
162
+ <div class="pulse-stat">
163
+ <span class="pulse-label">JOBS</span>
164
+ <span class="pulse-val idle" id="pulse-jobs">0</span>
165
+ </div>
166
+ <div class="pulse-stat">
167
+ <span class="pulse-label">CPU</span>
168
+ <span class="pulse-val" id="pulse-cpu">--%</span>
169
+ </div>
170
+ <div class="pulse-stat">
171
+ <span class="pulse-label">HEAP</span>
172
+ <span class="pulse-val" id="pulse-heap">--</span>
173
+ </div>
174
+ <div class="pulse-stat">
175
+ <span class="pulse-label">UPTIME</span>
176
+ <span class="pulse-val" id="pulse-uptime">--</span>
177
+ </div>
178
+ </div>
179
+ </div>
180
+
181
+ <!-- Integration Status Bar -->
182
+ <div class="integrations-bar" id="integrations-bar"></div>
183
+
184
+ <!-- Gauge row -->
185
+ <div class="gauge-row" id="gauges">
186
+ <div class="gauge-widget">
187
+ <div class="gauge-ring" id="g-cpu1">
188
+ <svg viewBox="0 0 90 90"><circle class="track" cx="45" cy="45" r="38"/><circle class="fill" cx="45" cy="45" r="38" stroke-dasharray="238.8" stroke-dashoffset="238.8"/></svg>
189
+ <div class="gauge-center"><span class="pct">--%</span><span class="sub">--</span></div>
190
+ </div>
191
+ <div class="gauge-label">CPU 1M</div>
192
+ </div>
193
+ <div class="gauge-widget">
194
+ <div class="gauge-ring" id="g-cpu5">
195
+ <svg viewBox="0 0 90 90"><circle class="track" cx="45" cy="45" r="38"/><circle class="fill" cx="45" cy="45" r="38" stroke-dasharray="238.8" stroke-dashoffset="238.8"/></svg>
196
+ <div class="gauge-center"><span class="pct">--%</span><span class="sub">--</span></div>
197
+ </div>
198
+ <div class="gauge-label">CPU 5M</div>
199
+ </div>
200
+ <div class="gauge-widget">
201
+ <div class="gauge-ring" id="g-ram">
202
+ <svg viewBox="0 0 90 90"><circle class="track" cx="45" cy="45" r="38"/><circle class="fill" cx="45" cy="45" r="38" stroke-dasharray="238.8" stroke-dashoffset="238.8"/></svg>
203
+ <div class="gauge-center"><span class="pct">--%</span><span class="sub">--</span></div>
204
+ </div>
205
+ <div class="gauge-label">RAM</div>
206
+ </div>
207
+ <div class="gauge-widget">
208
+ <div class="gauge-ring" id="g-heap">
209
+ <svg viewBox="0 0 90 90"><circle class="track" cx="45" cy="45" r="38"/><circle class="fill" cx="45" cy="45" r="38" stroke-dasharray="238.8" stroke-dashoffset="238.8"/></svg>
210
+ <div class="gauge-center"><span class="pct">--%</span><span class="sub">--</span></div>
211
+ </div>
212
+ <div class="gauge-label">HEAP</div>
213
+ </div>
214
+ </div>
215
+
216
+ <!-- Content grid -->
217
+ <div class="content">
218
+
219
+ <!-- ══ TOP ROW: 3 hero panels ══ -->
220
+
221
+ <!-- CAPABILITIES -->
222
+ <div class="panel span-4" id="p-caps">
223
+ <div class="sweep"></div>
224
+ <div class="panel-header"><span class="dot"></span>CAPABILITIES<span class="tag" id="caps-tag">WORKERS</span></div>
225
+ <div class="panel-body" id="caps-body"></div>
226
+ </div>
227
+
228
+ <!-- LIFE -->
229
+ <div class="panel span-4" id="p-life">
230
+ <div class="sweep"></div>
231
+ <div class="panel-header"><span class="dot"></span>LIFE.ENGINE<span class="tag">AUTONOMOUS</span></div>
232
+ <div class="panel-body" id="life-body"></div>
233
+ </div>
234
+
235
+ <!-- MEMORY -->
236
+ <div class="panel span-4" id="p-mem">
237
+ <div class="sweep"></div>
238
+ <div class="panel-header"><span class="dot"></span>MEMORY.BANK<span class="tag" id="mem-tag">EPISODIC</span></div>
239
+ <div class="panel-tabs" id="mem-tabs">
240
+ <span class="panel-tab active" data-tab="episodic">EPISODIC</span>
241
+ <span class="panel-tab" data-tab="knowledge">KNOWLEDGE</span>
242
+ </div>
243
+ <div class="panel-body" id="mem-body"></div>
244
+ </div>
245
+
246
+ <!-- ══ SECOND ROW ══ -->
247
+
248
+ <!-- JOBS (wide) -->
249
+ <div class="panel span-8" id="p-jobs">
250
+ <div class="sweep"></div>
251
+ <div class="panel-header"><span class="dot"></span>JOBS<span class="tag" id="jobs-count-tag">SWARM // 0</span></div>
252
+ <div class="panel-body" id="jobs-body"></div>
253
+ </div>
254
+
255
+ <!-- CONFIG -->
256
+ <div class="panel span-4">
257
+ <div class="sweep"></div>
258
+ <div class="panel-header"><span class="dot"></span>NEURAL.CONFIG<span class="tag">SETTINGS</span></div>
259
+ <div class="panel-body" id="config-body"></div>
260
+ </div>
261
+
262
+ <!-- ══ THIRD ROW ══ -->
263
+
264
+ <!-- EVOLUTION -->
265
+ <div class="panel span-6" id="p-evo">
266
+ <div class="sweep"></div>
267
+ <div class="panel-header"><span class="dot"></span>EVOLUTION<span class="tag">SELF-IMPROVE</span></div>
268
+ <div class="panel-body" id="evo-body"></div>
269
+ </div>
270
+
271
+ <!-- JOURNAL -->
272
+ <div class="panel span-6">
273
+ <div class="sweep"></div>
274
+ <div class="panel-header"><span class="dot"></span>JOURNAL<span class="tag" id="journal-tag">TODAY</span></div>
275
+ <div class="panel-tabs" id="journal-tabs"></div>
276
+ <div class="panel-body" id="journal-body"></div>
277
+ </div>
278
+
279
+ <!-- ══ FOURTH ROW ══ -->
280
+
281
+ <!-- AUTOMATIONS -->
282
+ <div class="panel span-4">
283
+ <div class="sweep"></div>
284
+ <div class="panel-header"><span class="dot"></span>AUTOMATIONS<span class="tag">SCHEDULER</span></div>
285
+ <div class="panel-body short" id="auto-body"></div>
286
+ </div>
287
+
288
+ <!-- IDEAS BACKLOG -->
289
+ <div class="panel span-4" id="p-ideas">
290
+ <div class="sweep"></div>
291
+ <div class="panel-header"><span class="dot"></span>IDEAS.BACKLOG<span class="tag" id="ideas-tag">BRAIN</span></div>
292
+ <div class="panel-body short" id="ideas-body"></div>
293
+ </div>
294
+
295
+ <!-- LESSONS -->
296
+ <div class="panel span-4" id="p-lessons">
297
+ <div class="sweep"></div>
298
+ <div class="panel-header"><span class="dot"></span>LESSONS<span class="tag" id="lessons-tag">WISDOM</span></div>
299
+ <div class="panel-body short" id="lessons-body"></div>
300
+ </div>
301
+
302
+ <!-- ══ FIFTH ROW ══ -->
303
+
304
+ <!-- SHARES -->
305
+ <div class="panel span-4">
306
+ <div class="sweep"></div>
307
+ <div class="panel-header"><span class="dot"></span>SHARE.QUEUE<span class="tag" id="shares-tag">OUTBOUND</span></div>
308
+ <div class="panel-tabs" id="shares-tabs">
309
+ <span class="panel-tab active" data-tab="pending">PENDING</span>
310
+ <span class="panel-tab" data-tab="shared">HISTORY</span>
311
+ </div>
312
+ <div class="panel-body short" id="shares-body"></div>
313
+ </div>
314
+
315
+ <!-- CHARACTER -->
316
+ <div class="panel span-4">
317
+ <div class="sweep"></div>
318
+ <div class="panel-header"><span class="dot"></span>CHARACTER<span class="tag">PERSONA</span></div>
319
+ <div class="panel-body short" id="char-body"></div>
320
+ </div>
321
+
322
+ <!-- CONVERSATIONS -->
323
+ <div class="panel span-4">
324
+ <div class="sweep"></div>
325
+ <div class="panel-header"><span class="dot"></span>CONVERSATIONS<span class="tag">CHANNELS</span></div>
326
+ <div class="panel-body short" id="conv-body"></div>
327
+ </div>
328
+
329
+ <!-- ══ SIXTH ROW ══ -->
330
+
331
+ <!-- SELF.AWARENESS -->
332
+ <div class="panel span-6">
333
+ <div class="sweep"></div>
334
+ <div class="panel-header"><span class="dot"></span>SELF.AWARENESS<span class="tag">IDENTITY</span></div>
335
+ <div class="panel-body short" id="self-body"></div>
336
+ </div>
337
+
338
+ <!-- SELF.GOALS -->
339
+ <div class="panel span-6">
340
+ <div class="sweep"></div>
341
+ <div class="panel-header"><span class="dot"></span>SELF.GOALS<span class="tag">ASPIRATION</span></div>
342
+ <div class="panel-body short" id="self-goals-body"></div>
343
+ </div>
344
+
345
+ <!-- LOG STREAM (full) -->
346
+ <div class="panel span-12" id="p-logs">
347
+ <div class="sweep"></div>
348
+ <div class="panel-header"><span class="dot"></span>LOG.STREAM<span class="tag">REAL-TIME</span></div>
349
+ <div class="panel-body tall" id="logs-body"></div>
350
+ </div>
351
+
352
+ </div>
353
+
354
+
355
+ </div>
356
+
357
+ <!-- Scrolling log ticker (sticky bottom) -->
358
+ <div class="log-ticker" id="log-ticker">
359
+ <div class="ticker-label"><span class="dot-pulse"></span>LIVE</div>
360
+ <div class="ticker-track" id="ticker-track"></div>
361
+ </div>
362
+
363
+ <script src="shared.js"></script>
364
+ <script src="dashboard.js"></script>
365
+ </body>
366
+ </html>