theo-agent-dashboard

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

ModeNameSize
-rw-r--r--.gitignore36L
-rw-r--r--AGENTS.md57L
-rw-r--r--Caddyfile3L
-rw-r--r--MOCK_README.md49L
-rw-r--r--README.md77L
-rw-r--r--backend/app/__init__.py0B
-rw-r--r--backend/app/auth.py82L
-rw-r--r--backend/app/config.py40L
-rw-r--r--backend/app/db.py83L
-rw-r--r--backend/app/hermes_client.py255L
-rw-r--r--backend/app/main.py77L
-rw-r--r--backend/app/migrations/0001_init.sql39L
-rw-r--r--backend/app/migrations/0002_archived_sessions.sql6L
-rw-r--r--backend/app/migrations/__init__.py0B
-rw-r--r--backend/app/models.py85L
-rw-r--r--backend/app/routes/__init__.py46L
-rw-r--r--backend/app/routes/attachments.py162L
-rw-r--r--backend/app/routes/auth.py93L
-rw-r--r--backend/app/routes/chat.py189L
-rw-r--r--backend/app/routes/models.py41L
-rw-r--r--backend/app/routes/search.py58L
-rw-r--r--backend/app/routes/sessions.py319L
-rw-r--r--backend/app/routes/topics.py153L
-rw-r--r--backend/app/sse_parser.py41L
-rw-r--r--backend/app/ws_manager.py41L
-rw-r--r--backend/docs/mutation-exclusions.md83L
-rw-r--r--backend/pyproject.toml40L
-rw-r--r--backend/tests/__init__.py0B
-rw-r--r--backend/tests/conftest.py51L
-rw-r--r--backend/tests/test_attachments.py355L
-rw-r--r--backend/tests/test_auth.py112L
-rw-r--r--backend/tests/test_auth_helpers.py45L
-rw-r--r--backend/tests/test_auth_routes.py119L
-rw-r--r--backend/tests/test_branching.py163L
-rw-r--r--backend/tests/test_chat.py401L
-rw-r--r--backend/tests/test_config.py78L
-rw-r--r--backend/tests/test_db.py90L
-rw-r--r--backend/tests/test_hermes_client.py392L
-rw-r--r--backend/tests/test_middleware.py61L
-rw-r--r--backend/tests/test_models.py123L
-rw-r--r--backend/tests/test_search.py142L
-rw-r--r--backend/tests/test_sessions.py829L
-rw-r--r--backend/tests/test_sse_parser.py147L
-rw-r--r--backend/tests/test_topics.py239L
-rw-r--r--backend/tests/test_ws_manager.py88L
-rwxr-xr-xbuild.sh28L
-rw-r--r--docs/addendum-live-debugging-2026-07-19.md321L
-rw-r--r--frontend/index.html13L
-rw-r--r--frontend/package-lock.json7797L
-rw-r--r--frontend/package.json42L
-rw-r--r--frontend/src/App.test.tsx249L
-rw-r--r--frontend/src/App.tsx116L
-rw-r--r--frontend/src/components/BranchIndicator/BranchIndicator.test.tsx70L
-rw-r--r--frontend/src/components/BranchIndicator/BranchIndicator.tsx76L
-rw-r--r--frontend/src/components/Chat/ChatView.test.tsx372L
-rw-r--r--frontend/src/components/Chat/ChatView.tsx438L
-rw-r--r--frontend/src/components/Chat/MessageList.test.tsx38L
-rw-r--r--frontend/src/components/Chat/MessageList.tsx64L
-rw-r--r--frontend/src/components/Composer/AttachmentPreview.test.tsx99L
-rw-r--r--frontend/src/components/Composer/AttachmentPreview.tsx64L
-rw-r--r--frontend/src/components/Composer/Composer.test.tsx137L
-rw-r--r--frontend/src/components/Composer/Composer.tsx213L
-rw-r--r--frontend/src/components/Composer/ModelPicker.test.tsx169L
-rw-r--r--frontend/src/components/Composer/ModelPicker.tsx106L
-rw-r--r--frontend/src/components/Login/Login.test.tsx54L
-rw-r--r--frontend/src/components/Login/Login.tsx57L
-rw-r--r--frontend/src/components/Message/MarkdownRenderer.test.tsx89L
-rw-r--r--frontend/src/components/Message/MarkdownRenderer.tsx101L
-rw-r--r--frontend/src/components/Message/Message.test.tsx306L
-rw-r--r--frontend/src/components/Message/Message.tsx164L
-rw-r--r--frontend/src/components/Search/Search.test.tsx91L
-rw-r--r--frontend/src/components/Search/SearchBar.tsx75L
-rw-r--r--frontend/src/components/Search/SearchModal.test.tsx228L
-rw-r--r--frontend/src/components/Search/SearchModal.tsx81L
-rw-r--r--frontend/src/components/Search/SearchResults.tsx61L
-rw-r--r--frontend/src/components/SessionList/SessionList.test.tsx113L
-rw-r--r--frontend/src/components/SessionList/SessionList.tsx206L
-rw-r--r--frontend/src/components/Setup/Setup.test.tsx59L
-rw-r--r--frontend/src/components/Setup/Setup.tsx122L
-rw-r--r--frontend/src/components/Sidebar/SessionList.tsx243L
-rw-r--r--frontend/src/components/Sidebar/Sidebar.test.tsx55L
-rw-r--r--frontend/src/components/Sidebar/Sidebar.tsx24L
-rw-r--r--frontend/src/components/Sidebar/TopicItem.test.tsx109L
-rw-r--r--frontend/src/components/Sidebar/TopicItem.tsx114L
-rw-r--r--frontend/src/components/Sidebar/TopicList.test.tsx127L
-rw-r--r--frontend/src/components/Sidebar/TopicList.tsx104L
-rw-r--r--frontend/src/components/Theme/ThemeToggle.test.tsx52L
-rw-r--r--frontend/src/components/Theme/ThemeToggle.tsx17L
-rw-r--r--frontend/src/components/ToolCall/Thinking.test.tsx26L
-rw-r--r--frontend/src/components/ToolCall/Thinking.tsx49L
-rw-r--r--frontend/src/components/ToolCall/ToolCall.test.tsx153L
-rw-r--r--frontend/src/components/ToolCall/ToolCall.tsx99L
-rw-r--r--frontend/src/components/ToolResult/DiffResult.test.tsx122L
-rw-r--r--frontend/src/components/ToolResult/DiffResult.tsx44L
-rw-r--r--frontend/src/components/ToolResult/JsonResult.test.tsx63L
-rw-r--r--frontend/src/components/ToolResult/JsonResult.tsx16L
-rw-r--r--frontend/src/components/ToolResult/ToolResultRenderer.test.tsx195L
-rw-r--r--frontend/src/components/ToolResult/ToolResultRenderer.tsx119L
-rw-r--r--frontend/src/components/ToolResult/diffParser.ts45L
-rw-r--r--frontend/src/hooks/useDraft.test.ts218L
-rw-r--r--frontend/src/hooks/useDraft.ts142L
-rw-r--r--frontend/src/index.css1L
-rw-r--r--frontend/src/lib/api.test.ts378L
-rw-r--r--frontend/src/lib/api.ts95L
-rw-r--r--frontend/src/lib/ws.test.ts327L
-rw-r--r--frontend/src/lib/ws.ts98L
-rw-r--r--frontend/src/main.tsx10L
-rw-r--r--frontend/src/store/auth.test.ts146L
-rw-r--r--frontend/src/store/auth.ts55L
-rw-r--r--frontend/src/store/chat.test.ts119L
-rw-r--r--frontend/src/store/chat.ts93L
-rw-r--r--frontend/src/store/session.test.ts495L
-rw-r--r--frontend/src/store/session.ts190L
-rw-r--r--frontend/src/store/theme.test.ts102L
-rw-r--r--frontend/src/store/theme.ts29L
-rw-r--r--frontend/src/store/topic.test.ts211L
-rw-r--r--frontend/src/store/topic.ts74L
-rw-r--r--frontend/src/test-setup.ts1L
-rw-r--r--frontend/src/vite-env.d.ts1L
-rw-r--r--frontend/stryker.config.mjs21L
-rw-r--r--frontend/tsconfig.json21L
-rw-r--r--frontend/vite.config.ts28L
-rw-r--r--mock_hermes.py284L
-rw-r--r--requirements.txt7L
-rw-r--r--screenshots/01-login-page.png15976B
-rw-r--r--screenshots/02-dashboard-main.png44508B
-rw-r--r--screenshots/03-session-messages.png44933B
-rw-r--r--screenshots/04-after-session-click.png47120B
-rw-r--r--screenshots/05-messages-loaded.png48474B
-rw-r--r--screenshots/06-messages-visible.png114705B
-rw-r--r--screenshots/live-01-login.png15976B
-rw-r--r--screenshots/live-02-dashboard.png37194B
-rw-r--r--screenshots/live-03-session-messages.png37594B
-rw-r--r--screenshots/live-04-all-sessions.png37712B
-rw-r--r--screenshots/live-05-messages-loaded.png37720B
-rw-r--r--screenshots/live-06-clean.png24489B
-rw-r--r--systemd/theo-agent-dashboard.service15L
-rw-r--r--theo_blog_scraped.json308L