Thinking...
Noch keine Links in diesem Chat.
Noch keine Dokumente in diesem Chat.
Noch keine Bilder in diesem Chat.
Modus

Model & Agent Auswahl

Modelle
Opencode Go(13)
DeepSeek V4 Flashdeepseek-v4-flash
MiMo-V2.5mimo-v2.5
Qwen3.7 Plusqwen3.7-plus
DeepSeek V4 Prodeepseek-v4-pro
MiniMax M2.7minimax-m2.7
MiMo-V2.5 Promimo-v2.5-pro
Qwen3.6 Plusqwen3.6-plus
MiniMax M3minimax-m3
Kimi K2.7 Codekimi-k2.7-code
Kimi K2.6kimi-k2.6
Qwen3.7 Maxqwen3.7-max
GLM-5.2glm-5.2
GLM-5.1glm-5.1
NVIDIA(42)
Nemotron 3 Content Safetynvidia/nemotron-3-content-safety
Synthetic Video Detectornvidia/synthetic-video-detector
Active Speaker Detectionnvidia/active-speaker-detection
MiniMax M2.7minimaxai/minimax-m2.7
Nemotron VoiceChatnvidia/nemotron-voicechat
GLiNER PIInvidia/gliner-pii
Cosmos Transfer 2.5 2Bnvidia/cosmos-transfer2_5-2b
Step 3.5 Flashstepfun-ai/step-3.5-flash
Nemotron Content Safety Reasoning 4Bnvidia/nemotron-content-safety-reasoning-4b
Riva Translate 4Bnvidia/riva-translate-4b-instruct-v1_1
Mistral Large 3 675Bmistralai/mistral-large-3-675b-instruct-2512
StreamPETRnvidia/streampetr
Nemotron Safety Guard 8Bnvidia/llama-3_1-nemotron-safety-guard-8b-v3
Seed OSS 36Bbytedance/seed-oss-36b-instruct
Qwen3 Coder 480Bqwen/qwen3-coder-480b-a35b-instruct
NemoRetriever 300M Embednvidia/llama-3_2-nemoretriever-300m-embed-v1
Magistral Smallmistralai/magistral-small-2506
Llama Guard 4 12Bmeta/llama-guard-4-12b
Gemma 3n E4Bgoogle/gemma-3n-e4b-it
Gemma 3n E2Bgoogle/gemma-3n-e2b-it
Cosmos Transfer 1 7Bnvidia/cosmos-transfer1-7b
Mistral Nemotronmistralai/mistral-nemotron
Magpie TTS ZeroShotnvidia/magpie-tts-zeroshot
Mistral Medium 3mistralai/mistral-medium-3-instruct
Llama 4 Maverick 17Bmeta/llama-4-maverick-17b-128e-instruct
Cosmos Predict 1 5Bnvidia/cosmos-predict1-5b
SparseDrivenvidia/sparsedrive
BEVFormernvidia/bevformer
NV EmbedCode 7Bnvidia/nv-embedcode-7b-v1
Phi 4 Multimodalmicrosoft/phi-4-multimodal-instruct
USDCodenvidia/usdcode
StudioVoicenvidia/studiovoice
Dracarys Llama 3.1 70Babacusai/dracarys-llama-3_1-70b-instruct
ESM2 650Mmeta/esm2-650m
Nemotron Mini 4Bnvidia/nemotron-mini-4b-instruct
Gemma 2 2Bgoogle/gemma-2-2b-it
USDValidatenvidia/usdvalidate
NV Embed V1nvidia/nv-embed-v1
Solar 10.7Bupstage/solar-10_7b-instruct
PaLiGemmagoogle/google-paligemma
Rerank QA Mistral 4Bnvidia/rerank-qa-mistral-4b
ESMFoldmeta/esmfold
Z.AI(13)
GLM-5V-Turboglm-5v-turbo
GLM-5.1glm-5.1
GLM-5-Turboglm-5-turbo
GLM-5glm-5
GLM-4.7-FlashXglm-4.7-flashx
GLM-4.7-Flashglm-4.7-flash
GLM-4.7glm-4.7
GLM-4.6Vglm-4.6v
GLM-4.6glm-4.6
GLM-4.5Vglm-4.5v
GLM-4.5-Flashglm-4.5-flash
GLM-4.5-Airglm-4.5-air
GLM-4.5glm-4.5
Ollama Cloud(21)
Gemma 3 27Bgemma3:27b
Gemma 3 12Bgemma3:12b
Gemma 3 4Bgemma3:4b
Gemma 3 1Bgemma3:1b
Llama 3.3 70Bllama3.3:70b
Llama 3.1 8Bllama3.1:8b
Mistral 7Bmistral:7b
Mixtral 8x7Bmixtral:8x7b
Mixtral 8x22Bmixtral:8x22b
Phi 4 14Bphi4:14b
Phi 3.5 3.8Bphi3.5:3.8b
Qwen3 32Bqwen3:32b
Qwen3 14Bqwen3:14b
Qwen3 8Bqwen3:8b
Qwen3 4Bqwen3:4b
Qwen3 1.7Bqwen3:1.7b
Qwen2.5 Coder 32Bqwen2.5-coder:32b
Qwen2.5 Coder 7Bqwen2.5-coder:7b
DeepSeek R1 70Bdeepseek-r1:70b
DeepSeek R1 8Bdeepseek-r1:8b
CodeLlama 34Bcodellama:34b
OpenRouter(26)
Trinity Large Thinkingarcee-ai/trinity-large-thinking:free
Baidu CoBuddybaidu/cobuddy:free
Dolphin Mistral 24B Venicecognitivecomputations/dolphin-mistral-24b-venice-edition:free
DeepSeek V4 Flashdeepseek/deepseek-v4-flash:free
Gemma 4 26B A4Bgoogle/gemma-4-26b-a4b-it:free
Gemma 4 31Bgoogle/gemma-4-31b-it:free
Ring 2.6 1Tinclusionai/ring-2.6-1t:free
LFM 2.5 1.2B Instructliquid/lfm-2.5-1.2b-instruct:free
LFM 2.5 1.2B Thinkingliquid/lfm-2.5-1.2b-thinking:free
Llama 3.2 3B Instructmeta-llama/llama-3.2-3b-instruct:free
Llama 3.3 70B Instructmeta-llama/llama-3.3-70b-instruct:free
MiniMax M2.5minimax/minimax-m2.5:free
Hermes 3 Llama 3.1 405Bnousresearch/hermes-3-llama-3.1-405b:free
Nemotron 3 Nano 30Bnvidia/nemotron-3-nano-30b-a3b:free
Nemotron 3 Nano Omninvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free
Nemotron 3 Super 120Bnvidia/nemotron-3-super-120b-a12b:free
Nemotron Nano 12B VLnvidia/nemotron-nano-12b-v2-vl:free
Nemotron Nano 9B V2nvidia/nemotron-nano-9b-v2:free
GPT OSS 120Bopenai/gpt-oss-120b:free
GPT OSS 20Bopenai/gpt-oss-20b:free
OWL Alphaopenrouter/owl-alpha
Laguna M.1poolside/laguna-m.1:free
Laguna XS.2poolside/laguna-xs.2:free
Qwen3 Coderqwen/qwen3-coder:free
Qwen3 Next 80B A3Bqwen/qwen3-next-80b-a3b-instruct:free
GLM 4.5 Airz-ai/glm-4.5-air:free
Cerebras(3)
Llama 3.3 70B Instructllama-3.3-70b-instruct
Llama 4 Maverick 17Bllama-4-maverick-17b-128e-instruct
Qwen3 32B Instructqwen3-32b-instruct
Agenten
Hermes
+ Create
Pi
+ Create
Opencode
+ Create
Claude Code
+ Create
Droids
+ Create
Modellrat Teams
Modellrat (MoE/Fusion)
Team Alpha
Team Beta
Team Gamma
Warteschlange
Generiert...

