krona-front/dist/assets/AiCenterModule-BMDdno3t.js

1 line
No EOL
17 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{f as e,h as t,i as n,l as r,r as i,s as a,t as o,u as s}from"./useToast-CS8pZhce.js";import{t as c}from"./external-link-NR-y-GuE.js";import{t as l}from"./file-text-DR21jZDS.js";import{t as u}from"./terminal-CcncyL3J.js";import{A as d,p as f,r as p,s as m,t as h,v as g}from"./index-CyHCRa3Z.js";var _={name:`bot`,size:24,node:[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]};_.node;var v=r(_),y=t(e(),1),b=a(),x=[{id:`orch`,name:`Главный Оркестратор`,role:`Orchestrator`,description:`Декомпозирует бизнес-цели и распределяет задачи между агентами-специалистами`,tools:[`Task Delegator`,`Cross-module Context`,`Guardian Policy`],status:`active`,tasksCompleted:342},{id:`analyst`,name:`Бизнес-аналитик`,role:`BI & Financial Analyst`,description:`Анализирует чеки, food cost, маржинальность, динамику продаж и выявляет аномалии`,tools:[`SQL Query`,`Revenue Forecast`,`ABC Matrix`,`Shift Audit`],status:`active`,tasksCompleted:819},{id:`marketer`,name:`Бизнес-маркетолог`,role:`Growth & Retention`,description:`Генерирует контент-планы, офферы для рассылок, анализирует сегменты клиентов в зоне риска`,tools:[`Promo Engine`,`Telegram Bot Sender`,`Copywriter`,`Cohort Analysis`],status:`active`,tasksCompleted:420},{id:`warehouse_agent`,name:`Складской су-шеф`,role:`Supply Chain Agent`,description:`Мониторит критические остатки, сроки годности и формирует авто-заказы поставщикам`,tools:[`Supplier Auto-Order`,`Waste Tracker`,`Inventory Audit`],status:`active`,tasksCompleted:612}],S=[{title:`Food Cost и маржа за сегодня`,agentId:`analyst`,prompt:`Проанализируй Food Cost и маржинальность блюд текущей смены. Есть ли отклонения от нормы?`,tools:[`ReadPosOrders()`,`CalculateFoodCostVariance()`,`AuditStopList()`],result:`Анализ завершен: фактический Food Cost составил 29.4% (норма 30.0%). Позиция «Том Ям» показала маржу 68.5% из-за стабильных цен на тигровые креветки. Отклонений по граммовкам не зафиксировано.`,artifactTitle:`Отчет маржинальности смены #84`},{title:`Кампания возврата спящих гостей`,agentId:`marketer`,prompt:`Сформируй триггерную рассылку для гостей, не заказывавших более 30 дней. Предложи оффер с высокой конверсией.`,tools:[`ScanInactiveCustomers()`,`DraftPromoOffer()`,`EstimateBudget()`],result:`Сегмент «Спящие клиенты» насчитывает 248 контактов. Сформирован персонализированный оффер: «Сет Осенний со скидкой 20% + ролл Калифорния в подарок». Ожидаемый отклик: 18-22%.`,artifactTitle:`Проект кампании «Осенний возврат 2026»`},{title:`Контроль дефицита на складе`,agentId:`warehouse_agent`,prompt:`Проверь физические остатки ингредиентов с учетом броней на вечер. Какие позиции нужно заказать?`,tools:[`AuditStockBalances()`,`CheckReservationBOM()`,`CreatePurchaseDraft()`],result:`Критический остаток: «Сливочный сыр Cre действия» остался 4.2 кг при вечернем прогнозе 6.5 кг. Сформирован черновик закупки #PO-109 на 15 кг у поставщика «СибМолоко» со скидкой 5%.`,artifactTitle:`Черновик заявки поставщику #PO-109`},{title:`Аудит графика и переработок`,agentId:`orch`,prompt:`Проверь расписание смен сотрудников на текущую неделю. Есть ли нарушения нормативов ТК РФ?`,tools:[`ReadEmployeeShifts()`,`CheckLaborRegulations()`,`SuggestScheduleOptimization()`],result:`Выявлен 1 конфликт: сотрудник Артем Васильев назначен на смену 14 часов в пятницу (норма до 12 ч). Рекомендовано разделить смену с подменным официантом или сместить начало на 11:00.`,artifactTitle:`Акт проверки графиков ТК РФ`}],C=()=>{let{showToast:e}=o(),[t,r]=(0,y.useState)(`orch`),[a,_]=(0,y.useState)(``),[C,w]=(0,y.useState)(!1),[T,E]=(0,y.useState)(-1),[D,O]=(0,y.useState)([]),[k,A]=(0,y.useState)(null),[j,M]=(0,y.useState)([{id:`m-1`,sender:`ai`,text:`Здравствуйте! Я Главный Оркестратор Кроны. Моя команда специализированных агентов (Аналитик, Маркетолог, Складской су-шеф) готова помочь вам оптимизировать операционные процессы, найти точки роста выручки и предотвратить кассовые разрывы.`,time:`12:00`}]),N=x.find(e=>e.id===t)||x[0],P=e=>{r(e.agentId),I(e.prompt,e.tools,e.result,e.artifactTitle)},F=e=>{if(e.preventDefault(),!a.trim()||C)return;let t=a.trim();_(``),I(t,[`ReadWorkspaceContext()`,`QueryDatabaseEngine()`,`SynthesizeBusinessStrategy()`],`Агент «${N.name}» проанализировал ваш запрос «${t}». Все релевантные данные сверены с текущим состоянием касс, складов и CRM платформы. Предложен проект решения.`,`Аналитическая записка: ${t.slice(0,30)}...`)},I=(t,n,r,i)=>{let a={id:`u-${s()}`,sender:`user`,text:t,time:new Date().toLocaleTimeString(`ru-RU`,{hour:`2-digit`,minute:`2-digit`})};M(e=>[...e,a]),w(!0),O(n),E(0),setTimeout(()=>{E(1)},450),setTimeout(()=>{E(2)},900),setTimeout(()=>{w(!1),E(-1);let t={id:`ai-${Date.now()}`,sender:`ai`,text:r,time:new Date().toLocaleTimeString(`ru-RU`,{hour:`2-digit`,minute:`2-digit`}),toolsUsed:n,artifact:{title:i,type:`report`}};M(e=>[...e,t]),e({title:`ИИ-задача выполнена`,message:`Агент «${N.name}» завершил выполнение задачи`,type:`success`})},1350)};return(0,b.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,b.jsxs)(`div`,{className:`p-3.5 rounded-xl border border-purple-400/50 bg-purple-500/10 text-purple-900 dark:text-purple-200 flex flex-col sm:flex-row sm:items-center justify-between gap-2 shadow-xs`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,b.jsx)(m,{className:`w-5 h-5 text-purple-600 shrink-0`}),(0,b.jsxs)(`div`,{className:`text-xs`,children:[(0,b.jsx)(`span`,{className:`font-bold block`,children:`Демонстрационный контур ИИ (Simulated AI Engine)`}),(0,b.jsx)(`span`,{className:`text-purple-800 dark:text-purple-300`,children:`ИИ-агенты симулируют автономное выполнение бизнес-сценариев, цепочки вызова инструментов (tool calls) и генерацию артефактов без реальных LLM API.`})]})]}),(0,b.jsx)(h,{level:`demo`,size:`sm`,className:`shrink-0`})]}),(0,b.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3 bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,b.jsxs)(`div`,{children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:`✦ Krona AI Center & Автономная бизнес-команда`}),(0,b.jsx)(h,{level:`demo`,size:`sm`}),(0,b.jsx)(i,{variant:`gold`,size:`sm`,children:`Крона Модель v1.8 Flash`})]}),(0,b.jsx)(`p`,{className:`text-xs text-krona-secondary mt-0.5`,children:`Специализированные агенты с прямым доступом к инструментам платформы, кассам и складским журналам`})]}),(0,b.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[(0,b.jsx)(i,{variant:`green`,size:`md`,children:`4 агента активны`}),(0,b.jsx)(i,{variant:`neutral`,size:`md`,children:`Задач за день: 2 195`})]})]}),(0,b.jsxs)(`div`,{className:`space-y-2`,children:[(0,b.jsx)(`span`,{className:`text-[11px] font-bold text-krona-secondary uppercase tracking-wider block`,children:`Быстрые бизнес-запросы для руководства:`}),(0,b.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-2.5`,children:S.map((e,t)=>(0,b.jsxs)(`button`,{disabled:C,onClick:()=>P(e),className:`p-3 text-left rounded-xl border border-krona-border bg-krona-surface hover:border-krona-gold hover:bg-krona-gold/5 transition-all text-xs space-y-1 group disabled:opacity-50`,children:[(0,b.jsxs)(`div`,{className:`font-bold text-krona-primary group-hover:text-krona-gold transition-colors flex items-center gap-1.5`,children:[(0,b.jsx)(f,{className:`w-3.5 h-3.5 text-krona-gold`}),(0,b.jsx)(`span`,{children:e.title})]}),(0,b.jsx)(`p`,{className:`text-[11px] text-krona-secondary line-clamp-2`,children:e.prompt})]},t))})]}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-12 gap-4`,children:[(0,b.jsxs)(`div`,{className:`lg:col-span-4 bg-krona-surface border border-krona-border rounded-xl p-3.5 space-y-3 shadow-krona-soft`,children:[(0,b.jsx)(`span`,{className:`text-xs font-bold text-krona-primary uppercase tracking-wider block pb-2 border-b border-krona-border`,children:`Команда ИИ-агентов`}),(0,b.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>{let n=e.id===t;return(0,b.jsxs)(`div`,{onClick:()=>r(e.id),className:`p-3 rounded-xl border transition-all cursor-pointer select-none space-y-2 ${n?`border-krona-gold bg-krona-gold/5 shadow-xs`:`border-krona-border bg-krona-workspace hover:border-krona-border-strong`}`,children:[(0,b.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(`div`,{className:`p-2 rounded-lg bg-krona-surface border border-krona-border text-krona-gold`,children:(0,b.jsx)(v,{className:`w-4 h-4`})}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`h4`,{className:`text-xs font-bold text-krona-primary`,children:e.name}),(0,b.jsx)(`span`,{className:`text-[10px] text-krona-secondary`,children:e.role})]})]}),(0,b.jsx)(i,{variant:`green`,size:`sm`,children:`Online`})]}),(0,b.jsx)(`p`,{className:`text-[11px] text-krona-secondary leading-snug`,children:e.description}),(0,b.jsxs)(`div`,{className:`flex items-center justify-between pt-1 border-t border-krona-border/50 text-[10px] text-krona-secondary`,children:[(0,b.jsxs)(`span`,{children:[`Инструментов: `,e.tools.length]}),(0,b.jsxs)(`span`,{className:`font-mono font-bold text-krona-primary`,children:[e.tasksCompleted,` задач`]})]})]},e.id)})})]}),(0,b.jsxs)(`div`,{className:`lg:col-span-8 bg-krona-surface border border-krona-border rounded-xl shadow-krona-soft flex flex-col h-[540px] overflow-hidden`,children:[(0,b.jsxs)(`div`,{className:`p-3 border-b border-krona-border bg-krona-workspace flex items-center justify-between text-xs`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-emerald-500`}),(0,b.jsxs)(`span`,{className:`font-bold text-krona-primary`,children:[`Чат с агентом: `,N.name,` (`,N.role,`)`]})]}),(0,b.jsx)(`span`,{className:`text-[11px] text-krona-secondary`,children:`Память контекста: Активна`})]}),(0,b.jsxs)(`div`,{className:`flex-1 p-4 overflow-y-auto space-y-3.5 text-xs`,children:[j.map(e=>(0,b.jsxs)(`div`,{className:`flex flex-col ${e.sender===`user`?`items-end`:`items-start`}`,children:[(0,b.jsxs)(`div`,{className:`p-3.5 rounded-xl max-w-[82%] leading-relaxed shadow-xs space-y-2 ${e.sender===`user`?`bg-[#2F684C] text-[#F8F6F0] rounded-br-none`:`bg-krona-workspace border border-krona-border text-krona-primary rounded-bl-none`}`,children:[(0,b.jsx)(`p`,{children:e.text}),e.toolsUsed&&e.toolsUsed.length>0&&(0,b.jsxs)(`div`,{className:`pt-2 border-t border-krona-border/50 space-y-1`,children:[(0,b.jsx)(`span`,{className:`text-[10px] text-krona-secondary font-semibold uppercase block`,children:`Выполненные шаги инструментов (Tool Calls):`}),(0,b.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.toolsUsed.map((e,t)=>(0,b.jsxs)(`span`,{className:`inline-flex items-center gap-1 font-mono text-[10px] bg-krona-surface border border-krona-border px-2 py-0.5 rounded text-krona-primary`,children:[(0,b.jsx)(d,{className:`w-2.5 h-2.5 text-emerald-600`}),e]},t))})]}),e.artifact&&(0,b.jsx)(`div`,{className:`pt-2 border-t border-krona-border/50`,children:(0,b.jsxs)(`button`,{type:`button`,onClick:()=>A({title:e.artifact.title,content:e.text}),className:`inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg bg-krona-gold/15 text-krona-gold-text border border-krona-gold/30 hover:bg-krona-gold/25 transition-colors font-bold text-xs`,children:[(0,b.jsx)(l,{className:`w-3.5 h-3.5 text-krona-gold`}),(0,b.jsxs)(`span`,{children:[`Открыть сформированный артефакт: «`,e.artifact.title,`»`]}),(0,b.jsx)(c,{className:`w-3 h-3 ml-1 opacity-70`})]})})]}),(0,b.jsx)(`span`,{className:`text-[10px] text-krona-secondary mt-1 px-1`,children:e.time})]},e.id)),C&&(0,b.jsxs)(`div`,{className:`p-3 bg-krona-workspace border border-krona-gold/40 rounded-xl space-y-2 max-w-[80%] animate-pulse`,children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2 font-bold text-xs text-krona-gold`,children:[(0,b.jsx)(u,{className:`w-4 h-4`}),(0,b.jsxs)(`span`,{children:[`Агент «`,N.name,`» выполняет цепочку вызовов инструментов...`]})]}),(0,b.jsx)(`div`,{className:`space-y-1.5 font-mono text-[11px] text-krona-secondary`,children:D.map((e,t)=>(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t<T?(0,b.jsx)(d,{className:`w-3.5 h-3.5 text-emerald-600 shrink-0`}):t===T?(0,b.jsx)(`span`,{className:`w-3.5 h-3.5 rounded-full border-2 border-krona-gold border-t-transparent animate-spin shrink-0`}):(0,b.jsx)(`span`,{className:`w-3.5 h-3.5 rounded-full bg-krona-border/60 shrink-0`}),(0,b.jsxs)(`span`,{className:t===T?`text-krona-primary font-bold`:``,children:[t+1,`. `,e]})]},t))})]})]}),(0,b.jsx)(`div`,{className:`p-3 border-t border-krona-border bg-krona-workspace/50`,children:(0,b.jsxs)(`form`,{onSubmit:F,className:`flex items-center gap-2`,children:[(0,b.jsx)(`input`,{type:`text`,value:a,disabled:C,onChange:e=>_(e.target.value),placeholder:`Спросите агента «${N.name}» (например: "Рассчитай Food Cost за вчера")...`,className:`flex-1 bg-krona-surface border border-krona-border rounded-lg px-3 py-2 text-xs text-krona-primary placeholder:text-krona-secondary focus:outline-none focus:border-krona-green disabled:opacity-50`}),(0,b.jsxs)(n,{type:`submit`,variant:`gold`,size:`sm`,disabled:C||!a.trim(),className:`px-3 text-xs`,children:[(0,b.jsx)(g,{className:`w-3.5 h-3.5 mr-1`}),`Спросить AI`]})]})})]})]}),k&&(0,b.jsx)(p,{isOpen:!!k,onClose:()=>A(null),title:k.title,subtitle:`Сгенерированный артефакт ИИ-агента Кроны`,maxWidth:`md`,footer:(0,b.jsxs)(`div`,{className:`flex gap-2 w-full justify-between`,children:[(0,b.jsx)(n,{variant:`secondary`,size:`sm`,onClick:()=>{e({title:`Рекомендации применены`,message:`Настройки применены к операционному контуру заведения`,type:`success`}),A(null)},children:`Применить рекомендации в системе`}),(0,b.jsx)(n,{variant:`primary`,size:`sm`,onClick:()=>A(null),children:`Закрыть`})]}),children:(0,b.jsx)(`div`,{className:`space-y-3 text-xs`,children:(0,b.jsxs)(`div`,{className:`p-3.5 bg-krona-workspace rounded-xl border border-krona-border font-mono text-xs leading-relaxed space-y-2`,children:[(0,b.jsxs)(`div`,{className:`font-bold text-krona-primary pb-1 border-b border-krona-border/60 flex items-center justify-between`,children:[(0,b.jsx)(`span`,{children:k.title}),(0,b.jsx)(i,{variant:`gold`,size:`sm`,children:`Verified AI Plan`})]}),(0,b.jsx)(`p`,{className:`text-krona-primary`,children:k.content})]})})})]})};export{C as AiCenterModule};