@turmind/halo 1.4.1 → 1.4.2
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/admin-out/404.html +1 -1
- package/admin-out/index.html +1 -1
- package/admin-out/index.txt +1 -1
- package/dist/index.js +122 -10
- package/package.json +1 -1
- /package/admin-out/_next/static/{7i420NUxbiDfuLxuofd-l → Jf-8TVLoHHwpT-gitolxN}/_buildManifest.js +0 -0
- /package/admin-out/_next/static/{7i420NUxbiDfuLxuofd-l → Jf-8TVLoHHwpT-gitolxN}/_ssgManifest.js +0 -0
package/admin-out/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--Jf_8TVLoHHwpT_gitolxN--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/c0ea31cd787f7aa7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ca926228f8cba1ff.js"/><script src="/_next/static/chunks/1b86ba38-c29611e086b2ce25.js" async=""></script><script src="/_next/static/chunks/698-19872069fed27164.js" async=""></script><script src="/_next/static/chunks/main-app-340a5b58ed229c4d.js" async=""></script><script src="/_next/static/chunks/989-6a0ec35b8ae2cb39.js" async=""></script><script src="/_next/static/chunks/app/layout-5ec6c5f713a8562b.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Halo - Multi-Agent Workspace</title><meta name="description" content="Multi-agent collaboration workspace for complex project delivery"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icon.svg?3a6863548daca964" type="image/svg+xml" sizes="any"/><script>try{var t=localStorage.getItem('halo_theme');if(t==='light'||t==='midnight'||t==='warm')document.documentElement.dataset.theme=t}catch(e){}</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><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-ca926228f8cba1ff.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[58321,[\"989\",\"static/chunks/989-6a0ec35b8ae2cb39.js\",\"177\",\"static/chunks/app/layout-5ec6c5f713a8562b.js\"],\"ThemeProvider\"]\n3:I[24554,[\"989\",\"static/chunks/989-6a0ec35b8ae2cb39.js\",\"177\",\"static/chunks/app/layout-5ec6c5f713a8562b.js\"],\"AppI18nProvider\"]\n4:I[63693,[],\"\"]\n5:I[74713,[],\"\"]\n6:I[23632,[],\"OutletBoundary\"]\n8:I[86889,[],\"AsyncMetadataOutlet\"]\na:I[23632,[],\"ViewportBoundary\"]\nc:I[23632,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[1935,[],\"\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/c0ea31cd787f7aa7.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Jf-8TVLoHHwpT-gitolxN\",\"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/c0ea31cd787f7aa7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"try{var t=localStorage.getItem('halo_theme');if(t==='light'||t==='midnight'||t==='warm')document.documentElement.dataset.theme=t}catch(e){}\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",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,[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n7:null\n"])</script><script>self.__next_f.push([1,"10:I[88809,[],\"IconMark\"]\n9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Halo - Multi-Agent Workspace\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Multi-agent collaboration workspace for complex project delivery\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon.svg?3a6863548daca964\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L10\",\"4\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script></body></html>
|
package/admin-out/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--Jf_8TVLoHHwpT_gitolxN--><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/e4af272ccee01ff0-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/c0ea31cd787f7aa7.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/659eccb5db697b76.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-ca926228f8cba1ff.js"/><script src="/_next/static/chunks/1b86ba38-c29611e086b2ce25.js" async=""></script><script src="/_next/static/chunks/698-19872069fed27164.js" async=""></script><script src="/_next/static/chunks/main-app-340a5b58ed229c4d.js" async=""></script><script src="/_next/static/chunks/989-6a0ec35b8ae2cb39.js" async=""></script><script src="/_next/static/chunks/app/layout-5ec6c5f713a8562b.js" async=""></script><script src="/_next/static/chunks/1d2d5650-d8d130c85727fdbb.js" async=""></script><script src="/_next/static/chunks/23-092ac3901411582e.js" async=""></script><script src="/_next/static/chunks/app/page-bf9c0b21ae431c92.js" async=""></script><meta name="next-size-adjust" content=""/><title>Halo - Multi-Agent Workspace</title><meta name="description" content="Multi-agent collaboration workspace for complex project delivery"/><link rel="icon" href="/favicon.ico" type="image/x-icon" sizes="16x16"/><link rel="icon" href="/icon.svg?3a6863548daca964" type="image/svg+xml" sizes="any"/><script>try{var t=localStorage.getItem('halo_theme');if(t==='light'||t==='midnight'||t==='warm')document.documentElement.dataset.theme=t}catch(e){}</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="flex h-screen w-screen items-center justify-center bg-[var(--background)]"><div class="text-sm text-[var(--muted-foreground)]">Loading...</div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-ca926228f8cba1ff.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[58321,[\"989\",\"static/chunks/989-6a0ec35b8ae2cb39.js\",\"177\",\"static/chunks/app/layout-5ec6c5f713a8562b.js\"],\"ThemeProvider\"]\n3:I[24554,[\"989\",\"static/chunks/989-6a0ec35b8ae2cb39.js\",\"177\",\"static/chunks/app/layout-5ec6c5f713a8562b.js\"],\"AppI18nProvider\"]\n4:I[63693,[],\"\"]\n5:I[74713,[],\"\"]\n6:I[5444,[],\"ClientPageRoot\"]\n7:I[18100,[\"560\",\"static/chunks/1d2d5650-d8d130c85727fdbb.js\",\"23\",\"static/chunks/23-092ac3901411582e.js\",\"989\",\"static/chunks/989-6a0ec35b8ae2cb39.js\",\"974\",\"static/chunks/app/page-bf9c0b21ae431c92.js\"],\"default\"]\na:I[23632,[],\"OutletBoundary\"]\nc:I[86889,[],\"AsyncMetadataOutlet\"]\ne:I[23632,[],\"ViewportBoundary\"]\n10:I[23632,[],\"MetadataBoundary\"]\n11:\"$Sreact.suspense\"\n13:I[1935,[],\"\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/c0ea31cd787f7aa7.css\",\"style\"]\n:HL[\"/_next/static/css/659eccb5db697b76.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Jf-8TVLoHHwpT-gitolxN\",\"p\":\"\",\"c\":[\"\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c0ea31cd787f7aa7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"try{var t=localStorage.getItem('halo_theme');if(t==='light'||t==='midnight'||t==='warm')document.documentElement.dataset.theme=t}catch(e){}\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",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\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/659eccb5db697b76.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$Lb\",[\"$\",\"$Lc\",null,{\"promise\":\"$@d\"}]]}]]}],{},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L10\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$11\",null,{\"fallback\":null,\"children\":\"$L12\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$13\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:{}\n9:\"$0:f:0:1:2:children:1:props:children:0:props:params\"\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nb:null\n"])</script><script>self.__next_f.push([1,"14:I[88809,[],\"IconMark\"]\nd:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Halo - Multi-Agent Workspace\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Multi-agent collaboration workspace for complex project delivery\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon.svg?3a6863548daca964\",\"type\":\"image/svg+xml\",\"sizes\":\"any\"}],[\"$\",\"$L14\",\"4\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"12:\"$d:metadata\"\n"])</script></body></html>
|
package/admin-out/index.txt
CHANGED
|
@@ -14,7 +14,7 @@ e:I[23632,[],"ViewportBoundary"]
|
|
|
14
14
|
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
15
15
|
:HL["/_next/static/css/c0ea31cd787f7aa7.css","style"]
|
|
16
16
|
:HL["/_next/static/css/659eccb5db697b76.css","style"]
|
|
17
|
-
0:{"P":null,"b":"
|
|
17
|
+
0:{"P":null,"b":"Jf-8TVLoHHwpT-gitolxN","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/c0ea31cd787f7aa7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"dark","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"try{var t=localStorage.getItem('halo_theme');if(t==='light'||t==='midnight'||t==='warm')document.documentElement.dataset.theme=t}catch(e){}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",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":["__PAGE__",["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","searchParams":{},"params":{},"promises":["$@8","$@9"]}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/659eccb5db697b76.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$La",null,{"children":["$Lb",["$","$Lc",null,{"promise":"$@d"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Le",null,{"children":"$Lf"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L10",null,{"children":["$","div",null,{"hidden":true,"children":["$","$11",null,{"fallback":null,"children":"$L12"}]}]}]]}],false]],"m":"$undefined","G":["$13",[]],"s":false,"S":true}
|
|
18
18
|
8:{}
|
|
19
19
|
9:"$0:f:0:1:2:children:1:props:children:0:props:params"
|
|
20
20
|
f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/dist/index.js
CHANGED
|
@@ -11806,7 +11806,7 @@ async function initObservability() {
|
|
|
11806
11806
|
return true;
|
|
11807
11807
|
}
|
|
11808
11808
|
const { registerSdk: registerSdk2 } = await Promise.resolve().then(() => (init_otel_sdk(), otel_sdk_exports));
|
|
11809
|
-
providers = registerSdk2(process.env.OTEL_SERVICE_NAME, "1.4.
|
|
11809
|
+
providers = registerSdk2(process.env.OTEL_SERVICE_NAME, "1.4.2");
|
|
11810
11810
|
console.log(`[Observability] OTLP export \u2192 ${process.env.OTEL_EXPORTER_OTLP_ENDPOINT} (service.name=${process.env.OTEL_SERVICE_NAME}, capture_content=${config.observability.captureContent})`);
|
|
11811
11811
|
return true;
|
|
11812
11812
|
}
|
|
@@ -25692,14 +25692,14 @@ var init_event_adapter = __esm({
|
|
|
25692
25692
|
try {
|
|
25693
25693
|
await this.deps.sendText(text6);
|
|
25694
25694
|
} catch (err) {
|
|
25695
|
-
console.
|
|
25695
|
+
console.warn(`[Telegram] sendText failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
25696
25696
|
}
|
|
25697
25697
|
}
|
|
25698
25698
|
for (const p of mediaPaths) {
|
|
25699
25699
|
try {
|
|
25700
25700
|
await this.deps.sendMedia(p);
|
|
25701
25701
|
} catch (err) {
|
|
25702
|
-
console.
|
|
25702
|
+
console.warn(`[Telegram] sendMedia ${p} failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
25703
25703
|
}
|
|
25704
25704
|
}
|
|
25705
25705
|
}
|
|
@@ -25765,6 +25765,21 @@ ${agentText}`;
|
|
|
25765
25765
|
});
|
|
25766
25766
|
return sessionId;
|
|
25767
25767
|
}
|
|
25768
|
+
function restoreChannelRoute(args) {
|
|
25769
|
+
const { registry: registry2, workspacePath, bridge, sessionPrefix: sessionPrefix2, route } = args;
|
|
25770
|
+
const sm = registry2.peek(workspacePath) ?? (claimWorkspaceRuntime(workspacePath) ? registry2.getOrCreate(workspacePath) : void 0);
|
|
25771
|
+
if (!sm) {
|
|
25772
|
+
console.warn(`[${bridge.channel}] reply route not restored for ${sessionPrefix2}*: ${workspacePath} runtime is owned by another live process (.halo/runtime.lock)`);
|
|
25773
|
+
return null;
|
|
25774
|
+
}
|
|
25775
|
+
const latest = sm.findLatestByPrefix(sessionPrefix2);
|
|
25776
|
+
if (!latest)
|
|
25777
|
+
return null;
|
|
25778
|
+
const sessionId = resolveGoalRoute(sm.getDb(), latest.id);
|
|
25779
|
+
bridge.setRoute(sessionId, route);
|
|
25780
|
+
bridge.ensureListener(sm, sessionId);
|
|
25781
|
+
return sessionId;
|
|
25782
|
+
}
|
|
25768
25783
|
async function dispatchChannelCommand(ctx, command, arg, opts) {
|
|
25769
25784
|
const { bridge, route, channelName, extraHelpLines } = opts;
|
|
25770
25785
|
const result = await dispatchCommand(ctx, command, arg, { channelName, extraHelpLines });
|
|
@@ -25783,6 +25798,7 @@ var init_inbound = __esm({
|
|
|
25783
25798
|
"../server/dist/channels/shared/inbound.js"() {
|
|
25784
25799
|
"use strict";
|
|
25785
25800
|
init_goal_mode();
|
|
25801
|
+
init_workspace_runtime_lock();
|
|
25786
25802
|
init_accounts();
|
|
25787
25803
|
init_commands2();
|
|
25788
25804
|
init_busy_hint();
|
|
@@ -25907,6 +25923,25 @@ function isUserAllowed(account, userId, username) {
|
|
|
25907
25923
|
function buildTgSessionPrefix(userId) {
|
|
25908
25924
|
return sessionPrefix("tg", String(userId));
|
|
25909
25925
|
}
|
|
25926
|
+
function restoreReplyRoute(args) {
|
|
25927
|
+
const { registry: registry2, db, account, bridge } = args;
|
|
25928
|
+
const chatId = getAccount(db, account.accountId)?.config.lastActiveChatId;
|
|
25929
|
+
if (typeof chatId !== "string" || !/^\d+$/.test(chatId))
|
|
25930
|
+
return;
|
|
25931
|
+
const workspacePath = resolveAccountWorkspace(account);
|
|
25932
|
+
if (!workspacePath)
|
|
25933
|
+
return;
|
|
25934
|
+
const userId = Number(chatId);
|
|
25935
|
+
const sid = restoreChannelRoute({
|
|
25936
|
+
registry: registry2,
|
|
25937
|
+
workspacePath,
|
|
25938
|
+
bridge,
|
|
25939
|
+
sessionPrefix: buildTgSessionPrefix(userId),
|
|
25940
|
+
route: { chatId: userId }
|
|
25941
|
+
});
|
|
25942
|
+
if (sid)
|
|
25943
|
+
console.log(`[Telegram] account ${account.accountId} reply route restored for ${sid}`);
|
|
25944
|
+
}
|
|
25910
25945
|
function startTelegramChannel(deps) {
|
|
25911
25946
|
const { registry: registry2, db } = deps;
|
|
25912
25947
|
const runners = /* @__PURE__ */ new Map();
|
|
@@ -25970,6 +26005,7 @@ function startTelegramChannel(deps) {
|
|
|
25970
26005
|
}
|
|
25971
26006
|
})
|
|
25972
26007
|
});
|
|
26008
|
+
restoreReplyRoute({ registry: registry2, db, account, bridge });
|
|
25973
26009
|
const promise = runBot({ registry: registry2, db, account, bot, abort, bridge, activeOverrides: activeOverrides2, restartSelf }).catch((err) => console.log(`[Telegram] account ${accountId} bot crashed: ${String(err)}`));
|
|
25974
26010
|
runners.set(accountId, { accountId, bot, abort, promise, bridge, activeOverrides: activeOverrides2 });
|
|
25975
26011
|
console.log(`[Telegram] account ${accountId} started (@${account.botUsername}, workspace=${account.workspacePath})`);
|
|
@@ -26867,14 +26903,14 @@ var init_event_adapter2 = __esm({
|
|
|
26867
26903
|
try {
|
|
26868
26904
|
await this.deps.sendText(text6);
|
|
26869
26905
|
} catch (err) {
|
|
26870
|
-
console.
|
|
26906
|
+
console.warn(`[WeChat] sendText failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
26871
26907
|
}
|
|
26872
26908
|
}
|
|
26873
26909
|
for (const p of mediaPaths) {
|
|
26874
26910
|
try {
|
|
26875
26911
|
await this.deps.sendMedia(p);
|
|
26876
26912
|
} catch (err) {
|
|
26877
|
-
console.
|
|
26913
|
+
console.warn(`[WeChat] sendMedia ${p} failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
26878
26914
|
}
|
|
26879
26915
|
}
|
|
26880
26916
|
}
|
|
@@ -27265,6 +27301,7 @@ function startWechatChannel(deps) {
|
|
|
27265
27301
|
});
|
|
27266
27302
|
});
|
|
27267
27303
|
};
|
|
27304
|
+
restoreReplyRoutes({ registry: registry2, db, account, bridge });
|
|
27268
27305
|
const promise = runAccountLoop({ registry: registry2, db, account, abort: abort.signal, bridge, activeOverrides: activeOverrides2, restartSelf, startNewAccount: startAccount }).catch((err) => console.log(`[WeChat] account ${accountId} loop crashed: ${String(err)}`));
|
|
27269
27306
|
runners.set(accountId, { accountId, abort, promise, bridge, activeOverrides: activeOverrides2 });
|
|
27270
27307
|
console.log(`[WeChat] account ${accountId} started (workspace=${account.workspacePath})`);
|
|
@@ -27295,6 +27332,27 @@ function startWechatChannel(deps) {
|
|
|
27295
27332
|
startAccount(acc.accountId);
|
|
27296
27333
|
return { startAccount, stopAccount, stopAll };
|
|
27297
27334
|
}
|
|
27335
|
+
function restoreReplyRoutes(args) {
|
|
27336
|
+
const { registry: registry2, db, account, bridge } = args;
|
|
27337
|
+
const tokens = getAccount(db, account.accountId)?.config.contextTokens ?? {};
|
|
27338
|
+
const users = Object.keys(tokens);
|
|
27339
|
+
if (users.length === 0)
|
|
27340
|
+
return;
|
|
27341
|
+
const workspacePath = resolveAccountWorkspace(account);
|
|
27342
|
+
if (!workspacePath)
|
|
27343
|
+
return;
|
|
27344
|
+
for (const userId of users) {
|
|
27345
|
+
const sid = restoreChannelRoute({
|
|
27346
|
+
registry: registry2,
|
|
27347
|
+
workspacePath,
|
|
27348
|
+
bridge,
|
|
27349
|
+
sessionPrefix: buildWxSessionPrefix(userId),
|
|
27350
|
+
route: wxRoute(userId, tokens[userId])
|
|
27351
|
+
});
|
|
27352
|
+
if (sid)
|
|
27353
|
+
console.log(`[WeChat] ${account.accountId} reply route restored for ${sid}`);
|
|
27354
|
+
}
|
|
27355
|
+
}
|
|
27298
27356
|
async function runAccountLoop(args) {
|
|
27299
27357
|
const { registry: registry2, db, account, abort, bridge, activeOverrides: activeOverrides2, restartSelf, startNewAccount } = args;
|
|
27300
27358
|
try {
|
|
@@ -27830,8 +27888,8 @@ async function dispatch2(accountId, text6, explicitChatId, media) {
|
|
|
27830
27888
|
throw new Error("no wechat target \u2014 bind the account first (the QR-login owner becomes the default cron recipient)");
|
|
27831
27889
|
}
|
|
27832
27890
|
const out = [];
|
|
27891
|
+
const contextToken = readContextToken(accountId, chatId);
|
|
27833
27892
|
if (text6) {
|
|
27834
|
-
const contextToken = readContextToken(accountId, chatId);
|
|
27835
27893
|
const chunks = splitText(text6, WECHAT_TEXT_LIMIT);
|
|
27836
27894
|
for (const [i, chunk] of chunks.entries()) {
|
|
27837
27895
|
try {
|
|
@@ -27853,6 +27911,7 @@ async function dispatch2(accountId, text6, explicitChatId, media) {
|
|
|
27853
27911
|
baseUrl: acct.baseUrl,
|
|
27854
27912
|
token: acct.botToken,
|
|
27855
27913
|
toUserId: chatId,
|
|
27914
|
+
contextToken,
|
|
27856
27915
|
filePath
|
|
27857
27916
|
});
|
|
27858
27917
|
out.push({ channelType: "wechat", accountId, chatId, ok: true });
|
|
@@ -28434,14 +28493,14 @@ var init_event_adapter3 = __esm({
|
|
|
28434
28493
|
try {
|
|
28435
28494
|
await this.deps.sendText(text6);
|
|
28436
28495
|
} catch (err) {
|
|
28437
|
-
console.
|
|
28496
|
+
console.warn(`[Slack] sendText failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
28438
28497
|
}
|
|
28439
28498
|
}
|
|
28440
28499
|
for (const p of mediaPaths) {
|
|
28441
28500
|
try {
|
|
28442
28501
|
await this.deps.sendMedia(p);
|
|
28443
28502
|
} catch (err) {
|
|
28444
|
-
console.
|
|
28503
|
+
console.warn(`[Slack] sendMedia ${p} failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
28445
28504
|
}
|
|
28446
28505
|
}
|
|
28447
28506
|
}
|
|
@@ -28667,6 +28726,32 @@ function rememberEventId(id) {
|
|
|
28667
28726
|
function buildSessionPrefixForThread(channelId, rootTs) {
|
|
28668
28727
|
return sessionPrefix("slack", `${channelId}:${rootTs}`);
|
|
28669
28728
|
}
|
|
28729
|
+
function restoreReplyRoute2(args) {
|
|
28730
|
+
const { registry: registry2, db, account, bridge } = args;
|
|
28731
|
+
const chatKey = getAccount(db, account.accountId)?.config.lastActiveChatId;
|
|
28732
|
+
if (typeof chatKey !== "string")
|
|
28733
|
+
return;
|
|
28734
|
+
const sep2 = chatKey.indexOf(":");
|
|
28735
|
+
if (sep2 <= 0)
|
|
28736
|
+
return;
|
|
28737
|
+
const channelId = chatKey.slice(0, sep2);
|
|
28738
|
+
const rootTs = chatKey.slice(sep2 + 1);
|
|
28739
|
+
if (!rootTs)
|
|
28740
|
+
return;
|
|
28741
|
+
const workspacePath = resolveAccountWorkspace(account);
|
|
28742
|
+
if (!workspacePath)
|
|
28743
|
+
return;
|
|
28744
|
+
const sid = restoreChannelRoute({
|
|
28745
|
+
registry: registry2,
|
|
28746
|
+
workspacePath,
|
|
28747
|
+
bridge,
|
|
28748
|
+
sessionPrefix: buildSessionPrefixForThread(channelId, rootTs),
|
|
28749
|
+
// Same mapping as pickSessionKey: DMs reply flat, threads into the root.
|
|
28750
|
+
route: { channelId, replyTs: rootTs === "dm" ? void 0 : rootTs }
|
|
28751
|
+
});
|
|
28752
|
+
if (sid)
|
|
28753
|
+
console.log(`[Slack] ${account.accountId} reply route restored for ${sid}`);
|
|
28754
|
+
}
|
|
28670
28755
|
function pickSessionKey(event) {
|
|
28671
28756
|
const channelId = event.channel;
|
|
28672
28757
|
const isDM = event.channel_type === "im";
|
|
@@ -28852,6 +28937,9 @@ function startSlackChannel(deps) {
|
|
|
28852
28937
|
st.stopped = false;
|
|
28853
28938
|
if (st.ws)
|
|
28854
28939
|
return;
|
|
28940
|
+
const account = getAccount5(db, accountId);
|
|
28941
|
+
if (account && account.enabled === 1)
|
|
28942
|
+
restoreReplyRoute2({ registry: registry2, db, account, bridge: st.bridge });
|
|
28855
28943
|
connect(accountId);
|
|
28856
28944
|
}
|
|
28857
28945
|
async function stopAccount(accountId) {
|
|
@@ -29718,6 +29806,27 @@ import * as Lark from "@larksuiteoapi/node-sdk";
|
|
|
29718
29806
|
function buildSessionPrefixForThread2(chatId, rootId) {
|
|
29719
29807
|
return sessionPrefix("feishu", `${chatId}:${rootId}`);
|
|
29720
29808
|
}
|
|
29809
|
+
function restoreReplyRoute3(args) {
|
|
29810
|
+
const { registry: registry2, db, account, bridge } = args;
|
|
29811
|
+
const chatKey = getAccount(db, account.accountId)?.config.lastActiveChatId;
|
|
29812
|
+
if (typeof chatKey !== "string" || !chatKey.endsWith(":dm"))
|
|
29813
|
+
return;
|
|
29814
|
+
const chatId = chatKey.slice(0, -":dm".length);
|
|
29815
|
+
if (!chatId)
|
|
29816
|
+
return;
|
|
29817
|
+
const workspacePath = resolveAccountWorkspace(account);
|
|
29818
|
+
if (!workspacePath)
|
|
29819
|
+
return;
|
|
29820
|
+
const sid = restoreChannelRoute({
|
|
29821
|
+
registry: registry2,
|
|
29822
|
+
workspacePath,
|
|
29823
|
+
bridge,
|
|
29824
|
+
sessionPrefix: buildSessionPrefixForThread2(chatId, "dm"),
|
|
29825
|
+
route: { inboundMessageId: "", isP2P: true, chatId }
|
|
29826
|
+
});
|
|
29827
|
+
if (sid)
|
|
29828
|
+
console.log(`[Feishu] ${account.accountId} reply route restored for ${sid}`);
|
|
29829
|
+
}
|
|
29721
29830
|
function pickSessionKey2(event) {
|
|
29722
29831
|
const chatId = event.message.chat_id;
|
|
29723
29832
|
const inboundMessageId = event.message.message_id;
|
|
@@ -29982,6 +30091,9 @@ function startFeishuChannel(deps) {
|
|
|
29982
30091
|
st.stopped = false;
|
|
29983
30092
|
if (st.wsClient)
|
|
29984
30093
|
return;
|
|
30094
|
+
const account = getAccount6(db, accountId);
|
|
30095
|
+
if (account && account.enabled === 1)
|
|
30096
|
+
restoreReplyRoute3({ registry: registry2, db, account, bridge: st.bridge });
|
|
29985
30097
|
void connect(accountId);
|
|
29986
30098
|
}
|
|
29987
30099
|
async function stopAccount(accountId) {
|
|
@@ -31570,7 +31682,7 @@ var init_dist2 = __esm({
|
|
|
31570
31682
|
init_git_ssh();
|
|
31571
31683
|
__dirname3 = path68.dirname(fileURLToPath3(import.meta.url));
|
|
31572
31684
|
PORT = config.server.port;
|
|
31573
|
-
HALO_VERSION = "1.4.
|
|
31685
|
+
HALO_VERSION = "1.4.2";
|
|
31574
31686
|
PROJECT_ROOT = findProjectRoot();
|
|
31575
31687
|
HALO_HOME4 = path68.join(homedir24(), ".halo");
|
|
31576
31688
|
GIT_SHA = readGitSha();
|
|
@@ -32509,7 +32621,7 @@ import path69 from "node:path";
|
|
|
32509
32621
|
import fs63 from "node:fs";
|
|
32510
32622
|
import { homedir as homedir25 } from "node:os";
|
|
32511
32623
|
import { parseArgs as parseArgs2 } from "node:util";
|
|
32512
|
-
var VERSION = "1.4.
|
|
32624
|
+
var VERSION = "1.4.2";
|
|
32513
32625
|
var HELP_TOP = `Usage: halo <command> [options]
|
|
32514
32626
|
|
|
32515
32627
|
Commands:
|
package/package.json
CHANGED
/package/admin-out/_next/static/{7i420NUxbiDfuLxuofd-l → Jf-8TVLoHHwpT-gitolxN}/_buildManifest.js
RENAMED
|
File without changes
|
/package/admin-out/_next/static/{7i420NUxbiDfuLxuofd-l → Jf-8TVLoHHwpT-gitolxN}/_ssgManifest.js
RENAMED
|
File without changes
|