helixevo 0.2.0 → 0.2.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.
- package/dashboard/app/api/skills/route.ts +298 -0
- package/dashboard/app/evolution/page.tsx +128 -0
- package/dashboard/app/frontier/page.tsx +128 -0
- package/dashboard/app/globals.css +1211 -0
- package/dashboard/app/guide/page.tsx +984 -0
- package/dashboard/app/layout.tsx +79 -0
- package/dashboard/app/network/client.tsx +1090 -0
- package/dashboard/app/network/page.tsx +68 -0
- package/dashboard/app/page.tsx +147 -0
- package/dashboard/app/research/page.tsx +124 -0
- package/dashboard/components/SkillFlowNode.tsx +192 -0
- package/dashboard/lib/data.ts +146 -0
- package/dashboard/next-env.d.ts +6 -0
- package/dashboard/package-lock.json +1182 -0
- package/dashboard/package.json +21 -0
- package/dashboard/tsconfig.json +40 -0
- package/dist/cli.js +44 -9
- package/package.json +8 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import './globals.css'
|
|
2
|
+
import type { Metadata } from 'next'
|
|
3
|
+
import Link from 'next/link'
|
|
4
|
+
|
|
5
|
+
export const metadata: Metadata = {
|
|
6
|
+
title: 'Helix',
|
|
7
|
+
description: 'Self-evolving skill ecosystem for AI agents',
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const NAV = [
|
|
11
|
+
{ href: '/', label: 'Overview', icon: 'M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-4 0a1 1 0 01-1-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 01-1 1' },
|
|
12
|
+
{ href: '/network', label: 'Skill Network', icon: 'M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1' },
|
|
13
|
+
{ href: '/evolution', label: 'Evolution', icon: 'M13 7h8m0 0v8m0-8l-8 8-4-4-6 6' },
|
|
14
|
+
{ href: '/research', label: 'Research', icon: 'M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z' },
|
|
15
|
+
{ href: '/frontier', label: 'Frontier', icon: 'M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z' },
|
|
16
|
+
{ href: '/guide', label: 'Guide', icon: 'M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253' },
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
function NavIcon({ d }: { d: string }) {
|
|
20
|
+
return (
|
|
21
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round">
|
|
22
|
+
<path d={d} />
|
|
23
|
+
</svg>
|
|
24
|
+
)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
28
|
+
return (
|
|
29
|
+
<html lang="en">
|
|
30
|
+
<body>
|
|
31
|
+
<div style={{ display: 'flex', minHeight: '100vh' }}>
|
|
32
|
+
{/* Sidebar */}
|
|
33
|
+
<nav className="sidebar">
|
|
34
|
+
{/* Logo */}
|
|
35
|
+
<div className="sidebar-logo">
|
|
36
|
+
<div className="logo-icon">
|
|
37
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
|
|
38
|
+
<circle cx="12" cy="12" r="3" />
|
|
39
|
+
<path d="M12 2v4m0 12v4m-7.07-15.07l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83" />
|
|
40
|
+
</svg>
|
|
41
|
+
</div>
|
|
42
|
+
<div>
|
|
43
|
+
<div style={{ fontSize: 14, fontWeight: 700, color: 'var(--text)', letterSpacing: -0.3 }}>Helix</div>
|
|
44
|
+
<div style={{ fontSize: 10, color: 'var(--text-muted)', letterSpacing: 0.2 }}>Co-evolving AI Skills</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
{/* Nav items */}
|
|
49
|
+
<div style={{ padding: '12px 10px', flex: 1 }}>
|
|
50
|
+
<div style={{ fontSize: 9, fontWeight: 600, color: 'var(--text-muted)', textTransform: 'uppercase', letterSpacing: 1.5, padding: '0 10px 8px' }}>
|
|
51
|
+
Navigation
|
|
52
|
+
</div>
|
|
53
|
+
{NAV.map(n => (
|
|
54
|
+
<Link key={n.href} href={n.href} className="nav-item">
|
|
55
|
+
<NavIcon d={n.icon} />
|
|
56
|
+
{n.label}
|
|
57
|
+
</Link>
|
|
58
|
+
))}
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
{/* Footer */}
|
|
62
|
+
<div className="sidebar-footer">
|
|
63
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: 6 }}>
|
|
64
|
+
<div style={{ width: 6, height: 6, borderRadius: '50%', background: 'var(--green)' }} />
|
|
65
|
+
<span>System Active</span>
|
|
66
|
+
</div>
|
|
67
|
+
<code style={{ fontSize: 10, background: 'var(--bg-section)', padding: '2px 6px', borderRadius: 4 }}>v0.2.0</code>
|
|
68
|
+
</div>
|
|
69
|
+
</nav>
|
|
70
|
+
|
|
71
|
+
{/* Main content */}
|
|
72
|
+
<main className="main-content">
|
|
73
|
+
{children}
|
|
74
|
+
</main>
|
|
75
|
+
</div>
|
|
76
|
+
</body>
|
|
77
|
+
</html>
|
|
78
|
+
)
|
|
79
|
+
}
|