feat(platforma): restructure into Ilenar + Curetes platforms

This commit is contained in:
oskar 2026-08-03 13:08:42 +02:00
parent 348921df1a
commit 07ffe89688
3 changed files with 427 additions and 327 deletions

View file

@ -6,9 +6,14 @@ import { localizePath, useLang, useT } from '../i18n';
import type { Bullet } from '../i18n/types'; import type { Bullet } from '../i18n/types';
import LangSwitcher from './LangSwitcher'; import LangSwitcher from './LangSwitcher';
// Standalone product page at /platforma (and /en/platforma). All copy lives in // Standalone page at /platforma (and /en/platforma) presenting both platforms:
// i18n under `platform`; paragraphs that carry inline emphasis are stored as // Ilenar (what the system does) and Curetes (the supervision over it). All copy
// runs and rendered through <RichText> (see i18n/types.ts). // lives in i18n under `platform`; paragraphs that carry inline emphasis are
// stored as runs and rendered through <RichText> (see i18n/types.ts).
//
// Heading levels: the page has a single <h1> ("Nasze platformy"). Platform names
// are <h2> despite reading as titles, and the sections inside a platform are
// <h3> — the sizing classes keep them looking exactly as before.
const PlatformPage = () => { const PlatformPage = () => {
const t = useT(); const t = useT();
const lang = useLang(); const lang = useLang();
@ -40,110 +45,164 @@ const PlatformPage = () => {
</header> </header>
<main className="container mx-auto px-6 py-16 max-w-3xl"> <main className="container mx-auto px-6 py-16 max-w-3xl">
<h1 className="text-4xl md:text-5xl font-bold mb-3">{t.platform.title}</h1> <h1 className="text-4xl md:text-5xl font-bold mb-4">{t.platform.title}</h1>
<p className="text-muted text-sm italic mb-16">{t.platform.workingName}</p> <p className="text-foreground/80 text-lg leading-relaxed mb-20">
<RichText content={t.platform.lead} />
</p>
<div className="space-y-16"> {/* ══ Platforma 1 — Ilenar ════════════════════════════════════════ */}
{/* ── Kto pilnuje agentów ───────────────────────────────────────── */} <section aria-labelledby="ilenar" className="mb-20">
<section> <p className="text-primary text-sm font-semibold tracking-wide uppercase mb-3">
<h2 className="text-2xl md:text-3xl font-bold mb-6">{t.platform.watchers.title}</h2> {t.platform.ilenar.eyebrow}
{t.platform.watchers.paragraphs.map((paragraph, i) => ( </p>
<p key={i} className="text-foreground/80 leading-relaxed mb-4 last:mb-0"> <h2 id="ilenar" className="text-4xl md:text-5xl font-bold mb-3">
<RichText content={paragraph} /> {t.platform.ilenar.name}
</h2>
<p className="text-foreground text-xl font-semibold mb-6">{t.platform.ilenar.subtitle}</p>
<p className="text-foreground/80 leading-relaxed mb-10">
<RichText content={t.platform.ilenar.body} />
</p>
{/* Dwie ścieżki, jeden rdzeń — karty obok siebie */}
<div className="grid md:grid-cols-2 gap-6">
<div className="glass-card p-8 border-primary/10 hover:border-primary/30 transition-colors">
<div className="w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center text-primary mb-6">
<Home size={24} />
</div>
<h3 className="text-xl font-bold mb-4">{t.platform.ilenar.home.title}</h3>
<p className="text-foreground/80 leading-relaxed">
<RichText content={t.platform.ilenar.home.body} />
</p> </p>
))}
</section>
{/* ── Problem, który znika ──────────────────────────────────────── */}
<section>
<h2 className="text-2xl md:text-3xl font-bold mb-6">{t.platform.problem.title}</h2>
<ul className="space-y-4">
{t.platform.problem.bullets.map((bullet, i) => renderBullet(bullet, i, ChevronRight))}
</ul>
</section>
{/* ── Jak to działa ─────────────────────────────────────────────── */}
<section>
<h2 className="text-2xl md:text-3xl font-bold mb-6">{t.platform.howItWorks.title}</h2>
<p className="text-foreground/80 leading-relaxed mb-4">
<RichText content={t.platform.howItWorks.core} />
</p>
<p className="text-foreground/80 leading-relaxed mb-10">
<RichText content={t.platform.howItWorks.humanAsk} />
</p>
<p className="text-foreground/80 leading-relaxed mb-8">
<RichText content={t.platform.howItWorks.tailored} />
</p>
{/* Dwie ścieżki, jeden rdzeń — karty obok siebie */}
<div className="grid md:grid-cols-2 gap-6">
<div className="glass-card p-8 border-primary/10 hover:border-primary/30 transition-colors">
<div className="w-12 h-12 rounded-xl bg-primary/10 flex items-center justify-center text-primary mb-6">
<Home size={24} />
</div>
<h3 className="text-xl font-bold mb-4">{t.platform.howItWorks.home.title}</h3>
<p className="text-foreground/80 leading-relaxed">
<RichText content={t.platform.howItWorks.home.body} />
</p>
</div>
<div className="glass-card p-8 border-secondary/10 hover:border-secondary/30 transition-colors">
<div className="w-12 h-12 rounded-xl bg-secondary/10 flex items-center justify-center text-secondary mb-6">
<Building2 size={24} />
</div>
<h3 className="text-xl font-bold mb-4">{t.platform.howItWorks.business.title}</h3>
<p className="text-foreground/80 leading-relaxed">
<RichText content={t.platform.howItWorks.business.body} />
</p>
</div>
</div> </div>
<p className="text-foreground/80 leading-relaxed mt-8"> <div className="glass-card p-8 border-secondary/10 hover:border-secondary/30 transition-colors">
<RichText content={t.platform.howItWorks.shared} /> <div className="w-12 h-12 rounded-xl bg-secondary/10 flex items-center justify-center text-secondary mb-6">
</p> <Building2 size={24} />
</section> </div>
<h3 className="text-xl font-bold mb-4">{t.platform.ilenar.business.title}</h3>
{/* ── Pod maską ─────────────────────────────────────────────────── */} <p className="text-foreground/80 leading-relaxed">
<section> <RichText content={t.platform.ilenar.business.body} />
<h2 className="text-2xl md:text-3xl font-bold mb-6">{t.platform.underTheHood.title}</h2>
<ul className="space-y-4">
{t.platform.underTheHood.bullets.map((bullet, i) => renderBullet(bullet, i, ChevronRight))}
</ul>
</section>
{/* ── Dlaczego to ───────────────────────────────────────────────── */}
<section>
<h2 className="text-2xl md:text-3xl font-bold mb-6">{t.platform.why.title}</h2>
<ul className="space-y-4">
{t.platform.why.bullets.map((bullet, i) => renderBullet(bullet, i, CheckCircle2))}
</ul>
</section>
{/* ── Gdzie jesteśmy ────────────────────────────────────────────── */}
<section>
<h2 className="text-2xl md:text-3xl font-bold mb-6">{t.platform.status.title}</h2>
{t.platform.status.paragraphs.map((paragraph, i) => (
<p key={i} className="text-foreground/80 leading-relaxed mb-4 last:mb-0">
<RichText content={paragraph} />
</p> </p>
))} </div>
</section> </div>
{/* ── CTA ───────────────────────────────────────────────────────── */} <p className="text-foreground/80 leading-relaxed mt-8">
<section className="glass-card p-10 text-center"> <RichText content={t.platform.ilenar.shared} />
<h2 className="text-2xl md:text-3xl font-bold mb-6">{t.platform.cta.title}</h2> </p>
<p className="text-foreground/80 leading-relaxed mb-8"> </section>
<RichText content={t.platform.cta.body} />
</p> {/* ── Separator: obie platformy pod wspólnym nadzorem ───────────── */}
<a href={localizePath('/#contact', lang)} className="btn-primary"> <div className="flex items-center gap-4 mb-20" aria-hidden="false">
{t.platform.cta.button} <span className="h-px flex-1 bg-white/10" />
<ArrowRight className="ml-2" size={20} /> <span className="text-muted text-sm text-center">{t.platform.divider}</span>
</a> <span className="h-px flex-1 bg-white/10" />
</section>
</div> </div>
{/* ══ Platforma 2 — Curetes ═══════════════════════════════════════ */}
<section aria-labelledby="curetes">
<p className="text-primary text-sm font-semibold tracking-wide uppercase mb-3">
{t.platform.curetes.eyebrow}
</p>
<h2 id="curetes" className="text-4xl md:text-5xl font-bold mb-3">
{t.platform.curetes.name}
</h2>
<p className="text-foreground text-xl font-semibold mb-16">
{t.platform.curetes.subtitle}
</p>
<div className="space-y-16">
{/* ── Kto pilnuje agentów ─────────────────────────────────── */}
<section>
<h3 className="text-2xl md:text-3xl font-bold mb-6">
{t.platform.curetes.watchers.title}
</h3>
{t.platform.curetes.watchers.paragraphs.map((paragraph, i) => (
<p key={i} className="text-foreground/80 leading-relaxed mb-4 last:mb-0">
<RichText content={paragraph} />
</p>
))}
</section>
{/* ── Problem, który znika ─────────────────────────────────── */}
<section>
<h3 className="text-2xl md:text-3xl font-bold mb-6">
{t.platform.curetes.problem.title}
</h3>
<ul className="space-y-4">
{t.platform.curetes.problem.bullets.map((bullet, i) =>
renderBullet(bullet, i, ChevronRight),
)}
</ul>
</section>
{/* ── Jak to działa ────────────────────────────────────────── */}
<section>
<h3 className="text-2xl md:text-3xl font-bold mb-6">
{t.platform.curetes.howItWorks.title}
</h3>
<p className="text-foreground/80 leading-relaxed mb-4">
<RichText content={t.platform.curetes.howItWorks.core} />
</p>
<p className="text-foreground/80 leading-relaxed mb-10">
<RichText content={t.platform.curetes.howItWorks.humanAsk} />
</p>
<p className="text-foreground/80 leading-relaxed">
<RichText content={t.platform.curetes.howItWorks.tailored} />
</p>
</section>
{/* ── Pod maską ────────────────────────────────────────────── */}
<section>
<h3 className="text-2xl md:text-3xl font-bold mb-6">
{t.platform.curetes.underTheHood.title}
</h3>
<ul className="space-y-4">
{t.platform.curetes.underTheHood.bullets.map((bullet, i) =>
renderBullet(bullet, i, ChevronRight),
)}
</ul>
</section>
{/* ── Dlaczego to ──────────────────────────────────────────── */}
<section>
<h3 className="text-2xl md:text-3xl font-bold mb-6">
{t.platform.curetes.why.title}
</h3>
<ul className="space-y-4">
{t.platform.curetes.why.bullets.map((bullet, i) =>
renderBullet(bullet, i, CheckCircle2),
)}
</ul>
</section>
{/* ── Gdzie jesteśmy ───────────────────────────────────────── */}
<section>
<h3 className="text-2xl md:text-3xl font-bold mb-6">
{t.platform.curetes.status.title}
</h3>
{t.platform.curetes.status.paragraphs.map((paragraph, i) => (
<p key={i} className="text-foreground/80 leading-relaxed mb-4 last:mb-0">
<RichText content={paragraph} />
</p>
))}
</section>
</div>
</section>
{/* ── CTA — jedno, wspólne dla obu platform ───────────────────────── */}
<section className="glass-card p-10 text-center mt-20">
<h2 className="text-2xl md:text-3xl font-bold mb-6">{t.platform.cta.title}</h2>
<p className="text-foreground/80 leading-relaxed mb-8">
<RichText content={t.platform.cta.body} />
</p>
<a href={localizePath('/#contact', lang)} className="btn-primary">
{t.platform.cta.button}
<ArrowRight className="ml-2" size={20} />
</a>
</section>
</main> </main>
<Footer /> <Footer />

View file

@ -167,70 +167,18 @@ export const en: typeof pl = {
], ],
}, },
platform: { platform: {
title: 'Overseeing agentic systems', title: 'Our Platforms',
workingName: '(working name — to be confirmed before publication)', lead: 'Two platforms, one foundation: code as the source of truth, and a human in the decision loop.' as Rich,
watchers: {
title: 'Who watches the agents that watch everything else?', // ── Platform 1 — Ilenar ────────────────────────────────────────────────
paragraphs: [ // "For your home"/"For your business" are the same cards as before, moved
[ // here from howItWorks: they describe what Ilenar does, not how the
{ // supervision works.
t: 'Automations and AI agents can work without a human — organising documents, controlling devices, reacting to events. But left unsupervised, sooner or later they\'ll do something nobody wanted. ', ilenar: {
}, eyebrow: 'Platform 1 — Knowledge and Action',
{ name: 'Ilenar',
t: 'We built a system that observes other systems — including other agentic systems', subtitle: 'The platform that knows and acts.',
em: 'strong', body: 'It understands your documents, your home, your business — and acts on it. We build it dedicated to your specific need.' as Rich,
},
{
t: ' — it detects when something isn\'t working, diagnoses the cause, and fixes the problem itself. And wherever a decision is irreversible, it waits for a human.',
},
],
'This isn\'t a concept. The same core has been running our own distributed infrastructure for months — and has been through real incidents, each of which made it smarter.',
] as Rich[],
},
problem: {
title: 'The problem that disappears',
bullets: [
{
lead: 'Autonomy without boundaries is a risk.',
body: ' Anything that can open a gate or change a service\'s configuration on its own needs a clear line: what it can do by itself, and what needs a human\'s go-ahead.',
},
{
lead: 'Automation isn\'t intelligence.',
body: [
{ t: ' Many homes and businesses already have systems that ' },
{ t: 'execute', em: 'em' },
{ t: ' commands — lights, blinds, gates, document flows. The problem is that none of it ' },
{ t: 'understands', em: 'em' },
{ t: ': it doesn\'t connect facts, react to context, or learn.' },
],
},
{
lead: 'Knowledge disappears.',
body: ' Why did something break a month ago, and what fixed it? That knowledge usually lives in one person\'s head, or in an unsearchable pile of documents.',
},
] as Bullet[],
},
howItWorks: {
title: 'How it works',
core: [
{ t: 'The supervisory core — one, shared by everything.', em: 'strong' },
{
t: ' A lightweight agent on every machine reports the state of its services. A central "brain" builds a full picture from that, detects deviations from what should be running, and either fixes the problem itself — if the action is safe — or asks a human if it isn\'t.',
},
] as Rich,
humanAsk: [
{
t: 'That "asking a human" part isn\'t theoretical. A real example: the system notices you\'ve left for the weekend and the blinds are still open. It won\'t close them on its own — it sends you a message: ',
},
{ t: '"You left the blinds open. Close them now?"', em: 'quote' },
{
t: ' You reply "yes" — and only then does the system hand that off to your existing home automation. The decision is always yours; the system handles the execution.',
},
] as Rich,
tailored: [
{ t: 'The working system — built around you.', em: 'strong' },
{ t: ' What this supervision watches over is tailored to what you actually need.' },
] as Rich,
home: { home: {
title: 'For your home', title: 'For your home',
body: [ body: [
@ -250,64 +198,137 @@ export const en: typeof pl = {
shared: shared:
'Both paths share the same foundation: everything that\'s supposed to run is defined as code in a repository — every change has a history and can be rolled back — and both run under the same supervision that makes sure nothing fails silently.' as Rich, 'Both paths share the same foundation: everything that\'s supposed to run is defined as code in a repository — every change has a history and can be rolled back — and both run under the same supervision that makes sure nothing fails silently.' as Rich,
}, },
underTheHood: {
title: 'Under the hood — for the curious', divider: 'Both platforms run under shared supervision ↓',
bullets: [
{ // ── Platform 2 — Curetes ───────────────────────────────────────────────
body: [ curetes: {
{ t: 'A knowledge base shouldn\'t end up as a dead vector index. On top of semantic search, we build a ' }, eyebrow: 'Platform 2 — Supervision',
{ t: 'readable, compiled wiki maintained by a language model', em: 'strong' }, name: 'Curetes',
subtitle: 'Overseeing agentic systems',
watchers: {
title: 'Who watches the agents that watch everything else?',
paragraphs: [
[
{ {
t: ' — plain text files with cross-links between concepts, which the agent reads and updates the way a person maintains code. An approach inspired by ', t: 'Automations and AI agents can work without a human — organising documents, controlling devices, reacting to events. But left unsupervised, sooner or later they\'ll do something nobody wanted. ',
}, },
{ {
t: 'a concept described by AI researcher Andrej Karpathy', t: 'We built a system that observes other systems — including other agentic systems',
href: 'https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f', em: 'strong',
},
{ t: '. We build this on an open standard (' },
{
t: 'Google OKF',
href: 'https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf',
}, },
{ {
t: '), not a closed format of our own — so the knowledge stays readable and portable.', t: ' — it detects when something isn\'t working, diagnoses the cause, and fixes the problem itself. And wherever a decision is irreversible, it waits for a human.',
}, },
], ],
}, 'This isn\'t a concept. The same core has been running our own distributed infrastructure for months — and has been through real incidents, each of which made it smarter.',
{ ] as Rich[],
body: 'Queries first reach a cheaper model — a more expensive one only steps in when the task genuinely calls for it. In practice: summarising an entire document corpus once cost pennies instead of days of compute.', },
}, problem: {
{ title: 'The problem that disappears',
body: 'Not everything needs to be online 24 hours a day. When the primary machine is asleep, queries automatically fail over to backup hardware — with no interruption the user would notice.', bullets: [
}, {
{ lead: 'Autonomy without boundaries is a risk.',
body: 'The system tells the difference between "this service is down" and "this service is asleep as planned" — previously a common source of false alarms.', body: ' Anything that can open a gate or change a service\'s configuration on its own needs a clear line: what it can do by itself, and what needs a human\'s go-ahead.',
}, },
] as Bullet[], {
}, lead: 'Automation isn\'t intelligence.',
why: { body: [
title: 'Why this, not ordinary monitoring or ordinary automation', { t: ' Many homes and businesses already have systems that ' },
bullets: [ { t: 'execute', em: 'em' },
{ lead: 'We understand context, not just execute commands.' }, { t: ' commands — lights, blinds, gates, document flows. The problem is that none of it ' },
{ lead: 'We fix things, not just raise alarms.' }, { t: 'understands', em: 'em' },
{ { t: ': it doesn\'t connect facts, react to context, or learn.' },
lead: 'A human is genuinely in the loop', ],
body: ' — decisions are always yours, execution is the system\'s job.', },
}, {
{ lead: 'Zero black box.', body: ' Every decision leaves a trail you can review later.' }, lead: 'Knowledge disappears.',
{ body: ' Why did something break a month ago, and what fixed it? That knowledge usually lives in one person\'s head, or in an unsearchable pile of documents.',
lead: 'Your data stays yours', },
body: ' — your own server, your own domain, no dependency on someone else\'s cloud.', ] as Bullet[],
}, },
] as Bullet[], howItWorks: {
}, title: 'How it works',
status: { core: [
title: 'Honestly, where we are', { t: 'The supervisory core — one, shared by everything.', em: 'strong' },
paragraphs: [ {
'The supervisory core runs our infrastructure every day — self-healing works end to end, alerts reach a phone, the knowledge base answers questions even when the primary hardware is asleep.', t: ' A lightweight agent on every machine reports the state of its services. A central "brain" builds a full picture from that, detects deviations from what should be running, and either fixes the problem itself — if the action is safe — or asks a human if it isn\'t.',
'Dedicated deployments — for a specific home or business — we build as needed, on top of the same proven core. We\'d rather say plainly what we\'re still working on than promise more than what actually works.', },
] as Rich[], ] as Rich,
humanAsk: [
{
t: 'That "asking a human" part isn\'t theoretical. A real example: the system notices you\'ve left for the weekend and the blinds are still open. It won\'t close them on its own — it sends you a message: ',
},
{ t: '"You left the blinds open. Close them now?"', em: 'quote' },
{
t: ' You reply "yes" — and only then does the system hand that off to your existing home automation. The decision is always yours; the system handles the execution.',
},
] as Rich,
tailored: [
{ t: 'The working system — built around you.', em: 'strong' },
{ t: ' What this supervision watches over is tailored to what you actually need.' },
] as Rich,
},
underTheHood: {
title: 'Under the hood — for the curious',
bullets: [
{
body: [
{ t: 'A knowledge base shouldn\'t end up as a dead vector index. On top of semantic search, we build a ' },
{ t: 'readable, compiled wiki maintained by a language model', em: 'strong' },
{
t: ' — plain text files with cross-links between concepts, which the agent reads and updates the way a person maintains code. An approach inspired by ',
},
{
t: 'a concept described by AI researcher Andrej Karpathy',
href: 'https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f',
},
{ t: '. We build this on an open standard (' },
{
t: 'Google OKF',
href: 'https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf',
},
{
t: '), not a closed format of our own — so the knowledge stays readable and portable.',
},
],
},
{
body: 'Queries first reach a cheaper model — a more expensive one only steps in when the task genuinely calls for it. In practice: summarising an entire document corpus once cost pennies instead of days of compute.',
},
{
body: 'Not everything needs to be online 24 hours a day. When the primary machine is asleep, queries automatically fail over to backup hardware — with no interruption the user would notice.',
},
{
body: 'The system tells the difference between "this service is down" and "this service is asleep as planned" — previously a common source of false alarms.',
},
] as Bullet[],
},
why: {
title: 'Why this, not ordinary monitoring or ordinary automation',
bullets: [
{ lead: 'We understand context, not just execute commands.' },
{ lead: 'We fix things, not just raise alarms.' },
{
lead: 'A human is genuinely in the loop',
body: ' — decisions are always yours, execution is the system\'s job.',
},
{ lead: 'Zero black box.', body: ' Every decision leaves a trail you can review later.' },
{
lead: 'Your data stays yours',
body: ' — your own server, your own domain, no dependency on someone else\'s cloud.',
},
] as Bullet[],
},
status: {
title: 'Honestly, where we are',
paragraphs: [
'The supervisory core runs our infrastructure every day — self-healing works end to end, alerts reach a phone, the knowledge base answers questions even when the primary hardware is asleep.',
'Dedicated deployments — for a specific home or business — we build as needed, on top of the same proven core. We\'d rather say plainly what we\'re still working on than promise more than what actually works.',
] as Rich[],
},
}, },
cta: { cta: {
title: 'Let\'s talk', title: 'Let\'s talk',
body: 'Tell us what you want to automate or organise — we\'ll figure out how to build it, and put it under the same supervision we run on ourselves.' as Rich, body: 'Tell us what you want to automate or organise — we\'ll figure out how to build it, and put it under the same supervision we run on ourselves.' as Rich,

View file

@ -166,67 +166,17 @@ export const pl = {
], ],
}, },
platform: { platform: {
title: 'Nadzór nad systemami agentowymi', title: 'Nasze platformy',
workingName: '(nazwa robocza — do potwierdzenia przed publikacją)', lead: 'Dwie platformy, jeden fundament: kod jako źródło prawdy i człowiek w pętli decyzji.' as Rich,
watchers: {
title: 'Kto pilnuje agentów, którzy pilnują wszystkiego innego?', // ── Platforma 1 — Ilenar ───────────────────────────────────────────────
paragraphs: [ // "Dla domu"/"Dla firm" to te same karty co wcześniej, przeniesione tu
[ // z howItWorks: opisują, co Ilenar robi, nie jak działa nadzór.
{ ilenar: {
t: 'Automatyzacje i agenci AI potrafią pracować bez człowieka — porządkować dokumenty, sterować urządzeniami, reagować na zdarzenia. Ale zostawione bez nadzoru, prędzej czy później zrobią coś, czego nikt nie chciał. Zbudowaliśmy system, który ', eyebrow: 'Platforma 1 — wiedza i działanie',
}, name: 'Ilenar',
{ t: 'obserwuje inne systemy — w tym inne systemy agentowe', em: 'strong' }, subtitle: 'Platforma, która wie i działa.',
{ body: 'Rozumie Twoje dokumenty, Twój dom, Twoją firmę — i wykonuje. Budujemy ją dedykowanie pod Twoją konkretną potrzebę.' as Rich,
t: ' — wykrywa, że coś nie działa, diagnozuje przyczynę i naprawia problem sam. A tam, gdzie decyzja jest nieodwracalna, czeka na człowieka.',
},
],
'To nie koncept. Ten sam rdzeń od miesięcy prowadzi naszą własną, rozproszoną infrastrukturę — i przeszedł przez realne awarie, z których każda coś go nauczyła.',
] as Rich[],
},
problem: {
title: 'Problem, który znika',
bullets: [
{
lead: 'Autonomia bez ram to ryzyko.',
body: ' Coś, co może samo otworzyć bramę albo zmienić konfigurację usługi, potrzebuje jasnej granicy: co wolno zrobić samodzielnie, co wymaga zgody człowieka.',
},
{
lead: 'Automatyka to nie inteligencja.',
body: [
{ t: ' Wiele domów i firm ma już systemy, które ' },
{ t: 'wykonują', em: 'em' },
{ t: ' polecenia — światła, rolety, bramy, obieg dokumentów. Problem w tym, że nic tego nie ' },
{ t: 'rozumie', em: 'em' },
{ t: ': nie kojarzy faktów, nie reaguje na kontekst, nie uczy się.' },
],
},
{
lead: 'Wiedza znika.',
body: ' Dlaczego coś się zepsuło miesiąc temu i co wtedy pomogło? Zwykle ta wiedza siedzi w głowie jednej osoby albo w nieprzeszukiwalnym stosie dokumentów.',
},
] as Bullet[],
},
howItWorks: {
title: 'Jak to działa',
core: [
{ t: 'Rdzeń nadzoru — jeden, wspólny dla wszystkiego.', em: 'strong' },
{
t: ' Lekki agent na każdej maszynie zgłasza stan usług. Centralny „mózg" buduje z tego pełny obraz sytuacji, wykrywa odchylenia od tego, co powinno działać, i albo naprawia problem sam — jeśli akcja jest bezpieczna — albo pyta człowieka, jeśli nie jest.',
},
] as Rich,
humanAsk: [
{
t: 'To „pytanie człowieka" nie jest teorią. Przykład z życia: system zauważa, że wyjechałeś na weekend, a rolety zostały otwarte. Sam ich nie zamknie — wysyła Ci wiadomość: ',
},
{ t: '„Nie zamknąłeś rolet. Zamknąć teraz?"', em: 'quote' },
{
t: ' Odpisujesz „tak" — i dopiero wtedy system zleca to istniejącej automatyce domowej. Decyzja zawsze należy do Ciebie; wykonanie bierze na siebie system.',
},
] as Rich,
tailored: [
{ t: 'System roboczy — budowany pod Ciebie.', em: 'strong' },
{ t: ' To, co ten nadzór pilnuje, dopasowujemy do konkretnej potrzeby.' },
] as Rich,
home: { home: {
title: 'Dla domu', title: 'Dla domu',
body: [ body: [
@ -246,64 +196,134 @@ export const pl = {
shared: shared:
'Obie ścieżki łączy to samo: cała konfiguracja tego, co ma działać, jest zapisana jako kod w repozytorium — każda zmiana ma historię i da się ją cofnąć — i obie działają pod tym samym nadzorem, który pilnuje, żeby nic nie zawiodło po cichu.' as Rich, 'Obie ścieżki łączy to samo: cała konfiguracja tego, co ma działać, jest zapisana jako kod w repozytorium — każda zmiana ma historię i da się ją cofnąć — i obie działają pod tym samym nadzorem, który pilnuje, żeby nic nie zawiodło po cichu.' as Rich,
}, },
underTheHood: {
title: 'Pod maską — dla ciekawych', divider: 'Obie platformy działają pod wspólnym nadzorem ↓',
bullets: [
{ // ── Platforma 2 — Curetes ──────────────────────────────────────────────
body: [ curetes: {
{ t: 'Baza wiedzy nie kończy jako martwy indeks. Nad wyszukiwaniem semantycznym powstaje ' }, eyebrow: 'Platforma 2 — nadzór',
{ t: 'czytelna, kompilowana wiki utrzymywana przez model językowy', em: 'strong' }, name: 'Curetes',
subtitle: 'Nadzór nad systemami agentowymi',
watchers: {
title: 'Kto pilnuje agentów, którzy pilnują wszystkiego innego?',
paragraphs: [
[
{ {
t: ' — pliki tekstowe z linkami między pojęciami, które agent czyta i aktualizuje tak jak człowiek utrzymuje kod. Podejście zainspirowane ', t: 'Automatyzacje i agenci AI potrafią pracować bez człowieka — porządkować dokumenty, sterować urządzeniami, reagować na zdarzenia. Ale zostawione bez nadzoru, prędzej czy później zrobią coś, czego nikt nie chciał. Zbudowaliśmy system, który ',
}, },
{ t: 'obserwuje inne systemy — w tym inne systemy agentowe', em: 'strong' },
{ {
t: "koncepcją opisaną przez badacza AI Andreja Karpathy'ego", t: ' — wykrywa, że coś nie działa, diagnozuje przyczynę i naprawia problem sam. A tam, gdzie decyzja jest nieodwracalna, czeka na człowieka.',
href: 'https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f',
},
{ t: '. Budujemy to na otwartym standardzie (' },
{
t: 'Google OKF',
href: 'https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf',
},
{
t: '), nie na własnym, zamkniętym formacie — żeby wiedza, którą zbudujemy, zawsze zostawała czytelna i przenośna.',
}, },
], ],
}, 'To nie koncept. Ten sam rdzeń od miesięcy prowadzi naszą własną, rozproszoną infrastrukturę — i przeszedł przez realne awarie, z których każda coś go nauczyła.',
{ ] as Rich[],
body: 'Do zapytań najpierw sięga tańszy model — droższy dopiero wtedy, gdy sprawa naprawdę tego wymaga. W praktyce: streszczenie całego korpusu dokumentów potrafiło kosztować grosze zamiast dni obliczeń.', },
}, problem: {
{ title: 'Problem, który znika',
body: 'Nie wszystko musi być online 24 godziny na dobę. Kiedy główna maszyna śpi, zapytania automatycznie przejmuje zapasowy sprzęt — bez przerwy zauważalnej dla użytkownika.', bullets: [
}, {
{ lead: 'Autonomia bez ram to ryzyko.',
body: 'System sam odróżnia „usługa nie działa" od „usługa śpi zgodnie z planem" — co wcześniej było częstym źródłem fałszywych alarmów.', body: ' Coś, co może samo otworzyć bramę albo zmienić konfigurację usługi, potrzebuje jasnej granicy: co wolno zrobić samodzielnie, co wymaga zgody człowieka.',
}, },
] as Bullet[], {
}, lead: 'Automatyka to nie inteligencja.',
why: { body: [
title: 'Dlaczego to, a nie zwykły monitoring czy zwykła automatyka', { t: ' Wiele domów i firm ma już systemy, które ' },
bullets: [ { t: 'wykonują', em: 'em' },
{ lead: 'Rozumiemy kontekst, nie tylko wykonujemy polecenia.' }, { t: ' polecenia — światła, rolety, bramy, obieg dokumentów. Problem w tym, że nic tego nie ' },
{ lead: 'Naprawiamy, nie tylko alarmujemy.' }, { t: 'rozumie', em: 'em' },
{ { t: ': nie kojarzy faktów, nie reaguje na kontekst, nie uczy się.' },
lead: 'Człowiek naprawdę jest w pętli', ],
body: ' — decyzje zawsze do Ciebie, wykonanie bierze na siebie system.', },
}, {
{ lead: 'Zero czarnej skrzynki.', body: ' Każda decyzja zostawia ślad, który można później przejrzeć.' }, lead: 'Wiedza znika.',
{ body: ' Dlaczego coś się zepsuło miesiąc temu i co wtedy pomogło? Zwykle ta wiedza siedzi w głowie jednej osoby albo w nieprzeszukiwalnym stosie dokumentów.',
lead: 'Twoje dane zostają Twoje', },
body: ' — własny serwer, własna domena, bez uzależnienia od cudzej chmury.', ] as Bullet[],
}, },
] as Bullet[], howItWorks: {
}, title: 'Jak to działa',
status: { core: [
title: 'Uczciwie o tym, gdzie jesteśmy', { t: 'Rdzeń nadzoru — jeden, wspólny dla wszystkiego.', em: 'strong' },
paragraphs: [ {
'Rdzeń nadzoru prowadzi naszą infrastrukturę na co dzień — samonaprawa działa od początku do końca, alerty trafiają na telefon, baza wiedzy odpowiada na pytania nawet gdy główny sprzęt śpi.', t: ' Lekki agent na każdej maszynie zgłasza stan usług. Centralny „mózg" buduje z tego pełny obraz sytuacji, wykrywa odchylenia od tego, co powinno działać, i albo naprawia problem sam — jeśli akcja jest bezpieczna — albo pyta człowieka, jeśli nie jest.',
'Dedykowane wdrożenia — pod konkretny dom czy firmę — budujemy w miarę potrzeb, opierając się na tym samym, sprawdzonym rdzeniu. Wolimy powiedzieć wprost, co jeszcze dopracowujemy, niż obiecywać więcej niż działa.', },
] as Rich[], ] as Rich,
humanAsk: [
{
t: 'To „pytanie człowieka" nie jest teorią. Przykład z życia: system zauważa, że wyjechałeś na weekend, a rolety zostały otwarte. Sam ich nie zamknie — wysyła Ci wiadomość: ',
},
{ t: '„Nie zamknąłeś rolet. Zamknąć teraz?"', em: 'quote' },
{
t: ' Odpisujesz „tak" — i dopiero wtedy system zleca to istniejącej automatyce domowej. Decyzja zawsze należy do Ciebie; wykonanie bierze na siebie system.',
},
] as Rich,
tailored: [
{ t: 'System roboczy — budowany pod Ciebie.', em: 'strong' },
{ t: ' To, co ten nadzór pilnuje, dopasowujemy do konkretnej potrzeby.' },
] as Rich,
},
underTheHood: {
title: 'Pod maską — dla ciekawych',
bullets: [
{
body: [
{ t: 'Baza wiedzy nie kończy jako martwy indeks. Nad wyszukiwaniem semantycznym powstaje ' },
{ t: 'czytelna, kompilowana wiki utrzymywana przez model językowy', em: 'strong' },
{
t: ' — pliki tekstowe z linkami między pojęciami, które agent czyta i aktualizuje tak jak człowiek utrzymuje kod. Podejście zainspirowane ',
},
{
t: "koncepcją opisaną przez badacza AI Andreja Karpathy'ego",
href: 'https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f',
},
{ t: '. Budujemy to na otwartym standardzie (' },
{
t: 'Google OKF',
href: 'https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf',
},
{
t: '), nie na własnym, zamkniętym formacie — żeby wiedza, którą zbudujemy, zawsze zostawała czytelna i przenośna.',
},
],
},
{
body: 'Do zapytań najpierw sięga tańszy model — droższy dopiero wtedy, gdy sprawa naprawdę tego wymaga. W praktyce: streszczenie całego korpusu dokumentów potrafiło kosztować grosze zamiast dni obliczeń.',
},
{
body: 'Nie wszystko musi być online 24 godziny na dobę. Kiedy główna maszyna śpi, zapytania automatycznie przejmuje zapasowy sprzęt — bez przerwy zauważalnej dla użytkownika.',
},
{
body: 'System sam odróżnia „usługa nie działa" od „usługa śpi zgodnie z planem" — co wcześniej było częstym źródłem fałszywych alarmów.',
},
] as Bullet[],
},
why: {
title: 'Dlaczego to, a nie zwykły monitoring czy zwykła automatyka',
bullets: [
{ lead: 'Rozumiemy kontekst, nie tylko wykonujemy polecenia.' },
{ lead: 'Naprawiamy, nie tylko alarmujemy.' },
{
lead: 'Człowiek naprawdę jest w pętli',
body: ' — decyzje zawsze do Ciebie, wykonanie bierze na siebie system.',
},
{ lead: 'Zero czarnej skrzynki.', body: ' Każda decyzja zostawia ślad, który można później przejrzeć.' },
{
lead: 'Twoje dane zostają Twoje',
body: ' — własny serwer, własna domena, bez uzależnienia od cudzej chmury.',
},
] as Bullet[],
},
status: {
title: 'Uczciwie o tym, gdzie jesteśmy',
paragraphs: [
'Rdzeń nadzoru prowadzi naszą infrastrukturę na co dzień — samonaprawa działa od początku do końca, alerty trafiają na telefon, baza wiedzy odpowiada na pytania nawet gdy główny sprzęt śpi.',
'Dedykowane wdrożenia — pod konkretny dom czy firmę — budujemy w miarę potrzeb, opierając się na tym samym, sprawdzonym rdzeniu. Wolimy powiedzieć wprost, co jeszcze dopracowujemy, niż obiecywać więcej niż działa.',
] as Rich[],
},
}, },
cta: { cta: {
title: 'Umów rozmowę', title: 'Umów rozmowę',
body: 'Powiedz, co chcesz zautomatyzować albo uporządkować — zobaczymy, jak to zbudować i objąć nadzorem, który sami na sobie testujemy.' as Rich, body: 'Powiedz, co chcesz zautomatyzować albo uporządkować — zobaczymy, jak to zbudować i objąć nadzorem, który sami na sobie testujemy.' as Rich,