diff --git a/docs/index.html b/docs/index.html index bb37a32..a51d445 100644 --- a/docs/index.html +++ b/docs/index.html @@ -90,6 +90,57 @@ .hero .install-block .btn:hover { opacity: .85; } .cta-block { margin-top: 0; } + /* ── Hero stats bar ── */ + .hero .stats { + display: flex; justify-content: center; gap: 40px; margin-top: 44px; + flex-wrap: wrap; + } + .hero .stats .stat { text-align: center; } + .hero .stats .stat .v { + font-size: 1.5rem; font-weight: 800; color: var(--accent); + font-family: var(--font-mono); letter-spacing: -.02em; + } + .hero .stats .stat .k { + font-size: 0.75rem; color: var(--text-secondary); margin-top: 2px; + } + .hero .stats .stat a .v { transition: opacity .15s; } + .hero .stats .stat a:hover .v { opacity: .8; text-decoration: none; } + + /* ── Section nav (sticky) ── */ + .section-nav { + position: sticky; top: 0; z-index: 20; + display: flex; justify-content: center; gap: 4px; flex-wrap: wrap; + padding: 10px 16px; + background: color-mix(in srgb, var(--bg-primary) 88%, transparent); + backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); + border-bottom: 1px solid var(--border-subtle); + } + .section-nav a { + color: var(--text-secondary); font-size: 0.75rem; padding: 4px 10px; + border-radius: 6px; transition: all .15s; + } + .section-nav a:hover { color: var(--accent); background: var(--bg-card); text-decoration: none; } + + /* ── "New" badge ── */ + .badge-new { + display: inline-block; background: var(--green); color: #000; + font-size: 0.625rem; font-weight: 700; padding: 2px 7px; border-radius: 4px; + margin-left: 8px; vertical-align: middle; letter-spacing: .04em; + } + + /* ── What's-new cards ── */ + .whatsnew { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } + .whatsnew .card { + background: var(--bg-secondary); border: 1px solid var(--border-subtle); border-radius: 12px; + padding: 24px; border-left: 3px solid var(--accent); + } + .whatsnew .card h4 { font-size: 1rem; font-weight: 600; margin-bottom: 6px; } + .whatsnew .card h4 .ver { color: var(--text-secondary); font-weight: 400; font-size: 0.75rem; font-family: var(--font-mono); margin-left: 8px; } + .whatsnew .card p { font-size: 0.8125rem; line-height: 1.5; } + .whatsnew .card p code { font-size: 0.75rem; } + .whatsnew .card a { font-size: 0.8125rem; } + @media (max-width: 700px) { .whatsnew { grid-template-columns: 1fr; } } + /* ── Copy button ── */ .copy-btn { background: transparent; border: 1px solid var(--border-subtle); color: var(--text-secondary); @@ -420,7 +471,7 @@ "name": "Which LLM providers does odek support?", "acceptedAnswer": { "@type": "Answer", - "text": "Any OpenAI-compatible endpoint: Deepseek, OpenAI, Anthropic, Ollama, vLLM, Groq, Together, and Fireworks. odek is provider-agnostic, so you are not locked into a single vendor." + "text": "Any OpenAI-compatible endpoint: DeepSeek, OpenAI, Anthropic, Ollama, vLLM, Groq, Together, and Fireworks. odek is provider-agnostic, so you are not locked into a single vendor." } }, { @@ -468,6 +519,14 @@

odek

Get Started → +
+
~12 MB
static binary
+
80.3%
AIEB v2.0 score
+
25+
built-in tools
+
4
interfaces: CLI · REPL · Web · Telegram
+
v1.15.3
latest release ↗
+
+ @@ -848,8 +968,26 @@

Self-Learning Skills

💾
-

Persistent Memory

-

Three tiers: facts (markdown on disk), session buffer, and searchable episodes. Merge-on-write via go-vector cosine similarity saves ~80% LLM calls. go-vector RP is ephemeral — rebuilt from text on every write, no embedding state to persist.

+

Extended Memory

+

Semantic, atomic memory: facts, preferences, goals extracted per turn, deduplicated by meaning, ranked by relevance and recency. Quarantine for untrusted content, associations between atoms, and a stats surface for operators. Legacy three-tier facts/buffer/episodes included too.

+
+ +
+
💡
+

Proactive Engagement NEW

+

The agent anticipates: follow-up suggestions after answers, open-loop tracking of your questions and goals, and opt-in proactive nudges with anti-annoyance caps. Scheduled jobs are memory-wired, so cron tasks can analyze memory and sessions.

+
+ +
+
🧹
+

Storage Maintenance NEW

+

Long-lived agents stay clean forever: a janitor handles session, audit-log, log, plan, and media retention on an operator-only config. odek cleanup --dry-run shows exactly what would be removed, first.

+
+ +
+
🛡️
+

PIGuard Sidecar

+

Optional ML prompt-injection guard (ONNX, local) as a semantic second opinion on top of the rule-based scan — guarding memory writes, skill bodies, system prompts, and MCP descriptions. Docker Compose sidecar included.

@@ -891,7 +1029,7 @@

Parallel Tool Execution

💬

Interaction Modes

-

Three modes: engaging (emoji-rich LLM narration), enhance (narration persists after response), and verbose (raw tool traces). Per-tool trace messages with LLM reasoning content. Works across CLI, Telegram, and Web UI.

+

Four modes: engaging (emoji-rich LLM narration), enhance (narration persists after response), verbose (raw tool traces), and off (clean, machine-friendly). Per-tool trace messages with LLM reasoning content. Works across CLI, Telegram, and Web UI.

@@ -1013,7 +1151,13 @@

Commands

  • odek mcpStart MCP server (stdio)
  • odek mcp --sse-addr :8081Start MCP server (SSE)
  • odek telegramStart Telegram bot
  • -
  • odek run --deliver Run task, deliver to Telegram
  • +
  • odek schedule add <task>Schedule a recurring agent task (cron)
  • +
  • odek cleanup --dry-runPreview storage maintenance, delete nothing
  • +
  • odek cleanupRun one storage maintenance sweep
  • +
  • odek memory extended statsMemory store, index, quarantine, recall health
  • +
  • odek memory extended nudgesPreview proactive nudges (no cap consumed)
  • +
  • odek skill listList learned/installed skills
  • +
  • odek run --deliver <task>Run task, deliver to Telegram
  • odek init [--global]Create config file
  • odek versionShow version
  • @@ -1028,6 +1172,7 @@

    Key Flags

  • --no-learnDisable skill learning
  • --max-iter <n>Max think→act cycles (default 90)
  • --ctx <files> / -cAttach files as context blocks (comma-separated)
  • +
  • --memory-extended-enabledEnable Extended Memory (opt-in)
  • --system <prompt>Override system prompt
  • --no-colorDisable colored output
  • --deliverDeliver result to Telegram default chat
  • @@ -1045,10 +1190,12 @@

    Everything else is documented

    Cheat SheetQuick reference: commands, config, memory, subagents, env vars Go SDK GuideImport, Agent, Tools, memory, multi-turn sessions, examples ConfigurationConfig files, env vars, priority chain - Providers & ModelsDeepseek, OpenAI, Anthropic, Ollama, vLLM, more + Providers & ModelsDeepSeek, OpenAI, Anthropic, Ollama, vLLM, more Prompt CachingCache markers for lower latency and cost on repeats MCP (Two-Way)Serve tools + connect to external MCP servers - Memory SystemThree-tier facts, buffer, episodes + Memory SystemLegacy facts, buffer, episodes + Extended MemorySemantic atoms, recall, quarantine, proactive engagement + Storage MaintenanceJanitor, retention config, odek cleanup Multi-Turn SessionsSave, resume, list, trim, cleanup SandboxingDocker isolation, config, security model Docker ComposeRun odek in Docker with Compose, step by step @@ -1058,6 +1205,8 @@

    Everything else is documented

    Web UIodek serve, WebSocket protocol, @ resources Scheduled TasksNative cron — run agent tasks and deliver results Telegram BotRun agent tasks from Telegram: voice, photos, sessions + Tool SelectionEnable/disable tools per profile, MCP naming + Daily Workerodek as your daily chief-of-staff assistant DevelopmentBuilding, testing, contributing