📦 Artefakte

Alle in Chats generierten Artefakte (PRDs, Reports, Designs, Code) erscheinen hier.

Noch keine Artefakte vorhanden. Artefakte erscheinen automatisch, wenn ein Agent sie generiert.

// ═══ Company Dashboard (loaded by dashboard.html) ═══ function companyDashboard() { return { // State loading: true, error: null, company: null, allEmployees: [], treeRoots: [], totalEmployees: 0, showCreateModal: false, creating: false, createError: null, // New agent form newAgent: { name: '', title: '', rolle: 'engineer', harness: 'hermes', modell: '', soul: '', manager_id: '', instructions: '', capabilities: '', icon: '', }, // Computed get budgetPercent() { const c = this.company; if (!c || !c.budget_monthly_cents) return 0; return Math.min(100, Math.round((c.spent_monthly_cents || 0) / c.budget_monthly_cents * 100)); }, get budgetSpent() { const c = this.company; if (!c) return '0 €'; return (c.spent_monthly_cents / 100).toFixed(0) + ' €'; }, get budgetTotal() { const c = this.company; if (!c) return '0 €'; return (c.budget_monthly_cents / 100).toFixed(0) + ' €'; }, // Init async init() { try { // Get active company from appState const appState = window.appState?.(); const companyId = appState?.activeCompanyId || 'mcc'; // Fetch company data const compResp = await fetch('/api/companies/' + companyId); if (compResp.ok) { this.company = await compResp.json(); } // Fetch all employees const empResp = await fetch('/api/' + companyId + '/employees-tree'); if (empResp.ok) { const data = await empResp.json(); this.allEmployees = data.employees || []; this.totalEmployees = data.total || this.allEmployees.length; this.buildTree(); } this.loading = false; } catch (e) { this.error = 'Fehler beim Laden: ' + e.message; this.loading = false; } }, // Build tree from flat list using manager_id buildTree() { const map = {}; const roots = []; // Index by id for (const emp of this.allEmployees) { map[emp.id] = { ...emp, children: [] }; } // Assign children to parents for (const emp of this.allEmployees) { const node = map[emp.id]; const mgrId = emp.manager_id; if (mgrId && map[mgrId]) { map[mgrId].children.push(node); } else { roots.push(node); } } this.treeRoots = roots; }, // Render an agent card (returns HTML string) agentCardHtml(emp, isRoot) { const statusClass = 'cv-agent-status-' + (emp.status || 'offline'); const harnessBadge = emp.harness ? '' + this.escapeHtml(emp.harness) + '' : ''; const rolleBadge = emp.rolle ? '' + this.escapeHtml(emp.rolle) + '' : ''; const modellBadge = emp.modell ? '' + this.escapeHtml(emp.modell) + '' : ''; const initial = (emp.icon || emp.name?.charAt(0) || '?').toUpperCase(); const avatarColor = this.getRoleColor(emp.rolle); // Build a data attribute with the employee JSON for onclick detail const empJson = JSON.stringify(emp).replace(/"/g, '"'); return '
' + '
' + initial + '
' + '
' + '
' + this.escapeHtml(emp.name) + '
' + '
' + (emp.title ? '' + this.escapeHtml(emp.title) + '' : '') + '' + harnessBadge + rolleBadge + modellBadge + '
' + (emp.children && emp.children.length > 0 ? '' : '') + '
'; }, // Recursively render tree node as HTML renderTreeNode(node, isRoot = true) { let html = this.agentCardHtml(node, isRoot); if (node.children && node.children.length > 0) { html += '
'; for (const child of node.children) { html += '
' + this.renderTreeNode(child, false) + '
'; } html += '
'; } return html; }, // Toggle expand/collapse toggleNode(id) { const el = document.getElementById('children-' + id); if (el) { el.style.display = el.style.display === 'none' ? '' : 'none'; } }, // Show agent detail (placeholder) showAgentDetail(id) { // Could open a detail modal or navigate const emp = this.allEmployees.find(e => e.id === id); if (emp) { alert(emp.name + '\n\nTitle: ' + (emp.title || '—') + '\nRole: ' + emp.rolle + '\nHarness: ' + emp.harness + '\nModel: ' + (emp.modell || '—') + '\nStatus: ' + emp.status + '\nSoul: ' + (emp.soul || '—')); } }, // Open create modal openCreateModal() { this.newAgent = { name: '', title: '', rolle: 'engineer', harness: 'hermes', modell: '', soul: '', manager_id: '', instructions: '', capabilities: '', icon: '', }; this.createError = null; this.showCreateModal = true; }, // Create agent via API async createAgent() { if (!this.newAgent.name.trim()) { this.createError = 'Name ist erforderlich.'; return; } this.creating = true; this.createError = null; try { const appState = window.appState?.(); const companyId = appState?.activeCompanyId || 'mcc'; const body = { name: this.newAgent.name.trim(), title: this.newAgent.title || null, rolle: this.newAgent.rolle, harness: this.newAgent.harness, modell: this.newAgent.modell || null, soul: this.newAgent.soul || null, manager_id: this.newAgent.manager_id || null, instructions: this.newAgent.instructions || null, capabilities: this.newAgent.capabilities || null, icon: this.newAgent.icon || null, agent_type: 'agent', }; const resp = await fetch('/api/' + companyId + '/employees', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body), }); if (!resp.ok) { const err = await resp.json(); throw new Error(err.error || 'HTTP ' + resp.status); } const newEmp = await resp.json(); this.showCreateModal = false; // Reload await this.init(); } catch (e) { this.createError = 'Fehler: ' + e.message; } finally { this.creating = false; } }, // Helpers escapeHtml(str) { if (!str) return ''; return str.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); }, getRoleColor(rolle) { const colors = { ceo: '#7c6ff7', cto: '#7c6ff7', engineer: '#3b82f6', devops: '#3b82f6', security: '#3b82f6', pm: '#22c55e', researcher: '#22c55e', cfo: '#f97316', qa: '#f97316', cmo: '#ec4899', designer: '#ec4899', }; return colors[rolle] || '#6b7280'; }, }; } // Assign to window for HTMX/Alpine compat window.companyDashboard = companyDashboard; // Session rename/delete async function renameSession(sessionId) { const newTitle = prompt('Neuer Name:', ''); if (!newTitle || !newTitle.trim()) return; try { const r = await fetch('/api/sessions/' + sessionId + '/rename', { method: 'PUT', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({title: newTitle.trim()}) }); if (r.ok) { // Refresh session list htmx.ajax('GET', '/api/sessions-by-project', {target: '#session-list', swap: 'innerHTML', headers: {'HX-Request': 'true'}}); } } catch(e) {} } async function deleteSession(sessionId) { if (!confirm('Session wirklich löschen?')) return; try { const r = await fetch('/api/sessions/' + sessionId, { method: 'DELETE', headers: {'Content-Type': 'application/json'} }); if (r.ok) { htmx.ajax('GET', '/api/sessions-by-project', {target: '#session-list', swap: 'innerHTML', headers: {'HX-Request': 'true'}}); } } catch(e) {} }