1 line
No EOL
17 KiB
JavaScript
1 line
No EOL
17 KiB
JavaScript
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"./file-text-DR21jZDS.js";import{H as l,I as u,d,m as f,r as p,s as m,t as h,y as g}from"./index-CrJKtV0u.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)(l,{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)(c,{className:`w-3.5 h-3.5 text-krona-gold`}),(0,b.jsxs)(`span`,{children:[`Открыть сформированный артефакт: «`,e.artifact.title,`»`]}),(0,b.jsx)(u,{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)(d,{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)(l,{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}; |