Users, file manager, image generation, budgets and agent workflow
- User management: local accounts (Argon2) and OpenID Connect, admin/user roles, per-user folders plus admin-shared folders, read-only session sharing, event filtering per user - File manager with CodeMirror editor and git client (status, diff, stage, commit, branches, fetch/pull/push, log, clone/init) - Image generation via fal.ai: generate_image tool and image page - Budgets: monthly limits per provider, provider balances/costs (OpenRouter, Anthropic admin cost report, fal.ai), price discovery - Subagents on other models, background tasks, concurrency limits per host/model/subagent - MCP tools loaded on demand (mcp_search/mcp_call), read-only hints - Permission mode "auto", safe read-only commands always allowed - Persistent message queue with attachments, deletable - Live reasoning incl. <think> tags, activity animations, CSS themes, mobile layout, statistics per user, upload size handling - Docker: named volume for state, localhost-bound port Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f3a2fe3816
commit
49262c612c
70 files changed
+8495
-714
No files matched your search
@@ -0,0 +1,6 @@
|
||||
/* Theme-independent tokens. */
|
||||
:root {
|
||||
--radius: 8px;
|
||||
--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
|
||||
--mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
/* Gruvbox Dark – also the default before a theme is applied. */
|
||||
:root,
|
||||
:root[data-theme="gruvbox-dark"] {
|
||||
color-scheme: dark;
|
||||
--theme-color: #282828;
|
||||
|
||||
--bg0: #282828;
|
||||
--bg1: #32302f;
|
||||
--bg2: #3c3836;
|
||||
--bg3: #504945;
|
||||
--fg0: #fbf1c7;
|
||||
--fg1: #ebdbb2;
|
||||
--fg2: #d5c4a1;
|
||||
--fg3: #a89984;
|
||||
--muted: #928374;
|
||||
|
||||
--accent: #fabd2f;
|
||||
--accent2: #fe8019;
|
||||
--on-accent: #282828;
|
||||
--red: #fb4934;
|
||||
--green: #b8bb26;
|
||||
--aqua: #8ec07c;
|
||||
--blue: #83a598;
|
||||
--purple: #d3869b;
|
||||
|
||||
--diff-add: rgba(184, 187, 38, 0.16);
|
||||
--diff-del: rgba(251, 73, 52, 0.16);
|
||||
--shadow: 0 6px 24px rgba(0, 0, 0, 0.35);
|
||||
|
||||
--syntax-keyword: #fb4934;
|
||||
--syntax-string: #b8bb26;
|
||||
--syntax-number: #d3869b;
|
||||
--syntax-comment: #928374;
|
||||
--syntax-function: #8ec07c;
|
||||
--syntax-type: #fabd2f;
|
||||
--syntax-variable: #83a598;
|
||||
--syntax-meta: #fe8019;
|
||||
|
||||
/* Validated categorical palette (dark steps on #282828). */
|
||||
--series-1: #3987e5;
|
||||
--series-2: #d95926;
|
||||
--series-3: #199e70;
|
||||
--series-4: #c98500;
|
||||
--series-5: #d55181;
|
||||
--series-6: #008300;
|
||||
--series-7: #9085e9;
|
||||
--series-8: #e66767;
|
||||
--seq-0: #32302f;
|
||||
--seq-1: #104281;
|
||||
--seq-2: #184f95;
|
||||
--seq-3: #256abf;
|
||||
--seq-4: #3987e5;
|
||||
--seq-5: #6da7ec;
|
||||
--seq-6: #9ec5f4;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
/* Gruvbox Light */
|
||||
:root[data-theme="gruvbox-light"] {
|
||||
color-scheme: light;
|
||||
--theme-color: #fbf1c7;
|
||||
|
||||
--bg0: #fbf1c7;
|
||||
--bg1: #f2e5bc;
|
||||
--bg2: #ebdbb2;
|
||||
--bg3: #d5c4a1;
|
||||
--fg0: #282828;
|
||||
--fg1: #3c3836;
|
||||
--fg2: #504945;
|
||||
--fg3: #665c54;
|
||||
--muted: #7c6f64;
|
||||
|
||||
--accent: #b57614;
|
||||
--accent2: #af3a03;
|
||||
--on-accent: #fbf1c7;
|
||||
--red: #9d0006;
|
||||
--green: #79740e;
|
||||
--aqua: #427b58;
|
||||
--blue: #076678;
|
||||
--purple: #8f3f71;
|
||||
|
||||
--diff-add: rgba(121, 116, 14, 0.16);
|
||||
--diff-del: rgba(157, 0, 6, 0.12);
|
||||
--shadow: 0 6px 24px rgba(60, 56, 54, 0.18);
|
||||
|
||||
--syntax-keyword: #9d0006;
|
||||
--syntax-string: #79740e;
|
||||
--syntax-number: #8f3f71;
|
||||
--syntax-comment: #928374;
|
||||
--syntax-function: #427b58;
|
||||
--syntax-type: #b57614;
|
||||
--syntax-variable: #076678;
|
||||
--syntax-meta: #af3a03;
|
||||
|
||||
/* Validated categorical palette (light steps on #fbf1c7). */
|
||||
--series-1: #2a78d6;
|
||||
--series-2: #eb6834;
|
||||
--series-3: #1baf7a;
|
||||
--series-4: #eda100;
|
||||
--series-5: #e87ba4;
|
||||
--series-6: #008300;
|
||||
--series-7: #6250d6;
|
||||
--series-8: #e34948;
|
||||
--seq-0: #f2e5bc;
|
||||
--seq-1: #cde2fb;
|
||||
--seq-2: #9ec5f4;
|
||||
--seq-3: #6da7ec;
|
||||
--seq-4: #3987e5;
|
||||
--seq-5: #256abf;
|
||||
--seq-6: #184f95;
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// All bundled themes. Order of imports = cascade order; base first.
|
||||
import "./base.css";
|
||||
import "./gruvbox-dark.css";
|
||||
import "./gruvbox-light.css";
|
||||
Reference in new issue
Block a user