-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
148 lines (133 loc) · 7.66 KB
/
Copy pathindex.html
File metadata and controls
148 lines (133 loc) · 7.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- FOUC guard: each deployed page ships prerendered HTML inside #root (for
crawlers / no-JS). React mounts with createRoot (replace, not hydrate),
so without this the raw placeholder flashes before the app renders. Mark
JS as available so docs.css can hide that placeholder until React mounts.
Crawlers run no JS, so they keep the prerendered content. Safety net:
reveal it again if React never mounts. -->
<script>
(function () {
var d = document.documentElement;
d.classList.add("js");
setTimeout(function () { d.classList.remove("js"); }, 3000);
})();
</script>
<title>F1 StratLab · Documentation</title>
<meta name="description" content="Open-source multi-agent AI for real-time F1 race strategy. Architecture, agent API, arcade dashboard and deployment guides." />
<!-- Canonical -->
<link rel="canonical" href="https://docs.f1stratlab.com/" />
<!-- Open Graph -->
<meta property="og:type" content="website" />
<meta property="og:url" content="https://docs.f1stratlab.com/" />
<meta property="og:title" content="F1 StratLab · Documentation" />
<meta property="og:description" content="Open-source multi-agent AI for real-time F1 race strategy. Architecture, agent API, arcade dashboard and deployment guides." />
<meta property="og:image" content="https://docs.f1stratlab.com/assets/og-card.jpg" />
<meta property="og:image:alt" content="F1 StratLab documentation banner with purple gradient and the F1 StratLab wordmark" />
<meta property="og:site_name" content="F1 StratLab Documentation" />
<!-- Twitter / X -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:url" content="https://docs.f1stratlab.com/" />
<meta name="twitter:title" content="F1 StratLab · Documentation" />
<meta name="twitter:description" content="Open-source multi-agent AI for real-time F1 race strategy. Architecture, agent API, arcade dashboard and deployment guides." />
<meta name="twitter:image" content="https://docs.f1stratlab.com/assets/og-card.jpg" />
<!-- Structured data — entity graph for AI/search discovery.
Global (site-level) graph: lives in the shell so it ships in the initial
HTML and survives client-side rendering. Per-page TechArticle/BreadcrumbList
is added by the deploy-time prerender step (see .github/workflows/docs.yml). -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://docs.f1stratlab.com/#website",
"url": "https://docs.f1stratlab.com/",
"name": "F1 StratLab Documentation",
"description": "Open-source multi-agent AI for real-time F1 race strategy. Architecture, agent API, arcade dashboard and deployment guides.",
"inLanguage": "en",
"about": { "@id": "https://docs.f1stratlab.com/#software" },
"publisher": { "@id": "https://docs.f1stratlab.com/#author" }
},
{
"@type": "SoftwareSourceCode",
"@id": "https://docs.f1stratlab.com/#software",
"name": "F1 StratLab",
"alternateName": "F1 Strategy Manager",
"description": "Multi-agent AI system that turns public Formula 1 telemetry and FIA regulations into real-time race-strategy recommendations, combining seven ML predictors, an NLP radio pipeline, a RAG layer over FIA rules and a LangGraph orchestrator.",
"url": "https://f1stratlab.com",
"codeRepository": "https://github.com/VforVitorio/F1-StratLab",
"license": "https://www.apache.org/licenses/LICENSE-2.0",
"programmingLanguage": "Python",
"applicationCategory": "DeveloperApplication",
"author": { "@id": "https://docs.f1stratlab.com/#author" },
"sameAs": [
"https://github.com/VforVitorio/F1-StratLab",
"https://deepwiki.com/VforVitorio/F1-StratLab",
"https://huggingface.co/datasets/VforVitorio/f1-strategy-dataset"
]
},
{
"@type": "Person",
"@id": "https://docs.f1stratlab.com/#author",
"name": "Víctor Vega Sobral",
"alternateName": "VforVitorio",
"url": "https://victorvegasobral.com",
"jobTitle": "Intelligent Systems Engineering student; AI & Data Intern",
"affiliation": "UIE Campus Coruña",
"sameAs": [
"https://github.com/VforVitorio",
"https://www.linkedin.com/in/victorvegasobral/",
"https://huggingface.co/VforVitorio",
"https://victorvegasobral.com",
"https://f1stratlab.com"
]
}
]
}
</script>
<!-- Theme color (mobile browsers) -->
<meta name="theme-color" content="#0c0d14" media="(prefers-color-scheme: dark)" />
<meta name="theme-color" content="#0c0d14" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<!-- Inter (body) uses display=swap; the secondary display families use
display=optional so they never hold up first paint. Split into two
requests so each family can set its own font-display. -->
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=optional" rel="stylesheet" />
<link rel="stylesheet" href="styles/tokens.css" />
<link rel="stylesheet" href="styles/docs.css" />
<!-- Favicon — F1 StratLab brand icon -->
<link rel="icon" type="image/png" href="assets/favicon.png" />
<link rel="apple-touch-icon" href="assets/apple-touch-icon.png" />
</head>
<body>
<div id="root"></div>
<!-- React (pinned + integrity) — production builds: smaller, faster, no dev warnings -->
<script src="https://unpkg.com/react@18.3.1/umd/react.production.min.js" integrity="sha384-DGyLxAyjq0f9SPpVevD6IgztCFlnMF6oW/XQGmfe+IsZ8TqEiDrcHkMLKI6fiB/Z" crossorigin="anonymous"></script>
<script src="https://unpkg.com/react-dom@18.3.1/umd/react-dom.production.min.js" integrity="sha384-gTGxhz21lVGYNMcdJOyq01Edg0jhn/c22nsx0kyqP0TxaV5WVdsSH1fSDUf5YJj1" crossorigin="anonymous"></script>
<!-- Markdown + diagrams + syntax highlighting -->
<script src="https://cdn.jsdelivr.net/npm/marked@12.0.2/marked.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/mermaid@10.9.1/dist/mermaid.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-python.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-json.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-yaml.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-typescript.min.js"></script>
<!-- App — plain React.createElement scripts (no JSX, no Babel, no build step).
Loaded in dependency order; they share window globals. -->
<script src="app/nav.js?v=8"></script>
<script src="app/markdown.js?v=5"></script>
<script src="app/components.js?v=9"></script>
<script src="app/graph.js?v=8"></script>
<script src="app/home.js?v=7"></script>
<script src="app/main.js?v=7"></script>
<!-- Cloudflare Web Analytics -->
<script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"token": "990410867d3e4ee5afb262861e771b0e"}'></script>
</body>
</html>