Something went wrong. Try again.
small gleam coding and persistent agent daemon with a detachable cli and a canvas ui forked from okami.mom/albedo
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647<!doctype html><html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>albedo</title> <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6' fill='%23e8e4dc' stroke='%23333' stroke-width='1.5'/%3E%3C/svg%3E" /> <script> // Apply the saved theme and colours before the first paint, so a custom // or dark theme never flashes the default. prefs.svelte.ts keeps them after. (() => { let prefs = {}; try { const cookie = document.cookie.split('; ').find((part) => part.startsWith('albedo_prefs=')); prefs = JSON.parse(cookie ? decodeURIComponent(cookie.slice(13)) : localStorage.getItem('albedo.prefs.v4') || '{}') || {}; } catch {} const mode = prefs.theme === 'light' || prefs.theme === 'dark' ? prefs.theme : matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; const root = document.documentElement; root.dataset.theme = mode; // Text size, as type.ts's textScales works it out. const size = (value) => (typeof value === 'number' && Number.isFinite(value) ? Math.min(20, Math.max(10, Math.round(value))) : 13); const chromeSize = size(prefs.text?.ui); root.style.setProperty('--ui-scale', String(chromeSize / 13)); root.style.setProperty('--canvas-scale', String(size(prefs.text?.own === true ? prefs.text.canvas : chromeSize) / 13)); const palette = prefs.palettes && prefs.palettes[mode]; const hex = /^#[0-9a-f]{6}$/i; if (!palette) return; if (hex.test(palette.accent)) root.style.setProperty('--seed-accent', palette.accent); if (hex.test(palette.background)) root.style.setProperty('--seed-bg', palette.background); if (hex.test(palette.foreground)) root.style.setProperty('--seed-fg', palette.foreground); for (const name of ['added', 'danger', 'you']) { if (typeof palette[name] === 'string' && hex.test(palette[name])) root.style.setProperty(`--${name}`, palette[name]); } if (typeof palette.contrast === 'number') root.style.setProperty('--contrast', String(palette.contrast / 100)); })(); </script> <style> html { background: var(--seed-bg, #f6eff8); overscroll-behavior: none; } html[data-theme='dark'] { background: var(--seed-bg, #241c26); } </style> </head> <body> <div id="app"></div> <script type="module" src="/src/main.ts"></script> </body></html>