diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 21dd549..93520c7 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -311,7 +311,7 @@ gott/ ├── images/ # Krea-generierte Bilder ├── models/ # ONNX-Modelle (Embedding) │ └── all-MiniLM-L6-v2/ # Sentence-Embedding-Modell (model.onnx + vocab.txt) - ├── models_cache.json # Gecachte Provider-Modelle (Nvidia, Pollinations, Gemini) + ├── models_cache.json # Gecachte Provider-Modelle (Nvidia, Pollinations, Gemini, OpenAI) ├── logs/ # Payload-Logs (optional) └── backup/ # Backup-Archive ``` @@ -347,7 +347,7 @@ TelegramBot (1) ─── (*) Session (via telegram_bot_id) |-------------------|-----------------------------------------------------| | `users` | Benutzer (username, password_hash, display_name, is_admin, persona, settings, default_path) | | `tokens` | Auth-Tokens (token → user_id) | -| `agents` | AI-Agenten (model – z.B. `claude-sonnet-4-6` oder `nvidia:deepseek-ai/deepseek-r1`, custom_commands, auto_commit, use_soul/identity/user_info/memory, use_web_search, web_search_version, allow_user_choice, task_instruction, avatar_scale/offset, avatar_small, is_public) | +| `agents` | AI-Agenten (model – z.B. `claude-sonnet-4-6` oder `nvidia:deepseek-ai/deepseek-r1`, custom_commands, auto_commit, use_soul/identity/user_info/memory/auto_context, use_github_search, use_serper_search, use_web_search, web_search_version, allow_user_choice, task_instruction, avatar_scale/offset, avatar_small, is_public) | | `sessions` | Chat-Sessions (description, image, image_small, workspace, context, custom_commands, telegram_bot_id, telegram_chat_id, avatar_scale/offset, preparer_agent_id, review_agent_id, max_review_iterations, finalizer_agent_id) | | `chains` | Request-Chains (model, tokens, iterations, timing, tool_choice, tool_names, stream_error_info, plan_mode, archive_id) | | `messages` | Einzelne Nachrichten (text, tool_use, tool_result, error, web_search_result), Tag für Sub-Agent-Markierung oder Import-Herkunft (`openclaw-import`), SortKey für korrekte Reihenfolge, thought_signature (Gemini) | @@ -357,10 +357,10 @@ TelegramBot (1) ─── (*) Session (via telegram_bot_id) | `cronjobs` | Geplante Tasks (cron expression, prompt, notify_session_id, is_enabled, last_run, next_run) | | `shared_messages` | Geteilte Nachrichten (Share-Token, Ablaufdatum) | | `telegram_bots` | Telegram Bots (bot_token, webhook_secret, name, is_public) – eigenständige Entität | -| `api_keys` | API-Keys (key_id, provider, name, api_key, is_active, status, plan, usage_7d, usage_5h, source_url, checked_at) – mehrere Keys pro Provider möglich, Zuweisung pro Agent über `agent_api_keys` | +| `api_keys` | API-Keys (key_id, provider, name, api_key, is_active, status, plan, usage_7d, usage_5h, source_url, checked_at, is_public, refresh_token, access_token_expires_at, oauth_provider) – mehrere Keys pro Provider möglich, Zuweisung pro Agent über `agent_api_keys` | | `agent_api_keys` | API-Key-Zuweisung pro User+Agent (user_id, agent_id, key_id) – ersetzt globales `users.selected_api_key_id` | -| `scanned_keys` | Gescannte GitHub-Keys (scanned_key_id, api_key, source_url, status, plan, usage_7d, usage_5h, adopted_api_key_id, deleted) | -| `scanner_logs` | Scanner-Logs (timestamp, type, message, scanner, details) – Logs von Key-Scanner und Event-Scanner | +| `scanned_keys` | Gescannte GitHub-Keys (scanned_key_id, api_key, source_url, source, type, status, plan, usage_7d, usage_5h, adopted_api_key_id, deleted) | +| `scanner_logs` | Scanner-Logs (timestamp, type, message, scanner) – Logs von Key-Scanner und Event-Scanner | | `server_settings` | Server-Settings (key, value, type) – In-Memory-Cache über `ServerSettingsService` | | `message_embeddings` | Sentence-Embeddings für semantische Suche (message_id, vector BLOB, session_id, agent_id) | | `memory_file_embeddings` | Embeddings von Memory-Dateien (agent_id, file_path, chunk_index, vector BLOB) | diff --git a/ARCHITECTURE_QUICK.md b/ARCHITECTURE_QUICK.md index 85bb047..8ed399a 100644 --- a/ARCHITECTURE_QUICK.md +++ b/ARCHITECTURE_QUICK.md @@ -87,7 +87,7 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id) |---------|-------| | `users` | Login, DisplayName, IsAdmin, Persona, Settings (JSON), DefaultPath | | `tokens` | Auth-Tokens → User | -| `agents` | AI-Agenten (Model – z.B. `claude-sonnet-4-6` oder `nvidia:model-id`, CustomCommands, AutoCommit, UseSoul/Identity/UserInfo/Memory, WebSearch, AllowUserChoice, TaskInstruction, AvatarScale/Offset, AvatarSmall, IsPublic) | +| `agents` | AI-Agenten (Model – z.B. `claude-sonnet-4-6` oder `nvidia:model-id`, CustomCommands, AutoCommit, UseSoul/Identity/UserInfo/Memory/AutoContext, UseGitHubSearch, UseSerperSearch, WebSearch, AllowUserChoice, TaskInstruction, AvatarScale/Offset, AvatarSmall, IsPublic) | | `sessions` | Chat-Sessions (Description, Image, ImageSmall, Workspace, Context, CustomCommands, TelegramBotId, TelegramChatId, AvatarScale/Offset, PreparerAgentId, ReviewAgentId, MaxReviewIterations, FinalizerAgentId) | | `chains` | Ein Request-Response-Zyklus (Tokens, Timing, Iterations, PlanMode, ToolChoice, ToolNames, StreamErrorInfo, ArchiveId) | | `messages` | Einzelne Nachrichten (text / tool_use / tool_result / error / web_search_result), Tag für Sub-Agent-Markierung oder Import-Herkunft (`openclaw-import`), thought_signature (Gemini) | @@ -97,10 +97,10 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id) | `agent_skills` | N:M Agent ↔ Skill | | `shared_messages` | Geteilte Nachrichten (öffentliche Links via Share-Token) | | `telegram_bots` | Telegram Bots (BotToken, WebhookSecret, Name, IsPublic) – eigenständige Entität, 1 Bot → N Sessions | -| `api_keys` | API-Keys (key_id, provider, name, api_key, is_active, status, plan, usage_7d, usage_5h, source_url) – mehrere Keys pro Provider möglich, Zuweisung pro Agent | +| `api_keys` | API-Keys (key_id, provider, name, api_key, is_active, status, plan, usage_7d, usage_5h, source_url, is_public, refresh_token, access_token_expires_at, oauth_provider) – mehrere Keys pro Provider möglich, Zuweisung pro Agent | | `agent_api_keys` | API-Key-Zuweisung pro User+Agent (user_id, agent_id, key_id) – ersetzt globales `users.selected_api_key_id` | -| `scanned_keys` | Gescannte GitHub-Keys (api_key, source_url, status, plan, usage_7d, usage_5h, adopted_api_key_id) | -| `scanner_logs` | Scanner-Logs (timestamp, type, message, scanner, details) | +| `scanned_keys` | Gescannte GitHub-Keys (api_key, source_url, source, type, status, plan, usage_7d, usage_5h, adopted_api_key_id, deleted) | +| `scanner_logs` | Scanner-Logs (timestamp, type, message, scanner) | | `server_settings` | Server-Settings (key, value, type) – verwaltet über `ServerSettingsService` | | `message_embeddings` | Sentence-Embeddings für semantische Suche (message_id, vector BLOB) | | `memory_file_embeddings` | Embeddings von Memory-Dateien (agent_id, file_path, chunk_index, vector BLOB) | @@ -130,7 +130,7 @@ User 1──* TelegramBot 1──* Session (via telegram_bot_id) | Models | `/api/models/` | `GET nvidia`, `GET pollinations`, `GET gemini`, `GET openai`, `POST refresh` | | API Keys | `/api/admin/api-keys/` | CRUD + check, check-all, scan, event-scanner, scanned (recheck/adopt/delete), scanner-logs (Admin) + `/api/api-keys/` available, select, selected (User) | | Remote | `/api/remote` | WebSocket für Remote-Clients, `GET connections`, `POST assign/unassign` | -| Internal | `/api/internal/` | MCP-Server: remote-execute, ask-user-choice, memory-read/write/list (Token-gesichert) | +| Internal | `/api/internal/` | MCP-Server: remote-execute, ask-user-choice, memory-read/write/list (Token-gesichert) + `POST /api/chat/choice-respond` (normale Auth) | | DB Explorer | `/api/admin/db/` | tables, table-data (Admin-only) | | Info | `/api/info` | GET → Build-Zeitstempel + Embedding-Verfügbarkeit | | ServerSettings | `/api/admin/server-settings` | `GET`, `PUT` (Admin-only, liest/schreibt `appsettings.Production.json`) |