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 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"470":{"*":{"id":"39508","name":"*","chunks":[],"async":false}},"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5554":{"*":{"id":"13932","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"470":{"*":{"id":"39508","name":"*","chunks":[],"async":false}},"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5554":{"*":{"id":"13932","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"9843":{"*":{"id":"71128","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/app/globals.css":{"id":3673,"name":"*","chunks":["177","static/chunks/app/layout-96206a34ff37a783.js"],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/components/LoginForm.tsx":{"id":5554,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/components/SetupForm.tsx":{"id":470,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/components/DashboardClient.tsx":{"id":9843,"name":"*","chunks":["856","static/chunks/856-4671c40140d5540a.js","974","static/chunks/app/page-0314989c31e18b4b.js"],"async":false}},"entryCSSFiles":{"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/":[],"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/app/layout":[{"inlined":false,"path":"static/css/9f7ffdac282b0450.css"}],"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/app/page":[{"inlined":false,"path":"static/css/c3a7306cb2ba3f6c.css"}]},"rscModuleMapping":{"470":{"*":{"id":"90726","name":"*","chunks":[],"async":false}},"622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"3673":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"5554":{"*":{"id":"35894","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"9843":{"*":{"id":"45146","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/setup/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"470":{"*":{"id":"39508","name":"*","chunks":[],"async":false}},"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5554":{"*":{"id":"13932","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/setup/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"470":{"*":{"id":"39508","name":"*","chunks":[],"async":false}},"622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"5554":{"*":{"id":"13932","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"9843":{"*":{"id":"71128","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7150,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/client-page.js":{"id":1959,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/client-segment.js":{"id":7989,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3886,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":5278,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":8924,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":4431,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":622,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/app/globals.css":{"id":3673,"name":"*","chunks":["177","static/chunks/app/layout-96206a34ff37a783.js"],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/components/LoginForm.tsx":{"id":5554,"name":"*","chunks":[],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/components/SetupForm.tsx":{"id":470,"name":"*","chunks":["620","static/chunks/app/setup/page-a01ab6e2460293c3.js"],"async":false},"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/components/DashboardClient.tsx":{"id":9843,"name":"*","chunks":["856","static/chunks/856-4671c40140d5540a.js","974","static/chunks/app/page-0314989c31e18b4b.js"],"async":false}},"entryCSSFiles":{"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/":[],"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/app/layout":[{"inlined":false,"path":"static/css/9f7ffdac282b0450.css"}],"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/app/page":[{"inlined":false,"path":"static/css/c3a7306cb2ba3f6c.css"}],"/Users/janos/.openclaw/workspace/projects/zigrix/dashboard/src/app/setup/page":[{"inlined":false,"path":"static/css/1f406f685b1e941e.css"}]},"rscModuleMapping":{"470":{"*":{"id":"90726","name":"*","chunks":[],"async":false}},"622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"1959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"3673":{"*":{"id":"61135","name":"*","chunks":[],"async":false}},"3886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"4431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"5278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"5554":{"*":{"id":"35894","name":"*","chunks":[],"async":false}},"7150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"7989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"8924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}},"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"9843":{"*":{"id":"45146","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--Dy6qPMgiP2OP_KkqvjDtM--><html lang="ko"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/9f7ffdac282b0450.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/1f406f685b1e941e.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1c485544eee88ef7.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-458501fc143f8dcb.js" async=""></script><script src="/_next/static/chunks/app/setup/page-a01ab6e2460293c3.js" async=""></script><title>Zigrix Dashboard</title><meta name="description" content="Zigrix task orchestration dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><main class="AuthForm_page__BW2iZ"><section class="AuthForm_card__Ksq5w"><h1 class="AuthForm_title__0zwBF">Zigrix Setup</h1><p class="AuthForm_desc__5DseA">최초 관리자 계정을 생성합니다.</p><form class="AuthForm_form__ugvBR"><label>Username<input required="" value=""/></label><label>Password (min 8)<input type="password" minLength="8" required="" value=""/></label><label>Password 확인<input type="password" minLength="8" required="" value=""/></label><button type="submit" class="AuthForm_submit__Y2aJX">관리자 계정 생성</button></form></section></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-1c485544eee88ef7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[470,[\"620\",\"static/chunks/app/setup/page-a01ab6e2460293c3.js\"],\"SetupForm\"]\n5:I[4431,[],\"OutletBoundary\"]\n7:I[5278,[],\"AsyncMetadataOutlet\"]\n9:I[4431,[],\"ViewportBoundary\"]\nb:I[4431,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[7150,[],\"\"]\n:HL[\"/_next/static/css/9f7ffdac282b0450.css\",\"style\"]\n:HL[\"/_next/static/css/1f406f685b1e941e.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Dy6qPMgiP2OP-KkqvjDtM\",\"p\":\"\",\"c\":[\"\",\"setup\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"setup\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9f7ffdac282b0450.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[\"setup\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1f406f685b1e941e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Zigrix Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Zigrix task orchestration dashboard\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
|
|
@@ -10,7 +10,7 @@ c:"$Sreact.suspense"
|
|
|
10
10
|
e:I[7150,[],""]
|
|
11
11
|
:HL["/_next/static/css/9f7ffdac282b0450.css","style"]
|
|
12
12
|
:HL["/_next/static/css/1f406f685b1e941e.css","style"]
|
|
13
|
-
0:{"P":null,"b":"
|
|
13
|
+
0:{"P":null,"b":"Dy6qPMgiP2OP-KkqvjDtM","p":"","c":["","setup"],"i":false,"f":[[["",{"children":["setup",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9f7ffdac282b0450.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"ko","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":["setup",["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L4",null,{}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/1f406f685b1e941e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L5",null,{"children":["$L6",["$","$L7",null,{"promise":"$@8"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L9",null,{"children":"$La"}],null],["$","$Lb",null,{"children":["$","div",null,{"hidden":true,"children":["$","$c",null,{"fallback":null,"children":"$Ld"}]}]}]]}],false]],"m":"$undefined","G":["$e",[]],"s":false,"S":true}
|
|
14
14
|
a:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
15
15
|
6:null
|
|
16
16
|
8:{"metadata":[["$","title","0",{"children":"Zigrix Dashboard"}],["$","meta","1",{"name":"description","content":"Zigrix task orchestration dashboard"}]],"error":null,"digest":"$undefined"}
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"/_not-found/page": "app/_not-found/page.js",
|
|
3
3
|
"/api/auth/logout/route": "app/api/auth/logout/route.js",
|
|
4
4
|
"/api/auth/session/route": "app/api/auth/session/route.js",
|
|
5
|
-
"/api/auth/login/route": "app/api/auth/login/route.js",
|
|
6
5
|
"/api/auth/setup/route": "app/api/auth/setup/route.js",
|
|
6
|
+
"/api/auth/login/route": "app/api/auth/login/route.js",
|
|
7
7
|
"/api/overview/route": "app/api/overview/route.js",
|
|
8
8
|
"/api/tasks/[taskId]/conversation/route": "app/api/tasks/[taskId]/conversation/route.js",
|
|
9
9
|
"/api/tasks/[taskId]/route": "app/api/tasks/[taskId]/route.js",
|
|
10
10
|
"/api/tasks/[taskId]/cancel/route": "app/api/tasks/[taskId]/cancel/route.js",
|
|
11
11
|
"/api/stream/route": "app/api/stream/route.js",
|
|
12
|
-
"/setup/page": "app/setup/page.js",
|
|
13
12
|
"/login/page": "app/login/page.js",
|
|
13
|
+
"/setup/page": "app/setup/page.js",
|
|
14
14
|
"/page": "app/page.js"
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=972,exports.ids=[972],exports.modules={48383:(a,b,c)=>{c.d(b,{HB:()=>A});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(48161),i=c.n(h);g().join(i().homedir(),".openclaw","agents");let j=g().join(i().homedir(),".openclaw","subagents","runs.json");g().join(i().homedir(),".openclaw","openclaw.json");let k="http://127.0.0.1:18789";function l(a){try{return e().readFileSync(a,"utf-8")}catch{return""}}function m(a,b={}){try{let c=e().readFileSync(a,"utf-8"),d=JSON.parse(c);return p(d)?d:b}catch{return b}}function n(a){let b=l(a);if(!b.trim())return[];let c=[];for(let a of b.split(/\r?\n/))if(a.trim())try{let b=JSON.parse(a);p(b)&&c.push(function(a){let b=q(a.ts)??function(a){if("number"==typeof a&&Number.isFinite(a))return new Date(a).toISOString();if("string"==typeof a){let b=a.trim();if(!b)return null;let c=Number(b);if(Number.isFinite(c))return new Date(c).toISOString();let d=Date.parse(b);if(Number.isFinite(d))return new Date(d).toISOString()}return null}(a.timestamp)??void 0,c=q(a.event)??q(a.action)??void 0,d=q(a.sessionKey)??q(a.session_key)??q(a.childSessionKey)??void 0,e=q(a.runId)??q(a.run_id)??void 0;return{...a,ts:b,event:c,sessionKey:d,runId:e}}(b))}catch{}return c}function o(a){return a.map((a,b)=>({row:a,idx:b})).sort((a,b)=>{let c=Date.parse(a.row.ts||""),d=Date.parse(b.row.ts||""),e=(isNaN(d)?0:d)-(isNaN(c)?0:c);return 0!==e?e:b.idx-a.idx}).map(a=>a.row)}function p(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function q(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null}function r(a){let b=String(a.event||a.action||"");return"task_created"===b?"OPEN":"task_started"===b?"IN_PROGRESS":"reported"===b?"REPORTED":"blocked"===b?"BLOCKED":"evidence_merged"===b&&"DONE_PENDING_REPORT"===String(a.status||"").toUpperCase()?"DONE_PENDING_REPORT":null}function s(a){for(let b of o(a)){let a=r(b);if(a)return a;if(["worker_dispatched","worker_started","worker_done","worker_skipped","evidence_collected"].includes(String(b.event||b.action||"")))continue;let c=q(b.status);if(c)return c}return null}function t(a,b,c){let d=q(m(g().join(c,`${a}.meta.json`),{}).status);return d||s(b.filter(b=>b.taskId===a))}function u(a,b,c){let d=b.filter(b=>b.taskId===a),e=null,f=null,g=null;for(let a=0;a<d.length;a++){let b=d[a],c=String(b.ts||""),h=String(e?.ts||"");(!e||c>h||c===h&&a>=e.__idx)&&(e={...b,__idx:a}),"string"==typeof b.scale&&b.scale&&(f=b.scale),"string"==typeof b.title&&b.title&&(g=b.title),!f&&p(b.payload)&&"string"==typeof b.payload.scale&&(f=b.payload.scale),!g&&p(b.payload)&&"string"==typeof b.payload.title&&(g=b.payload.title)}let h=d.map((a,b)=>b);h.sort((a,b)=>{let c=String(d[b].ts||"").localeCompare(String(d[a].ts||""));return 0!==c?c:b-a});let i=h.map(a=>d[a]);return{taskId:a,status:t(a,b,c),scale:f||e?.scale||null,title:g||e?.title||null,updatedAt:e?.ts||null,latestEvent:e?.event||null,events:i.slice(0,50)}}function v(a){let b=a.match(/^agent:([^:]+):/);return b?.[1]||null}function w(a){let b=a.match(/^agent:([^:]+):subagent:([^:\s]+)$/);return b?{agentId:b[1],sessionId:b[2]}:null}function x(a,b,c,d,f,h){let i=b.filter(b=>b.taskId===a),j=function(a,b){let c=m(g().join(b,`${a}.meta.json`),{}),d=new Set,e=new Map,f=new Map,h=(a,b,c)=>{let g=q(a);if(!g)return;d.add(g);let h=v(g),i=b||h;i&&e.set(g,i),c&&f.set(g,c)};if(h(c.orchestratorSessionKey,"pro-zig",q(c.orchestratorSessionId)),p(c.workerSessions))for(let[a,b]of Object.entries(c.workerSessions))p(b)&&h(b.sessionKey,a,q(b.sessionId));return{sessionKeys:d,sessionToAgent:e,metaSessionIdMap:f}}(a,c),k=function(a,b){let c=g().join(b,a),d=new Set,f=new Map;if(!e().existsSync(c))return{sessionKeys:d,sessionToAgent:f};for(let a of e().readdirSync(c).filter(a=>a.endsWith(".json"))){if("_merged.json"===a)continue;let b=m(g().join(c,a),{}),e=q(b.sessionKey),h=q(b.agentId)||a.replace(/\.json$/,"");e&&(d.add(e),h&&f.set(e,h))}return{sessionKeys:d,sessionToAgent:f}}(a,d),l=new Set([...Array.from(j.sessionKeys),...Array.from(k.sessionKeys)]),n=new Map([...Array.from(j.sessionToAgent.entries()),...Array.from(k.sessionToAgent.entries())]),o=(a,b)=>{l.add(a);let c=v(a),d=b||c;d&&n.set(a,d)};for(let a of function(a,b){let c=new Set;for(let d of a)for(let a of b){let b=q(d[a]);b&&c.add(b)}return Array.from(c)}(i,["sessionKey","session_key","parentSessionKey","parent_session_key"]))o(a);for(let a of i.filter(a=>["worker_dispatched","worker_done"].includes(String(a.event||a.action||"")))){let b=q(a.targetAgent)||q(a.agentId)||q(a.actor),c=q(a.sessionKey)||q(a.session_key)||q(a.childSessionKey);c&&o(c,b)}let r=function(a,b,c){if(0===c.length)return new Map;let d=new Set(c),f=new Map;for(let c of b)try{let b=g().join(a,c,"sessions","sessions.json"),h=e().readFileSync(b,"utf-8"),i=JSON.parse(h);if(!p(i))continue;for(let[a,b]of Object.entries(i)){if(!d.has(a)||!p(b))continue;let c=q(b.sessionId);c&&f.set(a,c)}}catch{}let h=c.filter(a=>!f.has(a));if(h.length>0)for(let b of h){let c=w(b);if(!c)continue;let d=c.sessionId,h=g().join(a,c.agentId,"sessions");try{if(!e().existsSync(h))continue;let a=`${d}.jsonl`;(e().existsSync(g().join(h,a))||e().readdirSync(h).some(b=>b.startsWith(`${a}.deleted.`)))&&f.set(b,d)}catch{}}return f}(f,h,Array.from(l));return j.metaSessionIdMap.forEach((a,b)=>{r.has(b)||r.set(b,a)}),{sessionKeys:Array.from(l),sessionToAgent:n,sessionIdMap:r}}function y(a,b,c){let d=g().join(a,b,"sessions");if(!e().existsSync(d))return null;let f=g().join(d,`${c}.jsonl`);if(e().existsSync(f))return{filePath:f,source:"active"};let h=`${c}.jsonl.deleted.`,i=e().readdirSync(d).filter(a=>a.startsWith(h)).sort((a,b)=>b.localeCompare(a));return 0===i.length?null:{filePath:g().join(d,i[0]),source:"deleted"}}function z(a){let b=a.timestamp;if("number"==typeof b&&Number.isFinite(b))return b;if("string"==typeof b){let a=Number(b);if(Number.isFinite(a))return a;let c=Date.parse(b);if(Number.isFinite(c))return c}let c=a.ts;if("string"==typeof c){let a=Date.parse(c);if(Number.isFinite(a))return a}return null}function A(a){let b=a?.zigrixHome||process.env.ZIGRIX_HOME||g().join(i().homedir(),".zigrix"),c=function(a){let b=g().join(a,"zigrix.config.json");try{if(!e().existsSync(b))return null;let a=e().readFileSync(b,"utf-8"),c=JSON.parse(a);if(!p(c))return null;let d=c.openclaw;if(!p(d))return null;return{home:"string"==typeof d.home&&d.home?d.home:"",binPath:"string"==typeof d.binPath&&d.binPath?d.binPath:null,gatewayUrl:"string"==typeof d.gatewayUrl&&d.gatewayUrl?d.gatewayUrl:k}}catch{return null}}(b),d=c?.home||process.env.OPENCLAW_HOME||g().join(i().homedir(),".openclaw"),f=a?.agentsStateDir||process.env.OPENCLAW_AGENTS_DIR||g().join(d,"agents"),h={zigrixHome:b,indexPath:g().join(b,"index.json"),eventsPath:g().join(b,"tasks.jsonl"),specsDir:g().join(b,"tasks"),evidenceDir:g().join(b,"evidence"),agentsStateDir:f,subagentRunsPath:a?.subagentRunsPath||process.env.OPENCLAW_SUBAGENT_RUNS_PATH||j,openclawConfigPath:a?.openclawConfigPath||process.env.OPENCLAW_CONFIG_PATH||g().join(d,"openclaw.json"),openclawBinPath:c?.binPath||null},A=a?.gatewayUrl||process.env.OPENCLAW_GATEWAY_URL||c?.gatewayUrl||k,B=a?.invokeTool||function(a){let b=a?.gatewayUrl||process.env.OPENCLAW_GATEWAY_URL||k,c=a?.gatewayToken||process.env.OPENCLAW_GATEWAY_TOKEN||null,d=a?.fetchImpl||fetch,e=`${b.replace(/\/+$/,"")}/tools/invoke`;return async(a,b)=>{let f={"Content-Type":"application/json"};c&&(f.Authorization=`Bearer ${c}`);let g=await d(e,{method:"POST",headers:f,body:JSON.stringify({tool:a,args:b})}),h=await g.text(),i=null;if(h.trim())try{i=JSON.parse(h)}catch{i=null}if(!g.ok){let a=p(i)&&p(i.error)&&"string"==typeof i.error.message?i.error.message:h.slice(0,500)||`HTTP ${g.status}`;throw Error(`gateway_invoke_failed(${g.status}): ${a}`)}if(!p(i)||!0!==i.ok)throw Error("gateway_invoke_failed: invalid_response");return i.result}}({gatewayUrl:A,gatewayToken:a?.gatewayToken,fetchImpl:a?.fetchImpl}),C=function(a,b){let c=Number.parseInt(String(a??""),10);return!Number.isFinite(c)||c<=0?200:c}(a?.sessionsHistoryLimit??process.env.SESSIONS_HISTORY_LIMIT,0);function D(){let a=m(g().join(b,"zigrix.config.json"),{}).agents;return Array.isArray(a)?a.map(a=>"string"==typeof a?a:p(a)?q(a.id)||q(a.agentId):null).filter(a=>!!a):p(a)?p(a.registry)?Object.keys(a.registry):Object.keys(a):[]}async function E(a){var b;let c=n(h.eventsPath),d=D(),e=x(a,c,h.specsDir,h.evidenceDir,h.agentsStateDir,d),f=e.sessionKeys,g=o(c).filter(b=>b.taskId===a).slice(0,50).map(a=>({ts:a.ts||null,event:a.event||a.action||null,status:a.status||null,actor:a.actor||a.agentId||null,targetAgent:q(a.targetAgent)||q(a.agentId),runId:q(a.runId),sessionKey:q(a.sessionKey)})),i=!0,j=await Promise.all(f.map(async a=>{let b=null;try{let b=await B("sessions_history",{sessionKey:a,limit:C,includeTools:!0}),c=p(b)?b:{},d=p(c.details)?c.details:{},e=(Array.isArray(d.messages)?d.messages:Array.isArray(c.messages)?c.messages:[]).filter(a=>p(a));if(e.length>0||!w(a))return{sessionKey:a,ok:!0,messageCount:e.length,error:null,messages:e}}catch(a){b=String(a?.message||a),i=!1}try{let c=w(a);if(!c)return{sessionKey:a,ok:!b,messageCount:0,error:b,messages:[]};let d=e.sessionIdMap.get(a)??c.sessionId,f=y(h.agentsStateDir,c.agentId,d);if(f||d===c.sessionId||(f=y(h.agentsStateDir,c.agentId,c.sessionId)),!f)return{sessionKey:a,ok:!b,messageCount:0,error:b,messages:[]};let g=function(a){let b=l(a);if(!b.trim())return[];let c=[];for(let a of b.split(/\r?\n/))if(a.trim())try{let b=JSON.parse(a);if(!p(b)||"message"!==b.type)continue;let d=p(b.message)?b.message:b;c.push({id:q(b.id),parentId:q(b.parentId),role:q(d.role),content:d.content,timestamp:z(b)??q(b.ts)})}catch{}return c}(f.filePath);return i=!0,{sessionKey:a,ok:!0,messageCount:g.length,error:null,messages:g}}catch(c){return{sessionKey:a,ok:!1,messageCount:0,error:b||String(c?.message||c),messages:[]}}})),k=(b=e.sessionToAgent,j.flatMap(({sessionKey:a,messages:c},d)=>c.filter(b=>!function(a,b){var c;if("pro-zig"!==v(a))return!1;let d=q(b.role),e=("string"==typeof(c=b.content)?c:!Array.isArray(c)?"":c.map(a=>a&&"object"==typeof a?"string"==typeof a.text?a.text:"string"==typeof a.thinking?a.thinking:"":"").filter(Boolean).join("\n")).trim();if(!e)return!1;if("assistant"===d&&"NO_REPLY"===e)return!0;if("user"!==d)return!1;let f=e.toLowerCase();return f.includes("internal task completion event")&&f.includes("source: subagent")}(a,b)).map((c,e)=>{let f=z(c),g=f?new Date(f).toISOString():q(c.ts),h=b.get(a)||v(a)||"unknown";return{__sortTs:f??Number.MAX_SAFE_INTEGER,__sessionIdx:d,__sortIdx:e,row:{sessionKey:a,agentId:h,agentName:h,role:q(c.role),timestamp:f,ts:g,toolName:q(c.toolName),toolCallId:q(c.toolCallId),isError:!!c.isError,content:c.content,raw:c}}})).sort((a,b)=>{let c=a.__sortTs-b.__sortTs;if(0!==c)return c;let d=a.__sessionIdx-b.__sessionIdx;return 0!==d?d:a.__sortIdx-b.__sortIdx}).map(a=>a.row)),m=j.map(a=>({sessionKey:a.sessionKey,ok:a.ok,messageCount:a.messageCount,error:a.error}));return{generatedAt:new Date().toISOString(),taskId:a,sessionKeys:f,stream:k,recentEvents:g,sessions:m,openclawAvailable:i}}async function F(a){let b=n(h.eventsPath),c=s(b.filter(b=>String(b.taskId||"")===a));if("IN_PROGRESS"!==c&&"OPEN"!==c)throw function(a,b){let c=Error(b);return c.code=a,c}("task_not_cancellable",`task_not_cancellable(taskId=${a}, status=${String(c||"unknown")})`);let d=D(),{sessionKeys:f}=x(a,b,h.specsDir,h.evidenceDir,h.agentsStateDir,d),g=[];for(let a of f){try{await B("subagents",{action:"kill",target:a})}catch{}g.push(a)}let i={ts:new Date().toISOString(),event:"blocked",taskId:a,phase:"execution",status:"BLOCKED",actor:"manual",payload:{reason:"user_cancelled",killedSessions:g}};return e().appendFileSync(h.eventsPath,JSON.stringify(i)+"\n","utf-8"),{ok:!0,killedSessions:g}}return{paths:h,loadOverview:function(){let a=function(a={}){let b=p(a.statusBuckets)?a.statusBuckets:{},c={OPEN:[],IN_PROGRESS:[],BLOCKED:[],DONE_PENDING_REPORT:[],REPORTED:[]};for(let[a,d]of Object.entries(b))c[a]=Array.isArray(d)?d:[];return{updatedAt:"string"==typeof a.updatedAt?a.updatedAt:null,statusBuckets:c,activeTasks:p(a.activeTasks)?a.activeTasks:{},recentEvents:Array.isArray(a.recentEvents)?a.recentEvents:[]}}(m(h.indexPath,{})),b=n(h.eventsPath);D();let c=Object.fromEntries(Object.entries(a.statusBuckets).map(([a,b])=>[a,Array.isArray(b)?b.length:0])),d=Object.entries(a.activeTasks).map(([a,c])=>{let d=p(c)?c:{},e=u(a,b,h.specsDir);return{taskId:a,status:"string"==typeof d.status?d.status:e.status,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:e.updatedAt,scale:e.scale,title:e.title}}),e=o(b).slice(0,30).map(a=>({ts:a.ts,event:a.event||a.action,taskId:a.taskId,status:a.status,actor:a.actor||a.agentId,agentId:a.agentId,targetAgent:a.targetAgent||a.agentId,title:a.title})),f=function(a,b){let c=new Map,d=o(a);for(let e of d){let f=e.taskId;!f||c.has(f)||(d.find(a=>a.taskId===f&&!!r(a)),c.set(f,{taskId:f,ts:e.ts||null,event:e.event||e.action||null,status:t(f,a,b),scale:e.scale||null,actor:e.actor||e.agentId||null}))}return Array.from(c.values())}(b,h.specsDir);return{generatedAt:new Date().toISOString(),...{},updatedAt:a.updatedAt,bucketCounts:c,statusBuckets:a.statusBuckets,activeTasks:d.sort((a,b)=>String(b.updatedAt||"").localeCompare(String(a.updatedAt||""))),recentEvents:e,taskHistory:f,openclawAvailable:!0}},loadTaskDetail:function(a){let b=u(a,n(h.eventsPath),h.specsDir),c=function(a,b){let c=g().join(b,`${a}.md`),d=l(c),e=m(g().join(b,`${a}.meta.json`),{}),f=d?d.split(/\r?\n/):[],h={};for(let[a,b]of[["taskId",e.taskId],["title",e.title],["scale",e.scale],["requestedBy",e.requestedBy],["createdAt",e.createdAt],["projectKey",e.projectKey],["projectDir",e.projectDir],["projectPath",e.projectPath]]){let c=q(b);c&&(h[a]=c)}let i=0;for(let a of f){let b=a.match(/^(`{3,})/);if(b){0===i?i=b[1].length:b[1].length>=i&&(i=0);continue}if(i>0)continue;let c=a.match(/^-\s+([^:]+):\s*(.+)$/);if(!c)continue;let d=c[1].trim();d in h||(h[d]=c[2].trim())}let j=f.find(a=>a.trim().startsWith("- Next Action:")),k=f.find(a=>a.trim().startsWith("- Resume Hint")),n=q(e.nextAction),o=q(e.resumeHint);return{exists:!!d||Object.keys(h).length>0||!!n||!!o,path:c,metadata:h,nextAction:n||(j?j.split(":").slice(1).join(":").trim():null),resumeHint:o||(k?k.split(":").slice(1).join(":").trim():null),preview:d?f.slice(0,80).join("\n"):void 0}}(a,h.specsDir),d=function(a,b){let c=g().join(b,`${a}.meta.json`),d=m(c,{});return{exists:e().existsSync(c),path:c,data:d}}(a,h.specsDir),f=function(a,b){let c=g().join(b,a);if(!e().existsSync(c))return{exists:!1,path:c,agents:[],merged:null};let d=e().readdirSync(c).filter(a=>a.endsWith(".json")),f=[],h=null;for(let a of d){let b=g().join(c,a),d=m(b,{});if("_merged.json"===a){h={...d,path:b};continue}f.push({file:a,path:b,agentId:"string"==typeof d.agentId?d.agentId:a.replace(/\.json$/,""),runId:"string"==typeof d.runId?d.runId:null,sessionKey:"string"==typeof d.sessionKey?d.sessionKey:null,sessionId:"string"==typeof d.sessionId?d.sessionId:null,ts:"string"==typeof d.ts?d.ts:null})}return{exists:!0,path:c,agents:f.sort((a,b)=>String(b.ts||"").localeCompare(String(a.ts||""))),merged:h}}(a,h.evidenceDir);return{generatedAt:new Date().toISOString(),task:b,spec:c,meta:d,evidence:f}},loadTaskConversation:E,cancelTask:F,getTaskSessionFilePaths:function(a){let b=n(h.eventsPath),c=D(),{sessionKeys:d,sessionIdMap:e}=x(a,b,h.specsDir,h.evidenceDir,h.agentsStateDir,c);return d.map(a=>{let b=w(a);if(!b)return null;let c=e.get(a)??b.sessionId;return g().join(h.agentsStateDir,b.agentId,"sessions",`${c}.jsonl`)}).filter(a=>null!==a)}}}},67360:(a,b,c)=>{c.d(b,{BE:()=>w,IX:()=>n,TI:()=>t,dV:()=>u,gV:()=>A,gw:()=>o,jw:()=>z,xC:()=>v});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(48161),i=c.n(h),j=c(77598),k=c.n(j),l=c(74729),m=c.n(l);let n="zigrix_session",o=43200,p=new TextEncoder,q=new TextDecoder;function r(){return process.env.ZIGRIX_HOME||g().join(i().homedir(),".zigrix")}function s(){return g().join(r(),"dashboard.json")}function t(){let a=s();try{let b=e().readFileSync(a,"utf-8"),c=JSON.parse(b);if(!c||"object"!=typeof c||Array.isArray(c))return{admins:[],sessionSecret:"",corsOrigins:[],createdAt:""};return{admins:Array.isArray(c.admins)?c.admins:[],sessionSecret:"string"==typeof c.sessionSecret?c.sessionSecret:"",corsOrigins:Array.isArray(c.corsOrigins)?c.corsOrigins:[],createdAt:"string"==typeof c.createdAt?c.createdAt:""}}catch{return{admins:[],sessionSecret:"",corsOrigins:[],createdAt:""}}}function u(){return 0===t().admins.length}async function v(a,b){let c={admins:[{username:a,passwordHash:await m().hash(b,12)}],sessionSecret:k().randomBytes(64).toString("hex"),corsOrigins:["http://localhost:3000"],createdAt:new Date().toISOString()},d=s(),f=r();e().existsSync(f)||e().mkdirSync(f,{recursive:!0}),e().writeFileSync(d,JSON.stringify(c,null,2),{encoding:"utf-8",mode:384});try{e().chmodSync(d,384)}catch{}}async function w(a,b){let c=t().admins.find(b=>b.username===a);if(!c)return await m().hash(b,12),!1;if(!await m().compare(b,c.passwordHash))return!1;let d=p.encode(a),e=p.encode(c.username);return d.length===e.length&&k().timingSafeEqual(d,e)}function x(a){return Buffer.from(a).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function y(a,b){let c=await k().subtle.importKey("raw",p.encode(b),{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return x(new Uint8Array(await k().subtle.sign("HMAC",c,p.encode(a))))}async function z(a){let b=t().sessionSecret;if(!b)throw Error("Session secret not configured. Run setup first.");let c=Math.floor(Date.now()/1e3),d=x(p.encode(JSON.stringify({sub:a,iat:c,exp:c+o}))),e=await y(d,b);return`${d}.${e}`}async function A(a){let b;if(!a)return null;let c=a.split(".");if(2!==c.length)return null;let[d,e]=c;if(!d||!e)return null;let f=t().sessionSecret;if(!f||!function(a,b){if(a.length!==b.length)return!1;let c=p.encode(a),d=p.encode(b);return k().timingSafeEqual(c,d)}(await y(d,f),e))return null;try{let a=q.decode(function(a){let b=a.replace(/-/g,"+").replace(/_/g,"/"),c=b.padEnd(4*Math.ceil(b.length/4),"=");return new Uint8Array(Buffer.from(c,"base64"))}(d));b=JSON.parse(a)}catch{return null}if("number"!=typeof b.exp||"number"!=typeof b.iat)return null;let g=Math.floor(Date.now()/1e3);return b.exp<=g||b.iat>g+60?null:{username:"string"==typeof b.sub?b.sub:"",issuedAt:b.iat,expiresAt:b.exp}}}};
|
|
1
|
+
"use strict";exports.id=972,exports.ids=[972],exports.modules={48383:(a,b,c)=>{c.d(b,{HB:()=>B});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(48161),i=c.n(h);g().join(i().homedir(),".openclaw","agents");let j=g().join(i().homedir(),".openclaw","subagents","runs.json");g().join(i().homedir(),".openclaw","openclaw.json");let k="http://127.0.0.1:18789";function l(a){try{return e().readFileSync(a,"utf-8")}catch{return""}}function m(a,b={}){try{let c=e().readFileSync(a,"utf-8"),d=JSON.parse(c);return p(d)?d:b}catch{return b}}function n(a){let b=l(a);if(!b.trim())return[];let c=[];for(let a of b.split(/\r?\n/))if(a.trim())try{let b=JSON.parse(a);p(b)&&c.push(function(a){let b=q(a.ts)??function(a){if("number"==typeof a&&Number.isFinite(a))return new Date(a).toISOString();if("string"==typeof a){let b=a.trim();if(!b)return null;let c=Number(b);if(Number.isFinite(c))return new Date(c).toISOString();let d=Date.parse(b);if(Number.isFinite(d))return new Date(d).toISOString()}return null}(a.timestamp)??void 0,c=q(a.event)??q(a.action)??void 0,d=q(a.sessionKey)??q(a.session_key)??q(a.childSessionKey)??void 0,e=q(a.runId)??q(a.run_id)??void 0;return{...a,ts:b,event:c,sessionKey:d,runId:e}}(b))}catch{}return c}function o(a){return a.map((a,b)=>({row:a,idx:b})).sort((a,b)=>{let c=Date.parse(a.row.ts||""),d=Date.parse(b.row.ts||""),e=(isNaN(d)?0:d)-(isNaN(c)?0:c);return 0!==e?e:b.idx-a.idx}).map(a=>a.row)}function p(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function q(a){if("string"!=typeof a)return null;let b=a.trim();return b.length>0?b:null}function r(a){for(let b of o(a)){let a=function(a){let b=String(a.event||a.action||"");return"task_created"===b?"OPEN":"task_started"===b?"IN_PROGRESS":"reported"===b?"REPORTED":"blocked"===b?"BLOCKED":"evidence_merged"===b&&"DONE_PENDING_REPORT"===String(a.status||"").toUpperCase()?"DONE_PENDING_REPORT":null}(b);if(a)return a;if(["worker_dispatched","worker_started","worker_done","worker_skipped","evidence_collected"].includes(String(b.event||b.action||"")))continue;let c=q(b.status);if(c)return c}return null}function s(a,b,c){let d=q(m(g().join(c,`${a}.meta.json`),{}).status);return d||r(b.filter(b=>b.taskId===a))}function t(a,b,c){let d=m(g().join(c,`${a}.meta.json`),{}),e=q(d.scale),f=q(d.title),h=null,i=null;for(let a of b){let b=p(a.payload)?a.payload:null,c=q(a.scale)||q(b?.scale),d=q(a.title)||q(b?.title);c&&(h=c),d&&(i=d)}return{scale:e||h,title:f||i}}function u(a,b,c){let d=b.filter(b=>b.taskId===a),e=null;for(let a=0;a<d.length;a++){let b=d[a],c=String(b.ts||""),f=String(e?.ts||"");(!e||c>f||c===f&&a>=e.__idx)&&(e={...b,__idx:a})}let f=t(a,d,c),g=d.map((a,b)=>b);g.sort((a,b)=>{let c=String(d[b].ts||"").localeCompare(String(d[a].ts||""));return 0!==c?c:b-a});let h=g.map(a=>d[a]);return{taskId:a,status:s(a,b,c),scale:f.scale||e?.scale||null,title:f.title||e?.title||null,updatedAt:e?.ts||null,latestEvent:e?.event||null,events:h.slice(0,50)}}function v(a){let b=a.match(/^agent:([^:]+):/);return b?.[1]||null}function w(a){let b=a.match(/^agent:([^:]+):subagent:([^:\s]+)$/);return b?{agentId:b[1],sessionId:b[2]}:null}function x(a,b,c,d,f,h){let i=b.filter(b=>b.taskId===a),j=function(a,b){let c=m(g().join(b,`${a}.meta.json`),{}),d=new Set,e=new Map,f=new Map,h=(a,b,c)=>{let g=q(a);if(!g)return;d.add(g);let h=v(g),i=b||h;i&&e.set(g,i),c&&f.set(g,c)};if(h(c.orchestratorSessionKey,"pro-zig",q(c.orchestratorSessionId)),p(c.workerSessions))for(let[a,b]of Object.entries(c.workerSessions))p(b)&&h(b.sessionKey,a,q(b.sessionId));return{sessionKeys:d,sessionToAgent:e,metaSessionIdMap:f}}(a,c),k=function(a,b){let c=g().join(b,a),d=new Set,f=new Map;if(!e().existsSync(c))return{sessionKeys:d,sessionToAgent:f};for(let a of e().readdirSync(c).filter(a=>a.endsWith(".json"))){if("_merged.json"===a)continue;let b=m(g().join(c,a),{}),e=q(b.sessionKey),h=q(b.agentId)||a.replace(/\.json$/,"");e&&(d.add(e),h&&f.set(e,h))}return{sessionKeys:d,sessionToAgent:f}}(a,d),l=new Set([...Array.from(j.sessionKeys),...Array.from(k.sessionKeys)]),n=new Map([...Array.from(j.sessionToAgent.entries()),...Array.from(k.sessionToAgent.entries())]),o=(a,b)=>{l.add(a);let c=v(a),d=b||c;d&&n.set(a,d)};for(let a of function(a,b){let c=new Set;for(let d of a)for(let a of b){let b=q(d[a]);b&&c.add(b)}return Array.from(c)}(i,["sessionKey","session_key","parentSessionKey","parent_session_key"]))o(a);for(let a of i.filter(a=>["worker_dispatched","worker_done"].includes(String(a.event||a.action||"")))){let b=q(a.targetAgent)||q(a.agentId)||q(a.actor),c=q(a.sessionKey)||q(a.session_key)||q(a.childSessionKey);c&&o(c,b)}let r=function(a,b,c){if(0===c.length)return new Map;let d=new Set(c),f=new Map;for(let c of b)try{let b=g().join(a,c,"sessions","sessions.json"),h=e().readFileSync(b,"utf-8"),i=JSON.parse(h);if(!p(i))continue;for(let[a,b]of Object.entries(i)){if(!d.has(a)||!p(b))continue;let c=q(b.sessionId);c&&f.set(a,c)}}catch{}let h=c.filter(a=>!f.has(a));if(h.length>0)for(let b of h){let c=w(b);if(!c)continue;let d=c.sessionId,h=g().join(a,c.agentId,"sessions");try{if(!e().existsSync(h))continue;let a=`${d}.jsonl`;(e().existsSync(g().join(h,a))||e().readdirSync(h).some(b=>b.startsWith(`${a}.deleted.`)))&&f.set(b,d)}catch{}}return f}(f,h,Array.from(l));return j.metaSessionIdMap.forEach((a,b)=>{r.has(b)||r.set(b,a)}),{sessionKeys:Array.from(l),sessionToAgent:n,sessionIdMap:r}}function y(a,b,c){let d=g().join(a,b,"sessions");if(!e().existsSync(d))return[];let f=`${c}.jsonl.deleted.`;try{return e().readdirSync(d).filter(a=>a.startsWith(f)).sort((a,b)=>b.localeCompare(a)).map(a=>g().join(d,a))}catch{return[]}}function z(a,b,c){let d=g().join(a,b,"sessions");if(!e().existsSync(d))return null;let f=g().join(d,`${c}.jsonl`);if(e().existsSync(f))return{filePath:f,source:"active"};let h=y(a,b,c);return 0===h.length?null:{filePath:h[0],source:"deleted"}}function A(a){let b=a.timestamp;if("number"==typeof b&&Number.isFinite(b))return b;if("string"==typeof b){let a=Number(b);if(Number.isFinite(a))return a;let c=Date.parse(b);if(Number.isFinite(c))return c}let c=a.ts;if("string"==typeof c){let a=Date.parse(c);if(Number.isFinite(a))return a}return null}function B(a){let b=a?.zigrixHome||process.env.ZIGRIX_HOME||g().join(i().homedir(),".zigrix"),c=function(a){let b=g().join(a,"zigrix.config.json");try{if(!e().existsSync(b))return null;let a=e().readFileSync(b,"utf-8"),c=JSON.parse(a);if(!p(c))return null;let d=c.openclaw;if(!p(d))return null;return{home:"string"==typeof d.home&&d.home?d.home:"",binPath:"string"==typeof d.binPath&&d.binPath?d.binPath:null,gatewayUrl:"string"==typeof d.gatewayUrl&&d.gatewayUrl?d.gatewayUrl:k}}catch{return null}}(b),d=c?.home||process.env.OPENCLAW_HOME||g().join(i().homedir(),".openclaw"),f=a?.agentsStateDir||process.env.OPENCLAW_AGENTS_DIR||g().join(d,"agents"),h={zigrixHome:b,indexPath:g().join(b,"index.json"),eventsPath:g().join(b,"tasks.jsonl"),specsDir:g().join(b,"tasks"),evidenceDir:g().join(b,"evidence"),agentsStateDir:f,subagentRunsPath:a?.subagentRunsPath||process.env.OPENCLAW_SUBAGENT_RUNS_PATH||j,openclawConfigPath:a?.openclawConfigPath||process.env.OPENCLAW_CONFIG_PATH||g().join(d,"openclaw.json"),openclawBinPath:c?.binPath||null},B=a?.gatewayUrl||process.env.OPENCLAW_GATEWAY_URL||c?.gatewayUrl||k,C=a?.invokeTool||function(a){let b=a?.gatewayUrl||process.env.OPENCLAW_GATEWAY_URL||k,c=a?.gatewayToken||process.env.OPENCLAW_GATEWAY_TOKEN||null,d=a?.fetchImpl||fetch,e=`${b.replace(/\/+$/,"")}/tools/invoke`;return async(a,b)=>{let f={"Content-Type":"application/json"};c&&(f.Authorization=`Bearer ${c}`);let g=await d(e,{method:"POST",headers:f,body:JSON.stringify({tool:a,args:b})}),h=await g.text(),i=null;if(h.trim())try{i=JSON.parse(h)}catch{i=null}if(!g.ok){let a=p(i)&&p(i.error)&&"string"==typeof i.error.message?i.error.message:h.slice(0,500)||`HTTP ${g.status}`;throw Error(`gateway_invoke_failed(${g.status}): ${a}`)}if(!p(i)||!0!==i.ok)throw Error("gateway_invoke_failed: invalid_response");return i.result}}({gatewayUrl:B,gatewayToken:a?.gatewayToken,fetchImpl:a?.fetchImpl}),D=function(a,b){let c=Number.parseInt(String(a??""),10);return!Number.isFinite(c)||c<=0?200:c}(a?.sessionsHistoryLimit??process.env.SESSIONS_HISTORY_LIMIT,0);function E(){let a=m(g().join(b,"zigrix.config.json"),{}).agents;return Array.isArray(a)?a.map(a=>"string"==typeof a?a:p(a)?q(a.id)||q(a.agentId):null).filter(a=>!!a):p(a)?p(a.registry)?Object.keys(a.registry):Object.keys(a):[]}async function F(a){var b;let c=n(h.eventsPath),d=E(),e=x(a,c,h.specsDir,h.evidenceDir,h.agentsStateDir,d),f=e.sessionKeys,g=o(c).filter(b=>b.taskId===a).slice(0,50).map(a=>({ts:a.ts||null,event:a.event||a.action||null,status:a.status||null,actor:a.actor||a.agentId||null,targetAgent:q(a.targetAgent)||q(a.agentId),runId:q(a.runId),sessionKey:q(a.sessionKey)})),i=await Promise.all(f.map(async a=>{let b=null;try{let c=await C("sessions_history",{sessionKey:a,limit:D,includeTools:!0}),d=p(c)?c:{},e=p(d.details)?d.details:{},f=(Array.isArray(e.messages)?e.messages:Array.isArray(d.messages)?d.messages:[]).filter(a=>p(a));if(f.length>0||!w(a))return{sessionKey:a,ok:!0,messageCount:f.length,error:null,messages:f,gatewayError:b}}catch(a){b=String(a?.message||a)}try{let c=w(a);if(!c)return{sessionKey:a,ok:!b,messageCount:0,error:b,messages:[],gatewayError:b};let d=e.sessionIdMap.get(a)??c.sessionId,f=z(h.agentsStateDir,c.agentId,d);if(f||d===c.sessionId||(f=z(h.agentsStateDir,c.agentId,c.sessionId)),!f)return{sessionKey:a,ok:!b,messageCount:0,error:b,messages:[],gatewayError:b};let g=function(a){let b=l(a);if(!b.trim())return[];let c=[];for(let a of b.split(/\r?\n/))if(a.trim())try{let b=JSON.parse(a);if(!p(b)||"message"!==b.type)continue;let d=p(b.message)?b.message:b;c.push({id:q(b.id),parentId:q(b.parentId),role:q(d.role),content:d.content,timestamp:A(b)??q(b.ts)})}catch{}return c}(f.filePath);return{sessionKey:a,ok:!0,messageCount:g.length,error:null,messages:g,gatewayError:b}}catch(c){return{sessionKey:a,ok:!1,messageCount:0,error:b||String(c?.message||c),messages:[],gatewayError:b}}})),j=(b=e.sessionToAgent,i.flatMap(({sessionKey:a,messages:c},d)=>c.filter(b=>!function(a,b){var c;if("pro-zig"!==v(a))return!1;let d=q(b.role),e=("string"==typeof(c=b.content)?c:!Array.isArray(c)?"":c.map(a=>a&&"object"==typeof a?"string"==typeof a.text?a.text:"string"==typeof a.thinking?a.thinking:"":"").filter(Boolean).join("\n")).trim();if(!e)return!1;if("assistant"===d&&"NO_REPLY"===e)return!0;if("user"!==d)return!1;let f=e.toLowerCase();return f.includes("internal task completion event")&&f.includes("source: subagent")}(a,b)).map((c,e)=>{let f=A(c),g=f?new Date(f).toISOString():q(c.ts),h=b.get(a)||v(a)||"unknown";return{__sortTs:f??Number.MAX_SAFE_INTEGER,__sessionIdx:d,__sortIdx:e,row:{sessionKey:a,agentId:h,agentName:h,role:q(c.role),timestamp:f,ts:g,toolName:q(c.toolName),toolCallId:q(c.toolCallId),isError:!!c.isError,content:c.content,raw:c}}})).sort((a,b)=>{let c=a.__sortTs-b.__sortTs;if(0!==c)return c;let d=a.__sessionIdx-b.__sessionIdx;return 0!==d?d:a.__sortIdx-b.__sortIdx}).map(a=>a.row)),k=i.map(a=>({sessionKey:a.sessionKey,ok:a.ok,messageCount:a.messageCount,error:a.error})),m=i.some(a=>a.ok)||i.every(a=>null===a.gatewayError);return{generatedAt:new Date().toISOString(),taskId:a,sessionKeys:f,stream:j,recentEvents:g,sessions:k,openclawAvailable:m}}async function G(a){let b=n(h.eventsPath),c=r(b.filter(b=>String(b.taskId||"")===a));if("IN_PROGRESS"!==c&&"OPEN"!==c)throw function(a,b){let c=Error(b);return c.code=a,c}("task_not_cancellable",`task_not_cancellable(taskId=${a}, status=${String(c||"unknown")})`);let d=E(),{sessionKeys:f}=x(a,b,h.specsDir,h.evidenceDir,h.agentsStateDir,d),i=[];for(let a of f){try{await C("subagents",{action:"kill",target:a})}catch{}i.push(a)}let j={ts:new Date().toISOString(),event:"blocked",taskId:a,phase:"execution",status:"BLOCKED",actor:"manual",payload:{reason:"user_cancelled",killedSessions:i}};e().appendFileSync(h.eventsPath,JSON.stringify(j)+"\n","utf-8");let k=g().join(h.specsDir,`${a}.meta.json`),l=m(k,{});return Object.keys(l).length>0&&(l.status="BLOCKED",l.updatedAt=new Date().toISOString(),e().writeFileSync(k,JSON.stringify(l,null,2)+"\n","utf-8")),{ok:!0,killedSessions:i}}return{paths:h,loadOverview:function(){let a=function(a={}){let b=p(a.statusBuckets)?a.statusBuckets:{},c={OPEN:[],IN_PROGRESS:[],BLOCKED:[],DONE_PENDING_REPORT:[],REPORTED:[]};for(let[a,d]of Object.entries(b))c[a]=Array.isArray(d)?d:[];return{updatedAt:"string"==typeof a.updatedAt?a.updatedAt:null,statusBuckets:c,activeTasks:p(a.activeTasks)?a.activeTasks:{},recentEvents:Array.isArray(a.recentEvents)?a.recentEvents:[]}}(m(h.indexPath,{})),b=n(h.eventsPath);E();let c=Object.fromEntries(Object.entries(a.statusBuckets).map(([a,b])=>[a,Array.isArray(b)?b.length:0])),d=Object.entries(a.activeTasks).map(([a,c])=>{let d=p(c)?c:{},e=u(a,b,h.specsDir);return{taskId:a,status:"string"==typeof d.status?d.status:e.status,updatedAt:"string"==typeof d.updatedAt?d.updatedAt:e.updatedAt,scale:e.scale,title:e.title}}),e=o(b).slice(0,30).map(a=>({ts:a.ts,event:a.event||a.action,taskId:a.taskId,status:a.status,actor:a.actor||a.agentId,agentId:a.agentId,targetAgent:a.targetAgent||a.agentId,title:a.title})),f=function(a,b){let c=new Map;for(let d of o(a)){let e=d.taskId;if(!e||c.has(e))continue;let f=a.filter(a=>a.taskId===e),g=t(e,f,b);c.set(e,{taskId:e,ts:d.ts||null,event:d.event||d.action||null,status:s(e,a,b),scale:g.scale||null,title:g.title||null,actor:d.actor||d.agentId||null})}return Array.from(c.values())}(b,h.specsDir);return{generatedAt:new Date().toISOString(),...{},updatedAt:a.updatedAt,bucketCounts:c,statusBuckets:a.statusBuckets,activeTasks:d.sort((a,b)=>String(b.updatedAt||"").localeCompare(String(a.updatedAt||""))),recentEvents:e,taskHistory:f,openclawAvailable:!0}},loadTaskDetail:function(a){let b=u(a,n(h.eventsPath),h.specsDir),c=function(a,b){let c=g().join(b,`${a}.md`),d=l(c),e=m(g().join(b,`${a}.meta.json`),{}),f=d?d.split(/\r?\n/):[],h={};for(let[a,b]of[["taskId",e.taskId],["title",e.title],["scale",e.scale],["requestedBy",e.requestedBy],["createdAt",e.createdAt],["projectKey",e.projectKey],["projectDir",e.projectDir],["projectPath",e.projectPath]]){let c=q(b);c&&(h[a]=c)}let i=0;for(let a of f){let b=a.match(/^(`{3,})/);if(b){0===i?i=b[1].length:b[1].length>=i&&(i=0);continue}if(i>0)continue;let c=a.match(/^-\s+([^:]+):\s*(.+)$/);if(!c)continue;let d=c[1].trim();d in h||(h[d]=c[2].trim())}let j=f.find(a=>a.trim().startsWith("- Next Action:")),k=f.find(a=>a.trim().startsWith("- Resume Hint")),n=q(e.nextAction),o=q(e.resumeHint);return{exists:!!d||Object.keys(h).length>0||!!n||!!o,path:c,metadata:h,nextAction:n||(j?j.split(":").slice(1).join(":").trim():null),resumeHint:o||(k?k.split(":").slice(1).join(":").trim():null),preview:d?f.slice(0,80).join("\n"):void 0}}(a,h.specsDir),d=function(a,b){let c=g().join(b,`${a}.meta.json`),d=m(c,{});return{exists:e().existsSync(c),path:c,data:d}}(a,h.specsDir),f=function(a,b){let c=g().join(b,a);if(!e().existsSync(c))return{exists:!1,path:c,agents:[],merged:null};let d=e().readdirSync(c).filter(a=>a.endsWith(".json")),f=[],h=null;for(let a of d){let b=g().join(c,a),d=m(b,{});if("_merged.json"===a){h={...d,path:b};continue}f.push({file:a,path:b,agentId:"string"==typeof d.agentId?d.agentId:a.replace(/\.json$/,""),runId:"string"==typeof d.runId?d.runId:null,sessionKey:"string"==typeof d.sessionKey?d.sessionKey:null,sessionId:"string"==typeof d.sessionId?d.sessionId:null,ts:"string"==typeof d.ts?d.ts:null})}return{exists:!0,path:c,agents:f.sort((a,b)=>String(b.ts||"").localeCompare(String(a.ts||""))),merged:h}}(a,h.evidenceDir);return{generatedAt:new Date().toISOString(),task:b,spec:c,meta:d,evidence:f}},loadTaskConversation:F,cancelTask:G,getTaskSessionFilePaths:function(a){let b=n(h.eventsPath),c=E(),{sessionKeys:d,sessionIdMap:e}=x(a,b,h.specsDir,h.evidenceDir,h.agentsStateDir,c),f=new Set;for(let a of d){let b=w(a);if(b)for(let c of new Set([e.get(a),b.sessionId].filter(a=>!!a))){let a=g().join(h.agentsStateDir,b.agentId,"sessions",`${c}.jsonl`);for(let d of(f.add(a),y(h.agentsStateDir,b.agentId,c)))f.add(d)}}return Array.from(f)}}}},67360:(a,b,c)=>{c.d(b,{BE:()=>w,IX:()=>n,TI:()=>t,dV:()=>u,gV:()=>A,gw:()=>o,jw:()=>z,xC:()=>v});var d=c(73024),e=c.n(d),f=c(76760),g=c.n(f),h=c(48161),i=c.n(h),j=c(77598),k=c.n(j),l=c(74729),m=c.n(l);let n="zigrix_session",o=43200,p=new TextEncoder,q=new TextDecoder;function r(){return process.env.ZIGRIX_HOME||g().join(i().homedir(),".zigrix")}function s(){return g().join(r(),"dashboard.json")}function t(){let a=s();try{let b=e().readFileSync(a,"utf-8"),c=JSON.parse(b);if(!c||"object"!=typeof c||Array.isArray(c))return{admins:[],sessionSecret:"",corsOrigins:[],createdAt:""};return{admins:Array.isArray(c.admins)?c.admins:[],sessionSecret:"string"==typeof c.sessionSecret?c.sessionSecret:"",corsOrigins:Array.isArray(c.corsOrigins)?c.corsOrigins:[],createdAt:"string"==typeof c.createdAt?c.createdAt:""}}catch{return{admins:[],sessionSecret:"",corsOrigins:[],createdAt:""}}}function u(){return 0===t().admins.length}async function v(a,b){let c={admins:[{username:a,passwordHash:await m().hash(b,12)}],sessionSecret:k().randomBytes(64).toString("hex"),corsOrigins:["http://localhost:3000"],createdAt:new Date().toISOString()},d=s(),f=r();e().existsSync(f)||e().mkdirSync(f,{recursive:!0}),e().writeFileSync(d,JSON.stringify(c,null,2),{encoding:"utf-8",mode:384});try{e().chmodSync(d,384)}catch{}}async function w(a,b){let c=t().admins.find(b=>b.username===a);if(!c)return await m().hash(b,12),!1;if(!await m().compare(b,c.passwordHash))return!1;let d=p.encode(a),e=p.encode(c.username);return d.length===e.length&&k().timingSafeEqual(d,e)}function x(a){return Buffer.from(a).toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function y(a,b){let c=await k().subtle.importKey("raw",p.encode(b),{name:"HMAC",hash:"SHA-256"},!1,["sign"]);return x(new Uint8Array(await k().subtle.sign("HMAC",c,p.encode(a))))}async function z(a){let b=t().sessionSecret;if(!b)throw Error("Session secret not configured. Run setup first.");let c=Math.floor(Date.now()/1e3),d=x(p.encode(JSON.stringify({sub:a,iat:c,exp:c+o}))),e=await y(d,b);return`${d}.${e}`}async function A(a){let b;if(!a)return null;let c=a.split(".");if(2!==c.length)return null;let[d,e]=c;if(!d||!e)return null;let f=t().sessionSecret;if(!f||!function(a,b){if(a.length!==b.length)return!1;let c=p.encode(a),d=p.encode(b);return k().timingSafeEqual(c,d)}(await y(d,f),e))return null;try{let a=q.decode(function(a){let b=a.replace(/-/g,"+").replace(/_/g,"/"),c=b.padEnd(4*Math.ceil(b.length/4),"=");return new Uint8Array(Buffer.from(c,"base64"))}(d));b=JSON.parse(a)}catch{return null}if("number"!=typeof b.exp||"number"!=typeof b.iat)return null;let g=Math.floor(Date.now()/1e3);return b.exp<=g||b.iat>g+60?null:{username:"string"==typeof b.sub?b.sub:"",issuedAt:b.iat,expiresAt:b.exp}}}};
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
"/api/overview": {},
|
|
5
5
|
"/api/auth/logout": {},
|
|
6
6
|
"/api/auth/session": {},
|
|
7
|
-
"/api/auth/
|
|
7
|
+
"/api/auth/login": {},
|
|
8
8
|
"/api/tasks/[taskId]/conversation": {},
|
|
9
9
|
"/api/tasks/[taskId]/cancel": {},
|
|
10
|
-
"/api/auth/login": {},
|
|
11
10
|
"/api/tasks/[taskId]": {},
|
|
11
|
+
"/api/auth/setup": {},
|
|
12
12
|
"/api/stream": {},
|
|
13
13
|
"/_middleware": {
|
|
14
14
|
"runtime": "nodejs",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--Dy6qPMgiP2OP_KkqvjDtM--><html lang="ko"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/9f7ffdac282b0450.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-1c485544eee88ef7.js"/><script src="/_next/static/chunks/4bd1b696-c023c6e3521b1417.js" async=""></script><script src="/_next/static/chunks/255-ebd51be49873d76c.js" async=""></script><script src="/_next/static/chunks/main-app-458501fc143f8dcb.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Zigrix Dashboard</title><meta name="description" content="Zigrix task orchestration dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-1c485544eee88ef7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[4431,[],\"OutletBoundary\"]\n6:I[5278,[],\"AsyncMetadataOutlet\"]\n8:I[4431,[],\"ViewportBoundary\"]\na:I[4431,[],\"MetadataBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[7150,[],\"\"]\n:HL[\"/_next/static/css/9f7ffdac282b0450.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Dy6qPMgiP2OP-KkqvjDtM\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9f7ffdac282b0450.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ko\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$L5\",[\"$\",\"$L6\",null,{\"promise\":\"$@7\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],null],[\"$\",\"$La\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$b\",null,{\"fallback\":null,\"children\":\"$Lc\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$d\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n5:null\n"])</script><script>self.__next_f.push([1,"7:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Zigrix Dashboard\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Zigrix task orchestration dashboard\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"c:\"$7:metadata\"\n"])</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-1c485544eee88ef7.js" defer=""></script><script src="/_next/static/chunks/framework-de98b93a850cfc71.js" defer=""></script><script src="/_next/static/chunks/main-cac4989ed66738c4.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7d307437aca18ad4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js" defer=""></script><script src="/_next/static/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-1c485544eee88ef7.js" defer=""></script><script src="/_next/static/chunks/framework-de98b93a850cfc71.js" defer=""></script><script src="/_next/static/chunks/main-cac4989ed66738c4.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7d307437aca18ad4.js" defer=""></script><script src="/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js" defer=""></script><script src="/_next/static/Dy6qPMgiP2OP-KkqvjDtM/_buildManifest.js" defer=""></script><script src="/_next/static/Dy6qPMgiP2OP-KkqvjDtM/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"Dy6qPMgiP2OP-KkqvjDtM","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
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,9843))},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"}},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"}},9843:(e,t,a)=>{"use strict";a.d(t,{DashboardClient:()=>R});var s=a(5155),n=a(2115),l=a(109),i=a.n(l);let r={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=r[a]||{label:t||"알 수 없음",icon:"⚪"};return(0,s.jsxs)("span",{className:"".concat(i().badge," ").concat(i()["status_".concat(a)]||i().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,[i,r]=(0,n.useState)("ALL"),[o,d]=(0,n.useState)(""),[u,m]=(0,n.useState)("newest"),[v,g]=(0,n.useState)(1),k=(0,n.useMemo)(()=>{let e=o.trim().toLowerCase();return[...t.filter(t=>("ALL"===i||(t.status||"")===i)&&(!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,i]),N=Math.max(1,Math.ceil(k.length/12)),b=Math.min(v,N),j=k.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(i===e?p().tabActive:""),onClick:()=>{r(e),g(1)},children:e},e))}),(0,s.jsx)("input",{className:p().input,placeholder:"taskId / title / actor 검색",value:o,onChange:e=>{d(e.target.value),g(1)}}),(0,s.jsxs)("select",{className:p().select,value:u,onChange:e=>{m(e.target.value),g(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:()=>g(e=>Math.max(1,e-1)),children:"이전"}),(0,s.jsxs)("span",{children:[b," / ",N]}),(0,s.jsx)("button",{type:"button",disabled:b>=N,onClick:()=>g(e=>Math.min(N,e+1)),children:"다음"})]})]})}var g=a(856),k=a(6583),N=a.n(k);function b(e){var t,a;let{detail:l,onCancelTask:i,cancelling:r}=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)),k=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:()=>i(l.task.taskId),disabled:r,children:r?"취소 중...":"태스크 취소"}),(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,i=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(i,"%")}})})]},e.unitId||"".concat(e.title||"unit","-").concat(t))})})]}),(0,s.jsxs)("section",{className:N().section,children:[(0,s.jsx)("h4",{children:"Evidence"}),0===k.length?(0,s.jsx)("p",{className:N().muted,children:"증적 제출 정보가 없습니다."}):(0,s.jsx)("ul",{className:N().evidenceList,children:k.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)(g.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 w=a(594),E=a.n(w);function C(e){let{conversation:t}=e,[a,l]=(0,n.useState)(!1),i=(0,n.useRef)(null);(0,n.useEffect)(()=>{let e=i.current;e&&e.scrollHeight-e.scrollTop-e.clientHeight<200&&(e.scrollTop=e.scrollHeight)},[null==t?void 0:t.stream.length]);let r=(0,n.useMemo)(()=>(null==t?void 0:t.stream)||[],[t]);return t?t.openclawAvailable?(0,s.jsxs)("div",{className:E().wrap,children:[(0,s.jsxs)("label",{className:E().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:i,className:E().list,children:r.map((e,t)=>{var n,l;let i=(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)}]),r=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:E().message,children:[(0,s.jsxs)("header",{className:E().header,children:[(0,s.jsx)("span",{className:E().agent,style:{backgroundColor:r},children:e.agentName||e.agentId}),(0,s.jsx)("span",{className:E().meta,children:e.role||"unknown"}),(0,s.jsx)("span",{className:E().meta,children:e.ts?new Date(e.ts).toLocaleTimeString("ko-KR"):"-"})]}),(0,s.jsx)("div",{className:E().body,children:i.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:E().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:E().toolBox,children:[(0,s.jsxs)("span",{className:E().toolName,children:[e.type,": ",e.toolName]}),(0,s.jsx)("pre",{children:e.text})]},t):(0,s.jsx)("div",{className:E().markdown,children:(0,s.jsx)(g.oz,{children:e.text||""})},t))})]},"".concat(e.sessionKey,"-").concat(e.timestamp||t))})})]}):(0,s.jsx)("div",{className:E().notice,children:"OpenClaw 연동 필요"}):(0,s.jsx)("div",{className:E().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:i,initialSelectedTaskId:r}=e,[c,o]=(0,n.useState)(a),[d,u]=(0,n.useState)(r),[_,h]=(0,n.useState)(l),[m,p]=(0,n.useState)(i),[x,g]=(0,n.useState)("detail"),[k,N]=(0,n.useState)("connecting"),[j,T]=(0,n.useState)(!1),[w,E]=(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)(()=>(function(e){let t=new Map(e.activeTasks.map(e=>[e.taskId,e])),a=new Map(e.taskHistory.map(e=>[e.taskId,e]));return Array.from(new Set([...e.taskHistory.map(e=>e.taskId),...e.activeTasks.map(e=>e.taskId)])).map(e=>{let s=a.get(e),n=t.get(e);return{taskId:e,status:(null==s?void 0:s.status)||(null==n?void 0:n.status)||null,title:(null==s?void 0:s.title)||(null==n?void 0:n.title)||null,scale:(null==s?void 0:s.scale)||(null==n?void 0:n.scale)||null,actor:(null==s?void 0:s.actor)||null,updatedAt:(null==s?void 0:s.ts)||(null==n?void 0:n.updatedAt)||null}})})(c),[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),E(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){E(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),E(null),await I("/api/tasks/".concat(encodeURIComponent(e),"/cancel"),{method:"POST"}),await U()}catch(e){E(e.message||"태스크 취소 실패")}finally{R(!1)}},[U]);return(0,n.useEffect)(()=>{d&&M(d).catch(e=>{E(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(k)])}),(0,s.jsx)("span",{children:k})]}),(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))}),w?(0,s.jsx)("p",{className:D().error,children:w}):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:()=>g("detail"),children:"태스크 상세"}),(0,s.jsx)("button",{type:"button",className:"events"===x?D().tabActive:"",onClick:()=>g("events"),children:"이벤트 로그"}),(0,s.jsx)("button",{type:"button",className:"conversation"===x?D().tabActive:"",onClick:()=>g("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})]})]})]})]})}}},e=>{e.O(0,[963,856,441,255,358],()=>e(e.s=6297)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.StatusBadge_badge__M4ZLM{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;border:1px solid var(--color-border)}.StatusBadge_status_OPEN__0Pm_x{color:var(--status-open);border-color:color-mix(in srgb,var(--status-open) 45%,var(--color-border));background:color-mix(in srgb,var(--status-open) 16%,transparent)}.StatusBadge_status_IN_PROGRESS__JhYac{color:var(--status-in-progress);border-color:color-mix(in srgb,var(--status-in-progress) 45%,var(--color-border));background:color-mix(in srgb,var(--status-in-progress) 16%,transparent)}.StatusBadge_status_BLOCKED__8FFag{color:var(--status-blocked);border-color:color-mix(in srgb,var(--status-blocked) 45%,var(--color-border));background:color-mix(in srgb,var(--status-blocked) 16%,transparent)}.StatusBadge_status_DONE_PENDING_REPORT__yVdnt{color:var(--status-done-pending-report);border-color:color-mix(in srgb,var(--status-done-pending-report) 45%,var(--color-border));background:color-mix(in srgb,var(--status-done-pending-report) 16%,transparent)}.StatusBadge_status_REPORTED__0p67U{color:var(--status-reported);border-color:color-mix(in srgb,var(--status-reported) 45%,var(--color-border));background:color-mix(in srgb,var(--status-reported) 16%,transparent)}.StatusBadge_status_UNKNOWN__VkyXw{color:var(--color-text-muted);background:var(--color-bg-card)}.ScaleBadge_badge__Ufu_B{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--color-border);padding:2px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.ScaleBadge_scale_simple__MbInQ{color:#9ca3af}.ScaleBadge_scale_normal__vPQOk{color:#60a5fa}.ScaleBadge_scale_risky__pWko0{color:#f59e0b}.ScaleBadge_scale_large__aXng2{color:#ef4444}.ScaleBadge_scale_unknown__gCQWs{color:var(--color-text-muted)}.TaskList_wrap__JJmVD{display:flex;flex-direction:column;gap:12px;min-height:0}.TaskList_filters__P_eut{display:flex;flex-direction:column;gap:8px}.TaskList_tabs__MrUoG{display:flex;flex-wrap:wrap;gap:6px}.TaskList_tab__PJ3u6{border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-muted);border-radius:999px;padding:4px 10px;font-size:11px;cursor:pointer}.TaskList_tabActive__hqEIw{color:var(--color-text);border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 18%,transparent)}.TaskList_input__069mt,.TaskList_select__07ygx{border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text);border-radius:8px;padding:8px 10px;font-size:13px}.TaskList_list__zaHPI{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:0}.TaskList_card__UWMn4{width:100%;text-align:left;border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:10px;padding:10px;color:var(--color-text);cursor:pointer}.TaskList_cardSelected__e4ZHd{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,transparent)}.TaskList_cardTop__ogfsJ{display:flex;justify-content:space-between;align-items:center;gap:8px}.TaskList_taskId__RiYub{font-size:12px;color:var(--color-text-muted)}.TaskList_title__BjaLg{margin:8px 0;font-weight:600;line-height:1.4}.TaskList_metaRow__zxzxl{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted)}.TaskList_dot__zkHSK{opacity:.7}.TaskList_pagination__3aWZh{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}.TaskList_pagination__3aWZh button{border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-card);color:var(--color-text);padding:4px 10px}.TaskDetailTab_wrap__dFSwq{display:flex;flex-direction:column;gap:14px}.TaskDetailTab_empty__wxQD4{color:var(--color-text-muted)}.TaskDetailTab_header___564C{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.TaskDetailTab_header___564C h3{margin:0 0 6px}.TaskDetailTab_badges__xm9EG{display:flex;gap:8px;flex-wrap:wrap}.TaskDetailTab_metaRow__OSbDu{display:flex;gap:12px;font-size:13px;color:var(--color-text-muted);flex-wrap:wrap}.TaskDetailTab_cancelButton__ReU0K{align-self:flex-start;border:1px solid color-mix(in srgb,var(--status-blocked) 45%,var(--color-border));color:#fff;background:color-mix(in srgb,var(--status-blocked) 35%,#111);border-radius:8px;padding:6px 12px;cursor:pointer}.TaskDetailTab_cancelButton__ReU0K:disabled{opacity:.6;cursor:not-allowed}.TaskDetailTab_section__4dUxv{border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-card);padding:12px}.TaskDetailTab_section__4dUxv h4{margin:0 0 10px}.TaskDetailTab_muted__VWQMQ{color:var(--color-text-muted);font-size:13px}.TaskDetailTab_units__XIBtG{display:flex;flex-direction:column;gap:10px}.TaskDetailTab_unitCard__jY43J{border:1px solid var(--color-border);border-radius:8px;background:#0d0d0d;padding:10px}.TaskDetailTab_unitMeta__LnHSZ,.TaskDetailTab_unitTop__yZ5FK{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.TaskDetailTab_unitMeta__LnHSZ{font-size:12px;color:var(--color-text-muted);margin-top:6px}.TaskDetailTab_progressTrack__VlE22{margin-top:8px;width:100%;height:8px;border-radius:999px;background:#1f1f1f;overflow:hidden}.TaskDetailTab_progressFill__JVS7w{height:100%;background:linear-gradient(90deg,var(--status-open),var(--status-reported))}.TaskDetailTab_evidenceList__xGfBZ{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.TaskDetailTab_evidenceList__xGfBZ li{display:flex;justify-content:space-between;padding:6px 10px;font-size:13px}.TaskDetailTab_evidenceList__xGfBZ li,.TaskDetailTab_toggle__ujWwI{border:1px solid var(--color-border);border-radius:8px;background:#0d0d0d}.TaskDetailTab_toggle__ujWwI{color:var(--color-text);padding:5px 10px;margin-bottom:8px}.TaskDetailTab_markdown__eoDyT{font-size:14px;line-height:1.6}.EventLogTab_wrap__x2X_J{height:100%;overflow-y:auto}.EventLogTab_empty__LRJDo{color:var(--color-text-muted)}.EventLogTab_list__nm_mD{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.EventLogTab_item__VL0dt{border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-card);padding:8px 10px;font-size:13px;line-height:1.45;word-break:break-word}.EventLogTab_ts__vQ9nA{color:var(--color-text-muted)}.EventLogTab_name__4A39l{color:var(--color-accent)}.ConversationTab_wrap__1QSeD{height:100%;display:flex;flex-direction:column;gap:10px}.ConversationTab_toggle__3CZ5X{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted)}.ConversationTab_list__3x9W9{overflow-y:auto;display:flex;flex-direction:column;gap:10px;min-height:0}.ConversationTab_message__ATEZY{border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-card);padding:8px}.ConversationTab_header__JCM4X{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ConversationTab_agent__y3KdF{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:11px;color:#fff;font-weight:700}.ConversationTab_meta__dMgwn{font-size:12px;color:var(--color-text-muted)}.ConversationTab_body__uCFH9{display:flex;flex-direction:column;gap:8px}.ConversationTab_markdown__A8qFO{font-size:14px;line-height:1.6}.ConversationTab_markdown__A8qFO p{margin:.4em 0}.ConversationTab_thinking__9ksh2,.ConversationTab_toolBox__z6pL2{border:1px solid var(--color-border);border-radius:8px;background:#0d0d0d;padding:8px}.ConversationTab_thinking__9ksh2 pre,.ConversationTab_toolBox__z6pL2 pre{margin:8px 0 0;white-space:pre-wrap;word-break:break-word;font-size:12px}.ConversationTab_toolName__SLqEU{font-size:12px;color:var(--color-accent)}.ConversationTab_empty__aB__j,.ConversationTab_notice__wCw5J{color:var(--color-text-muted)}.DashboardClient_main__eZK1S{max-width:1440px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:12px}.DashboardClient_header__21U6H{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-card);padding:10px 14px}.DashboardClient_brand__1Ljqy{font-size:20px;font-weight:800}.DashboardClient_headerRight__EinuX{display:flex;align-items:center;gap:8px}.DashboardClient_headerRight__EinuX button{border:1px solid var(--color-border);background:#0d0d0d;color:var(--color-text);border-radius:8px;padding:6px 10px;cursor:pointer}.DashboardClient_sseWrap__dCBYi{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted);margin-right:4px}.DashboardClient_dot__NxKpZ{width:10px;height:10px;border-radius:999px}.DashboardClient_dot_connected__3UnYe{background:var(--status-reported)}.DashboardClient_dot_disconnected__0IqOj{background:var(--status-blocked)}.DashboardClient_dot_connecting__NNLev{background:var(--status-in-progress)}.DashboardClient_statusBar__eP3FN{display:flex;flex-wrap:wrap;gap:8px}.DashboardClient_statusItem__Yi9TP{border:1px solid var(--color-border);border-radius:999px;padding:3px 10px;font-size:12px;background:var(--color-bg-card)}.DashboardClient_error__Tv__n{margin:0;color:var(--status-blocked)}.DashboardClient_layout__s4BTz{display:grid;grid-template-columns:360px 1fr;grid-gap:12px;gap:12px;min-height:calc(100vh - 180px)}.DashboardClient_left__WqNyg,.DashboardClient_right__EWclx{border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-card);min-height:0}.DashboardClient_left__WqNyg{padding:10px;overflow:hidden}.DashboardClient_right__EWclx{display:flex;flex-direction:column;overflow:hidden}.DashboardClient_tabs__tx3BS{display:flex;border-bottom:1px solid var(--color-border)}.DashboardClient_tabs__tx3BS button{border:0;border-right:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);padding:10px 14px;cursor:pointer}.DashboardClient_tabActive__5oF9r{color:var(--color-text);background:color-mix(in srgb,var(--color-accent) 16%,transparent)!important}.DashboardClient_panel__bWB7I{flex:1 1;min-height:0;overflow:auto;padding:12px}@media (max-width:980px){.DashboardClient_layout__s4BTz{grid-template-columns:1fr;min-height:auto}.DashboardClient_left__WqNyg{max-height:420px}}
|
|
1
|
+
.StatusBadge_badge__M4ZLM{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;border:1px solid var(--color-border)}.StatusBadge_status_OPEN__0Pm_x{color:var(--status-open);border-color:color-mix(in srgb,var(--status-open) 45%,var(--color-border));background:color-mix(in srgb,var(--status-open) 16%,transparent)}.StatusBadge_status_IN_PROGRESS__JhYac{color:var(--status-in-progress);border-color:color-mix(in srgb,var(--status-in-progress) 45%,var(--color-border));background:color-mix(in srgb,var(--status-in-progress) 16%,transparent)}.StatusBadge_status_BLOCKED__8FFag{color:var(--status-blocked);border-color:color-mix(in srgb,var(--status-blocked) 45%,var(--color-border));background:color-mix(in srgb,var(--status-blocked) 16%,transparent)}.StatusBadge_status_DONE_PENDING_REPORT__yVdnt{color:var(--status-done-pending-report);border-color:color-mix(in srgb,var(--status-done-pending-report) 45%,var(--color-border));background:color-mix(in srgb,var(--status-done-pending-report) 16%,transparent)}.StatusBadge_status_REPORTED__0p67U{color:var(--status-reported);border-color:color-mix(in srgb,var(--status-reported) 45%,var(--color-border));background:color-mix(in srgb,var(--status-reported) 16%,transparent)}.StatusBadge_status_UNKNOWN__VkyXw{color:var(--color-text-muted);background:var(--color-bg-card)}.ScaleBadge_badge__Ufu_B{display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--color-border);padding:2px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.ScaleBadge_scale_simple__MbInQ{color:#9ca3af}.ScaleBadge_scale_normal__vPQOk{color:#60a5fa}.ScaleBadge_scale_risky__pWko0{color:#f59e0b}.ScaleBadge_scale_large__aXng2{color:#ef4444}.ScaleBadge_scale_unknown__gCQWs{color:var(--color-text-muted)}.TaskList_wrap__JJmVD{display:flex;flex-direction:column;gap:12px;min-height:0}.TaskList_filters__P_eut{display:flex;flex-direction:column;gap:8px}.TaskList_tabs__MrUoG{display:flex;flex-wrap:wrap;gap:6px}.TaskList_tab__PJ3u6{border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text-muted);border-radius:999px;padding:4px 10px;font-size:11px;cursor:pointer}.TaskList_tabActive__hqEIw{color:var(--color-text);border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 18%,transparent)}.TaskList_input__069mt,.TaskList_select__07ygx{border:1px solid var(--color-border);background:var(--color-bg-card);color:var(--color-text);border-radius:8px;padding:8px 10px;font-size:13px}.TaskList_list__zaHPI{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:0}.TaskList_card__UWMn4{width:100%;text-align:left;border:1px solid var(--color-border);background:var(--color-bg-card);border-radius:10px;padding:10px;color:var(--color-text);cursor:pointer}.TaskList_cardSelected__e4ZHd{border-color:var(--color-accent);background:color-mix(in srgb,var(--color-accent) 14%,transparent)}.TaskList_cardTop__ogfsJ{display:flex;justify-content:space-between;align-items:center;gap:8px}.TaskList_taskId__RiYub{font-size:12px;color:var(--color-text-muted)}.TaskList_title__BjaLg{margin:8px 0;font-weight:600;line-height:1.4}.TaskList_metaRow__zxzxl{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted)}.TaskList_dot__zkHSK{opacity:.7}.TaskList_pagination__3aWZh{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}.TaskList_pagination__3aWZh button{border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-card);color:var(--color-text);padding:4px 10px}.TaskDetailTab_wrap__dFSwq{display:flex;flex-direction:column;gap:14px}.TaskDetailTab_empty__wxQD4{color:var(--color-text-muted)}.TaskDetailTab_header___564C{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.TaskDetailTab_header___564C h3{margin:0 0 6px}.TaskDetailTab_badges__xm9EG{display:flex;gap:8px;flex-wrap:wrap}.TaskDetailTab_metaRow__OSbDu{display:flex;gap:12px;font-size:13px;color:var(--color-text-muted);flex-wrap:wrap}.TaskDetailTab_cancelButton__ReU0K{align-self:flex-start;border:1px solid color-mix(in srgb,var(--status-blocked) 45%,var(--color-border));color:#fff;background:color-mix(in srgb,var(--status-blocked) 35%,#111);border-radius:8px;padding:6px 12px;cursor:pointer}.TaskDetailTab_cancelButton__ReU0K:disabled{opacity:.6;cursor:not-allowed}.TaskDetailTab_section__4dUxv{border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-card);padding:12px}.TaskDetailTab_section__4dUxv h4{margin:0 0 10px}.TaskDetailTab_muted__VWQMQ{color:var(--color-text-muted);font-size:13px}.TaskDetailTab_units__XIBtG{display:flex;flex-direction:column;gap:10px}.TaskDetailTab_unitCard__jY43J{border:1px solid var(--color-border);border-radius:8px;background:#0d0d0d;padding:10px}.TaskDetailTab_unitMeta__LnHSZ,.TaskDetailTab_unitTop__yZ5FK{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.TaskDetailTab_unitMeta__LnHSZ{font-size:12px;color:var(--color-text-muted);margin-top:6px}.TaskDetailTab_progressTrack__VlE22{margin-top:8px;width:100%;height:8px;border-radius:999px;background:#1f1f1f;overflow:hidden}.TaskDetailTab_progressFill__JVS7w{height:100%;background:linear-gradient(90deg,var(--status-open),var(--status-reported))}.TaskDetailTab_evidenceList__xGfBZ{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.TaskDetailTab_evidenceList__xGfBZ li{display:flex;justify-content:space-between;padding:6px 10px;font-size:13px}.TaskDetailTab_evidenceList__xGfBZ li,.TaskDetailTab_toggle__ujWwI{border:1px solid var(--color-border);border-radius:8px;background:#0d0d0d}.TaskDetailTab_toggle__ujWwI{color:var(--color-text);padding:5px 10px;margin-bottom:8px}.TaskDetailTab_markdown__eoDyT{font-size:14px;line-height:1.6}.EventLogTab_wrap__x2X_J{height:100%;overflow-y:auto}.EventLogTab_empty__LRJDo{color:var(--color-text-muted)}.EventLogTab_list__nm_mD{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.EventLogTab_item__VL0dt{border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-card);padding:8px 10px;font-size:13px;line-height:1.45;word-break:break-word}.EventLogTab_ts__vQ9nA{color:var(--color-text-muted)}.EventLogTab_name__4A39l{color:var(--color-accent)}.ConversationTab_wrap__1QSeD{height:100%;display:flex;flex-direction:column;gap:10px}.ConversationTab_toggle__3CZ5X{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted)}.ConversationTab_list__3x9W9{overflow-y:auto;display:flex;flex-direction:column;gap:10px;min-height:0}.ConversationTab_message__ATEZY{border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-card);padding:8px}.ConversationTab_header__JCM4X{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ConversationTab_agent__y3KdF{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:11px;color:#fff;font-weight:700}.ConversationTab_meta__dMgwn{font-size:12px;color:var(--color-text-muted)}.ConversationTab_body__uCFH9{display:flex;flex-direction:column;gap:8px}.ConversationTab_markdown__A8qFO{font-size:14px;line-height:1.6}.ConversationTab_markdown__A8qFO p{margin:.4em 0}.ConversationTab_thinking__9ksh2,.ConversationTab_toolBox__z6pL2{border:1px solid var(--color-border);border-radius:8px;background:#0d0d0d;padding:8px}.ConversationTab_thinking__9ksh2 pre,.ConversationTab_toolBox__z6pL2 pre{margin:8px 0 0;white-space:pre-wrap;word-break:break-word;font-size:12px}.ConversationTab_toolName__SLqEU{font-size:12px;color:var(--color-accent)}.ConversationTab_empty__aB__j,.ConversationTab_notice__wCw5J{color:var(--color-text-muted)}.DashboardClient_main__eZK1S{max-width:1440px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:12px}.DashboardClient_header__21U6H{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-card);padding:10px 14px}.DashboardClient_brand__1Ljqy{font-size:20px;font-weight:800}.DashboardClient_headerRight__EinuX{display:flex;align-items:center;gap:8px}.DashboardClient_headerRight__EinuX button{border:1px solid var(--color-border);background:#0d0d0d;color:var(--color-text);border-radius:8px;padding:6px 10px;cursor:pointer}.DashboardClient_sseWrap__dCBYi{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-muted);margin-right:4px}.DashboardClient_dot__NxKpZ{width:10px;height:10px;border-radius:999px}.DashboardClient_dot_connected__3UnYe{background:var(--status-reported)}.DashboardClient_dot_disconnected__0IqOj{background:var(--status-blocked)}.DashboardClient_dot_connecting__NNLev{background:var(--status-in-progress)}.DashboardClient_statusBar__eP3FN{display:flex;flex-wrap:wrap;gap:8px}.DashboardClient_statusItem__Yi9TP{border:1px solid var(--color-border);border-radius:999px;padding:3px 10px;font-size:12px;background:var(--color-bg-card)}.DashboardClient_error__Tv__n{margin:0;color:var(--status-blocked)}.DashboardClient_layout__s4BTz{display:grid;grid-template-columns:360px 1fr;grid-gap:12px;gap:12px;height:calc(100vh - 180px)}.DashboardClient_left__WqNyg,.DashboardClient_right__EWclx{border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-card);min-height:0}.DashboardClient_left__WqNyg{padding:10px;overflow-y:auto}.DashboardClient_right__EWclx{display:flex;flex-direction:column;overflow:hidden}.DashboardClient_tabs__tx3BS{display:flex;border-bottom:1px solid var(--color-border)}.DashboardClient_tabs__tx3BS button{border:0;border-right:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);padding:10px 14px;cursor:pointer}.DashboardClient_tabActive__5oF9r{color:var(--color-text);background:color-mix(in srgb,var(--color-accent) 16%,transparent)!important}.DashboardClient_panel__bWB7I{flex:1 1;min-height:0;overflow:auto;padding:12px}@media (max-width:980px){.DashboardClient_layout__s4BTz{grid-template-columns:1fr;height:auto;max-height:none}.DashboardClient_left__WqNyg{max-height:420px}}
|
package/package.json
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zigrix",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.16",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Multi-project parallel task orchestration CLI for agent-assisted development",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/owen-ever/zigrix.git"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/owen-ever/zigrix",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/owen-ever/zigrix/issues"
|
|
14
|
+
},
|
|
15
|
+
"author": "Chanho Jeon",
|
|
16
|
+
"keywords": [
|
|
17
|
+
"zigrix",
|
|
18
|
+
"cli",
|
|
19
|
+
"openclaw",
|
|
20
|
+
"multi-agent",
|
|
21
|
+
"agent-orchestration",
|
|
22
|
+
"task-orchestration",
|
|
23
|
+
"agent-matrix",
|
|
24
|
+
"task-matrix",
|
|
25
|
+
"workflow"
|
|
26
|
+
],
|
|
7
27
|
"bin": {
|
|
8
28
|
"zigrix": "./dist/index.js"
|
|
9
29
|
},
|
|
@@ -23,6 +43,7 @@
|
|
|
23
43
|
"prebuild": "npm run clean",
|
|
24
44
|
"prepack": "npm run build && npm run build:dashboard",
|
|
25
45
|
"publish:check": "npm run build && npm run build:dashboard && npm run test && npm run smoke && bash scripts/release-smoke.sh && npm pack --dry-run",
|
|
46
|
+
"release": "tsx scripts/release.ts",
|
|
26
47
|
"smoke": "node dist/index.js --version",
|
|
27
48
|
"pretest": "npm run build",
|
|
28
49
|
"test": "vitest run",
|