zigrix 0.1.0-alpha.14 → 0.1.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -182
- package/dist/dashboard/.next/BUILD_ID +1 -1
- package/dist/dashboard/.next/app-build-manifest.json +10 -10
- package/dist/dashboard/.next/app-path-routes-manifest.json +2 -2
- package/dist/dashboard/.next/build-manifest.json +2 -2
- package/dist/dashboard/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/_not-found.html +1 -1
- package/dist/dashboard/.next/server/app/_not-found.rsc +1 -1
- package/dist/dashboard/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/auth/setup/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/overview/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/stream/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/tasks/[taskId]/conversation/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/login.html +1 -1
- package/dist/dashboard/.next/server/app/login.rsc +1 -1
- package/dist/dashboard/.next/server/app/page.js +2 -2
- package/dist/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/dist/dashboard/.next/server/app/setup.html +1 -1
- package/dist/dashboard/.next/server/app/setup.rsc +1 -1
- package/dist/dashboard/.next/server/app-paths-manifest.json +2 -2
- package/dist/dashboard/.next/server/chunks/972.js +1 -1
- package/dist/dashboard/.next/server/functions-config-manifest.json +2 -2
- package/dist/dashboard/.next/server/pages/404.html +1 -1
- package/dist/dashboard/.next/server/pages/500.html +1 -1
- package/dist/dashboard/.next/static/chunks/app/page-0314989c31e18b4b.js +1 -0
- package/dist/dashboard/.next/static/css/{94d75aff24d0c077.css → c3a7306cb2ba3f6c.css} +1 -1
- package/package.json +22 -1
- package/dist/dashboard/.next/static/chunks/app/page-23f9176364af6d64.js +0 -1
- /package/dist/dashboard/.next/static/{gl9FuUQE7dOSS5c3ZdHG0 → Dy6qPMgiP2OP-KkqvjDtM}/_buildManifest.js +0 -0
- /package/dist/dashboard/.next/static/{gl9FuUQE7dOSS5c3ZdHG0 → Dy6qPMgiP2OP-KkqvjDtM}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{109:e=>{e.exports={badge:"StatusBadge_badge__M4ZLM",status_OPEN:"StatusBadge_status_OPEN__0Pm_x",status_IN_PROGRESS:"StatusBadge_status_IN_PROGRESS__JhYac",status_BLOCKED:"StatusBadge_status_BLOCKED__8FFag",status_DONE_PENDING_REPORT:"StatusBadge_status_DONE_PENDING_REPORT__yVdnt",status_REPORTED:"StatusBadge_status_REPORTED__0p67U",status_UNKNOWN:"StatusBadge_status_UNKNOWN__VkyXw"}},594:e=>{e.exports={wrap:"ConversationTab_wrap__1QSeD",toggle:"ConversationTab_toggle__3CZ5X",list:"ConversationTab_list__3x9W9",message:"ConversationTab_message__ATEZY",header:"ConversationTab_header__JCM4X",agent:"ConversationTab_agent__y3KdF",meta:"ConversationTab_meta__dMgwn",body:"ConversationTab_body__uCFH9",markdown:"ConversationTab_markdown__A8qFO",thinking:"ConversationTab_thinking__9ksh2",toolBox:"ConversationTab_toolBox__z6pL2",toolName:"ConversationTab_toolName__SLqEU",notice:"ConversationTab_notice__wCw5J",empty:"ConversationTab_empty__aB__j"}},2357:e=>{e.exports={wrap:"EventLogTab_wrap__x2X_J",empty:"EventLogTab_empty__LRJDo",list:"EventLogTab_list__nm_mD",item:"EventLogTab_item__VL0dt",ts:"EventLogTab_ts__vQ9nA",name:"EventLogTab_name__4A39l"}},6143:e=>{e.exports={main:"DashboardClient_main__eZK1S",header:"DashboardClient_header__21U6H",brand:"DashboardClient_brand__1Ljqy",headerRight:"DashboardClient_headerRight__EinuX",sseWrap:"DashboardClient_sseWrap__dCBYi",dot:"DashboardClient_dot__NxKpZ",dot_connected:"DashboardClient_dot_connected__3UnYe",dot_disconnected:"DashboardClient_dot_disconnected__0IqOj",dot_connecting:"DashboardClient_dot_connecting__NNLev",statusBar:"DashboardClient_statusBar__eP3FN",statusItem:"DashboardClient_statusItem__Yi9TP",error:"DashboardClient_error__Tv__n",layout:"DashboardClient_layout__s4BTz",left:"DashboardClient_left__WqNyg",right:"DashboardClient_right__EWclx",tabs:"DashboardClient_tabs__tx3BS",tabActive:"DashboardClient_tabActive__5oF9r",panel:"DashboardClient_panel__bWB7I"}},6297:(e,t,a)=>{Promise.resolve().then(a.bind(a,9181))},6583:e=>{e.exports={wrap:"TaskDetailTab_wrap__dFSwq",empty:"TaskDetailTab_empty__wxQD4",header:"TaskDetailTab_header___564C",badges:"TaskDetailTab_badges__xm9EG",metaRow:"TaskDetailTab_metaRow__OSbDu",cancelButton:"TaskDetailTab_cancelButton__ReU0K",section:"TaskDetailTab_section__4dUxv",muted:"TaskDetailTab_muted__VWQMQ",units:"TaskDetailTab_units__XIBtG",unitCard:"TaskDetailTab_unitCard__jY43J",unitTop:"TaskDetailTab_unitTop__yZ5FK",unitMeta:"TaskDetailTab_unitMeta__LnHSZ",progressTrack:"TaskDetailTab_progressTrack__VlE22",progressFill:"TaskDetailTab_progressFill__JVS7w",evidenceList:"TaskDetailTab_evidenceList__xGfBZ",toggle:"TaskDetailTab_toggle__ujWwI",markdown:"TaskDetailTab_markdown__eoDyT"}},8157:e=>{e.exports={badge:"ScaleBadge_badge__Ufu_B",scale_simple:"ScaleBadge_scale_simple__MbInQ",scale_normal:"ScaleBadge_scale_normal__vPQOk",scale_risky:"ScaleBadge_scale_risky__pWko0",scale_large:"ScaleBadge_scale_large__aXng2",scale_unknown:"ScaleBadge_scale_unknown__gCQWs"}},9181:(e,t,a)=>{"use strict";a.d(t,{DashboardClient:()=>R});var s=a(5155),n=a(2115),l=a(109),r=a.n(l);let i={OPEN:{label:"대기",icon:"\uD83D\uDD35"},IN_PROGRESS:{label:"진행 중",icon:"\uD83D\uDFE0"},BLOCKED:{label:"차단",icon:"\uD83D\uDD34"},DONE_PENDING_REPORT:{label:"보고 대기",icon:"\uD83D\uDFE3"},REPORTED:{label:"보고 완료",icon:"\uD83D\uDFE2"}};function c(e){let{status:t}=e,a=(t||"UNKNOWN").toUpperCase(),n=i[a]||{label:t||"알 수 없음",icon:"⚪"};return(0,s.jsxs)("span",{className:"".concat(r().badge," ").concat(r()["status_".concat(a)]||r().status_UNKNOWN),children:[(0,s.jsx)("span",{"aria-hidden":!0,children:n.icon}),(0,s.jsx)("span",{children:n.label})]})}var o=a(8157),d=a.n(o);let u={simple:"simple",normal:"normal",risky:"risky",large:"large"};function _(e){let{scale:t}=e,a=(t||"unknown").toLowerCase(),n=u[a]||a;return(0,s.jsx)("span",{className:"".concat(d().badge," ").concat(d()["scale_".concat(a)]||d().scale_unknown),children:n})}function h(e){let{value:t}=e,[,a]=(0,n.useReducer)(e=>e+1,0);return(0,n.useEffect)(()=>{let e=setInterval(a,6e4);return()=>clearInterval(e)},[]),(0,s.jsx)("span",{title:t||"",children:function(e){if(!e)return"-";let t=new Date(e).getTime();if(!Number.isFinite(t))return e;let a=Math.floor((Date.now()-t)/1e3);if(a<5)return"방금 전";if(a<60)return"".concat(a,"초 전");let s=Math.floor(a/60);if(s<60)return"".concat(s,"분 전");let n=Math.floor(s/60);if(n<24)return"".concat(n,"시간 전");let l=Math.floor(n/24);return l<30?"".concat(l,"일 전"):new Date(e).toLocaleString("ko-KR")}(t)})}var m=a(9221),p=a.n(m);let x=["ALL","OPEN","IN_PROGRESS","BLOCKED","DONE_PENDING_REPORT","REPORTED"];function v(e){let{tasks:t,selectedTaskId:a,onSelectTask:l}=e,[r,i]=(0,n.useState)("ALL"),[o,d]=(0,n.useState)(""),[u,m]=(0,n.useState)("newest"),[v,k]=(0,n.useState)(1),g=(0,n.useMemo)(()=>{let e=o.trim().toLowerCase();return[...t.filter(t=>("ALL"===r||(t.status||"")===r)&&(!e||[t.taskId,t.title||"",t.actor||""].some(t=>t.toLowerCase().includes(e))))].sort((e,t)=>{if("taskId"===u)return e.taskId.localeCompare(t.taskId);let a=Date.parse(e.updatedAt||"")||0,s=Date.parse(t.updatedAt||"")||0;return"newest"===u?s-a:a-s})},[t,o,u,r]),N=Math.max(1,Math.ceil(g.length/12)),b=Math.min(v,N),j=g.slice((b-1)*12,12*b);return(0,s.jsxs)("section",{className:p().wrap,children:[(0,s.jsxs)("div",{className:p().filters,children:[(0,s.jsx)("div",{className:p().tabs,children:x.map(e=>(0,s.jsx)("button",{type:"button",className:"".concat(p().tab," ").concat(r===e?p().tabActive:""),onClick:()=>{i(e),k(1)},children:e},e))}),(0,s.jsx)("input",{className:p().input,placeholder:"taskId / title / actor 검색",value:o,onChange:e=>{d(e.target.value),k(1)}}),(0,s.jsxs)("select",{className:p().select,value:u,onChange:e=>{m(e.target.value),k(1)},children:[(0,s.jsx)("option",{value:"newest",children:"최신순"}),(0,s.jsx)("option",{value:"oldest",children:"오래된순"}),(0,s.jsx)("option",{value:"taskId",children:"taskId순"})]})]}),(0,s.jsx)("ul",{className:p().list,children:j.map(e=>(0,s.jsx)("li",{children:(0,s.jsxs)("button",{type:"button",className:"".concat(p().card," ").concat(a===e.taskId?p().cardSelected:""),onClick:()=>l(e.taskId),children:[(0,s.jsxs)("div",{className:p().cardTop,children:[(0,s.jsx)("code",{className:p().taskId,children:e.taskId}),(0,s.jsx)(c,{status:e.status})]}),(0,s.jsx)("p",{className:p().title,children:e.title||"(제목 없음)"}),(0,s.jsxs)("div",{className:p().metaRow,children:[(0,s.jsx)(_,{scale:e.scale}),(0,s.jsx)("span",{children:e.actor||"-"}),(0,s.jsx)("span",{className:p().dot,children:"•"}),(0,s.jsx)(h,{value:e.updatedAt})]})]})},e.taskId))}),(0,s.jsxs)("div",{className:p().pagination,children:[(0,s.jsx)("button",{type:"button",disabled:b<=1,onClick:()=>k(e=>Math.max(1,e-1)),children:"이전"}),(0,s.jsxs)("span",{children:[b," / ",N]}),(0,s.jsx)("button",{type:"button",disabled:b>=N,onClick:()=>k(e=>Math.min(N,e+1)),children:"다음"})]})]})}var k=a(856),g=a(6583),N=a.n(g);function b(e){var t,a;let{detail:l,onCancelTask:r,cancelling:i}=e,[o,d]=(0,n.useState)(!1),u=(0,n.useMemo)(()=>{var e,t;let a=null==l||null==(t=l.meta)||null==(e=t.data)?void 0:e.executionUnits;return Array.isArray(a)?a:[]},[l]);if(!l)return(0,s.jsx)("div",{className:N().empty,children:"태스크를 선택해 주세요."});let m=l.task.status,p=(l.spec.preview||"").split(/\r?\n/),x=o?p:p.slice(0,20),v=new Set(l.evidence.agents.map(e=>e.agentId)),g=Array.isArray(null==(t=l.evidence.merged)?void 0:t.requiredAgents)?null==(a=l.evidence.merged)?void 0:a.requiredAgents:Array.from(v);return(0,s.jsxs)("div",{className:N().wrap,children:[(0,s.jsxs)("div",{className:N().header,children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h3",{children:l.task.title||"(제목 없음)"}),(0,s.jsx)("code",{children:l.task.taskId})]}),(0,s.jsxs)("div",{className:N().badges,children:[(0,s.jsx)(c,{status:m}),(0,s.jsx)(_,{scale:l.task.scale})]})]}),(0,s.jsxs)("div",{className:N().metaRow,children:[(0,s.jsxs)("span",{children:["생성: ",(0,s.jsx)(h,{value:l.spec.metadata.createdAt||null})]}),(0,s.jsxs)("span",{children:["업데이트: ",(0,s.jsx)(h,{value:l.task.updatedAt})]})]}),("OPEN"===m||"IN_PROGRESS"===m)&&(0,s.jsx)("button",{type:"button",className:N().cancelButton,onClick:()=>r(l.task.taskId),disabled:i,children:i?"취소 중...":"태스크 취소"}),(0,s.jsxs)("section",{className:N().section,children:[(0,s.jsx)("h4",{children:"Execution Units"}),0===u.length?(0,s.jsx)("p",{className:N().muted,children:"Execution Units 정보가 없습니다."}):(0,s.jsx)("div",{className:N().units,children:u.map((e,t)=>{let a=Array.isArray(e.workPackages)?e.workPackages:[],n=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return e.filter(e=>["DONE","REPORTED","DONE_PENDING_REPORT","COMPLETED"].includes((e.status||"").toUpperCase())).length}(a),l=a.length,r=l>0?Math.round(n/l*100):0;return(0,s.jsxs)("article",{className:N().unitCard,children:[(0,s.jsxs)("div",{className:N().unitTop,children:[(0,s.jsx)("strong",{children:e.title||e.unitId||"Unit ".concat(t+1)}),(0,s.jsx)("span",{children:e.status||"-"})]}),(0,s.jsxs)("div",{className:N().unitMeta,children:[(0,s.jsxs)("span",{children:["unitId: ",e.unitId||"-"]}),(0,s.jsxs)("span",{children:["owner: ",e.owner||e.workerAgent||"-"]}),(0,s.jsxs)("span",{children:[n,"/",l]})]}),(0,s.jsx)("div",{className:N().progressTrack,children:(0,s.jsx)("div",{className:N().progressFill,style:{width:"".concat(r,"%")}})})]},e.unitId||"".concat(e.title||"unit","-").concat(t))})})]}),(0,s.jsxs)("section",{className:N().section,children:[(0,s.jsx)("h4",{children:"Evidence"}),0===g.length?(0,s.jsx)("p",{className:N().muted,children:"증적 제출 정보가 없습니다."}):(0,s.jsx)("ul",{className:N().evidenceList,children:g.map(e=>(0,s.jsxs)("li",{children:[(0,s.jsx)("span",{children:e}),(0,s.jsx)("span",{children:v.has(e)?"제출됨":"미제출"})]},e))})]}),(0,s.jsxs)("section",{className:N().section,children:[(0,s.jsx)("h4",{children:"Spec Preview"}),0===p.length?(0,s.jsx)("p",{className:N().muted,children:"스펙 파일이 없습니다."}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)("button",{type:"button",className:N().toggle,onClick:()=>d(e=>!e),children:o?"접기":"펼치기"}),(0,s.jsx)("div",{className:N().markdown,children:(0,s.jsx)(k.oz,{children:x.join("\n")})})]})]})]})}var j=a(2357),T=a.n(j);function y(e){let{events:t}=e,a=(0,n.useRef)(null);return(0,n.useEffect)(()=>{a.current&&(a.current.scrollTop=0)},[t.length]),(0,s.jsx)("div",{ref:a,className:T().wrap,children:0===t.length?(0,s.jsx)("p",{className:T().empty,children:"이벤트가 없습니다."}):(0,s.jsx)("ul",{className:T().list,children:t.map((e,t)=>{let a=e.event||"unknown";return(0,s.jsxs)("li",{className:T().item,children:[(0,s.jsxs)("span",{className:T().ts,children:["[",function(e){if(!e)return"-";let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString("ko-KR")}(e.ts),"]"]})," ",(0,s.jsx)("span",{className:T().name,children:a})," | ",(0,s.jsxs)("span",{children:["task=",e.taskId||"-"]})," | ",(0,s.jsxs)("span",{children:["status=",e.status||"-"]})," | ","worker_dispatched"===a?(0,s.jsxs)("strong",{children:[e.actor||e.agentId||"-"," → ",e.targetAgent||"-"]}):(0,s.jsxs)("span",{children:["actor=",e.actor||e.agentId||"-"]})]},"".concat(e.ts||"no-ts","-").concat(a,"-").concat(t))})})})}var E=a(594),w=a.n(E);function C(e){let{conversation:t}=e,[a,l]=(0,n.useState)(!1),r=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=r.current;e&&e.scrollHeight-e.scrollTop-e.clientHeight<200&&(e.scrollTop=e.scrollHeight)},[null==t?void 0:t.stream.length]);let i=(0,n.useMemo)(()=>(null==t?void 0:t.stream)||[],[t]);return t?t.openclawAvailable?(0,s.jsxs)("div",{className:w().wrap,children:[(0,s.jsxs)("label",{className:w().toggle,children:[(0,s.jsx)("input",{type:"checkbox",checked:a,onChange:e=>l(e.target.checked)}),(0,s.jsx)("span",{children:"Debug"})]}),(0,s.jsx)("div",{ref:r,className:w().list,children:i.map((e,t)=>{var n,l;let r=(n=e.content,l=e.toolName,"string"==typeof n?[{type:"text",text:n}]:Array.isArray(n)?n.flatMap(e=>{var t,a,s;if(!e||"object"!=typeof e)return[];let n=String(e.type||"text");return("text"===n||"markdown"===n)&&"string"==typeof e.text?[{type:"text",text:e.text}]:"thinking"===n&&"string"==typeof e.thinking?[{type:"thinking",text:e.thinking}]:("tool_use"===n||"toolCall"===n)&&("string"==typeof e.name||"string"==typeof e.toolName)?[{type:"toolCall",toolName:e.name||e.toolName||l||"tool",text:JSON.stringify(null!=(a=null!=(t=e.input)?t:e.arguments)?a:{},null,2)}]:"tool_result"===n||"toolResult"===n?[{type:"toolResult",toolName:l||"tool",text:"string"==typeof e.content?e.content:JSON.stringify(null!=(s=e.content)?s:e,null,2)}]:"string"==typeof e.text?[{type:"text",text:e.text}]:[{type:"text",text:JSON.stringify(e,null,2)}]}):[{type:"text",text:null==n?"":JSON.stringify(n,null,2)}]),i=function(e){let t=0;for(let a=0;a<e.length;a+=1)t=(t<<5)-t+e.charCodeAt(a);let a=Math.abs(t)%360;return"hsl(".concat(a," 65% 45%)")}(e.agentId||e.agentName||"agent");return(0,s.jsxs)("article",{className:w().message,children:[(0,s.jsxs)("header",{className:w().header,children:[(0,s.jsx)("span",{className:w().agent,style:{backgroundColor:i},children:e.agentName||e.agentId}),(0,s.jsx)("span",{className:w().meta,children:e.role||"unknown"}),(0,s.jsx)("span",{className:w().meta,children:e.ts?new Date(e.ts).toLocaleTimeString("ko-KR"):"-"})]}),(0,s.jsx)("div",{className:w().body,children:r.filter(t=>{var s;return s=e.role,"text"===t.type?"assistant"===s||"user"===s:a}).map((e,t)=>"thinking"===e.type?(0,s.jsxs)("details",{className:w().thinking,children:[(0,s.jsx)("summary",{children:"thinking"}),(0,s.jsx)("pre",{children:e.text})]},t):"toolCall"===e.type||"toolResult"===e.type?(0,s.jsxs)("div",{className:w().toolBox,children:[(0,s.jsxs)("span",{className:w().toolName,children:[e.type,": ",e.toolName]}),(0,s.jsx)("pre",{children:e.text})]},t):(0,s.jsx)("div",{className:w().markdown,children:(0,s.jsx)(k.oz,{children:e.text||""})},t))})]},"".concat(e.sessionKey,"-").concat(e.timestamp||t))})})]}):(0,s.jsx)("div",{className:w().notice,children:"OpenClaw 연동 필요"}):(0,s.jsx)("div",{className:w().empty,children:"태스크를 선택해 주세요."})}var f=a(6143),D=a.n(f);let S=["OPEN","IN_PROGRESS","BLOCKED","DONE_PENDING_REPORT","REPORTED"];async function I(e,t){let a=await fetch(e,{...t,cache:"no-store"});if(!a.ok){let e=await a.json().catch(()=>({}));throw Error("string"==typeof(null==e?void 0:e.error)?e.error:"HTTP ".concat(a.status))}return await a.json()}function R(e){var t;let{initialOverview:a,initialTaskDetail:l,initialConversation:r,initialSelectedTaskId:i}=e,[c,o]=(0,n.useState)(a),[d,u]=(0,n.useState)(i),[_,h]=(0,n.useState)(l),[m,p]=(0,n.useState)(r),[x,k]=(0,n.useState)("detail"),[g,N]=(0,n.useState)("connecting"),[j,T]=(0,n.useState)(!1),[E,w]=(0,n.useState)(null),[f,R]=(0,n.useState)(!1),O=(0,n.useRef)((null==(t=a.recentEvents[0])?void 0:t.ts)||null),L=(0,n.useRef)(null),P=(0,n.useRef)(null),A=(0,n.useMemo)(()=>null===d?[]:c.recentEvents.filter(e=>e.taskId===d),[c.recentEvents,d]),B=(0,n.useMemo)(()=>{let e=new Map(c.activeTasks.map(e=>[e.taskId,e]));return Array.from(new Set([...c.taskHistory.map(e=>e.taskId),...c.activeTasks.map(e=>e.taskId)])).map(t=>{let a=c.taskHistory.find(e=>e.taskId===t),s=e.get(t);return{taskId:t,status:(null==a?void 0:a.status)||(null==s?void 0:s.status)||null,title:(null==s?void 0:s.title)||null,scale:(null==a?void 0:a.scale)||(null==s?void 0:s.scale)||null,actor:(null==a?void 0:a.actor)||null,updatedAt:(null==a?void 0:a.ts)||(null==s?void 0:s.updatedAt)||null}})},[c]),M=(0,n.useCallback)(async e=>{let[t,a]=await Promise.all([I("/api/tasks/".concat(encodeURIComponent(e))),I("/api/tasks/".concat(encodeURIComponent(e),"/conversation"))]);h(t),p(a)},[]),U=(0,n.useCallback)(async()=>{T(!0),w(null);try{var e,t;let a=await I("/api/overview");o(a);let s=(null==(e=a.recentEvents[0])?void 0:e.ts)||null;s&&(O.current=s);let n=d||(null==(t=a.taskHistory[0])?void 0:t.taskId)||null;n&&(u(n),await M(n))}catch(e){w(e.message||"새로고침 실패")}finally{T(!1)}},[M,d]),K=(0,n.useCallback)(async()=>{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"},[]),J=(0,n.useCallback)(async e=>{try{R(!0),w(null),await I("/api/tasks/".concat(encodeURIComponent(e),"/cancel"),{method:"POST"}),await U()}catch(e){w(e.message||"태스크 취소 실패")}finally{R(!1)}},[U]);return(0,n.useEffect)(()=>{d&&M(d).catch(e=>{w(e.message||"태스크 로딩 실패")})},[M,d]),(0,n.useEffect)(()=>{let e=!1,t=()=>{if(e)return;N("connecting");let a=new URLSearchParams;d&&a.set("taskId",d),O.current&&a.set("lastEventTs",O.current);let s=new EventSource("/api/stream".concat(a.toString()?"?".concat(a.toString()):""));P.current=s,s.onopen=()=>N("connected"),s.addEventListener("update",e=>{let t=JSON.parse(e.data);if(t.ts&&(O.current=t.ts),t.overview){var a,s;o(t.overview),!d&&(null==(a=t.overview.taskHistory[0])?void 0:a.taskId)&&u(t.overview.taskHistory[0].taskId);let e=null==(s=t.overview.recentEvents[0])?void 0:s.ts;e&&(O.current=e)}}),s.addEventListener("event_update",e=>{let t=JSON.parse(e.data);t.ts&&(O.current=t.ts),o(e=>({...e,recentEvents:t.recentEvents||e.recentEvents,taskHistory:t.taskHistory||e.taskHistory,bucketCounts:t.bucketCounts||e.bucketCounts}))}),s.addEventListener("task_detail_update",e=>{let t=JSON.parse(e.data);t.ts&&(O.current=t.ts),t.taskId&&t.taskId===d&&t.detail&&h(t.detail)}),s.addEventListener("conversation_update",e=>{let t=JSON.parse(e.data);t.ts&&(O.current=t.ts),t.taskId&&t.taskId===d&&p(e=>{var a,s;return{generatedAt:new Date().toISOString(),taskId:t.taskId||d,sessionKeys:t.sessionKeys||(null==e?void 0:e.sessionKeys)||[],stream:t.stream||(null==e?void 0:e.stream)||[],recentEvents:t.recentEvents||(null==e?void 0:e.recentEvents)||[],sessions:(null==e?void 0:e.sessions)||[],openclawAvailable:null!=(s=null!=(a=t.openclawAvailable)?a:null==e?void 0:e.openclawAvailable)&&s}})}),s.onerror=()=>{N("disconnected"),s.close(),L.current&&clearTimeout(L.current),L.current=setTimeout(t,1500)}};return t(),()=>{e=!0,L.current&&clearTimeout(L.current),P.current&&P.current.close()}},[d]),(0,s.jsxs)("main",{className:D().main,children:[(0,s.jsxs)("header",{className:D().header,children:[(0,s.jsx)("div",{className:D().brand,children:"Zigrix"}),(0,s.jsxs)("div",{className:D().headerRight,children:[(0,s.jsxs)("div",{className:D().sseWrap,children:[(0,s.jsx)("span",{className:"".concat(D().dot," ").concat(D()["dot_".concat(g)])}),(0,s.jsx)("span",{children:g})]}),(0,s.jsx)("button",{type:"button",onClick:()=>void U(),disabled:j,children:"새로고침"}),(0,s.jsx)("button",{type:"button",onClick:()=>void K(),children:"로그아웃"})]})]}),(0,s.jsx)("div",{className:D().statusBar,children:S.map(e=>(0,s.jsxs)("span",{className:D().statusItem,children:[e," (",c.bucketCounts[e]||0,")"]},e))}),E?(0,s.jsx)("p",{className:D().error,children:E}):null,(0,s.jsxs)("section",{className:D().layout,children:[(0,s.jsx)("aside",{className:D().left,children:(0,s.jsx)(v,{tasks:B,selectedTaskId:d,onSelectTask:u})}),(0,s.jsxs)("section",{className:D().right,children:[(0,s.jsxs)("nav",{className:D().tabs,children:[(0,s.jsx)("button",{type:"button",className:"detail"===x?D().tabActive:"",onClick:()=>k("detail"),children:"태스크 상세"}),(0,s.jsx)("button",{type:"button",className:"events"===x?D().tabActive:"",onClick:()=>k("events"),children:"이벤트 로그"}),(0,s.jsx)("button",{type:"button",className:"conversation"===x?D().tabActive:"",onClick:()=>k("conversation"),children:"대화 내역"})]}),(0,s.jsxs)("div",{className:D().panel,children:["detail"===x&&(0,s.jsx)(b,{detail:_,onCancelTask:J,cancelling:f}),"events"===x&&(0,s.jsx)(y,{events:A}),"conversation"===x&&(0,s.jsx)(C,{conversation:m})]})]})]})]})}},9221:e=>{e.exports={wrap:"TaskList_wrap__JJmVD",filters:"TaskList_filters__P_eut",tabs:"TaskList_tabs__MrUoG",tab:"TaskList_tab__PJ3u6",tabActive:"TaskList_tabActive__hqEIw",input:"TaskList_input__069mt",select:"TaskList_select__07ygx",list:"TaskList_list__zaHPI",card:"TaskList_card__UWMn4",cardSelected:"TaskList_cardSelected__e4ZHd",cardTop:"TaskList_cardTop__ogfsJ",taskId:"TaskList_taskId__RiYub",title:"TaskList_title__BjaLg",metaRow:"TaskList_metaRow__zxzxl",dot:"TaskList_dot__zkHSK",pagination:"TaskList_pagination__3aWZh"}}},e=>{e.O(0,[963,856,441,255,358],()=>e(e.s=6297)),_N_E=e.O()}]);
|
|
File without changes
|
/package/dist/dashboard/.next/static/{gl9FuUQE7dOSS5c3ZdHG0 → Dy6qPMgiP2OP-KkqvjDtM}/_ssgManifest.js
RENAMED
|
File without changes
|