@uptimizr/dashboard 0.4.2 → 0.4.4
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/out/404.html +1 -1
- package/out/__next.__PAGE__.txt +2 -2
- package/out/__next._full.txt +3 -3
- package/out/__next._head.txt +1 -1
- package/out/__next._index.txt +2 -2
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/133glnfos64oo.js +1 -0
- package/out/_next/static/chunks/2hghi41nhdww2.css +3 -0
- package/out/_next/static/chunks/3oyuoqr8y2g9r.js +3 -0
- package/out/_next/static/chunks/{2sh_smcy-tncy.js → 3rpm-1ryf073k.js} +1 -1
- package/out/_not-found/__next._full.txt +2 -2
- package/out/_not-found/__next._head.txt +1 -1
- package/out/_not-found/__next._index.txt +2 -2
- package/out/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/out/_not-found/__next._not-found.txt +1 -1
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +2 -2
- package/out/index.html +1 -1
- package/out/index.txt +3 -3
- package/package.json +2 -2
- package/out/_next/static/chunks/1xqv11mvnfa8n.js +0 -1
- package/out/_next/static/chunks/3_jmgj9glg_z2.css +0 -3
- package/out/_next/static/chunks/3oqr294mp1s4a.js +0 -1
- /package/out/_next/static/{TQzUSjrXEDtcZvsOgjbzf → UgXxCZvX6DcLoCaAHvGbP}/_buildManifest.js +0 -0
- /package/out/_next/static/{TQzUSjrXEDtcZvsOgjbzf → UgXxCZvX6DcLoCaAHvGbP}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{TQzUSjrXEDtcZvsOgjbzf → UgXxCZvX6DcLoCaAHvGbP}/_ssgManifest.js +0 -0
package/out/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2hghi41nhdww2.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/2569rrrffvm2w.js"/><script src="/_next/static/chunks/19dp8nr4uygg2.js" async=""></script><script src="/_next/static/chunks/3mpe7c3iyxn5h.js" async=""></script><script src="/_next/static/chunks/turbopack-3r8yn0j92tqw_.js" async=""></script><script src="/_next/static/chunks/0s1jghzw8jufz.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Uptimizr — 3D Scene Analytics</title><meta name="description" content="Open-source analytics dashboard for 3D scenes."/><link rel="icon" href="/icon.svg?icon.08h29dad3pcxg.svg" sizes="any" type="image/svg+xml"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.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/2569rrrffvm2w.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[89788,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"default\"]\n3:I[14405,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"default\"]\n4:I[17419,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[17419,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"ViewportBoundary\"]\na:I[17419,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"MetadataBoundary\"]\nc:I[56872,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2hghi41nhdww2.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2hghi41nhdww2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0s1jghzw8jufz.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable\",\"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\":[[\"$\",\"$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\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2hghi41nhdww2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"UgXxCZvX6DcLoCaAHvGbP\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\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\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[39259,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Uptimizr — 3D Scene Analytics\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Open-source analytics dashboard for 3D scenes.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.08h29dad3pcxg.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$Le\",\"3\",{}]]\n"])</script></body></html>
|
package/out/__next.__PAGE__.txt
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[28718,["/_next/static/chunks/0s1jghzw8jufz.js"],"ClientPageRoot"]
|
|
3
|
-
3:I[14936,["/_next/static/chunks/0s1jghzw8jufz.js","/_next/static/chunks/
|
|
3
|
+
3:I[14936,["/_next/static/chunks/0s1jghzw8jufz.js","/_next/static/chunks/3rpm-1ryf073k.js","/_next/static/chunks/1-4v8oivkgnyl.js","/_next/static/chunks/34845aqksy1dl.js"],"default"]
|
|
4
4
|
6:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"OutletBoundary"]
|
|
5
5
|
7:"$Sreact.suspense"
|
|
6
|
-
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/3rpm-1ryf073k.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/1-4v8oivkgnyl.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/34845aqksy1dl.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
7
7
|
4:{}
|
|
8
8
|
5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
9
9
|
8:null
|
package/out/__next._full.txt
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
2:I[89788,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
3
3
|
3:I[14405,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
4
4
|
4:I[28718,["/_next/static/chunks/0s1jghzw8jufz.js"],"ClientPageRoot"]
|
|
5
|
-
5:I[14936,["/_next/static/chunks/0s1jghzw8jufz.js","/_next/static/chunks/
|
|
5
|
+
5:I[14936,["/_next/static/chunks/0s1jghzw8jufz.js","/_next/static/chunks/3rpm-1ryf073k.js","/_next/static/chunks/1-4v8oivkgnyl.js","/_next/static/chunks/34845aqksy1dl.js"],"default"]
|
|
6
6
|
8:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"OutletBoundary"]
|
|
7
7
|
9:"$Sreact.suspense"
|
|
8
8
|
b:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"ViewportBoundary"]
|
|
9
9
|
d:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"MetadataBoundary"]
|
|
10
10
|
f:I[56872,["/_next/static/chunks/0s1jghzw8jufz.js"],"default",1]
|
|
11
|
-
:HL["/_next/static/chunks/
|
|
11
|
+
:HL["/_next/static/chunks/2hghi41nhdww2.css","style"]
|
|
12
12
|
:HL["/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
13
13
|
:HL["/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
|
-
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
14
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0s1jghzw8jufz.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","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":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/3rpm-1ryf073k.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/1-4v8oivkgnyl.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/34845aqksy1dl.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
15
15
|
6:{}
|
|
16
16
|
7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
17
17
|
c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/out/__next._head.txt
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
3:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
5:I[39259,["/_next/static/chunks/0s1jghzw8jufz.js"],"IconMark"]
|
|
6
|
-
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Uptimizr — 3D Scene Analytics"}],["$","meta","1",{"name":"description","content":"Open-source analytics dashboard for 3D scenes."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.08h29dad3pcxg.svg","sizes":"any","type":"image/svg+xml"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Uptimizr — 3D Scene Analytics"}],["$","meta","1",{"name":"description","content":"Open-source analytics dashboard for 3D scenes."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.08h29dad3pcxg.svg","sizes":"any","type":"image/svg+xml"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"UgXxCZvX6DcLoCaAHvGbP"}
|
package/out/__next._index.txt
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[89788,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
3
3
|
3:I[14405,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
4
|
-
:HL["/_next/static/chunks/
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
4
|
+
:HL["/_next/static/chunks/2hghi41nhdww2.css","style"]
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0s1jghzw8jufz.js","async":true}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"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."}]}]]}]}]],[]]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"UgXxCZvX6DcLoCaAHvGbP"}
|
package/out/__next._tree.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
:HL["/_next/static/chunks/
|
|
1
|
+
:HL["/_next/static/chunks/2hghi41nhdww2.css","style"]
|
|
2
2
|
:HL["/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
3
3
|
:HL["/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
4
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"
|
|
4
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,44196,t=>{"use strict";var e=t.i(35651);class o extends Error{status;constructor(t,e){super(t),this.status=e,this.name="HostedProviderError"}}function n(t,e){let o=t.length;for(;o>0&&"/"===t[o-1];)o--;let n=t.slice(0,o);return n.endsWith(e)?n:`${n}${e}`}async function s(t,o,s){let a=n(t.endpoint,"/chat/completions"),r={model:t.model,messages:(0,e.toOpenAiMessages)(s.messages),...s.tools.length>0?{tools:(0,e.toOpenAiTools)(s.tools),tool_choice:"auto"}:{}},l=await o(a,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${t.apiKey}`},body:JSON.stringify(r),signal:s.signal}),c=await i(l);return(0,e.parseOpenAiCompletion)(c)}async function a(t,e,o){let s,a,r,l=n(t.endpoint,"/messages"),c=function(t,e){let o=[],n=[];for(let e of t)switch(e.role){case"system":o.push(e.content);break;case"user":n.push({role:"user",content:[{type:"text",text:e.content}]});break;case"assistant":{let t=[];for(let o of(e.content&&t.push({type:"text",text:e.content}),e.toolCalls??[])){var s;t.push({type:"tool_use",id:(s=o).id,name:s.name,input:s.arguments??{}})}n.push({role:"assistant",content:t});break}case"tool":n.push({role:"user",content:[{type:"tool_result",tool_use_id:e.toolCallId,content:e.content}]})}return{...o.length>0?{system:o.join("\n\n")}:{},messages:n,...e.length>0?{tools:e.map(t=>({name:t.name,description:t.description,input_schema:t.parameters}))}:{}}}(o.messages,o.tools),p={model:t.model,max_tokens:t.maxTokens??1024,...c},u=await e(l,{method:"POST",headers:{"content-type":"application/json","x-api-key":t.apiKey,"anthropic-version":t.anthropicVersion??"2023-06-01","anthropic-dangerous-direct-browser-access":"true"},body:JSON.stringify(p),signal:o.signal});return a=(s=(await i(u)).content??[]).filter(t=>"tool_use"===t.type).map(t=>({id:t.id,name:t.name,arguments:t.input??{}})),r=s.filter(t=>"text"===t.type).map(t=>t.text).join(""),a.length>0?{kind:"tool_calls",toolCalls:a,...r?{content:r}:{}}:{kind:"final",content:r}}async function i(t){if(!t.ok)throw new o(await t.text().catch(()=>"")||t.statusText,t.status);return t.json()}t.s(["createHostedProvider",0,function(t){let e=t.fetchImpl??fetch;return{complete:o=>"anthropic"===t.api?a(t,e,o):s(t,e,o)}}],44196)}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_59d6dcf5-module__z_Ctiq__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_59d6dcf5-module__z_Ctiq__variable{--font-space-grotesk:"Space Grotesk", "Space Grotesk Fallback"}
|
|
2
|
+
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_38c99671-module__5Dhsuq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_38c99671-module__5Dhsuq__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
|
|
3
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, monospace;--color-red-300:#ffa3a3;--color-red-400:#ff6568;--color-red-900:#82181a;--color-red-950:#460809;--color-amber-300:#ffd236;--color-amber-400:#fcbb00;--color-amber-500:#f99c00;--color-emerald-300:#5ee9b5;--color-emerald-400:#00d294;--color-emerald-500:#00bb7f;--color-sky-400:#00bcfe;--color-sky-500:#00a5ef;--color-fuchsia-300:#f2a9ff;--color-fuchsia-400:#ec6cff;--color-fuchsia-500:#e12afb;--color-rose-300:#ffa2ae;--color-rose-400:#ff667f;--color-rose-500:#ff2357;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-ink:#161210;--color-panel:#201913;--color-edge:#34291f;--color-fg-hi:#f4eadf;--color-fg:#d8c8b8;--color-fg-muted:#a8917c;--color-saffron:#f4c84b;--color-amber:#eda63e;--color-ember:#e07b39;--font-display:var(--font-space-grotesk), system-ui, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@supports (color:lab(0% 0 0)){:root,:host{--color-red-300:lab(76.5514% 36.422 15.5335);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-900:lab(28.5139% 44.5539 29.0463);--color-red-950:lab(13.003% 29.04 16.7519);--color-amber-300:lab(86.4156% 6.13147 78.3961);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-emerald-300:lab(83.9203% -48.7124 13.8849);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-sky-400:lab(70.687% -23.6078 -45.9483);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-fuchsia-300:lab(78.5378% 39.3533 -32.9615);--color-fuchsia-400:lab(66.1178% 66.0652 -52.4733);--color-fuchsia-500:lab(56.4256% 83.132 -64.639);--color-rose-300:lab(76.6339% 38.3549 9.68835);--color-rose-400:lab(64.4125% 63.0291 19.2068);--color-rose-500:lab(56.101% 79.4328 31.4532)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-y-1{inset-block:var(--spacing)}.top-0{top:0}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-6{top:calc(var(--spacing) * 6)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mr-1{margin-right:var(--spacing)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-27\.5{height:calc(var(--spacing) * 27.5)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[24rem\]{max-height:24rem}.min-h-\[8rem\]{min-height:8rem}.min-h-\[12rem\]{min-height:12rem}.w-1{width:var(--spacing)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-36{width:calc(var(--spacing) * 36)}.w-37\.5{width:calc(var(--spacing) * 37.5)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.w-px{width:1px}.max-w-6xl{max-width:var(--container-6xl)}.max-w-44{max-width:calc(var(--spacing) * 44)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-\[12rem\]{max-width:12rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[20rem\]{max-width:20rem}.min-w-0{min-width:0}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-56{min-width:calc(var(--spacing) * 56)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-crosshair{cursor:crosshair}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber{border-color:var(--color-amber)}.border-amber\/40{border-color:#eda63e66}@supports (color:color-mix(in lab, red, red)){.border-amber\/40{border-color:color-mix(in oklab, var(--color-amber) 40%, transparent)}}.border-amber\/60{border-color:#eda63e99}@supports (color:color-mix(in lab, red, red)){.border-amber\/60{border-color:color-mix(in oklab, var(--color-amber) 60%, transparent)}}.border-edge{border-color:var(--color-edge)}.border-fg-muted{border-color:var(--color-fg-muted)}.border-ink\/40{border-color:#16121066}@supports (color:color-mix(in lab, red, red)){.border-ink\/40{border-color:color-mix(in oklab, var(--color-ink) 40%, transparent)}}.border-ink\/60{border-color:#16121099}@supports (color:color-mix(in lab, red, red)){.border-ink\/60{border-color:color-mix(in oklab, var(--color-ink) 60%, transparent)}}.border-red-900\/60{border-color:#82181a99}@supports (color:color-mix(in lab, red, red)){.border-red-900\/60{border-color:color-mix(in oklab, var(--color-red-900) 60%, transparent)}}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-\[\#38bdf8\]{background-color:#38bdf8}.bg-\[\#f4c84b\]{background-color:#f4c84b}.bg-amber{background-color:var(--color-amber)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500\/70{background-color:#f99c00b3}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/70{background-color:color-mix(in oklab, var(--color-amber-500) 70%, transparent)}}.bg-amber\/10{background-color:#eda63e1a}@supports (color:color-mix(in lab, red, red)){.bg-amber\/10{background-color:color-mix(in oklab, var(--color-amber) 10%, transparent)}}.bg-amber\/15{background-color:#eda63e26}@supports (color:color-mix(in lab, red, red)){.bg-amber\/15{background-color:color-mix(in oklab, var(--color-amber) 15%, transparent)}}.bg-amber\/30{background-color:#eda63e4d}@supports (color:color-mix(in lab, red, red)){.bg-amber\/30{background-color:color-mix(in oklab, var(--color-amber) 30%, transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/20{background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.bg-emerald-500\/70{background-color:#00bb7fb3}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/70{background-color:color-mix(in oklab, var(--color-emerald-500) 70%, transparent)}}.bg-fg-muted{background-color:var(--color-fg-muted)}.bg-fg\/15{background-color:#d8c8b826}@supports (color:color-mix(in lab, red, red)){.bg-fg\/15{background-color:color-mix(in oklab, var(--color-fg) 15%, transparent)}}.bg-fg\/50{background-color:#d8c8b880}@supports (color:color-mix(in lab, red, red)){.bg-fg\/50{background-color:color-mix(in oklab, var(--color-fg) 50%, transparent)}}.bg-fuchsia-400\/30{background-color:#ec6cff4d}@supports (color:color-mix(in lab, red, red)){.bg-fuchsia-400\/30{background-color:color-mix(in oklab, var(--color-fuchsia-400) 30%, transparent)}}.bg-ink{background-color:var(--color-ink)}.bg-ink\/40{background-color:#16121066}@supports (color:color-mix(in lab, red, red)){.bg-ink\/40{background-color:color-mix(in oklab, var(--color-ink) 40%, transparent)}}.bg-ink\/50{background-color:#16121080}@supports (color:color-mix(in lab, red, red)){.bg-ink\/50{background-color:color-mix(in oklab, var(--color-ink) 50%, transparent)}}.bg-ink\/60{background-color:#16121099}@supports (color:color-mix(in lab, red, red)){.bg-ink\/60{background-color:color-mix(in oklab, var(--color-ink) 60%, transparent)}}.bg-ink\/80{background-color:#161210cc}@supports (color:color-mix(in lab, red, red)){.bg-ink\/80{background-color:color-mix(in oklab, var(--color-ink) 80%, transparent)}}.bg-ink\/90{background-color:#161210e6}@supports (color:color-mix(in lab, red, red)){.bg-ink\/90{background-color:color-mix(in oklab, var(--color-ink) 90%, transparent)}}.bg-ink\/95{background-color:#161210f2}@supports (color:color-mix(in lab, red, red)){.bg-ink\/95{background-color:color-mix(in oklab, var(--color-ink) 95%, transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-panel\/60{background-color:#20191399}@supports (color:color-mix(in lab, red, red)){.bg-panel\/60{background-color:color-mix(in oklab, var(--color-panel) 60%, transparent)}}.bg-red-950\/40{background-color:#46080966}@supports (color:color-mix(in lab, red, red)){.bg-red-950\/40{background-color:color-mix(in oklab, var(--color-red-950) 40%, transparent)}}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-500\/20{background-color:#ff235733}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/20{background-color:color-mix(in oklab, var(--color-rose-500) 20%, transparent)}}.bg-rose-500\/70{background-color:#ff2357b3}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/70{background-color:color-mix(in oklab, var(--color-rose-500) 70%, transparent)}}.bg-saffron{background-color:var(--color-saffron)}.bg-sky-400\/70{background-color:#00bcfeb3}@supports (color:color-mix(in lab, red, red)){.bg-sky-400\/70{background-color:color-mix(in oklab, var(--color-sky-400) 70%, transparent)}}.bg-sky-500\/70{background-color:#00a5efb3}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/70{background-color:color-mix(in oklab, var(--color-sky-500) 70%, transparent)}}.bg-transparent{background-color:#0000}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/5{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-1{padding-top:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber{color:var(--color-amber)}.text-amber-300{color:var(--color-amber-300)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-fg{color:var(--color-fg)}.text-fg-hi{color:var(--color-fg-hi)}.text-fg-muted{color:var(--color-fg-muted)}.text-fg-muted\/40{color:#a8917c66}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\/40{color:color-mix(in oklab, var(--color-fg-muted) 40%, transparent)}}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-ink{color:var(--color-ink)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-saffron{color:var(--color-saffron)}.text-white{color:var(--color-white)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-2{text-underline-offset:2px}.accent-amber{accent-color:var(--color-amber)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-amber\/30{--tw-shadow-color:#eda63e4d}@supports (color:color-mix(in lab, red, red)){.shadow-amber\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/20{--tw-shadow-color:#0003}@supports (color:color-mix(in lab, red, red)){.shadow-black\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-fuchsia-500\/30{--tw-shadow-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.shadow-fuchsia-500\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-amber{--tw-ring-color:var(--color-amber)}.ring-amber\/30{--tw-ring-color:#eda63e4d}@supports (color:color-mix(in lab, red, red)){.ring-amber\/30{--tw-ring-color:color-mix(in oklab, var(--color-amber) 30%, transparent)}}.ring-fuchsia-300{--tw-ring-color:var(--color-fuchsia-300)}.ring-fuchsia-400\/30{--tw-ring-color:#ec6cff4d}@supports (color:color-mix(in lab, red, red)){.ring-fuchsia-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-fuchsia-400) 30%, transparent)}}.ring-rose-400\/40{--tw-ring-color:#ff667f66}@supports (color:color-mix(in lab, red, red)){.ring-rose-400\/40{--tw-ring-color:color-mix(in oklab, var(--color-rose-400) 40%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-fg-muted::placeholder{color:var(--color-fg-muted)}.first\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.last\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}@media (hover:hover){.hover\:border-amber:hover{border-color:var(--color-amber)}.hover\:border-amber\/60:hover{border-color:#eda63e99}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber\/60:hover{border-color:color-mix(in oklab, var(--color-amber) 60%, transparent)}}.hover\:border-edge:hover{border-color:var(--color-edge)}.hover\:bg-ember:hover{background-color:var(--color-ember)}.hover\:bg-ink:hover{background-color:var(--color-ink)}.hover\:bg-ink\/40:hover{background-color:#16121066}@supports (color:color-mix(in lab, red, red)){.hover\:bg-ink\/40:hover{background-color:color-mix(in oklab, var(--color-ink) 40%, transparent)}}.hover\:text-amber:hover{color:var(--color-amber)}.hover\:text-fg:hover{color:var(--color-fg)}.hover\:text-fg-hi:hover{color:var(--color-fg-hi)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-saffron:focus{border-color:var(--color-saffron)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-amber:focus{--tw-ring-color:var(--color-amber)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:p-8{padding:calc(var(--spacing) * 8)}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background-color:var(--color-ink);color:var(--color-fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-display)}code,kbd,samp,pre{font-family:var(--font-mono)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,35651,e=>{"use strict";function t(e){return{id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.arguments??{})}}}e.s(["parseOpenAiCompletion",0,function(e){let t=e.choices?.[0]?.message,s=t?.tool_calls??[],n=t?.content??"";return s.length>0?{kind:"tool_calls",toolCalls:s.map(e=>({id:e.id,name:e.function.name,arguments:function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t?t:{}}catch{return{}}}(e.function.arguments)})),...n?{content:n}:{}}:{kind:"final",content:n}},"toOpenAiMessages",0,function(e){return e.map(e=>{switch(e.role){case"assistant":return{role:"assistant",content:e.content,...e.toolCalls&&e.toolCalls.length>0?{tool_calls:e.toolCalls.map(t)}:{}};case"tool":return{role:"tool",content:e.content,tool_call_id:e.toolCallId,name:e.name};default:return{role:e.role,content:e.content}}})},"toOpenAiTools",0,function(e){return e.map(e=>({type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}}))}])},36542,74698,e=>{"use strict";let t="uptimizr.assistant.backend";function s(){try{return globalThis.localStorage}catch{return}}function n(e=globalThis.navigator){return!!(e&&"gpu"in e&&e.gpu)}e.s(["isWebGpuAvailable",0,n,"loadBackendConfig",0,function(e=s()){let n;if(!e)return null;try{n=e.getItem(t)}catch{return null}if(!n)return null;try{var a;let e=JSON.parse(n);if(!e||"object"!=typeof e||(a=e.backend,"local"!==a&&"hosted"!==a))return null;return e}catch{return null}},"saveBackendConfig",0,function(e,n=s()){if(n)try{n.setItem(t,JSON.stringify(e))}catch{}}],74698);var a=e.i(35651);let r=["Hermes-2-Pro-Llama-3-8B-q4f16_1-MLC","Hermes-2-Pro-Llama-3-8B-q4f32_1-MLC","Hermes-2-Pro-Mistral-7B-q4f16_1-MLC","Hermes-3-Llama-3.1-8B-q4f32_1-MLC","Hermes-3-Llama-3.1-8B-q4f16_1-MLC"],o=Math.round(0x20000000),i=[{id:"Hermes-3-Llama-3.1-8B-q4f16_1-MLC",label:"Hermes 3 (Llama 3.1 8B)",downloadSize:"~4.5 GB",downloadBytes:Math.round(0x120000000),vram:"~4.9 GB",description:"Highest quality; the default. Needs a capable GPU (~5 GB VRAM)."},{id:"Hermes-2-Pro-Llama-3-8B-q4f16_1-MLC",label:"Hermes 2 Pro (Llama 3 8B)",downloadSize:"~4.6 GB",downloadBytes:Math.round(4939212390.4),vram:"~5.0 GB",description:"Stronger Llama-3 base; needs a capable GPU."},{id:"Hermes-2-Pro-Mistral-7B-q4f16_1-MLC",label:"Hermes 2 Pro (Mistral 7B)",downloadSize:"~3.9 GB",downloadBytes:Math.round(4187593113.6),vram:"~4.0 GB",description:"Smallest tool-calling model; the least-VRAM fallback."}];class l extends Error{constructor(){super("WebGPU is not available in this browser; the local model cannot run."),this.name="WebGpuUnavailableError"}}class c extends Error{constructor(){super("Model download was not confirmed by the user."),this.name="WebLlmConsentError"}}class d extends Error{constructor(e){super(`${e} is not supported for tool-calling. The assistant requires function calling; WebLLM supports it only on these models: ${r.join(", ")}.`),this.name="UnsupportedToolCallingModelError"}}class u extends Error{constructor(e){super(e??"Your browser is out of storage for the local model (each model needs ~4 GB of cache). Free up disk space, clear this site's cached data, or switch to a hosted backend, then retry."),this.name="WebLlmStorageError"}}function p(e){return("u">typeof DOMException&&e instanceof DOMException?"QuotaExceededError"===e.name:"object"==typeof e&&null!==e&&"name"in e&&"QuotaExceededError"===e.name)?new u:e}async function m(e){let t,s=function(){let e="u">typeof navigator?navigator.storage:void 0;if(e&&"function"==typeof e.estimate)return e}();if(!s)return;try{t=await s.estimate()}catch{return}let n=t.quota,a=t.usage??0;if("number"==typeof n&&!(n<=0)&&n-a<e.downloadBytes+o){let t=(e.downloadBytes/0x40000000).toFixed(1);throw new u(`Not enough browser storage for ${e.label}: it needs about ${t} GB of free cache space. Free up disk space or clear this site's cached data, then retry — or switch to a hosted backend.`)}}let h=()=>e.A(688);e.s(["CURATED_MODELS",0,i,"createWebLlmProvider",0,function(e={}){var t;let s,o=((t=e.model)?i.find(e=>e.id===t):i[0])??{id:t??"",label:t??"",downloadSize:"?",downloadBytes:0,vram:"?",description:""};if(!r.includes(o.id))throw new d(o.id);let u=e.loadRuntime??h,g=e.hasWebGpu??(()=>n()),x=e.contextWindowSize??8192;async function f(){if(!g())throw new l;if(e.confirmDownload&&!await e.confirmDownload(o))throw new c;await m(o);let t=await u();try{return await t.CreateMLCEngine(o.id,{initProgressCallback:e.onInitProgress?t=>e.onInitProgress?.({progress:t.progress,text:t.text}):void 0},{context_window_size:x})}catch(e){throw p(e)}}return{async complete(e){let t=await (!s&&(s=f().catch(e=>{throw s=void 0,e})),s),n=e.tools.length>0,r=n?function(e){let t=[],s=[];for(let n of e)"system"===n.role?t.push(n.content):s.push(n);if(0===t.length)return[...e];let n=t.join("\n\n"),a=s.findIndex(e=>"user"===e.role);return -1===a?[{role:"user",content:n},...s]:s.map((e,t)=>t!==a?e:{role:"user",content:n+"\n\n"+e.content})}(e.messages):e.messages;try{let s=await t.chat.completions.create({messages:(0,a.toOpenAiMessages)(r),...n?{tools:(0,a.toOpenAiTools)(e.tools),tool_choice:"auto"}:{},stream:!1});return(0,a.parseOpenAiCompletion)(s)}catch(e){throw p(e)}},async unload(){let e=s;if(s=void 0,!e)return;let t=await e.catch(()=>void 0);await t?.unload?.()}}}],36542)},80760,e=>{"use strict";e.s([],60301),e.i(60301);var t=e.i(19594),s=e.i(17422);let n=e=>"number"==typeof e?e:void 0,a=e=>"string"==typeof e?e:void 0,r=s.z.number().int().optional().describe("Start of the time range, epoch milliseconds."),o=s.z.number().int().optional().describe("End of the time range, epoch milliseconds."),i=s.z.number().int().positive().max(500).optional().describe("Grid resolution per axis."),l=s.z.number().int().positive().max(1e3).optional().describe("Maximum rows to return."),c=s.z.string().optional().describe("Restrict to one developer-assigned scene id."),d=s.z.string().optional().describe("Scope the aggregate to a single session id."),u=s.z.number().positive().max(1e3).optional().describe("Voxel size in world units."),p=s.z.number().int().positive().optional().describe("Time-series bucket width, seconds."),m=s.z.string().optional().describe("Restrict to a single event type, e.g. pointer_click."),h=s.z.enum(["mouse","touch","stylus","pen","xr-controller","hand","gaze","transient","other"]).optional().describe("Restrict a pointer/world heatmap to one input source."),g=s.z.enum(["viewer","first-person"]).optional().describe("Camera navigation mode to scope to: 'viewer' (orbit) or 'first-person' (walkable)."),x=s.z.number().nonnegative().max(Math.PI).optional().describe("Rapid-turn threshold in radians (0..π); view turns above this flag motion-sickness risk."),f=s.z.string().min(1).describe('Funnel steps as a JSON-encoded array of ordered step predicates (ADR 0038). Required. Each step is `{ "type": <event_type>, ... }`; e.g. `[{"type":"scene_change","to":"lobby"},{"type":"mesh_interaction","mesh":"buy"}]`.');function b(e){return{since:n(e.since),until:n(e.until)}}let v=[{name:"list_sessions",title:"List recent sessions",description:"Recent sessions with id, visitor, event count, and start/end times.",inputSchema:{since:r,until:o,limit:l},buildRequest:e=>({path:"api/v1/sessions",params:{...b(e),limit:n(e.limit)}})},{name:"pointer_heatmap",title:"2D pointer heatmap",description:"Binned 2D pointer-position heatmap (screen-normalized).",inputSchema:{since:r,until:o,bins:i,scene:c,source:h,session:d},buildRequest:e=>({path:"api/v1/heatmaps/pointer",params:{...b(e),bins:n(e.bins),scene:a(e.scene),source:a(e.source),session:a(e.session)}})},{name:"world_heatmap",title:"3D world-space pointer heatmap",description:"Voxelized world-space pointer heatmap.",inputSchema:{since:r,until:o,cellSize:u,limit:l,scene:c,source:h},buildRequest:e=>({path:"api/v1/heatmaps/world",params:{...b(e),cellSize:n(e.cellSize),limit:n(e.limit),scene:a(e.scene),source:a(e.source)}})},{name:"camera_heatmap",title:"View-direction heatmap",description:"Camera view-direction distribution as spherical bins.",inputSchema:{since:r,until:o,bins:i,scene:c,session:d},buildRequest:e=>({path:"api/v1/heatmaps/camera",params:{...b(e),bins:n(e.bins),scene:a(e.scene),session:a(e.session)}})},{name:"click_rays",title:"View-gated click rays",description:"Clicks ASOF-joined to their nearest camera sample, per voxel and clicked mesh.",inputSchema:{since:r,until:o,cellSize:u,limit:l,scene:c,source:h,session:d},buildRequest:e=>({path:"api/v1/heatmaps/click-rays",params:{...b(e),cellSize:n(e.cellSize),limit:n(e.limit),scene:a(e.scene),source:a(e.source),session:a(e.session)}})},{name:"flow_links",title:"Gaze→mesh flow links",description:"Aggregate links from camera-direction bins to clicked meshes.",inputSchema:{since:r,until:o,bins:i,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/heatmaps/flow",params:{...b(e),bins:n(e.bins),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})},{name:"top_meshes",title:"Most-interacted meshes",description:"Meshes ranked by interaction count.",inputSchema:{since:r,until:o,limit:l,session:d},buildRequest:e=>({path:"api/v1/meshes/top",params:{...b(e),limit:n(e.limit),session:a(e.session)}})},{name:"perf_summary",title:"Rendering performance summary",description:"Sample count and avg/min/p50 FPS over the range.",inputSchema:{since:r,until:o,session:d},buildRequest:e=>({path:"api/v1/perf",params:{...b(e),session:a(e.session)}})},{name:"list_scenes",title:"List active scenes",description:"Distinct developer-assigned scenes with activity.",inputSchema:{since:r,until:o,limit:l},buildRequest:e=>({path:"api/v1/scenes",params:{...b(e),limit:n(e.limit)}})},{name:"timeseries",title:"Event-volume time series",description:"Event-volume buckets over time, with average FPS per bucket.",inputSchema:{since:r,until:o,interval:p,scene:c,type:m},buildRequest:e=>({path:"api/v1/timeseries",params:{...b(e),interval:n(e.interval),scene:a(e.scene),type:a(e.type)}})},{name:"event_counts",title:"Per-event-type counts",description:"Counts per event type over the range (scene-health panel).",inputSchema:{since:r,until:o,scene:c},buildRequest:e=>({path:"api/v1/event-counts",params:{...b(e),scene:a(e.scene)}})},{name:"session_meta",title:"Session descriptor",description:"Coarse descriptor for one session (device/scene/user). No raw event stream.",inputSchema:{sessionId:s.z.string().min(1).describe("The session id to describe.")},buildRequest:e=>({path:`api/v1/sessions/${encodeURIComponent(a(e.sessionId)??"")}/meta`,params:{}})},{name:"scene_representation",title:"Scene representation",description:"Registered proxy geometry (bounds/meshes) for one scene, if any.",inputSchema:{sceneId:s.z.string().min(1).describe("The scene id to fetch.")},buildRequest:e=>({path:`api/v1/scenes/${encodeURIComponent(a(e.sceneId)??"")}/representation`,params:{}})},{name:"funnel",title:"Conversion funnel",description:"Ordered, per-session conversion funnel (ADR 0038): how many sessions reach each caller-supplied step. Steps are a JSON array (see the `steps` argument).",inputSchema:{since:r,until:o,scene:c,cameraMode:g,steps:f},buildRequest:e=>({path:"api/v1/funnel",params:{...b(e),scene:a(e.scene),cameraMode:a(e.cameraMode),steps:a(e.steps)}})},{name:"aggregate_paths",title:"Aggregate desire-line paths",description:"Crowd-level movement routes (ADR 0037): every session's camera path binned onto the ground grid and returned as ordered, session-keyed points for an overlaid route map.",inputSchema:{since:r,until:o,cellSize:u,limit:l,scene:c,cameraMode:g},buildRequest:e=>({path:"api/v1/paths",params:{...b(e),cellSize:n(e.cellSize),limit:n(e.limit),scene:a(e.scene),cameraMode:a(e.cameraMode)}})},{name:"rendering_technology",title:"Rendering-technology breakdown",description:"Rendering-technology mix from session_start.graphics (ADR 0046): session count per (api, backend, api_version, shading_language) — WebGPU vs WebGL2 and shading language.",inputSchema:{since:r,until:o,scene:c,session:d},buildRequest:e=>({path:"api/v1/rendering-technology",params:{...b(e),scene:a(e.scene),session:a(e.session)}})},{name:"xr_rotation",title:"XR head-rotation rate",description:"XR head/view rotation rate (ADR 0048), a motion-sickness proxy: per-session rapid-turn counts over the camera pose stream.",inputSchema:{since:r,until:o,rapidTurn:x,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/xr/rotation",params:{...b(e),rapidTurn:n(e.rapidTurn),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})},{name:"xr_sources",title:"XR input-source usage",description:"XR input-source split (ADR 0048): hand vs. controller vs. gaze usage.",inputSchema:{since:r,until:o,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/xr/sources",params:{...b(e),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})},{name:"xr_abandonment",title:"XR session abandonment",description:"XR session abandonment (ADR 0048): per XR session, its time bounds and event/interaction counts; a short span signals headset drop-off.",inputSchema:{since:r,until:o,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/xr/abandonment",params:{...b(e),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})},{name:"xr_locomotion",title:"XR locomotion & comfort",description:"XR locomotion & comfort (ADR 0048): per XR session, its locomotion-style mix (fly / navigate / teleport + duration) and wall-clock span — a discomfort proxy.",inputSchema:{since:r,until:o,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/xr/locomotion",params:{...b(e),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})}],y=["list_sessions","list_scenes","top_meshes","perf_summary","event_counts","timeseries","camera_heatmap"],w=v.filter(e=>y.includes(e.name));async function k(e){let{provider:t,client:n,signal:a}=e,r=e.tools??v,o=e.maxSteps??8,i=e.forceFinalAnswer??!0,l=e.maxToolResultChars??8e3,c=new Map(r.map(e=>[e.name,e])),d=function(e=v){return e.map(e=>({name:e.name,description:e.description,parameters:s.z.toJSONSchema(s.z.object(e.inputSchema))}))}(r),u=[...e.messages],p=0,m=!1;async function h(){m=!0;let e=[...u,{role:"user",content:"Now answer the user's question directly in plain text, using the tool results already gathered above. Do not call any tools. If the data is insufficient, say so briefly."}],s=await t.complete({messages:e,tools:[],signal:a});return"final"===s.kind?s.content:s.content??""}for(;p<o;){p+=1;let e=await t.complete({messages:u,tools:d,signal:a});if("final"===e.kind){if(""===e.content.trim()&&i&&!m){let e=await h();if(""!==e.trim())return u.push({role:"assistant",content:e}),{content:e,messages:u,steps:p,stoppedOnMaxSteps:!1}}return u.push({role:"assistant",content:e.content}),{content:e.content,messages:u,steps:p,stoppedOnMaxSteps:!1}}for(let t of(u.push({role:"assistant",content:e.content??"",toolCalls:e.toolCalls}),e.toolCalls))u.push(await j(n,c.get(t.name),t,l))}if(i&&!m){let e=await h();if(""!==e.trim())return u.push({role:"assistant",content:e}),{content:e,messages:u,steps:p,stoppedOnMaxSteps:!0}}return{content:"",messages:u,steps:p,stoppedOnMaxSteps:!0}}async function j(e,t,n,a){let r=e=>({role:"tool",toolCallId:n.id,name:n.name,content:e});if(!t)return r(`Error: unknown tool "${n.name}".`);let o=s.z.object(t.inputSchema).safeParse(n.arguments??{});if(!o.success){let e=o.error.issues.map(e=>`${e.path.join(".")||"(root)"}: ${e.message}`).join("; ");return r(`Error: invalid arguments for "${n.name}": ${e}`)}try{let{path:s,params:n}=t.buildRequest(o.data),i=await e.get(s,n);return r(function(e,t){if(e.length<=t)return e;let s=e.length-t;return`${e.slice(0,t)}…[truncated ${s} chars]`}(JSON.stringify(i),a))}catch(t){let e=t instanceof Error?t.message:String(t);return r(`Error: ${e}`)}}var S=e.i(36542),N=e.i(74698),C=e.i(20880);let R=(0,t.createContext)(null),_='You are Uptimizr\'s in-browser analytics assistant. You help a developer understand\ntheir 3D-scene analytics by calling read-only tools against their own collector\'s\nquery API and summarising the results in clear, concise prose.\n\nGuidelines:\n- Use the provided tools to fetch data before answering; never invent numbers.\n- All data is aggregate and privacy-preserving — there are no raw per-session events,\n no PII, and no way to ingest or modify data. Do not claim otherwise.\n- Timestamps are epoch milliseconds. When the user gives a relative range\n ("this week", "last 24h"), convert it to `since`/`until` before calling a tool.\n- Prefer a short, direct answer with the key figures. Call out caveats (small sample\n sizes, missing scenes) when relevant.\n- If a tool returns an error, explain what went wrong and, if useful, try a corrected call.';function A(e=_,t=Date.now()){let s=new Date(t).toISOString(),n=`Current time: ${s} (epoch milliseconds: ${t}). Resolve any relative time range in the question against this — "today" is the current calendar day, "this week" the last 7 days, "last 24h" the preceding 24 hours — into concrete \`since\`/\`until\` epoch-ms arguments.`;return`${e}
|
|
2
|
+
|
|
3
|
+
${n}`}function M(e){return"function"==typeof e.unload}function P(s={}){let{collectorUrl:n,apiKey:a,api:r,systemPrompt:o=_,maxSteps:i=12,confirmDownload:l,persistBackend:c=!0,now:d=()=>Date.now()}=s,u=(0,t.useContext)(R),p=(0,t.useMemo)(()=>r||(n&&a?new C.CollectorApi(n,a):u?.api??null),[r,n,a,u?.api]),[m]=(0,t.useState)(()=>(0,N.isWebGpuAvailable)()),[h,g]=(0,t.useState)(()=>s.backend?s.backend:(0,N.loadBackendConfig)()),[x,f]=(0,t.useState)([]),[b,y]=(0,t.useState)("idle"),[j,z]=(0,t.useState)(null),[q,E]=(0,t.useState)([]),[B,L]=(0,t.useState)(null),[I,D]=(0,t.useState)(null),O=(0,t.useRef)(x);O.current=x;let G=(0,t.useRef)(h);G.current=h;let T=(0,t.useRef)(d);T.current=d;let U=(0,t.useRef)(null),$=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{$.current?.abort();let e=U.current;U.current=null,e&&M(e.provider)&&e.provider.unload().catch(()=>{})},[]);let W=(0,t.useCallback)(e=>{g(e),c&&(0,N.saveBackendConfig)(e)},[c]),H=(0,t.useCallback)(async t=>{if("local"===t.backend){let{createWebLlmProvider:s}=await e.A(86354);return s({model:t.webllm?.model,confirmDownload:l,onInitProgress:e=>{L(e),y(e.progress>=1?"thinking":"initializing")}})}if(!t.hosted)throw Error("Hosted backend selected but not configured (endpoint, key, and model).");let{createHostedProvider:s}=await e.A(45697),{api:n,endpoint:a,apiKey:r,model:o}=t.hosted;return s({api:n,endpoint:a,apiKey:r,model:o})},[l]),F=(0,t.useCallback)(async e=>{let t=JSON.stringify(e),s=U.current;if(s&&s.key===t)return s.provider;s&&M(s.provider)&&s.provider.unload().catch(()=>{});let n=await H(e);return U.current={key:t,provider:n},n},[H]),V=(0,t.useCallback)(async e=>{let t=e.trim();if(!t)return;let s=G.current;if(!p){z(Error("No collector connection. Pass collectorUrl + apiKey or wrap in <UptimizrProvider>.")),y("error");return}if(!s){z(Error("No assistant backend selected. Choose a local or hosted backend first.")),y("error");return}let n={role:"user",content:t},a=O.current,r=0===a.length?[{role:"system",content:A(o,T.current())},n]:[...a,n];f(r),E([]),z(null),L(null),D(null),y("initializing");let l=new AbortController;$.current=l;let c=e=>E(t=>{let s=t.findIndex(e=>"running"===e.status),n=-1===s?void 0:t[s];if(!n)return t;let a=t.slice();return a[s]={...n,status:e},a});try{var d;let e=await F(s);y("thinking");let t=await k({provider:{async complete(t){let s=await e.complete(t);return"tool_calls"===s.kind&&E(e=>[...e,...s.toolCalls.map(e=>({id:e.id,name:e.name,status:"running"}))]),s}},client:{async get(e,t){try{let s=await p.read(e,t);return c("done"),s}catch(e){throw c("error"),e}}},messages:r,tools:(d="local"===s.backend?"core":"full","core"===d?w:v),maxSteps:i,signal:l.signal});f(t.messages),E(e=>e.map(e=>"running"===e.status?{...e,status:"done"}:e)),t.stoppedOnMaxSteps?D({kind:"stopped_on_max_steps",steps:t.steps}):0===t.content.trim().length&&D({kind:"no_answer"}),y("idle")}catch(e){if(l.signal.aborted)return void y("idle");z(e instanceof Error?e:Error(String(e))),y("error")}finally{L(null),$.current===l&&($.current=null)}},[p,o,i,F]),X=(0,t.useCallback)(()=>{$.current?.abort()},[]),J=(0,t.useCallback)(()=>{$.current?.abort(),f([]),E([]),z(null),L(null),D(null),y("idle")},[]);return{messages:x,status:b,error:j,toolActivity:q,initProgress:B,notice:I,backend:h,webGpuAvailable:m,models:S.CURATED_MODELS,isReady:!!p&&!!h,isBusy:"initializing"===b||"thinking"===b,send:V,setBackend:W,cancel:X,reset:J}}var z=e.i(46369);let q=["What are my top meshes this week?","How's my average FPS?","Which scenes had activity today?","How many events in the last 24 hours?","How many sessions this week?"];function E({webGpuAvailable:e,onPick:t}){return(0,z.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,z.jsx)("p",{className:"text-xs text-fg-muted",children:"Choose how the assistant runs. Nothing is loaded or downloaded until you pick — your choice is remembered next time."}),(0,z.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,z.jsxs)("div",{className:`flex flex-col gap-2 rounded-md border border-edge p-3 ${e?"":"opacity-60"}`,children:[(0,z.jsxs)("div",{className:"flex items-center gap-2",children:[(0,z.jsx)("h3",{className:"text-sm font-medium text-fg-hi",children:"Local (in-browser)"}),e&&(0,z.jsx)("span",{className:"rounded-full bg-emerald-500/20 px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-emerald-300",children:"Recommended"})]}),(0,z.jsxs)("p",{className:"text-xs text-fg-muted",children:["Private — ",(0,z.jsx)("strong",{children:"nothing leaves your device"}),". Runs on your GPU. Requires a WebGPU browser with ~5 GB free VRAM and a one-time ~4 GB model download."]}),(0,z.jsx)("button",{type:"button",disabled:!e,onClick:()=>t("local"),className:"mt-auto self-start rounded-md bg-emerald-500/70 px-3 py-1 text-xs text-fg-hi disabled:opacity-50",children:"Use local"}),!e&&(0,z.jsx)("p",{className:"text-[11px] text-fg-muted",children:"Requires a WebGPU browser."})]}),(0,z.jsxs)("div",{className:"flex flex-col gap-2 rounded-md border border-edge p-3",children:[(0,z.jsx)("h3",{className:"text-sm font-medium text-fg-hi",children:"Bring your own hosted key"}),(0,z.jsxs)("p",{className:"text-xs text-fg-muted",children:["Lightweight — no download. You supply an OpenAI-compatible or Anthropic endpoint + key. Your questions and aggregated analytics context are"," ",(0,z.jsx)("strong",{children:"sent to that provider"})," (never raw events or PII)."]}),(0,z.jsx)("button",{type:"button",onClick:()=>t("hosted"),className:"mt-auto self-start rounded-md bg-emerald-500/70 px-3 py-1 text-xs text-fg-hi",children:"Use hosted key"})]})]})]})}function B({backend:e,webGpuAvailable:s,models:n,onChange:a,initialKind:r}){let[o,i]=(0,t.useState)(r??e?.backend??(s?"local":"hosted")),[l,c]=(0,t.useState)(e?.webllm?.model??n[0]?.id??""),[d,u]=(0,t.useState)(e?.hosted?.api??"openai"),[p,m]=(0,t.useState)(e?.hosted?.endpoint??""),[h,g]=(0,t.useState)(e?.hosted?.apiKey??""),[x,f]=(0,t.useState)(e?.hosted?.model??"");return(0,z.jsxs)("fieldset",{className:"flex flex-col gap-2 rounded-md border border-edge p-2 text-xs",children:[(0,z.jsx)("legend",{className:"px-1 text-fg-muted",children:"LLM backend"}),(0,z.jsxs)("label",{className:"flex items-center gap-2",children:[(0,z.jsx)("input",{type:"radio",name:"assistant-backend",checked:"local"===o,disabled:!s,onChange:()=>i("local")}),(0,z.jsxs)("span",{className:s?"text-fg":"text-fg-muted",children:["Local (WebLLM / WebGPU) — runs in your browser, zero egress",!s&&" (WebGPU unavailable)"]})]}),"local"===o&&s&&(0,z.jsxs)("div",{className:"ml-6 flex flex-col gap-1",children:[(0,z.jsxs)("label",{className:"flex items-center gap-2",children:[(0,z.jsx)("span",{className:"text-fg-muted",children:"Model"}),(0,z.jsx)("select",{"aria-label":"Local model",value:l,className:"rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>c(e.target.value),children:n.map(e=>(0,z.jsxs)("option",{value:e.id,children:[e.label," (",e.downloadSize,")"]},e.id))})]}),(0,z.jsx)("button",{type:"button",onClick:()=>a({backend:"local",webllm:{model:l}}),disabled:!l,className:"self-start rounded-md bg-emerald-500/70 px-2 py-0.5 text-fg-hi disabled:opacity-50",children:"Use this model locally"})]}),(0,z.jsxs)("label",{className:"flex items-center gap-2",children:[(0,z.jsx)("input",{type:"radio",name:"assistant-backend",checked:"hosted"===o,onChange:()=>i("hosted")}),(0,z.jsx)("span",{className:"text-fg",children:"Bring your own hosted provider (OpenAI-compatible or Anthropic)"})]}),"hosted"===o&&(0,z.jsxs)("div",{className:"ml-6 flex flex-col gap-1",children:[(0,z.jsxs)("label",{className:"flex items-center gap-2",children:[(0,z.jsx)("span",{className:"w-16 text-fg-muted",children:"API"}),(0,z.jsxs)("select",{"aria-label":"Hosted API",value:d,className:"rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>u(e.target.value),children:[(0,z.jsx)("option",{value:"openai",children:"OpenAI-compatible"}),(0,z.jsx)("option",{value:"anthropic",children:"Anthropic"})]})]}),(0,z.jsxs)("label",{className:"flex items-center gap-2",children:[(0,z.jsx)("span",{className:"w-16 text-fg-muted",children:"Endpoint"}),(0,z.jsx)("input",{type:"url","aria-label":"Endpoint",value:p,placeholder:"https://api.openai.com/v1",className:"flex-1 rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>m(e.target.value)})]}),(0,z.jsxs)("label",{className:"flex items-center gap-2",children:[(0,z.jsx)("span",{className:"w-16 text-fg-muted",children:"API key"}),(0,z.jsx)("input",{type:"password","aria-label":"API key",value:h,className:"flex-1 rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>g(e.target.value)})]}),(0,z.jsxs)("label",{className:"flex items-center gap-2",children:[(0,z.jsx)("span",{className:"w-16 text-fg-muted",children:"Model"}),(0,z.jsx)("input",{type:"text","aria-label":"Hosted model",value:x,placeholder:"gpt-4o-mini",className:"flex-1 rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>f(e.target.value)})]}),(0,z.jsx)("button",{type:"button",onClick:()=>a({backend:"hosted",hosted:{api:d,endpoint:p,apiKey:h,model:x}}),disabled:!p||!h||!x,className:"self-start rounded-md bg-emerald-500/70 px-2 py-0.5 text-fg-hi disabled:opacity-50",children:"Use this provider"})]})]})}function L({backend:e}){let t=e?.backend==="hosted"?"Your prompt and aggregated results are sent to your own provider — never raw events or PII.":"Runs 100% in your browser. Nothing — not your prompt nor your data — leaves this device.";return(0,z.jsx)("p",{className:"text-xs text-fg-muted",children:t})}function I({model:e,onDecision:t}){return(0,z.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Download model",className:"flex flex-col gap-2 rounded-md border border-edge bg-surface p-3 text-xs",children:[(0,z.jsxs)("p",{className:"text-fg",children:["Download ",(0,z.jsx)("strong",{children:e.label})," (",e.downloadSize,", needs ~",e.vram," VRAM)? It runs 100% locally in your browser and nothing leaves this device."]}),(0,z.jsx)("p",{className:"text-fg-muted",children:e.description}),(0,z.jsxs)("div",{className:"flex gap-2",children:[(0,z.jsx)("button",{type:"button",onClick:()=>t(!0),className:"rounded-md bg-emerald-500/70 px-3 py-1 text-fg-hi",children:"Download & run locally"}),(0,z.jsx)("button",{type:"button",onClick:()=>t(!1),className:"rounded-md border border-edge px-3 py-1 text-fg-muted hover:text-fg",children:"Cancel"})]})]})}e.s(["AssistantPanel",0,function({title:e="Analytics assistant",placeholder:s="Ask about your 3D analytics…",className:n,...a}){let[r,o]=(0,t.useState)(null),i=(0,t.useCallback)(e=>new Promise(t=>o({model:e,resolve:t})),[]),{messages:l,status:c,error:d,toolActivity:u,initProgress:p,notice:m,backend:h,webGpuAvailable:g,isBusy:x,isReady:f,send:b,cancel:v,setBackend:y,models:w}=P({...a,confirmDownload:a.confirmDownload??i}),[k,j]=(0,t.useState)(""),[S,N]=(0,t.useState)(!1),[C,R]=(0,t.useState)(null),_=(0,t.useCallback)(e=>{e.preventDefault(),k.trim()&&!x&&(j(""),b(k))},[k,x,b]),A=function(e){let t=[];for(let s of e)"user"===s.role?t.push({role:"user",content:s.content}):"assistant"===s.role&&s.content.trim()&&t.push({role:"assistant",content:s.content});return t}(l),M=null===h,D=(0,t.useRef)(null);(0,t.useEffect)(()=>{let e=D.current;e&&"function"==typeof e.scrollIntoView&&e.scrollIntoView({block:"end"})},[l,c,u,m]);let O=u.some(e=>"running"===e.status),G=!x||p?null:O?"Running analytics…":"initializing"===c?"Loading model…":"Thinking…",T=M||S,U=(0,t.useCallback)(()=>{R(null),N(!0)},[]),$=(0,t.useCallback)(()=>{R(null),N(!1)},[]),W=(0,t.useCallback)(e=>{y(e),R(null),N(!1)},[y]);return(0,z.jsxs)("div",{className:`flex flex-col gap-3 text-sm text-fg ${n??""}`,children:[(0,z.jsxs)("header",{className:"flex items-center justify-between gap-2",children:[(0,z.jsx)("h2",{className:"text-base font-medium text-fg-hi",children:e}),!T&&(0,z.jsx)("button",{type:"button",className:"rounded-md border border-edge px-2 py-1 text-xs text-fg-muted hover:text-fg",onClick:U,children:"Change backend"})]}),T?null===C?(0,z.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,z.jsx)(E,{webGpuAvailable:g,onPick:R}),!M&&(0,z.jsx)("button",{type:"button",onClick:$,className:"self-start text-xs text-fg-muted hover:text-fg",children:"← Back to chat"})]}):(0,z.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,z.jsx)("button",{type:"button",onClick:()=>R(null),className:"self-start text-xs text-fg-muted hover:text-fg",children:"← Choose a different backend"}),(0,z.jsx)(B,{backend:h,initialKind:C,webGpuAvailable:g,models:w,onChange:W})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(L,{backend:h}),(0,z.jsxs)("div",{className:"flex max-h-[24rem] flex-col gap-2 overflow-y-auto",children:[(0,z.jsxs)("ol",{className:"flex min-h-[8rem] flex-col gap-2","aria-label":"Conversation",children:[0===A.length&&(0,z.jsxs)("li",{className:"flex flex-col gap-2 text-xs text-fg-muted",children:[(0,z.jsx)("span",{children:"Ask a question to get started — or try one of these:"}),(0,z.jsx)("div",{className:"flex flex-wrap gap-1.5","aria-label":"Example questions",children:q.map(e=>(0,z.jsx)("button",{type:"button",disabled:x||!f,onClick:()=>void b(e),className:"rounded-full border border-edge px-2.5 py-1 text-left text-fg hover:bg-ink/40 disabled:opacity-50",children:e},e))}),h?.backend==="local"&&(0,z.jsx)("p",{"data-role":"capability-note",children:"The local model answers quick, single-metric questions well. For deeper, multi-step analysis, switch to a hosted backend with your own key via “Change backend”."})]}),A.map((e,t)=>(0,z.jsxs)("li",{className:"user"===e.role?"text-fg-hi":"text-fg","data-role":e.role,children:[(0,z.jsx)("span",{className:"mr-1 text-xs uppercase text-fg-muted",children:"user"===e.role?"You":"Assistant"}),(0,z.jsx)("div",{className:"whitespace-pre-wrap",children:e.content})]},t))]}),(0,z.jsx)("div",{role:"status","aria-live":"polite",children:G&&(0,z.jsxs)("span",{className:"flex items-center gap-2 text-xs text-fg-muted",children:[(0,z.jsx)("span",{"aria-hidden":"true",className:"h-3 w-3 animate-spin rounded-full border-2 border-fg-muted border-t-transparent"}),G]})}),u.length>0&&(0,z.jsx)("ul",{className:"flex flex-col gap-1 text-xs text-fg-muted","aria-label":"Tool activity",children:u.map((e,t)=>(0,z.jsxs)("li",{"data-status":e.status,children:["running"===e.status?"⏳":"error"===e.status?"⚠️":"✓"," ",e.name]},`${e.name}-${t}`))}),m&&!x&&"error"!==c&&(0,z.jsx)("p",{className:"text-xs text-fg-muted","data-role":"notice","data-kind":m.kind,children:"stopped_on_max_steps"===m.kind?`The model kept using tools and didn't produce a written answer (stopped after ${m.steps} steps). Try rephrasing, ask it to summarize the results, or switch to a hosted model for tougher questions.`:"The assistant finished without a text answer. Try rephrasing, or ask it to summarize the results."}),(0,z.jsx)("div",{ref:D,"aria-hidden":"true"})]}),p&&(0,z.jsxs)("div",{className:"flex flex-col gap-1 text-xs text-fg-muted","aria-label":"Model download progress",children:[(0,z.jsx)("span",{children:p.text}),(0,z.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-ink/60",children:(0,z.jsx)("div",{className:"h-full bg-emerald-400",style:{width:`${Math.round(100*p.progress)}%`}})})]}),"error"===c&&d&&(0,z.jsx)("div",{className:"rounded-md bg-rose-500/20 px-2 py-1 text-xs text-rose-300",role:"alert",children:"WebLlmStorageError"===d.name?(0,z.jsxs)("div",{className:"flex flex-col gap-1","data-kind":"storage",children:[(0,z.jsx)("span",{className:"font-medium",children:"Your browser is out of storage for the local model."}),(0,z.jsx)("span",{children:"Each local model caches about 4 GB in this site's browser storage, and trying several models stacks them up. To fix it: free up disk space, clear this site's cached data (browser settings → clear site data / storage), or pick the smallest model — or switch to a hosted backend. Then retry."})]}):(0,z.jsx)("span",{children:d.message})}),(0,z.jsxs)("form",{onSubmit:_,className:"flex items-center gap-2",children:[(0,z.jsx)("input",{type:"text",value:k,onChange:e=>j(e.target.value),placeholder:s,disabled:x,"aria-label":"Message",className:"flex-1 rounded-md border border-edge bg-ink/40 px-2 py-1 text-fg placeholder:text-fg-muted"}),x?(0,z.jsx)("button",{type:"button",onClick:v,className:"rounded-md border border-edge px-3 py-1 text-xs text-fg-muted hover:text-fg",children:"Stop"}):(0,z.jsx)("button",{type:"submit",disabled:!k.trim()||!f,className:"rounded-md bg-emerald-500/70 px-3 py-1 text-xs text-fg-hi disabled:opacity-50",children:"Send"})]})]}),r&&(0,z.jsx)(I,{model:r.model,onDecision:e=>{r.resolve(e),o(null)}})]})},"DEFAULT_SYSTEM_PROMPT",0,_,"composeSystemPrompt",0,A,"useAssistant",0,P],80760)},55810,e=>{e.n(e.i(80760))},688,e=>{e.v(t=>Promise.all(["static/chunks/2x83vs8ns4pww.js"].map(t=>e.l(t))).then(()=>t(21435)))},45697,e=>{e.v(t=>Promise.all(["static/chunks/133glnfos64oo.js"].map(t=>e.l(t))).then(()=>t(44196)))},86354,e=>{e.v(e=>Promise.resolve().then(()=>e(36542)))}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56054,e=>{"use strict";e.s(["HEAT_GRADIENT",0,"linear-gradient(to right, rgb(178,47,38), rgb(224,123,57), rgb(244,200,75))","heatRgb",0,function(e){let t=Math.max(0,Math.min(1,e)),n=[.878,.482,.224],s=(e,t,n)=>[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n];return t<.5?s([.698,.184,.149],n,t/.5):s(n,[.957,.784,.294],(t-.5)/.5)},"percentileMax",0,function(e,t=.95){if(0===e.length)return 1;let n=[...e].sort((e,t)=>e-t),s=Math.max(0,Math.min(1,t))*(n.length-1),i=Math.floor(s),r=Math.ceil(s);return Math.max(1,i===r?n[i]:n[i]+(n[r]-n[i])*(s-i))}])},18637,e=>{"use strict";var t=e.i(46369),n=e.i(56054);e.s(["HeatLegend",0,function({title:e,lowLabel:s="low",highLabel:i="high",note:r}){return(0,t.jsxs)("div",{className:"pointer-events-none absolute bottom-3 left-3 rounded-md border border-edge bg-ink/80 px-3 py-2 text-fg backdrop-blur-sm",children:[(0,t.jsx)("div",{className:"mb-1 text-xs font-medium text-fg",children:e}),(0,t.jsx)("div",{className:"h-2 w-36 rounded-sm",style:{background:n.HEAT_GRADIENT}}),(0,t.jsxs)("div",{className:"mt-1 flex w-36 justify-between text-[10px] text-fg-muted",children:[(0,t.jsx)("span",{children:s}),(0,t.jsx)("span",{children:i})]}),r?(0,t.jsx)("div",{className:"mt-1 max-w-44 text-[10px] leading-tight text-fg-muted",children:r}):null]})}])},60614,e=>{"use strict";async function t(e,t){let n=await e.scenes(t).catch(()=>[]);if(0===n.length)return[];let s=await Promise.all(n.map(t=>e.sceneRepresentation(t.scene_id).catch(()=>null))),i=new Set,r=[];for(let e of s)for(let t of e?.proxy?.meshes??[])i.has(t.name)||(i.add(t.name),r.push(t));return r}e.s(["mergeSceneProxies",0,t])},37215,e=>{"use strict";var t=e.i(46369);let n=(0,t.jsxs)(t.Fragment,{children:["Each ",(0,t.jsx)("strong",{children:"source"})," is a camera ",(0,t.jsx)("em",{children:"gaze-direction bin"})," — a cell on the sphere of where viewers were looking (grouped by azimuth/elevation). Each ",(0,t.jsx)("strong",{children:"target"})," is a"," ",(0,t.jsx)("em",{children:"mesh that was clicked"}),". A ribbon's thickness is how many clicks on that mesh happened while viewers looked from that direction, so you can see which viewpoints drive interaction with which objects. When the scene reports ",(0,t.jsx)("em",{children:"standpoints"}),' (where the viewer stood, §7.8), pick one to gate the flow to clicks made from that vantage — a pin marks it in the scene. "All standpoints" is the aggregate view. Switch to ',(0,t.jsx)("strong",{children:"Two-stage"})," ","for a three-column ",(0,t.jsx)("em",{children:"standpoint → gaze sector → mesh"}),' flow with a birdview minimap; the busiest standpoints/meshes are kept and the tail folds into an "Other" node.']});e.s(["CAMERA_DOME_SUBTITLE",0,"Where the audience looked, mapped onto a sphere — drag to orbit, +/- to zoom, double-click to focus","CAMERA_DOME_TITLE",0,"View-direction dome (3D)","CLICK_RAYS_SUBTITLE",0,"Each click joined to the view it was made from — gate by viewpoint or focus a mesh; double-click to recenter","CLICK_RAYS_TITLE",0,"Click rays (3D)","ERROR_HEATMAP_SUBTITLE",0,"Where errors & engine diagnostics fired, voxel-binned by the camera position at the moment they hit — drag to orbit, double-click to focus","ERROR_HEATMAP_TITLE",0,"Error heatmap (3D)","FLOW_SANKEY_HELP",0,n,"FLOW_SANKEY_SUBTITLE",0,"Direction-bin → mesh links (aggregate), or standpoint → gaze → mesh (two-stage) — double-click to focus","FLOW_SANKEY_TITLE",0,"Flow Sankey (3D)","GAZE_CLICK_SUBTITLE",0,"Where viewers look (gaze) vs. where they act (clicks), voxel-binned in world space — double-click to focus","GAZE_CLICK_TITLE",0,"Gaze vs. click divergence","PERF_HEATMAP_SUBTITLE",0,"Where FPS is bad in your scene — frame_perf samples voxel-binned by camera position; hot = slow. Drag to orbit, +/- to zoom, double-click to focus","PERF_HEATMAP_TITLE",0,"Performance heatmap (3D)","SESSION_REPLAY_TITLE",0,"Session replay","WORLD_HEATMAP_SUBTITLE",0,"Pointer hit-points voxel-binned in world space — drag to orbit, +/- to zoom, double-click to focus","WORLD_HEATMAP_TITLE",0,"World heatmap (3D)","sessionReplaySubtitle",0,function(e){return e?"Following this session live — new camera moves and interactions stream in and the timeline grows. Scrub back to review, then press ● LIVE to return to the edge.":"Scrub the camera path and interaction rays; every click stays marked and glows as the playhead passes it. The color-coded strip marks when each event fired (click to seek)."},"sessionReplayTitle",0,function(e){return e?"Session replay · live":"Session replay (birdview timeline)"}])},20880,e=>{"use strict";class t extends Error{status;constructor(e,t){super(e),this.status=t,this.name="ApiError"}}async function n(e,t,n){let s=e.getReader(),i=new TextDecoder,r="";for(t.addEventListener("abort",()=>void s.cancel().catch(()=>{}));;){let{done:e,value:t}=await s.read();if(e)return;let a=(r+=i.decode(t,{stream:!0})).indexOf("\n\n");for(;a>=0;){let e=r.slice(0,a);r=r.slice(a+2);let t="message",s=[];for(let n of e.split("\n"))!n.startsWith(":")&&(n.startsWith("event:")?t=n.slice(6).trim():n.startsWith("data:")&&s.push(n.slice(5).replace(/^ /,"")));"event"===t&&s.length>0&&n(s.join("\n")),a=r.indexOf("\n\n")}}}function s(e){return e.endsWith("/")?e:`${e}/`}e.s(["ApiError",0,t,"CollectorApi",0,class{baseUrl;apiKey;constructor(e,t){this.baseUrl=e,this.apiKey=t}async get(e,n={}){let i=new URL(e,s(this.baseUrl));for(let[e,t]of Object.entries(n))null!=t&&i.searchParams.set(e,String(t));let r=await fetch(i,{headers:{"x-api-key":this.apiKey},cache:"no-store"});if(!r.ok)throw new t(await r.text().catch(()=>"")||r.statusText,r.status);return await r.json()}read(e,t){return this.get(e,t)}sessions(e){return this.get("api/v1/sessions",e).then(e=>e.map(e=>({...e,events:Number(e.events)})))}pointerHeatmap(e){return this.get("api/v1/heatmaps/pointer",e)}meshUvHeatmap(e){return this.get("api/v1/heatmaps/mesh-uv",e)}cameraHeatmap(e){return this.get("api/v1/heatmaps/camera",e)}viewCoverageHistogram(e){return this.get("api/v1/coverage/view-histogram",e).then(e=>e.map(e=>({bucket:Number(e.bucket??0),sessions:Number(e.sessions??0)})))}topMeshes(e){return this.get("api/v1/meshes/top",e).then(e=>e.map(e=>({...e,count:Number(e.count)})))}meshBlindSpots(e){return this.get("api/v1/meshes/blind-spots",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),visible_ms:Number(e.visible_ms??0),vis_samples:Number(e.vis_samples??0),interactions:Number(e.interactions??0),hover_ms:Number(e.hover_ms??0),hover_episodes:Number(e.hover_episodes??0)})))}meshKinds(e){return this.get("api/v1/meshes/kinds",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),kind:String(e.kind??""),count:Number(e.count??0)})))}reachability(e){return this.get("api/v1/meshes/reachability",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),bucket:Number(e.bucket??0),count:Number(e.count??0),avg_distance:Number(e.avg_distance??0)})))}topMeshesBySource(e){return this.get("api/v1/meshes/sources",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),source:String(e.source??""),count:Number(e.count??0)})))}topMeshesTrend(e){return this.get("api/v1/meshes/trend",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),bucket:Number(e.bucket??0),count:Number(e.count??0)})))}topInputActions(e){return this.get("api/v1/input-actions/top",e).then(e=>e.map(e=>({action:String(e.action??""),source:String(e.source??""),count:Number(e.count??0)})))}perf(e){return this.get("api/v1/perf",e).then(e=>({samples:Number(e.samples??0),avg_fps:Number(e.avg_fps??0),min_fps:Number(e.min_fps??0),p50_fps:Number(e.p50_fps??0)}))}renderScale(e){return this.get("api/v1/perf/render-scale",e).then(e=>{let t=e[0]??{},n=Number(t.downscaled_samples??0),s=Number(t.scale_samples??0);return{samples:Number(t.samples??0),avg_fps:Number(t.avg_fps??0),p50_fps:Number(t.p50_fps??0),avg_render_scale:Number(t.avg_render_scale??0),p50_render_scale:Number(t.p50_render_scale??0),downscaled_samples:n,scale_samples:s,downscaled_share:s>0?n/s:0}})}perfDistribution(e){return this.get("api/v1/perf/distribution",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),samples:Number(t.samples??0),p05_fps:Number(t.p05_fps??0),p50_fps:Number(t.p50_fps??0),p95_fps:Number(t.p95_fps??0)}})}fpsHistogram(e){return this.get("api/v1/perf/fps-histogram",e).then(e=>e.map(e=>({bucket:Number(e.bucket??0),sessions:Number(e.sessions??0)})))}frameTimePercentiles(e){return this.get("api/v1/perf/frame-time",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),samples:Number(t.samples??0),p50_ms:Number(t.p50_ms??0),p95_ms:Number(t.p95_ms??0)}})}jankRate(e){return this.get("api/v1/perf/jank",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),total_long_frames:Number(t.total_long_frames??0),median_rate:Number(t.median_rate??0),worst_decile_rate:Number(t.worst_decile_rate??0)}})}perfChurn(e){return this.get("api/v1/perf/churn",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),churn_sessions:Number(t.churn_sessions??0),fps_churn_sessions:Number(t.fps_churn_sessions??0),stall_churn_sessions:Number(t.stall_churn_sessions??0)}})}perfByDevice(e){return this.get("api/v1/perf/by-device",e).then(e=>e.map(e=>({engine:String(e.engine??""),is_mobile:String(e.is_mobile??""),renderer:String(e.renderer??""),browser:String(e.browser??""),os:String(e.os??""),sessions:Number(e.sessions??0),samples:Number(e.samples??0),p50_fps:Number(e.p50_fps??0)})))}perfByScene(e){return this.get("api/v1/perf/by-scene",e).then(e=>e.map(e=>({scene_id:String(e.scene_id??""),sessions:Number(e.sessions??0),samples:Number(e.samples??0),p50_fps:Number(e.p50_fps??0)})))}resourcePercentiles(e){return this.get("api/v1/perf/resource-percentiles",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),samples:Number(t.samples??0),p50_js_heap_bytes:Number(t.p50_js_heap_bytes??0),p95_js_heap_bytes:Number(t.p95_js_heap_bytes??0),p50_texture_bytes:Number(t.p50_texture_bytes??0),p95_texture_bytes:Number(t.p95_texture_bytes??0),p50_triangles:Number(t.p50_triangles??0),p95_triangles:Number(t.p95_triangles??0)}})}stabilityCounts(e){return this.get("api/v1/perf/stability",e).then(e=>{let t=e[0]??{};return{context_losses:Number(t.context_losses??0),compile_stalls:Number(t.compile_stalls??0),incidents:Number(t.incidents??0)}})}graphicsDiagnosticCounts(e){return this.get("api/v1/graphics-diagnostics",e).then(e=>e.map(e=>({severity:String(e.severity??""),category:String(e.category??""),backend:String(e.backend??""),incidents:Number(e.incidents??0)})))}renderingTechnology(e){return this.get("api/v1/rendering-technology",e).then(e=>e.map(e=>({api:String(e.api??""),backend:String(e.backend??""),apiVersion:String(e.api_version??""),shadingLanguage:String(e.shading_language??""),sessions:Number(e.sessions??0)})))}worldHeatmap(e){return this.get("api/v1/heatmaps/world",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count)})))}gazeHeatmap(e){return this.get("api/v1/heatmaps/gaze",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count)})))}errorHeatmap(e){return this.get("api/v1/heatmaps/errors",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count)})))}worldHeatmapStats(e){return this.get("api/v1/heatmaps/world/stats",e).then(e=>({cellSize:Number(e.cellSize??0),cells:Number(e.cells??0),hits:Number(e.hits??0)}))}gazeHeatmapStats(e){return this.get("api/v1/heatmaps/gaze/stats",e).then(e=>({cellSize:Number(e.cellSize??0),cells:Number(e.cells??0),hits:Number(e.hits??0)}))}cameraPositionHeatmap(e){return this.get("api/v1/heatmaps/position",e).then(e=>e.map(e=>({gx:Number(e.gx),gz:Number(e.gz),avg_y:Number(e.avg_y??0),count:Number(e.count??0)})))}sessionTrajectory(e,t){return this.get(`api/v1/sessions/${encodeURIComponent(e)}/trajectory`,t).then(e=>e.map(e=>({ts:Number(e.ts),x:Number(e.x),y:Number(e.y),z:Number(e.z)})))}aggregatePaths(e){return this.get("api/v1/paths",e).then(e=>e.map(e=>({session_id:String(e.session_id??""),ts:Number(e.ts),gx:Number(e.gx),gz:Number(e.gz)})))}clickRays(e){return this.get("api/v1/heatmaps/click-rays",e).then(e=>e.map(e=>({camVoxel:[Number(e.cam_vx),Number(e.cam_vy),Number(e.cam_vz)],origin:[Number(e.origin_x),Number(e.origin_y),Number(e.origin_z)],hitVoxel:[Number(e.hit_vx),Number(e.hit_vy),Number(e.hit_vz)],hit:[Number(e.hit_x),Number(e.hit_y),Number(e.hit_z)],mesh:String(e.mesh??""),count:Number(e.count)})))}flowHeatmap(e){return this.get("api/v1/heatmaps/flow",e).then(e=>e.map(e=>{let t={azimuth_bin:Number(e.azimuth_bin),elevation_bin:Number(e.elevation_bin),mesh:String(e.mesh??""),count:Number(e.count)};return null!=e.origin_vx&&(t.originVoxel=[Number(e.origin_vx),Number(e.origin_vy),Number(e.origin_vz)],t.origin=[Number(e.origin_x),Number(e.origin_y),Number(e.origin_z)]),t}))}scenes(e){return this.get("api/v1/scenes",e).then(e=>e.map(e=>({...e,events:Number(e.events)})))}timeseries(e){return this.get("api/v1/timeseries",e).then(e=>e.map(e=>({bucket:Number(e.bucket),events:Number(e.events??0),avg_fps:Number(e.avg_fps??0)})))}eventCounts(e){return this.get("api/v1/event-counts",e).then(e=>e.map(e=>({event_type:String(e.event_type),count:Number(e.count??0)})))}funnel(e,t){return this.get("api/v1/funnel",{...t,steps:JSON.stringify(e)}).then(e=>e.map(e=>({step:Number(e.step),sessions:Number(e.sessions??0)})))}sceneRetention(e){return this.get("api/v1/scene-retention",e).then(e=>e.map(e=>({from:String(e.from_scene??""),to:String(e.to_scene??""),sessions:Number(e.sessions??0)})))}loadBounce(e){let{bands:t,...n}=e??{};return this.get("api/v1/load-bounce",{...n,...null!=t&&t.length>0?{bands:t.join(",")}:{}}).then(e=>e.map(e=>({band:Number(e.band??0),sessions:Number(e.sessions??0),bounced:Number(e.bounced??0)})))}variantLeaderboard(e={},t){return this.get("api/v1/variant-leaderboard",{...t,variant:e.variant?JSON.stringify(e.variant):void 0,conversion:e.conversion?JSON.stringify(e.conversion):void 0}).then(e=>e.map(e=>{let t=Number(e.sessions??0),n=Number(e.conversions??0);return{variant:String(e.variant),views:Number(e.views??0),sessions:t,conversions:n,avgDwellMs:Number(e.avg_dwell_ms??0),conversionRate:t>0?n/t:0}}))}coverage(e){return this.get("api/v1/coverage",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count??0)})))}perfHeatmap(e){return this.get("api/v1/heatmaps/perf",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),samples:Number(e.samples??0),avgFps:Number(e.avg_fps??0),minFps:Number(e.min_fps??0)})))}cameraDistance(e){return this.get("api/v1/camera/distance",e).then(e=>e.map(e=>({bucket:Number(e.bucket),count:Number(e.count??0)})))}navigation(e){return this.get("api/v1/navigation",e).then(e=>e.map(e=>({session_id:String(e.session_id??""),segments:Number(e.segments??0),total_distance:Number(e.total_distance??0),active_segments:Number(e.active_segments??0),active_distance:Number(e.active_distance??0)})))}backtrackRatio(e){return this.get("api/v1/backtrack",e).then(e=>e.map(e=>({scene:String(e.scene??""),sessions:Number(e.sessions??0),entries:Number(e.entries??0),revisits:Number(e.revisits??0),backtrack_ratio:Number(e.backtrack_ratio??0)})))}cameraGestures(e){return this.get("api/v1/camera-gestures",e).then(e=>e.map(e=>({kind:String(e.kind??""),gestures:Number(e.gestures??0),total_ms:Number(e.total_ms??0),avg_ms:Number(e.avg_ms??0),max_ms:Number(e.max_ms??0)})))}interactionsBySource(e){return this.get("api/v1/interactions/sources",e).then(e=>e.map(e=>({event_type:String(e.event_type??""),source:String(e.source??""),count:Number(e.count??0),sessions:Number(e.sessions??0)})))}xrLocomotion(e){return this.get("api/v1/xr/locomotion",e).then(e=>e.map(e=>({session_id:String(e.session_id??""),fly_gestures:Number(e.fly_gestures??0),navigate_gestures:Number(e.navigate_gestures??0),teleports:Number(e.teleports??0),locomotion_ms:Number(e.locomotion_ms??0),started_at:String(e.started_at??""),ended_at:String(e.ended_at??"")})))}sessionMeta(e){return this.get(`api/v1/sessions/${encodeURIComponent(e)}/meta`)}async sceneRepresentation(e){try{return await this.get(`api/v1/scenes/${encodeURIComponent(e)}/representation`)}catch(e){if(e instanceof t&&404===e.status)return null;throw e}}async liveToken(){let e=new URL("api/v1/live/token",s(this.baseUrl)),n=await fetch(e,{method:"POST",headers:{"x-api-key":this.apiKey},cache:"no-store"});if(!n.ok)throw new t(await n.text().catch(()=>"")||n.statusText,n.status);return await n.json()}livePresenceUrl(e){let t=new URL("api/v1/live/presence",s(this.baseUrl));return t.searchParams.set("token",e),t.toString()}liveStreamUrl(e,t){let n=new URL("api/v1/live/stream",s(this.baseUrl));return n.searchParams.set("token",e),t&&t.length>0&&n.searchParams.set("types",t.join(",")),n.toString()}liveSessionUrl(e,t){let n=new URL(`api/v1/live/sessions/${encodeURIComponent(t)}`,s(this.baseUrl));return n.searchParams.set("token",e),n.toString()}async sessionEvents(t){let{fetchSessionEvents:n}=await e.A(85461);return n({endpoint:this.baseUrl,apiKey:this.apiKey,sessionId:t})}liveSession(e,t,s){if(!this.apiKey||!this.baseUrl||!e)return s?.onState?.({status:"idle",gated:!1,count:0}),()=>{};let i=!1,r=0,a=null,o=null,m=0,u="idle",l=!1,p=()=>s?.onState?.({status:u,gated:l,count:m}),c=e=>{u=e,p()},h=()=>{if(i)return;c("reconnecting");let e=Math.min(1e3*2**r,15e3);r+=1,o=setTimeout(()=>void b(),e)},b=async()=>{let o;if(!i){c(0===r?"connecting":"reconnecting"),s?.onReset?.(),m=0,p();try{({token:o}=await this.liveToken())}catch{h();return}if(!i){a=new AbortController;try{let s=await fetch(this.liveSessionUrl(o,e),{headers:{accept:"text/event-stream"},cache:"no-store",signal:a.signal});if(403===s.status){l=!0,c("idle");return}if(!s.ok||!s.body)return void h();r=0,c("open"),await n(s.body,a.signal,e=>{try{t(JSON.parse(e)),m+=1,p()}catch{}}),i||h()}catch{i||h()}}}};return b(),()=>{i=!0,o&&clearTimeout(o),a?.abort()}}}])},19761,e=>{"use strict";var t=e.i(17422);let n=t.z.tuple([t.z.number(),t.z.number(),t.z.number()]),s=t.z.tuple([t.z.number(),t.z.number(),t.z.number(),t.z.number()]),i=t.z.tuple([t.z.number(),t.z.number()]),r=t.z.tuple([t.z.number().min(0).max(1),t.z.number().min(0).max(1)]),a=t.z.number().int().nonnegative(),o=t.z.string().regex(/^[A-Za-z0-9._:-]{1,64}$/,"sceneId must be 1-64 chars of [A-Za-z0-9._:-]");function m(e,n){return t.z.record(t.z.string(),e).refine(e=>Object.keys(e).length<=n,{message:`must have at most ${n} entries`})}let u=t.z.object({title:t.z.string().max(512).optional(),referrer:t.z.string().max(2048).optional(),viewport:t.z.tuple([t.z.number(),t.z.number()]).optional(),devicePixelRatio:t.z.number().positive().optional(),language:t.z.string().max(35).optional()}).passthrough(),l={projectId:t.z.string().min(1).max(128),visitorId:t.z.string().optional(),sessionId:t.z.string().min(1).max(128),ts:a,sdkVersion:t.z.string().min(1).max(64),url:t.z.string().max(2048).optional(),sceneId:o.optional(),pageMeta:u.optional()};function p(e,n){return t.z.object({type:t.z.literal(e),...l,...n})}t.z.object(l);let c=t.z.enum(["left","right"]),h=t.z.enum(["y","z"]),b=t.z.object({handedness:c,upAxis:h.default("y"),unitScale:t.z.number().positive().default(1)}).passthrough(),g=t.z.object({engine:t.z.enum(["webgl2","webgpu","webgl","unknown"]).optional(),vendor:t.z.string().optional(),renderer:t.z.string().optional(),maxTextureSize:t.z.number().optional(),hardwareConcurrency:t.z.number().optional(),deviceMemoryGb:t.z.number().optional(),isMobile:t.z.boolean().optional(),browser:t.z.string().optional(),os:t.z.string().optional()}).passthrough(),d=t.z.enum(["arc-rotate","free","follow","static","other"]),v=t.z.object({description:t.z.string().max(256).optional(),cameraType:d.optional(),cameraName:t.z.string().max(128).optional(),meshCount:t.z.number().int().nonnegative().optional()}).passthrough(),_=t.z.union([t.z.string().max(1024),t.z.number(),t.z.boolean(),t.z.null()]),z=t.z.object({id:t.z.string().max(128).optional(),traits:m(_,64).optional()}).passthrough(),f=t.z.object({name:t.z.string(),version:t.z.string().optional(),coordinateSystem:b.optional()}).passthrough(),N=t.z.enum(["webgl","webgl2","webgpu","opengl","opengles","d3d11","d3d12","vulkan","metal","unknown"]),y=t.z.enum(["metal","d3d11","d3d12","vulkan","opengl","opengles","unknown"]),x=t.z.enum(["glsl","glsl-es","wgsl","hlsl","msl","spirv","unknown"]),w=t.z.object({api:N.optional(),backend:y.optional(),apiVersion:t.z.string().optional(),shadingLanguage:x.optional()}).passthrough(),k=p("session_start",{device:g.optional(),graphics:w.optional(),scene:v.optional(),user:z.optional(),connector:f.optional()}),S=p("session_end",{durationMs:t.z.number().nonnegative().optional(),reason:t.z.enum(["unload","hidden","manual","timeout"]).optional()}),j=p("frame_perf",{fps:t.z.number().nonnegative(),frameTimeMs:t.z.number().nonnegative().optional(),frameTimeP95Ms:t.z.number().nonnegative().optional(),frameTimeP99Ms:t.z.number().nonnegative().optional(),longFrames:t.z.number().int().nonnegative().optional(),drawCalls:t.z.number().nonnegative().optional(),dpr:t.z.number().positive().optional(),renderScale:t.z.number().positive().optional(),position:n.optional()}),T=p("camera_sample",{position:n,direction:n,target:n.optional(),fov:t.z.number().optional(),aspect:t.z.number().positive().optional(),near:t.z.number().positive().optional(),hitPoint:n.optional(),hitMesh:t.z.string().optional()}),E=p("node_transform",{nodeId:t.z.string().min(1).max(128),boneId:t.z.string().min(1).max(128).optional(),childPath:t.z.string().min(1).max(512).optional(),position:n,rotation:s,scale:n.optional()}),P=t.z.enum(["mouse","touch","stylus","pen","keyboard","gamepad","xr-controller","hand","gaze","transient","other"]),R=t.z.enum(["left","right","none"]),M=t.z.object({origin:n,direction:n}),A={source:P.optional(),handedness:R.optional(),sourceId:t.z.string().min(1).max(64).optional(),ray:M.optional()},I=p("pointer_move",{screen:r.optional(),hitPoint:n.optional(),hitMesh:t.z.string().optional(),...A}),L=p("pointer_click",{screen:r.optional(),hitPoint:n.optional(),hitMesh:t.z.string().optional(),uv:i.optional(),button:t.z.number().int().min(0).optional(),...A}),U={screen:r.optional(),hitPoint:n.optional(),hitMesh:t.z.string().optional(),button:t.z.number().int().min(0).optional(),...A},C=p("pointer_down",U),H=p("pointer_up",U),O=p("camera_gesture",{kind:t.z.enum(["orbit","pan","dolly","zoom","roll","fly","navigate"]),durationMs:t.z.number().nonnegative(),orbitDeg:t.z.number().nonnegative().optional(),rollDeg:t.z.number().nonnegative().optional(),zoomRatio:t.z.number().positive().optional(),panDist:t.z.number().nonnegative().optional(),...A}),D=t.z.enum(["hover","pick","click","drag","select","squeeze","grab","release","teleport"]),K=p("mesh_interaction",{mesh:t.z.string().min(1).max(256),kind:D,point:n.optional(),uv:i.optional(),...A}),B=t.z.tuple([t.z.number(),t.z.number(),t.z.number(),t.z.number(),t.z.number(),t.z.number()]),W=t.z.literal("aabb"),$=t.z.object({position:n,rotation:s,scale:n}),F=t.z.object({name:t.z.string().max(256),aabb:B,triangles:t.z.number().int().nonnegative().optional(),path:t.z.string().min(1).max(512).optional(),world:$.optional()});t.z.object({version:t.z.literal(1),sceneId:o,kind:W,bounds:B,upAxis:h,handedness:c.optional(),unitScale:t.z.number().positive(),meshes:t.z.array(F).max(1e4),meshCount:t.z.number().int().nonnegative(),contentHash:t.z.string().min(1),capturedAt:a,sdkVersion:t.z.string().min(1)});let V=p("mesh_visibility",{mesh:t.z.string().min(1).max(256),visibleMs:t.z.number().nonnegative(),centeredMs:t.z.number().nonnegative().optional(),maxScreenFraction:t.z.number().min(0).max(1).optional(),bounds:B.optional()}),G=p("hover_dwell",{mesh:t.z.string().min(1),dwellMs:t.z.number().nonnegative(),uv:i.optional(),...A}),Y=t.z.enum(["shader","pipeline","material","other"]),q=p("compile_stall",{durationMs:t.z.number().nonnegative(),phase:Y.optional()}),J=p("resource_sample",{textureBytes:t.z.number().nonnegative().optional(),geometryBytes:t.z.number().nonnegative().optional(),triangles:t.z.number().int().nonnegative().optional(),vertices:t.z.number().int().nonnegative().optional(),jsHeapBytes:t.z.number().nonnegative().optional()}),Z=p("capability_change",{kind:t.z.enum(["graphics-backend","quality","device-recovery","feature","other"]),from:t.z.string().max(64).optional(),to:t.z.string().max(64).optional(),reason:t.z.string().max(120).optional()}),Q=p("asset_load",{name:t.z.string().max(1024),bytes:t.z.number().nonnegative().optional(),loadMs:t.z.number().nonnegative(),ttffMs:t.z.number().nonnegative().optional(),ttiMs:t.z.number().nonnegative().optional()}),X=p("scene_change",{}),ee=p("viewport_resize",{width:t.z.number().positive(),height:t.z.number().positive(),dpr:t.z.number().positive().optional()}),et=p("visibility_change",{state:t.z.enum(["visible","hidden"])}),en=p("focus_change",{focused:t.z.boolean()}),es=p("context_lost",{reason:t.z.string().max(512).optional()}),ei=p("context_restored",{}),er=p("graphics_diagnostic",{severity:t.z.enum(["info","warning","error","fatal"]),category:t.z.enum(["context-loss","validation","out-of-memory","shader-compile","device-lost","fallback"]),backend:N.optional(),message:t.z.string().max(1024).optional(),code:t.z.string().max(64).optional(),count:t.z.number().int().positive().optional(),position:n.optional()}),ea=p("runtime_error",{kind:t.z.enum(["error","unhandledrejection"]),message:t.z.string().max(1024),source:t.z.string().max(1024).optional(),lineno:t.z.number().int().nonnegative().optional(),colno:t.z.number().int().nonnegative().optional(),stack:t.z.string().max(4096).optional(),position:n.optional()}),eo=p("input_action",{action:t.z.string().min(1).max(64),code:t.z.string().min(1).max(64).optional(),button:t.z.number().int().nonnegative().optional(),pressed:t.z.boolean().optional(),...A}),em=t.z.union([t.z.string().max(1024),t.z.number(),t.z.boolean(),t.z.null()]),eu=p("custom",{name:t.z.string().min(1).max(128),props:m(em,64).optional()}),el=t.z.discriminatedUnion("type",[k,S,j,T,E,I,L,C,H,O,K,V,G,q,J,Z,Q,X,ee,et,en,es,ei,er,ea,eo,eu]),ep=t.z.array(el);async function ec(e){let t=e.fetchImpl??fetch,n=`${e.endpoint}/api/v1/sessions/${encodeURIComponent(e.sessionId)}/events`,s=await t(n,{headers:{"x-api-key":e.apiKey}});if(!s.ok)throw Error(`replay fetch failed: ${s.status}`);let i=ep.safeParse(await s.json());if(!i.success)throw Error("replay fetch returned an invalid session payload");return i.data.sort((e,t)=>e.ts-t.ts)}async function*eh(e){let t=e.fetchImpl??fetch,n=`${e.endpoint}/api/v1/sessions/${encodeURIComponent(e.sessionId)}/events`,s=await t(`${n}?format=ndjson`,{headers:{"x-api-key":e.apiKey,accept:"application/x-ndjson"}});if(!s.ok)throw Error(`replay fetch failed: ${s.status}`);if(!(s.headers.get("content-type")??"").includes("application/x-ndjson")){let e=ep.safeParse(await s.json());if(!e.success)throw Error("replay fetch returned an invalid session payload");for(let t of e.data.sort((e,t)=>e.ts-t.ts))yield t;return}if(!s.body)throw Error("replay stream returned no body");let i=0,r=()=>e.onMalformedLine?.(++i),a=s.body.getReader(),o=new TextDecoder,m="",u=function*(e){let t,n=e.trim();if(0===n.length)return;try{t=JSON.parse(n)}catch{r();return}let s=el.safeParse(t);s.success?yield s.data:r()};for(;;){let{done:e,value:t}=await a.read();if(e)break;let n=(m+=o.decode(t,{stream:!0})).indexOf("\n");for(;n>=0;){let e=m.slice(0,n);m=m.slice(n+1),yield*u(e),n=m.indexOf("\n")}}yield*u(m)}e.s(["fetchSessionEvents",0,ec,"fetchSessionEventsStream",0,eh],19761)},85461,e=>{e.v(t=>Promise.all(["static/chunks/0n8n481szj90g.js"].map(t=>e.l(t))).then(()=>t(57092)))},78573,e=>{e.v(t=>Promise.all(["static/chunks/23d-hvrwpixpm.js"].map(t=>e.l(t))).then(()=>t(48939)))},47410,e=>{e.v(t=>Promise.all(["static/chunks/1gaexq_suxai0.js"].map(t=>e.l(t))).then(()=>t(53993)))},70162,e=>{e.v(t=>Promise.all(["static/chunks/0kzw45f61wm3j.js"].map(t=>e.l(t))).then(()=>t(19399)))},21269,e=>{e.v(t=>Promise.all(["static/chunks/1fwsjnd1y-lx_.js"].map(t=>e.l(t))).then(()=>t(39592)))},44113,e=>{e.v(t=>Promise.all(["static/chunks/01fh3_bncbe5u.js"].map(t=>e.l(t))).then(()=>t(76421)))},33015,e=>{e.v(t=>Promise.all(["static/chunks/3oqr294mp1s4a.js"].map(t=>e.l(t))).then(()=>t(55810)))},15867,e=>{e.v(t=>Promise.all(["static/chunks/0l8bfa2xewq69.js"].map(t=>e.l(t))).then(()=>t(94452)))}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,56054,e=>{"use strict";e.s(["HEAT_GRADIENT",0,"linear-gradient(to right, rgb(178,47,38), rgb(224,123,57), rgb(244,200,75))","heatRgb",0,function(e){let t=Math.max(0,Math.min(1,e)),n=[.878,.482,.224],s=(e,t,n)=>[e[0]+(t[0]-e[0])*n,e[1]+(t[1]-e[1])*n,e[2]+(t[2]-e[2])*n];return t<.5?s([.698,.184,.149],n,t/.5):s(n,[.957,.784,.294],(t-.5)/.5)},"percentileMax",0,function(e,t=.95){if(0===e.length)return 1;let n=[...e].sort((e,t)=>e-t),s=Math.max(0,Math.min(1,t))*(n.length-1),i=Math.floor(s),r=Math.ceil(s);return Math.max(1,i===r?n[i]:n[i]+(n[r]-n[i])*(s-i))}])},18637,e=>{"use strict";var t=e.i(46369),n=e.i(56054);e.s(["HeatLegend",0,function({title:e,lowLabel:s="low",highLabel:i="high",note:r}){return(0,t.jsxs)("div",{className:"pointer-events-none absolute bottom-3 left-3 rounded-md border border-edge bg-ink/80 px-3 py-2 text-fg backdrop-blur-sm",children:[(0,t.jsx)("div",{className:"mb-1 text-xs font-medium text-fg",children:e}),(0,t.jsx)("div",{className:"h-2 w-36 rounded-sm",style:{background:n.HEAT_GRADIENT}}),(0,t.jsxs)("div",{className:"mt-1 flex w-36 justify-between text-[10px] text-fg-muted",children:[(0,t.jsx)("span",{children:s}),(0,t.jsx)("span",{children:i})]}),r?(0,t.jsx)("div",{className:"mt-1 max-w-44 text-[10px] leading-tight text-fg-muted",children:r}):null]})}])},60614,e=>{"use strict";async function t(e,t){let n=await e.scenes(t).catch(()=>[]);if(0===n.length)return[];let s=await Promise.all(n.map(t=>e.sceneRepresentation(t.scene_id).catch(()=>null))),i=new Set,r=[];for(let e of s)for(let t of e?.proxy?.meshes??[])i.has(t.name)||(i.add(t.name),r.push(t));return r}e.s(["mergeSceneProxies",0,t])},37215,e=>{"use strict";var t=e.i(46369);let n=(0,t.jsxs)(t.Fragment,{children:["Each ",(0,t.jsx)("strong",{children:"source"})," is a camera ",(0,t.jsx)("em",{children:"gaze-direction bin"})," — a cell on the sphere of where viewers were looking (grouped by azimuth/elevation). Each ",(0,t.jsx)("strong",{children:"target"})," is a"," ",(0,t.jsx)("em",{children:"mesh that was clicked"}),". A ribbon's thickness is how many clicks on that mesh happened while viewers looked from that direction, so you can see which viewpoints drive interaction with which objects. When the scene reports ",(0,t.jsx)("em",{children:"standpoints"}),' (where the viewer stood, §7.8), pick one to gate the flow to clicks made from that vantage — a pin marks it in the scene. "All standpoints" is the aggregate view. Switch to ',(0,t.jsx)("strong",{children:"Two-stage"})," ","for a three-column ",(0,t.jsx)("em",{children:"standpoint → gaze sector → mesh"}),' flow with a birdview minimap; the busiest standpoints/meshes are kept and the tail folds into an "Other" node.']});e.s(["CAMERA_DOME_SUBTITLE",0,"Where the audience looked, mapped onto a sphere — drag to orbit, +/- to zoom, double-click to focus","CAMERA_DOME_TITLE",0,"View-direction dome (3D)","CLICK_RAYS_SUBTITLE",0,"Each click joined to the view it was made from — gate by viewpoint or focus a mesh; double-click to recenter","CLICK_RAYS_TITLE",0,"Click rays (3D)","ERROR_HEATMAP_SUBTITLE",0,"Where errors & engine diagnostics fired, voxel-binned by the camera position at the moment they hit — drag to orbit, double-click to focus","ERROR_HEATMAP_TITLE",0,"Error heatmap (3D)","FLOW_SANKEY_HELP",0,n,"FLOW_SANKEY_SUBTITLE",0,"Direction-bin → mesh links (aggregate), or standpoint → gaze → mesh (two-stage) — double-click to focus","FLOW_SANKEY_TITLE",0,"Flow Sankey (3D)","GAZE_CLICK_SUBTITLE",0,"Where viewers look (gaze) vs. where they act (clicks), voxel-binned in world space — double-click to focus","GAZE_CLICK_TITLE",0,"Gaze vs. click divergence","PERF_HEATMAP_SUBTITLE",0,"Where FPS is bad in your scene — frame_perf samples voxel-binned by camera position; hot = slow. Drag to orbit, +/- to zoom, double-click to focus","PERF_HEATMAP_TITLE",0,"Performance heatmap (3D)","SESSION_REPLAY_TITLE",0,"Session replay","WORLD_HEATMAP_SUBTITLE",0,"Pointer hit-points voxel-binned in world space — drag to orbit, +/- to zoom, double-click to focus","WORLD_HEATMAP_TITLE",0,"World heatmap (3D)","sessionReplaySubtitle",0,function(e){return e?"Following this session live — new camera moves and interactions stream in and the timeline grows. Scrub back to review, then press ● LIVE to return to the edge.":"Scrub the camera path and interaction rays; every click stays marked and glows as the playhead passes it. The color-coded strip marks when each event fired (click to seek)."},"sessionReplayTitle",0,function(e){return e?"Session replay · live":"Session replay (birdview timeline)"}])},20880,e=>{"use strict";class t extends Error{status;constructor(e,t){super(e),this.status=t,this.name="ApiError"}}async function n(e,t,n){let s=e.getReader(),i=new TextDecoder,r="";for(t.addEventListener("abort",()=>void s.cancel().catch(()=>{}));;){let{done:e,value:t}=await s.read();if(e)return;let a=(r+=i.decode(t,{stream:!0})).indexOf("\n\n");for(;a>=0;){let e=r.slice(0,a);r=r.slice(a+2);let t="message",s=[];for(let n of e.split("\n"))!n.startsWith(":")&&(n.startsWith("event:")?t=n.slice(6).trim():n.startsWith("data:")&&s.push(n.slice(5).replace(/^ /,"")));"event"===t&&s.length>0&&n(s.join("\n")),a=r.indexOf("\n\n")}}}function s(e){return e.endsWith("/")?e:`${e}/`}e.s(["ApiError",0,t,"CollectorApi",0,class{baseUrl;apiKey;constructor(e,t){this.baseUrl=e,this.apiKey=t}async get(e,n={}){let i=new URL(e,s(this.baseUrl));for(let[e,t]of Object.entries(n))null!=t&&i.searchParams.set(e,String(t));let r=await fetch(i,{headers:{"x-api-key":this.apiKey},cache:"no-store"});if(!r.ok)throw new t(await r.text().catch(()=>"")||r.statusText,r.status);return await r.json()}read(e,t){return this.get(e,t)}sessions(e){return this.get("api/v1/sessions",e).then(e=>e.map(e=>({...e,events:Number(e.events)})))}pointerHeatmap(e){return this.get("api/v1/heatmaps/pointer",e)}meshUvHeatmap(e){return this.get("api/v1/heatmaps/mesh-uv",e)}cameraHeatmap(e){return this.get("api/v1/heatmaps/camera",e)}viewCoverageHistogram(e){return this.get("api/v1/coverage/view-histogram",e).then(e=>e.map(e=>({bucket:Number(e.bucket??0),sessions:Number(e.sessions??0)})))}topMeshes(e){return this.get("api/v1/meshes/top",e).then(e=>e.map(e=>({...e,count:Number(e.count)})))}meshBlindSpots(e){return this.get("api/v1/meshes/blind-spots",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),visible_ms:Number(e.visible_ms??0),vis_samples:Number(e.vis_samples??0),interactions:Number(e.interactions??0),hover_ms:Number(e.hover_ms??0),hover_episodes:Number(e.hover_episodes??0)})))}meshKinds(e){return this.get("api/v1/meshes/kinds",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),kind:String(e.kind??""),count:Number(e.count??0)})))}reachability(e){return this.get("api/v1/meshes/reachability",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),bucket:Number(e.bucket??0),count:Number(e.count??0),avg_distance:Number(e.avg_distance??0)})))}topMeshesBySource(e){return this.get("api/v1/meshes/sources",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),source:String(e.source??""),count:Number(e.count??0)})))}topMeshesTrend(e){return this.get("api/v1/meshes/trend",e).then(e=>e.map(e=>({mesh:String(e.mesh??""),bucket:Number(e.bucket??0),count:Number(e.count??0)})))}topInputActions(e){return this.get("api/v1/input-actions/top",e).then(e=>e.map(e=>({action:String(e.action??""),source:String(e.source??""),count:Number(e.count??0)})))}perf(e){return this.get("api/v1/perf",e).then(e=>({samples:Number(e.samples??0),avg_fps:Number(e.avg_fps??0),min_fps:Number(e.min_fps??0),p50_fps:Number(e.p50_fps??0)}))}renderScale(e){return this.get("api/v1/perf/render-scale",e).then(e=>{let t=e[0]??{},n=Number(t.downscaled_samples??0),s=Number(t.scale_samples??0);return{samples:Number(t.samples??0),avg_fps:Number(t.avg_fps??0),p50_fps:Number(t.p50_fps??0),avg_render_scale:Number(t.avg_render_scale??0),p50_render_scale:Number(t.p50_render_scale??0),downscaled_samples:n,scale_samples:s,downscaled_share:s>0?n/s:0}})}perfDistribution(e){return this.get("api/v1/perf/distribution",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),samples:Number(t.samples??0),p05_fps:Number(t.p05_fps??0),p50_fps:Number(t.p50_fps??0),p95_fps:Number(t.p95_fps??0)}})}fpsHistogram(e){return this.get("api/v1/perf/fps-histogram",e).then(e=>e.map(e=>({bucket:Number(e.bucket??0),sessions:Number(e.sessions??0)})))}frameTimePercentiles(e){return this.get("api/v1/perf/frame-time",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),samples:Number(t.samples??0),p50_ms:Number(t.p50_ms??0),p95_ms:Number(t.p95_ms??0)}})}jankRate(e){return this.get("api/v1/perf/jank",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),total_long_frames:Number(t.total_long_frames??0),median_rate:Number(t.median_rate??0),worst_decile_rate:Number(t.worst_decile_rate??0)}})}perfChurn(e){return this.get("api/v1/perf/churn",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),churn_sessions:Number(t.churn_sessions??0),fps_churn_sessions:Number(t.fps_churn_sessions??0),stall_churn_sessions:Number(t.stall_churn_sessions??0)}})}perfByDevice(e){return this.get("api/v1/perf/by-device",e).then(e=>e.map(e=>({engine:String(e.engine??""),is_mobile:String(e.is_mobile??""),renderer:String(e.renderer??""),browser:String(e.browser??""),os:String(e.os??""),sessions:Number(e.sessions??0),samples:Number(e.samples??0),p50_fps:Number(e.p50_fps??0)})))}perfByScene(e){return this.get("api/v1/perf/by-scene",e).then(e=>e.map(e=>({scene_id:String(e.scene_id??""),sessions:Number(e.sessions??0),samples:Number(e.samples??0),p50_fps:Number(e.p50_fps??0)})))}resourcePercentiles(e){return this.get("api/v1/perf/resource-percentiles",e).then(e=>{let t=e[0]??{};return{sessions:Number(t.sessions??0),samples:Number(t.samples??0),p50_js_heap_bytes:Number(t.p50_js_heap_bytes??0),p95_js_heap_bytes:Number(t.p95_js_heap_bytes??0),p50_texture_bytes:Number(t.p50_texture_bytes??0),p95_texture_bytes:Number(t.p95_texture_bytes??0),p50_triangles:Number(t.p50_triangles??0),p95_triangles:Number(t.p95_triangles??0)}})}stabilityCounts(e){return this.get("api/v1/perf/stability",e).then(e=>{let t=e[0]??{};return{context_losses:Number(t.context_losses??0),compile_stalls:Number(t.compile_stalls??0),incidents:Number(t.incidents??0)}})}graphicsDiagnosticCounts(e){return this.get("api/v1/graphics-diagnostics",e).then(e=>e.map(e=>({severity:String(e.severity??""),category:String(e.category??""),backend:String(e.backend??""),incidents:Number(e.incidents??0)})))}renderingTechnology(e){return this.get("api/v1/rendering-technology",e).then(e=>e.map(e=>({api:String(e.api??""),backend:String(e.backend??""),apiVersion:String(e.api_version??""),shadingLanguage:String(e.shading_language??""),sessions:Number(e.sessions??0)})))}worldHeatmap(e){return this.get("api/v1/heatmaps/world",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count)})))}gazeHeatmap(e){return this.get("api/v1/heatmaps/gaze",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count)})))}errorHeatmap(e){return this.get("api/v1/heatmaps/errors",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count)})))}worldHeatmapStats(e){return this.get("api/v1/heatmaps/world/stats",e).then(e=>({cellSize:Number(e.cellSize??0),cells:Number(e.cells??0),hits:Number(e.hits??0)}))}gazeHeatmapStats(e){return this.get("api/v1/heatmaps/gaze/stats",e).then(e=>({cellSize:Number(e.cellSize??0),cells:Number(e.cells??0),hits:Number(e.hits??0)}))}cameraPositionHeatmap(e){return this.get("api/v1/heatmaps/position",e).then(e=>e.map(e=>({gx:Number(e.gx),gz:Number(e.gz),avg_y:Number(e.avg_y??0),count:Number(e.count??0)})))}sessionTrajectory(e,t){return this.get(`api/v1/sessions/${encodeURIComponent(e)}/trajectory`,t).then(e=>e.map(e=>({ts:Number(e.ts),x:Number(e.x),y:Number(e.y),z:Number(e.z)})))}aggregatePaths(e){return this.get("api/v1/paths",e).then(e=>e.map(e=>({session_id:String(e.session_id??""),ts:Number(e.ts),gx:Number(e.gx),gz:Number(e.gz)})))}clickRays(e){return this.get("api/v1/heatmaps/click-rays",e).then(e=>e.map(e=>({camVoxel:[Number(e.cam_vx),Number(e.cam_vy),Number(e.cam_vz)],origin:[Number(e.origin_x),Number(e.origin_y),Number(e.origin_z)],hitVoxel:[Number(e.hit_vx),Number(e.hit_vy),Number(e.hit_vz)],hit:[Number(e.hit_x),Number(e.hit_y),Number(e.hit_z)],mesh:String(e.mesh??""),count:Number(e.count)})))}flowHeatmap(e){return this.get("api/v1/heatmaps/flow",e).then(e=>e.map(e=>{let t={azimuth_bin:Number(e.azimuth_bin),elevation_bin:Number(e.elevation_bin),mesh:String(e.mesh??""),count:Number(e.count)};return null!=e.origin_vx&&(t.originVoxel=[Number(e.origin_vx),Number(e.origin_vy),Number(e.origin_vz)],t.origin=[Number(e.origin_x),Number(e.origin_y),Number(e.origin_z)]),t}))}scenes(e){return this.get("api/v1/scenes",e).then(e=>e.map(e=>({...e,events:Number(e.events)})))}timeseries(e){return this.get("api/v1/timeseries",e).then(e=>e.map(e=>({bucket:Number(e.bucket),events:Number(e.events??0),avg_fps:Number(e.avg_fps??0)})))}eventCounts(e){return this.get("api/v1/event-counts",e).then(e=>e.map(e=>({event_type:String(e.event_type),count:Number(e.count??0)})))}funnel(e,t){return this.get("api/v1/funnel",{...t,steps:JSON.stringify(e)}).then(e=>e.map(e=>({step:Number(e.step),sessions:Number(e.sessions??0)})))}sceneRetention(e){return this.get("api/v1/scene-retention",e).then(e=>e.map(e=>({from:String(e.from_scene??""),to:String(e.to_scene??""),sessions:Number(e.sessions??0)})))}loadBounce(e){let{bands:t,...n}=e??{};return this.get("api/v1/load-bounce",{...n,...null!=t&&t.length>0?{bands:t.join(",")}:{}}).then(e=>e.map(e=>({band:Number(e.band??0),sessions:Number(e.sessions??0),bounced:Number(e.bounced??0)})))}variantLeaderboard(e={},t){return this.get("api/v1/variant-leaderboard",{...t,variant:e.variant?JSON.stringify(e.variant):void 0,conversion:e.conversion?JSON.stringify(e.conversion):void 0}).then(e=>e.map(e=>{let t=Number(e.sessions??0),n=Number(e.conversions??0);return{variant:String(e.variant),views:Number(e.views??0),sessions:t,conversions:n,avgDwellMs:Number(e.avg_dwell_ms??0),conversionRate:t>0?n/t:0}}))}coverage(e){return this.get("api/v1/coverage",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),count:Number(e.count??0)})))}perfHeatmap(e){return this.get("api/v1/heatmaps/perf",e).then(e=>e.map(e=>({vx:Number(e.vx),vy:Number(e.vy),vz:Number(e.vz),samples:Number(e.samples??0),avgFps:Number(e.avg_fps??0),minFps:Number(e.min_fps??0)})))}cameraDistance(e){return this.get("api/v1/camera/distance",e).then(e=>e.map(e=>({bucket:Number(e.bucket),count:Number(e.count??0)})))}navigation(e){return this.get("api/v1/navigation",e).then(e=>e.map(e=>({session_id:String(e.session_id??""),segments:Number(e.segments??0),total_distance:Number(e.total_distance??0),active_segments:Number(e.active_segments??0),active_distance:Number(e.active_distance??0)})))}backtrackRatio(e){return this.get("api/v1/backtrack",e).then(e=>e.map(e=>({scene:String(e.scene??""),sessions:Number(e.sessions??0),entries:Number(e.entries??0),revisits:Number(e.revisits??0),backtrack_ratio:Number(e.backtrack_ratio??0)})))}cameraGestures(e){return this.get("api/v1/camera-gestures",e).then(e=>e.map(e=>({kind:String(e.kind??""),gestures:Number(e.gestures??0),total_ms:Number(e.total_ms??0),avg_ms:Number(e.avg_ms??0),max_ms:Number(e.max_ms??0)})))}interactionsBySource(e){return this.get("api/v1/interactions/sources",e).then(e=>e.map(e=>({event_type:String(e.event_type??""),source:String(e.source??""),count:Number(e.count??0),sessions:Number(e.sessions??0)})))}xrLocomotion(e){return this.get("api/v1/xr/locomotion",e).then(e=>e.map(e=>({session_id:String(e.session_id??""),fly_gestures:Number(e.fly_gestures??0),navigate_gestures:Number(e.navigate_gestures??0),teleports:Number(e.teleports??0),locomotion_ms:Number(e.locomotion_ms??0),started_at:String(e.started_at??""),ended_at:String(e.ended_at??"")})))}sessionMeta(e){return this.get(`api/v1/sessions/${encodeURIComponent(e)}/meta`)}async sceneRepresentation(e){try{return await this.get(`api/v1/scenes/${encodeURIComponent(e)}/representation`)}catch(e){if(e instanceof t&&404===e.status)return null;throw e}}async liveToken(){let e=new URL("api/v1/live/token",s(this.baseUrl)),n=await fetch(e,{method:"POST",headers:{"x-api-key":this.apiKey},cache:"no-store"});if(!n.ok)throw new t(await n.text().catch(()=>"")||n.statusText,n.status);return await n.json()}livePresenceUrl(e){let t=new URL("api/v1/live/presence",s(this.baseUrl));return t.searchParams.set("token",e),t.toString()}liveStreamUrl(e,t){let n=new URL("api/v1/live/stream",s(this.baseUrl));return n.searchParams.set("token",e),t&&t.length>0&&n.searchParams.set("types",t.join(",")),n.toString()}liveSessionUrl(e,t){let n=new URL(`api/v1/live/sessions/${encodeURIComponent(t)}`,s(this.baseUrl));return n.searchParams.set("token",e),n.toString()}async sessionEvents(t){let{fetchSessionEvents:n}=await e.A(85461);return n({endpoint:this.baseUrl,apiKey:this.apiKey,sessionId:t})}liveSession(e,t,s){if(!this.apiKey||!this.baseUrl||!e)return s?.onState?.({status:"idle",gated:!1,count:0}),()=>{};let i=!1,r=0,a=null,o=null,m=0,u="idle",l=!1,p=()=>s?.onState?.({status:u,gated:l,count:m}),c=e=>{u=e,p()},h=()=>{if(i)return;c("reconnecting");let e=Math.min(1e3*2**r,15e3);r+=1,o=setTimeout(()=>void b(),e)},b=async()=>{let o;if(!i){c(0===r?"connecting":"reconnecting"),s?.onReset?.(),m=0,p();try{({token:o}=await this.liveToken())}catch{h();return}if(!i){a=new AbortController;try{let s=await fetch(this.liveSessionUrl(o,e),{headers:{accept:"text/event-stream"},cache:"no-store",signal:a.signal});if(403===s.status){l=!0,c("idle");return}if(!s.ok||!s.body)return void h();r=0,c("open"),await n(s.body,a.signal,e=>{try{t(JSON.parse(e)),m+=1,p()}catch{}}),i||h()}catch{i||h()}}}};return b(),()=>{i=!0,o&&clearTimeout(o),a?.abort()}}}])},19761,e=>{"use strict";var t=e.i(17422);let n=t.z.tuple([t.z.number(),t.z.number(),t.z.number()]),s=t.z.tuple([t.z.number(),t.z.number(),t.z.number(),t.z.number()]),i=t.z.tuple([t.z.number(),t.z.number()]),r=t.z.tuple([t.z.number().min(0).max(1),t.z.number().min(0).max(1)]),a=t.z.number().int().nonnegative(),o=t.z.string().regex(/^[A-Za-z0-9._:-]{1,64}$/,"sceneId must be 1-64 chars of [A-Za-z0-9._:-]");function m(e,n){return t.z.record(t.z.string(),e).refine(e=>Object.keys(e).length<=n,{message:`must have at most ${n} entries`})}let u=t.z.object({title:t.z.string().max(512).optional(),referrer:t.z.string().max(2048).optional(),viewport:t.z.tuple([t.z.number(),t.z.number()]).optional(),devicePixelRatio:t.z.number().positive().optional(),language:t.z.string().max(35).optional()}).passthrough(),l={projectId:t.z.string().min(1).max(128),visitorId:t.z.string().optional(),sessionId:t.z.string().min(1).max(128),ts:a,sdkVersion:t.z.string().min(1).max(64),url:t.z.string().max(2048).optional(),sceneId:o.optional(),pageMeta:u.optional()};function p(e,n){return t.z.object({type:t.z.literal(e),...l,...n})}t.z.object(l);let c=t.z.enum(["left","right"]),h=t.z.enum(["y","z"]),b=t.z.object({handedness:c,upAxis:h.default("y"),unitScale:t.z.number().positive().default(1)}).passthrough(),g=t.z.object({engine:t.z.enum(["webgl2","webgpu","webgl","unknown"]).optional(),vendor:t.z.string().optional(),renderer:t.z.string().optional(),maxTextureSize:t.z.number().optional(),hardwareConcurrency:t.z.number().optional(),deviceMemoryGb:t.z.number().optional(),isMobile:t.z.boolean().optional(),browser:t.z.string().optional(),os:t.z.string().optional()}).passthrough(),d=t.z.enum(["arc-rotate","free","follow","static","other"]),v=t.z.object({description:t.z.string().max(256).optional(),cameraType:d.optional(),cameraName:t.z.string().max(128).optional(),meshCount:t.z.number().int().nonnegative().optional()}).passthrough(),_=t.z.union([t.z.string().max(1024),t.z.number(),t.z.boolean(),t.z.null()]),z=t.z.object({id:t.z.string().max(128).optional(),traits:m(_,64).optional()}).passthrough(),f=t.z.object({name:t.z.string(),version:t.z.string().optional(),coordinateSystem:b.optional()}).passthrough(),N=t.z.enum(["webgl","webgl2","webgpu","opengl","opengles","d3d11","d3d12","vulkan","metal","unknown"]),y=t.z.enum(["metal","d3d11","d3d12","vulkan","opengl","opengles","unknown"]),x=t.z.enum(["glsl","glsl-es","wgsl","hlsl","msl","spirv","unknown"]),w=t.z.object({api:N.optional(),backend:y.optional(),apiVersion:t.z.string().optional(),shadingLanguage:x.optional()}).passthrough(),k=p("session_start",{device:g.optional(),graphics:w.optional(),scene:v.optional(),user:z.optional(),connector:f.optional()}),S=p("session_end",{durationMs:t.z.number().nonnegative().optional(),reason:t.z.enum(["unload","hidden","manual","timeout"]).optional()}),j=p("frame_perf",{fps:t.z.number().nonnegative(),frameTimeMs:t.z.number().nonnegative().optional(),frameTimeP95Ms:t.z.number().nonnegative().optional(),frameTimeP99Ms:t.z.number().nonnegative().optional(),longFrames:t.z.number().int().nonnegative().optional(),drawCalls:t.z.number().nonnegative().optional(),dpr:t.z.number().positive().optional(),renderScale:t.z.number().positive().optional(),position:n.optional()}),T=p("camera_sample",{position:n,direction:n,target:n.optional(),fov:t.z.number().optional(),aspect:t.z.number().positive().optional(),near:t.z.number().positive().optional(),hitPoint:n.optional(),hitMesh:t.z.string().optional()}),E=p("node_transform",{nodeId:t.z.string().min(1).max(128),boneId:t.z.string().min(1).max(128).optional(),childPath:t.z.string().min(1).max(512).optional(),position:n,rotation:s,scale:n.optional()}),P=t.z.enum(["mouse","touch","stylus","pen","keyboard","gamepad","xr-controller","hand","gaze","transient","other"]),R=t.z.enum(["left","right","none"]),M=t.z.object({origin:n,direction:n}),A={source:P.optional(),handedness:R.optional(),sourceId:t.z.string().min(1).max(64).optional(),ray:M.optional()},I=p("pointer_move",{screen:r.optional(),hitPoint:n.optional(),hitMesh:t.z.string().optional(),...A}),L=p("pointer_click",{screen:r.optional(),hitPoint:n.optional(),hitMesh:t.z.string().optional(),uv:i.optional(),button:t.z.number().int().min(0).optional(),...A}),U={screen:r.optional(),hitPoint:n.optional(),hitMesh:t.z.string().optional(),button:t.z.number().int().min(0).optional(),...A},C=p("pointer_down",U),H=p("pointer_up",U),O=p("camera_gesture",{kind:t.z.enum(["orbit","pan","dolly","zoom","roll","fly","navigate"]),durationMs:t.z.number().nonnegative(),orbitDeg:t.z.number().nonnegative().optional(),rollDeg:t.z.number().nonnegative().optional(),zoomRatio:t.z.number().positive().optional(),panDist:t.z.number().nonnegative().optional(),...A}),D=t.z.enum(["hover","pick","click","drag","select","squeeze","grab","release","teleport"]),K=p("mesh_interaction",{mesh:t.z.string().min(1).max(256),kind:D,point:n.optional(),uv:i.optional(),...A}),B=t.z.tuple([t.z.number(),t.z.number(),t.z.number(),t.z.number(),t.z.number(),t.z.number()]),W=t.z.literal("aabb"),$=t.z.object({position:n,rotation:s,scale:n}),F=t.z.object({name:t.z.string().max(256),aabb:B,triangles:t.z.number().int().nonnegative().optional(),path:t.z.string().min(1).max(512).optional(),world:$.optional()});t.z.object({version:t.z.literal(1),sceneId:o,kind:W,bounds:B,upAxis:h,handedness:c.optional(),unitScale:t.z.number().positive(),meshes:t.z.array(F).max(1e4),meshCount:t.z.number().int().nonnegative(),contentHash:t.z.string().min(1),capturedAt:a,sdkVersion:t.z.string().min(1)});let V=p("mesh_visibility",{mesh:t.z.string().min(1).max(256),visibleMs:t.z.number().nonnegative(),centeredMs:t.z.number().nonnegative().optional(),maxScreenFraction:t.z.number().min(0).max(1).optional(),bounds:B.optional()}),G=p("hover_dwell",{mesh:t.z.string().min(1),dwellMs:t.z.number().nonnegative(),uv:i.optional(),...A}),Y=t.z.enum(["shader","pipeline","material","other"]),q=p("compile_stall",{durationMs:t.z.number().nonnegative(),phase:Y.optional()}),J=p("resource_sample",{textureBytes:t.z.number().nonnegative().optional(),geometryBytes:t.z.number().nonnegative().optional(),triangles:t.z.number().int().nonnegative().optional(),vertices:t.z.number().int().nonnegative().optional(),jsHeapBytes:t.z.number().nonnegative().optional()}),Z=p("capability_change",{kind:t.z.enum(["graphics-backend","quality","device-recovery","feature","other"]),from:t.z.string().max(64).optional(),to:t.z.string().max(64).optional(),reason:t.z.string().max(120).optional()}),Q=p("asset_load",{name:t.z.string().max(1024),bytes:t.z.number().nonnegative().optional(),loadMs:t.z.number().nonnegative(),ttffMs:t.z.number().nonnegative().optional(),ttiMs:t.z.number().nonnegative().optional()}),X=p("scene_change",{}),ee=p("viewport_resize",{width:t.z.number().positive(),height:t.z.number().positive(),dpr:t.z.number().positive().optional()}),et=p("visibility_change",{state:t.z.enum(["visible","hidden"])}),en=p("focus_change",{focused:t.z.boolean()}),es=p("context_lost",{reason:t.z.string().max(512).optional()}),ei=p("context_restored",{}),er=p("graphics_diagnostic",{severity:t.z.enum(["info","warning","error","fatal"]),category:t.z.enum(["context-loss","validation","out-of-memory","shader-compile","device-lost","fallback"]),backend:N.optional(),message:t.z.string().max(1024).optional(),code:t.z.string().max(64).optional(),count:t.z.number().int().positive().optional(),position:n.optional()}),ea=p("runtime_error",{kind:t.z.enum(["error","unhandledrejection"]),message:t.z.string().max(1024),source:t.z.string().max(1024).optional(),lineno:t.z.number().int().nonnegative().optional(),colno:t.z.number().int().nonnegative().optional(),stack:t.z.string().max(4096).optional(),position:n.optional()}),eo=p("input_action",{action:t.z.string().min(1).max(64),code:t.z.string().min(1).max(64).optional(),button:t.z.number().int().nonnegative().optional(),pressed:t.z.boolean().optional(),...A}),em=t.z.union([t.z.string().max(1024),t.z.number(),t.z.boolean(),t.z.null()]),eu=p("custom",{name:t.z.string().min(1).max(128),props:m(em,64).optional()}),el=t.z.discriminatedUnion("type",[k,S,j,T,E,I,L,C,H,O,K,V,G,q,J,Z,Q,X,ee,et,en,es,ei,er,ea,eo,eu]),ep=t.z.array(el);async function ec(e){let t=e.fetchImpl??fetch,n=`${e.endpoint}/api/v1/sessions/${encodeURIComponent(e.sessionId)}/events`,s=await t(n,{headers:{"x-api-key":e.apiKey}});if(!s.ok)throw Error(`replay fetch failed: ${s.status}`);let i=ep.safeParse(await s.json());if(!i.success)throw Error("replay fetch returned an invalid session payload");return i.data.sort((e,t)=>e.ts-t.ts)}async function*eh(e){let t=e.fetchImpl??fetch,n=`${e.endpoint}/api/v1/sessions/${encodeURIComponent(e.sessionId)}/events`,s=await t(`${n}?format=ndjson`,{headers:{"x-api-key":e.apiKey,accept:"application/x-ndjson"}});if(!s.ok)throw Error(`replay fetch failed: ${s.status}`);if(!(s.headers.get("content-type")??"").includes("application/x-ndjson")){let e=ep.safeParse(await s.json());if(!e.success)throw Error("replay fetch returned an invalid session payload");for(let t of e.data.sort((e,t)=>e.ts-t.ts))yield t;return}if(!s.body)throw Error("replay stream returned no body");let i=0,r=()=>e.onMalformedLine?.(++i),a=s.body.getReader(),o=new TextDecoder,m="",u=function*(e){let t,n=e.trim();if(0===n.length)return;try{t=JSON.parse(n)}catch{r();return}let s=el.safeParse(t);s.success?yield s.data:r()};for(;;){let{done:e,value:t}=await a.read();if(e)break;let n=(m+=o.decode(t,{stream:!0})).indexOf("\n");for(;n>=0;){let e=m.slice(0,n);m=m.slice(n+1),yield*u(e),n=m.indexOf("\n")}}yield*u(m)}e.s(["fetchSessionEvents",0,ec,"fetchSessionEventsStream",0,eh],19761)},85461,e=>{e.v(t=>Promise.all(["static/chunks/0n8n481szj90g.js"].map(t=>e.l(t))).then(()=>t(57092)))},78573,e=>{e.v(t=>Promise.all(["static/chunks/23d-hvrwpixpm.js"].map(t=>e.l(t))).then(()=>t(48939)))},47410,e=>{e.v(t=>Promise.all(["static/chunks/1gaexq_suxai0.js"].map(t=>e.l(t))).then(()=>t(53993)))},70162,e=>{e.v(t=>Promise.all(["static/chunks/0kzw45f61wm3j.js"].map(t=>e.l(t))).then(()=>t(19399)))},21269,e=>{e.v(t=>Promise.all(["static/chunks/1fwsjnd1y-lx_.js"].map(t=>e.l(t))).then(()=>t(39592)))},44113,e=>{e.v(t=>Promise.all(["static/chunks/01fh3_bncbe5u.js"].map(t=>e.l(t))).then(()=>t(76421)))},33015,e=>{e.v(t=>Promise.all(["static/chunks/3oyuoqr8y2g9r.js"].map(t=>e.l(t))).then(()=>t(55810)))},15867,e=>{e.v(t=>Promise.all(["static/chunks/0l8bfa2xewq69.js"].map(t=>e.l(t))).then(()=>t(94452)))}]);
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
8:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"ViewportBoundary"]
|
|
7
7
|
a:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"MetadataBoundary"]
|
|
8
8
|
c:I[56872,["/_next/static/chunks/0s1jghzw8jufz.js"],"default",1]
|
|
9
|
-
:HL["/_next/static/chunks/
|
|
10
|
-
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
9
|
+
:HL["/_next/static/chunks/2hghi41nhdww2.css","style"]
|
|
10
|
+
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0s1jghzw8jufz.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","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":[["$","$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":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","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":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
11
11
|
d:[]
|
|
12
12
|
7:"$Wd"
|
|
13
13
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
3:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
5:I[39259,["/_next/static/chunks/0s1jghzw8jufz.js"],"IconMark"]
|
|
6
|
-
0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Uptimizr — 3D Scene Analytics"}],["$","meta","1",{"name":"description","content":"Open-source analytics dashboard for 3D scenes."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.08h29dad3pcxg.svg","sizes":"any","type":"image/svg+xml"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Uptimizr — 3D Scene Analytics"}],["$","meta","1",{"name":"description","content":"Open-source analytics dashboard for 3D scenes."}],["$","link","2",{"rel":"icon","href":"/icon.svg?icon.08h29dad3pcxg.svg","sizes":"any","type":"image/svg+xml"}],["$","$L5","3",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[89788,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
3
3
|
3:I[14405,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
4
|
-
:HL["/_next/static/chunks/
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
4
|
+
:HL["/_next/static/chunks/2hghi41nhdww2.css","style"]
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0s1jghzw8jufz.js","async":true}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"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."}]}]]}]}]],[]]}]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
2
|
2:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"OutletBoundary"]
|
|
3
3
|
3:"$Sreact.suspense"
|
|
4
|
-
0:{"rsc":["$","$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,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
4
|
+
0:{"rsc":["$","$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,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
5
5
|
4:null
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
2:I[89788,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
3
3
|
3:I[14405,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
4
4
|
4:[]
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:HL["/_next/static/chunks/
|
|
2
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
1
|
+
:HL["/_next/static/chunks/2hghi41nhdww2.css","style"]
|
|
2
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"UgXxCZvX6DcLoCaAHvGbP"}
|
package/out/_not-found.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2hghi41nhdww2.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/2569rrrffvm2w.js"/><script src="/_next/static/chunks/19dp8nr4uygg2.js" async=""></script><script src="/_next/static/chunks/3mpe7c3iyxn5h.js" async=""></script><script src="/_next/static/chunks/turbopack-3r8yn0j92tqw_.js" async=""></script><script src="/_next/static/chunks/0s1jghzw8jufz.js" async=""></script><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>404: This page could not be found.</title><title>Uptimizr — 3D Scene Analytics</title><meta name="description" content="Open-source analytics dashboard for 3D scenes."/><link rel="icon" href="/icon.svg?icon.08h29dad3pcxg.svg" sizes="any" type="image/svg+xml"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.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/2569rrrffvm2w.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[89788,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"default\"]\n3:I[14405,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"default\"]\n4:I[17419,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n8:I[17419,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"ViewportBoundary\"]\na:I[17419,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"MetadataBoundary\"]\nc:I[56872,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2hghi41nhdww2.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2hghi41nhdww2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0s1jghzw8jufz.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable\",\"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\":[[\"$\",\"$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\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style\",\"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\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,null]},null,false,\"$@7\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2hghi41nhdww2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"UgXxCZvX6DcLoCaAHvGbP\"}\n"])</script><script>self.__next_f.push([1,"d:[]\n7:\"$Wd\"\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\"}]]\n"])</script><script>self.__next_f.push([1,"e:I[39259,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"IconMark\"]\n6:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Uptimizr — 3D Scene Analytics\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Open-source analytics dashboard for 3D scenes.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.08h29dad3pcxg.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$Le\",\"3\",{}]]\n"])</script></body></html>
|
package/out/_not-found.txt
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
8:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"ViewportBoundary"]
|
|
7
7
|
a:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"MetadataBoundary"]
|
|
8
8
|
c:I[56872,["/_next/static/chunks/0s1jghzw8jufz.js"],"default",1]
|
|
9
|
-
:HL["/_next/static/chunks/
|
|
10
|
-
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
9
|
+
:HL["/_next/static/chunks/2hghi41nhdww2.css","style"]
|
|
10
|
+
0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0s1jghzw8jufz.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","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":[["$","$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":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","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":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
11
11
|
d:[]
|
|
12
12
|
7:"$Wd"
|
|
13
13
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/out/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/logo.svg"/><link rel="stylesheet" href="/_next/static/chunks/
|
|
1
|
+
<!DOCTYPE html><html lang="en" class="space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/logo.svg"/><link rel="stylesheet" href="/_next/static/chunks/2hghi41nhdww2.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/2569rrrffvm2w.js"/><script src="/_next/static/chunks/19dp8nr4uygg2.js" async=""></script><script src="/_next/static/chunks/3mpe7c3iyxn5h.js" async=""></script><script src="/_next/static/chunks/turbopack-3r8yn0j92tqw_.js" async=""></script><script src="/_next/static/chunks/0s1jghzw8jufz.js" async=""></script><script src="/_next/static/chunks/3rpm-1ryf073k.js" async=""></script><script src="/_next/static/chunks/1-4v8oivkgnyl.js" async=""></script><script src="/_next/static/chunks/34845aqksy1dl.js" async=""></script><meta name="next-size-adjust" content=""/><title>Uptimizr — 3D Scene Analytics</title><meta name="description" content="Open-source analytics dashboard for 3D scenes."/><link rel="icon" href="/icon.svg?icon.08h29dad3pcxg.svg" sizes="any" type="image/svg+xml"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><main class="mx-auto max-w-6xl px-6 py-8"><header class="mb-6 flex items-center gap-3"><img src="/logo.svg" alt="Uptimizr" width="36" height="36" class="h-9 w-9 shrink-0"/><div><h1 class="font-display text-2xl font-bold text-fg-hi">Uptimizr</h1><p class="text-sm text-fg-muted">Analytics for 3D scenes — open-source collector.</p></div></header><form class="mb-6 flex flex-wrap items-end gap-3 rounded-xl border border-edge bg-panel p-4"><label class="flex flex-1 flex-col gap-1 text-xs text-fg-muted">Collector URL<input class="min-w-56 rounded-md border border-edge bg-ink px-3 py-2 text-sm text-fg outline-none focus:border-saffron" placeholder="http://localhost:4318" value="http://localhost:4318"/></label><label class="flex flex-1 flex-col gap-1 text-xs text-fg-muted">Project API key<input class="min-w-56 rounded-md border border-edge bg-ink px-3 py-2 text-sm text-fg outline-none focus:border-saffron" type="password" placeholder="utk_…" value=""/></label><button type="submit" class="rounded-md bg-amber px-4 py-2 text-sm font-medium text-ink transition hover:bg-ember disabled:opacity-50">Load</button></form><p class="text-sm text-fg-muted">Enter your collector URL and a project API key, then load to view analytics.</p></main><!--$--><!--/$--><script src="/_next/static/chunks/2569rrrffvm2w.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[89788,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"default\"]\n3:I[14405,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"default\"]\n4:I[28718,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"ClientPageRoot\"]\n5:I[14936,[\"/_next/static/chunks/0s1jghzw8jufz.js\",\"/_next/static/chunks/3rpm-1ryf073k.js\",\"/_next/static/chunks/1-4v8oivkgnyl.js\",\"/_next/static/chunks/34845aqksy1dl.js\"],\"default\"]\n8:I[17419,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[17419,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"ViewportBoundary\"]\nd:I[17419,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"MetadataBoundary\"]\nf:I[56872,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/2hghi41nhdww2.css\",\"style\"]\n:HL[\"/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2hghi41nhdww2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0s1jghzw8jufz.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable\",\"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\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{\"Component\":\"$5\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@6\",\"$@7\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/3rpm-1ryf073k.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/1-4v8oivkgnyl.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/34845aqksy1dl.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2hghi41nhdww2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"UgXxCZvX6DcLoCaAHvGbP\"}\n"])</script><script>self.__next_f.push([1,"6:{}\n7:\"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[39259,[\"/_next/static/chunks/0s1jghzw8jufz.js\"],\"IconMark\"]\na:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Uptimizr — 3D Scene Analytics\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Open-source analytics dashboard for 3D scenes.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.svg?icon.08h29dad3pcxg.svg\",\"sizes\":\"any\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L10\",\"3\",{}]]\n"])</script></body></html>
|
package/out/index.txt
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
2:I[89788,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
3
3
|
3:I[14405,["/_next/static/chunks/0s1jghzw8jufz.js"],"default"]
|
|
4
4
|
4:I[28718,["/_next/static/chunks/0s1jghzw8jufz.js"],"ClientPageRoot"]
|
|
5
|
-
5:I[14936,["/_next/static/chunks/0s1jghzw8jufz.js","/_next/static/chunks/
|
|
5
|
+
5:I[14936,["/_next/static/chunks/0s1jghzw8jufz.js","/_next/static/chunks/3rpm-1ryf073k.js","/_next/static/chunks/1-4v8oivkgnyl.js","/_next/static/chunks/34845aqksy1dl.js"],"default"]
|
|
6
6
|
8:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"OutletBoundary"]
|
|
7
7
|
9:"$Sreact.suspense"
|
|
8
8
|
b:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"ViewportBoundary"]
|
|
9
9
|
d:I[17419,["/_next/static/chunks/0s1jghzw8jufz.js"],"MetadataBoundary"]
|
|
10
10
|
f:I[56872,["/_next/static/chunks/0s1jghzw8jufz.js"],"default",1]
|
|
11
|
-
:HL["/_next/static/chunks/
|
|
11
|
+
:HL["/_next/static/chunks/2hghi41nhdww2.css","style"]
|
|
12
12
|
:HL["/_next/static/media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
13
13
|
:HL["/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
|
-
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
14
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0s1jghzw8jufz.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"space_grotesk_59d6dcf5-module__z_Ctiq__variable jetbrains_mono_38c99671-module__5Dhsuq__variable","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":[["$","$1","c",{"children":[["$","$L4",null,{"Component":"$5","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@6","$@7"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/3rpm-1ryf073k.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/1-4v8oivkgnyl.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/34845aqksy1dl.js","async":true,"nonce":"$undefined"}]],["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Le"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2hghi41nhdww2.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"UgXxCZvX6DcLoCaAHvGbP"}
|
|
15
15
|
6:{}
|
|
16
16
|
7:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
|
|
17
17
|
c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uptimizr/dashboard",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"description": "Uptimizr analytics dashboard — a static-export SPA that reads the collector query API. Serve it standalone, all-in-one via the collector, or drop the assets on any static host.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"uptimizr",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"react": "^19.2.7",
|
|
44
44
|
"react-dom": "^19.2.7",
|
|
45
45
|
"@uptimizr/heatmap": "0.1.3",
|
|
46
|
-
"@uptimizr/react": "0.
|
|
46
|
+
"@uptimizr/react": "0.12.0",
|
|
47
47
|
"@uptimizr/replay": "0.2.4"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,44196,t=>{"use strict";var e=t.i(35651);class o extends Error{status;constructor(t,e){super(t),this.status=e,this.name="HostedProviderError"}}function n(t,e){let o=t.length;for(;o>0&&"/"===t[o-1];)o--;let n=t.slice(0,o);return n.endsWith(e)?n:`${n}${e}`}async function s(t,o,s){let a=n(t.endpoint,"/chat/completions"),r={model:t.model,messages:(0,e.toOpenAiMessages)(s.messages),tools:(0,e.toOpenAiTools)(s.tools),tool_choice:"auto"},c=await o(a,{method:"POST",headers:{"content-type":"application/json",authorization:`Bearer ${t.apiKey}`},body:JSON.stringify(r),signal:s.signal}),l=await i(c);return(0,e.parseOpenAiCompletion)(l)}async function a(t,e,o){let s,a,r,c=n(t.endpoint,"/messages"),l=function(t,e){let o=[],n=[];for(let e of t)switch(e.role){case"system":o.push(e.content);break;case"user":n.push({role:"user",content:[{type:"text",text:e.content}]});break;case"assistant":{let t=[];for(let o of(e.content&&t.push({type:"text",text:e.content}),e.toolCalls??[])){var s;t.push({type:"tool_use",id:(s=o).id,name:s.name,input:s.arguments??{}})}n.push({role:"assistant",content:t});break}case"tool":n.push({role:"user",content:[{type:"tool_result",tool_use_id:e.toolCallId,content:e.content}]})}return{...o.length>0?{system:o.join("\n\n")}:{},messages:n,tools:e.map(t=>({name:t.name,description:t.description,input_schema:t.parameters}))}}(o.messages,o.tools),p={model:t.model,max_tokens:t.maxTokens??1024,...l},u=await e(c,{method:"POST",headers:{"content-type":"application/json","x-api-key":t.apiKey,"anthropic-version":t.anthropicVersion??"2023-06-01","anthropic-dangerous-direct-browser-access":"true"},body:JSON.stringify(p),signal:o.signal});return a=(s=(await i(u)).content??[]).filter(t=>"tool_use"===t.type).map(t=>({id:t.id,name:t.name,arguments:t.input??{}})),r=s.filter(t=>"text"===t.type).map(t=>t.text).join(""),a.length>0?{kind:"tool_calls",toolCalls:a,...r?{content:r}:{}}:{kind:"final",content:r}}async function i(t){if(!t.ok)throw new o(await t.text().catch(()=>"")||t.statusText,t.status);return t.json()}t.s(["createHostedProvider",0,function(t){let e=t.fetchImpl??fetch;return{complete:o=>"anthropic"===t.api?a(t,e,o):s(t,e,o)}}],44196)}]);
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.1gepa_7fcx9fm.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.2eksvhm1z0jwa.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.2cyn07wtgehh0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_59d6dcf5-module__z_Ctiq__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_59d6dcf5-module__z_Ctiq__variable{--font-space-grotesk:"Space Grotesk", "Space Grotesk Fallback"}
|
|
2
|
-
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_38c99671-module__5Dhsuq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_38c99671-module__5Dhsuq__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
|
|
3
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, monospace;--color-red-300:#ffa3a3;--color-red-400:#ff6568;--color-red-900:#82181a;--color-red-950:#460809;--color-amber-300:#ffd236;--color-amber-400:#fcbb00;--color-amber-500:#f99c00;--color-emerald-300:#5ee9b5;--color-emerald-400:#00d294;--color-emerald-500:#00bb7f;--color-sky-400:#00bcfe;--color-sky-500:#00a5ef;--color-fuchsia-300:#f2a9ff;--color-fuchsia-400:#ec6cff;--color-fuchsia-500:#e12afb;--color-rose-300:#ffa2ae;--color-rose-400:#ff667f;--color-rose-500:#ff2357;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--tracking-wide:.025em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-ink:#161210;--color-panel:#201913;--color-edge:#34291f;--color-fg-hi:#f4eadf;--color-fg:#d8c8b8;--color-fg-muted:#a8917c;--color-saffron:#f4c84b;--color-amber:#eda63e;--color-ember:#e07b39;--font-display:var(--font-space-grotesk), system-ui, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@supports (color:lab(0% 0 0)){:root,:host{--color-red-300:lab(76.5514% 36.422 15.5335);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-900:lab(28.5139% 44.5539 29.0463);--color-red-950:lab(13.003% 29.04 16.7519);--color-amber-300:lab(86.4156% 6.13147 78.3961);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-emerald-300:lab(83.9203% -48.7124 13.8849);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-sky-400:lab(70.687% -23.6078 -45.9483);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-fuchsia-300:lab(78.5378% 39.3533 -32.9615);--color-fuchsia-400:lab(66.1178% 66.0652 -52.4733);--color-fuchsia-500:lab(56.4256% 83.132 -64.639);--color-rose-300:lab(76.6339% 38.3549 9.68835);--color-rose-400:lab(64.4125% 63.0291 19.2068);--color-rose-500:lab(56.101% 79.4328 31.4532)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-y-1{inset-block:var(--spacing)}.top-0{top:0}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-6{top:calc(var(--spacing) * 6)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.bottom-3{bottom:calc(var(--spacing) * 3)}.left-0{left:0}.left-1\/2{left:50%}.left-3{left:calc(var(--spacing) * 3)}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-auto{margin-top:auto}.mr-1{margin-right:var(--spacing)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-8{margin-left:calc(var(--spacing) * 8)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-27\.5{height:calc(var(--spacing) * 27.5)}.h-full{height:100%}.max-h-64{max-height:calc(var(--spacing) * 64)}.min-h-\[8rem\]{min-height:8rem}.min-h-\[12rem\]{min-height:12rem}.w-1{width:var(--spacing)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-36{width:calc(var(--spacing) * 36)}.w-37\.5{width:calc(var(--spacing) * 37.5)}.w-64{width:calc(var(--spacing) * 64)}.w-full{width:100%}.w-px{width:1px}.max-w-6xl{max-width:var(--container-6xl)}.max-w-44{max-width:calc(var(--spacing) * 44)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-\[12rem\]{max-width:12rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[20rem\]{max-width:20rem}.min-w-0{min-width:0}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-56{min-width:calc(var(--spacing) * 56)}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.cursor-crosshair{cursor:crosshair}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber{border-color:var(--color-amber)}.border-amber\/40{border-color:#eda63e66}@supports (color:color-mix(in lab, red, red)){.border-amber\/40{border-color:color-mix(in oklab, var(--color-amber) 40%, transparent)}}.border-amber\/60{border-color:#eda63e99}@supports (color:color-mix(in lab, red, red)){.border-amber\/60{border-color:color-mix(in oklab, var(--color-amber) 60%, transparent)}}.border-edge{border-color:var(--color-edge)}.border-ink\/40{border-color:#16121066}@supports (color:color-mix(in lab, red, red)){.border-ink\/40{border-color:color-mix(in oklab, var(--color-ink) 40%, transparent)}}.border-ink\/60{border-color:#16121099}@supports (color:color-mix(in lab, red, red)){.border-ink\/60{border-color:color-mix(in oklab, var(--color-ink) 60%, transparent)}}.border-red-900\/60{border-color:#82181a99}@supports (color:color-mix(in lab, red, red)){.border-red-900\/60{border-color:color-mix(in oklab, var(--color-red-900) 60%, transparent)}}.border-transparent{border-color:#0000}.bg-\[\#38bdf8\]{background-color:#38bdf8}.bg-\[\#f4c84b\]{background-color:#f4c84b}.bg-amber{background-color:var(--color-amber)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-500\/70{background-color:#f99c00b3}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/70{background-color:color-mix(in oklab, var(--color-amber-500) 70%, transparent)}}.bg-amber\/10{background-color:#eda63e1a}@supports (color:color-mix(in lab, red, red)){.bg-amber\/10{background-color:color-mix(in oklab, var(--color-amber) 10%, transparent)}}.bg-amber\/15{background-color:#eda63e26}@supports (color:color-mix(in lab, red, red)){.bg-amber\/15{background-color:color-mix(in oklab, var(--color-amber) 15%, transparent)}}.bg-amber\/30{background-color:#eda63e4d}@supports (color:color-mix(in lab, red, red)){.bg-amber\/30{background-color:color-mix(in oklab, var(--color-amber) 30%, transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/20{background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.bg-emerald-500\/70{background-color:#00bb7fb3}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/70{background-color:color-mix(in oklab, var(--color-emerald-500) 70%, transparent)}}.bg-fg-muted{background-color:var(--color-fg-muted)}.bg-fg\/15{background-color:#d8c8b826}@supports (color:color-mix(in lab, red, red)){.bg-fg\/15{background-color:color-mix(in oklab, var(--color-fg) 15%, transparent)}}.bg-fg\/50{background-color:#d8c8b880}@supports (color:color-mix(in lab, red, red)){.bg-fg\/50{background-color:color-mix(in oklab, var(--color-fg) 50%, transparent)}}.bg-fuchsia-400\/30{background-color:#ec6cff4d}@supports (color:color-mix(in lab, red, red)){.bg-fuchsia-400\/30{background-color:color-mix(in oklab, var(--color-fuchsia-400) 30%, transparent)}}.bg-ink{background-color:var(--color-ink)}.bg-ink\/40{background-color:#16121066}@supports (color:color-mix(in lab, red, red)){.bg-ink\/40{background-color:color-mix(in oklab, var(--color-ink) 40%, transparent)}}.bg-ink\/50{background-color:#16121080}@supports (color:color-mix(in lab, red, red)){.bg-ink\/50{background-color:color-mix(in oklab, var(--color-ink) 50%, transparent)}}.bg-ink\/60{background-color:#16121099}@supports (color:color-mix(in lab, red, red)){.bg-ink\/60{background-color:color-mix(in oklab, var(--color-ink) 60%, transparent)}}.bg-ink\/80{background-color:#161210cc}@supports (color:color-mix(in lab, red, red)){.bg-ink\/80{background-color:color-mix(in oklab, var(--color-ink) 80%, transparent)}}.bg-ink\/90{background-color:#161210e6}@supports (color:color-mix(in lab, red, red)){.bg-ink\/90{background-color:color-mix(in oklab, var(--color-ink) 90%, transparent)}}.bg-ink\/95{background-color:#161210f2}@supports (color:color-mix(in lab, red, red)){.bg-ink\/95{background-color:color-mix(in oklab, var(--color-ink) 95%, transparent)}}.bg-panel{background-color:var(--color-panel)}.bg-panel\/60{background-color:#20191399}@supports (color:color-mix(in lab, red, red)){.bg-panel\/60{background-color:color-mix(in oklab, var(--color-panel) 60%, transparent)}}.bg-red-950\/40{background-color:#46080966}@supports (color:color-mix(in lab, red, red)){.bg-red-950\/40{background-color:color-mix(in oklab, var(--color-red-950) 40%, transparent)}}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-500\/20{background-color:#ff235733}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/20{background-color:color-mix(in oklab, var(--color-rose-500) 20%, transparent)}}.bg-rose-500\/70{background-color:#ff2357b3}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/70{background-color:color-mix(in oklab, var(--color-rose-500) 70%, transparent)}}.bg-saffron{background-color:var(--color-saffron)}.bg-sky-400\/70{background-color:#00bcfeb3}@supports (color:color-mix(in lab, red, red)){.bg-sky-400\/70{background-color:color-mix(in oklab, var(--color-sky-400) 70%, transparent)}}.bg-sky-500\/70{background-color:#00a5efb3}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/70{background-color:color-mix(in oklab, var(--color-sky-500) 70%, transparent)}}.bg-transparent{background-color:#0000}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/5{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-1{padding-top:var(--spacing)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber{color:var(--color-amber)}.text-amber-300{color:var(--color-amber-300)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-fg{color:var(--color-fg)}.text-fg-hi{color:var(--color-fg-hi)}.text-fg-muted{color:var(--color-fg-muted)}.text-fg-muted\/40{color:#a8917c66}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\/40{color:color-mix(in oklab, var(--color-fg-muted) 40%, transparent)}}.text-fuchsia-300{color:var(--color-fuchsia-300)}.text-ink{color:var(--color-ink)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-saffron{color:var(--color-saffron)}.text-white{color:var(--color-white)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline-offset-2{text-underline-offset:2px}.accent-amber{accent-color:var(--color-amber)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-amber\/30{--tw-shadow-color:#eda63e4d}@supports (color:color-mix(in lab, red, red)){.shadow-amber\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-amber) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/20{--tw-shadow-color:#0003}@supports (color:color-mix(in lab, red, red)){.shadow-black\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-fuchsia-500\/30{--tw-shadow-color:#e12afb4d}@supports (color:color-mix(in lab, red, red)){.shadow-fuchsia-500\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-fuchsia-500) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-amber{--tw-ring-color:var(--color-amber)}.ring-amber\/30{--tw-ring-color:#eda63e4d}@supports (color:color-mix(in lab, red, red)){.ring-amber\/30{--tw-ring-color:color-mix(in oklab, var(--color-amber) 30%, transparent)}}.ring-fuchsia-300{--tw-ring-color:var(--color-fuchsia-300)}.ring-fuchsia-400\/30{--tw-ring-color:#ec6cff4d}@supports (color:color-mix(in lab, red, red)){.ring-fuchsia-400\/30{--tw-ring-color:color-mix(in oklab, var(--color-fuchsia-400) 30%, transparent)}}.ring-rose-400\/40{--tw-ring-color:#ff667f66}@supports (color:color-mix(in lab, red, red)){.ring-rose-400\/40{--tw-ring-color:color-mix(in oklab, var(--color-rose-400) 40%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.group-focus-within\:opacity-100:is(:where(.group):focus-within *){opacity:1}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\:text-fg-muted::placeholder{color:var(--color-fg-muted)}.first\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.last\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}@media (hover:hover){.hover\:border-amber:hover{border-color:var(--color-amber)}.hover\:border-amber\/60:hover{border-color:#eda63e99}@supports (color:color-mix(in lab, red, red)){.hover\:border-amber\/60:hover{border-color:color-mix(in oklab, var(--color-amber) 60%, transparent)}}.hover\:border-edge:hover{border-color:var(--color-edge)}.hover\:bg-ember:hover{background-color:var(--color-ember)}.hover\:bg-ink:hover{background-color:var(--color-ink)}.hover\:text-amber:hover{color:var(--color-amber)}.hover\:text-fg:hover{color:var(--color-fg)}.hover\:text-fg-hi:hover{color:var(--color-fg-hi)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-saffron:focus{border-color:var(--color-saffron)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-amber:focus{--tw-ring-color:var(--color-amber)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:p-8{padding:calc(var(--spacing) * 8)}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background-color:var(--color-ink);color:var(--color-fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:var(--font-body)}h1,h2,h3,h4{font-family:var(--font-display)}code,kbd,samp,pre{font-family:var(--font-mono)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,35651,e=>{"use strict";function t(e){return{id:e.id,type:"function",function:{name:e.name,arguments:JSON.stringify(e.arguments??{})}}}e.s(["parseOpenAiCompletion",0,function(e){let t=e.choices?.[0]?.message,s=t?.tool_calls??[],n=t?.content??"";return s.length>0?{kind:"tool_calls",toolCalls:s.map(e=>({id:e.id,name:e.function.name,arguments:function(e){if(!e)return{};try{let t=JSON.parse(e);return t&&"object"==typeof t?t:{}}catch{return{}}}(e.function.arguments)})),...n?{content:n}:{}}:{kind:"final",content:n}},"toOpenAiMessages",0,function(e){return e.map(e=>{switch(e.role){case"assistant":return{role:"assistant",content:e.content,...e.toolCalls&&e.toolCalls.length>0?{tool_calls:e.toolCalls.map(t)}:{}};case"tool":return{role:"tool",content:e.content,tool_call_id:e.toolCallId,name:e.name};default:return{role:e.role,content:e.content}}})},"toOpenAiTools",0,function(e){return e.map(e=>({type:"function",function:{name:e.name,description:e.description,parameters:e.parameters}}))}])},36542,74698,e=>{"use strict";let t="uptimizr.assistant.backend";function s(){try{return globalThis.localStorage}catch{return}}function n(e=globalThis.navigator){return!!(e&&"gpu"in e&&e.gpu)}e.s(["isWebGpuAvailable",0,n,"loadBackendConfig",0,function(e=s()){let n;if(!e)return null;try{n=e.getItem(t)}catch{return null}if(!n)return null;try{var a;let e=JSON.parse(n);if(!e||"object"!=typeof e||(a=e.backend,"local"!==a&&"hosted"!==a))return null;return e}catch{return null}},"saveBackendConfig",0,function(e,n=s()){if(n)try{n.setItem(t,JSON.stringify(e))}catch{}}],74698);var a=e.i(35651);let i=["Hermes-2-Pro-Llama-3-8B-q4f16_1-MLC","Hermes-2-Pro-Llama-3-8B-q4f32_1-MLC","Hermes-2-Pro-Mistral-7B-q4f16_1-MLC","Hermes-3-Llama-3.1-8B-q4f32_1-MLC","Hermes-3-Llama-3.1-8B-q4f16_1-MLC"],r=[{id:"Hermes-2-Pro-Mistral-7B-q4f16_1-MLC",label:"Hermes 2 Pro (Mistral 7B)",downloadSize:"~3.9 GB",vram:"~4.0 GB",description:"Smallest tool-calling model; the least-friction default."},{id:"Hermes-2-Pro-Llama-3-8B-q4f16_1-MLC",label:"Hermes 2 Pro (Llama 3 8B)",downloadSize:"~4.6 GB",vram:"~5.0 GB",description:"Stronger Llama-3 base; needs a capable GPU."},{id:"Hermes-3-Llama-3.1-8B-q4f16_1-MLC",label:"Hermes 3 (Llama 3.1 8B)",downloadSize:"~4.5 GB",vram:"~4.9 GB",description:"Highest quality; needs a capable GPU (~5 GB VRAM)."}];class o extends Error{constructor(){super("WebGPU is not available in this browser; the local model cannot run."),this.name="WebGpuUnavailableError"}}class l extends Error{constructor(){super("Model download was not confirmed by the user."),this.name="WebLlmConsentError"}}class c extends Error{constructor(e){super(`${e} is not supported for tool-calling. The assistant requires function calling; WebLLM supports it only on these models: ${i.join(", ")}.`),this.name="UnsupportedToolCallingModelError"}}let d=()=>e.A(688);e.s(["CURATED_MODELS",0,r,"createWebLlmProvider",0,function(e={}){var t;let s,u=((t=e.model)?r.find(e=>e.id===t):r[0])??{id:t??"",label:t??"",downloadSize:"?",vram:"?",description:""};if(!i.includes(u.id))throw new c(u.id);let m=e.loadRuntime??d,p=e.hasWebGpu??(()=>n());async function h(){if(!p())throw new o;if(e.confirmDownload&&!await e.confirmDownload(u))throw new l;return(await m()).CreateMLCEngine(u.id,{initProgressCallback:e.onInitProgress?t=>e.onInitProgress?.({progress:t.progress,text:t.text}):void 0})}return{async complete(e){let t=await (!s&&(s=h().catch(e=>{throw s=void 0,e})),s),n=e.tools?.length?function(e){let t=[],s=[];for(let n of e)"system"===n.role?t.push(n.content):s.push(n);if(0===t.length)return[...e];let n=t.join("\n\n"),a=s.findIndex(e=>"user"===e.role);return -1===a?[{role:"user",content:n},...s]:s.map((e,t)=>t!==a?e:{role:"user",content:n+"\n\n"+e.content})}(e.messages):e.messages,i=await t.chat.completions.create({messages:(0,a.toOpenAiMessages)(n),tools:(0,a.toOpenAiTools)(e.tools),tool_choice:"auto",stream:!1});return(0,a.parseOpenAiCompletion)(i)},async unload(){let e=s;if(s=void 0,!e)return;let t=await e.catch(()=>void 0);await t?.unload?.()}}}],36542)},80760,e=>{"use strict";e.s([],60301),e.i(60301);var t=e.i(19594),s=e.i(17422);let n=e=>"number"==typeof e?e:void 0,a=e=>"string"==typeof e?e:void 0,i=s.z.number().int().optional().describe("Start of the time range, epoch milliseconds."),r=s.z.number().int().optional().describe("End of the time range, epoch milliseconds."),o=s.z.number().int().positive().max(500).optional().describe("Grid resolution per axis."),l=s.z.number().int().positive().max(1e3).optional().describe("Maximum rows to return."),c=s.z.string().optional().describe("Restrict to one developer-assigned scene id."),d=s.z.string().optional().describe("Scope the aggregate to a single session id."),u=s.z.number().positive().max(1e3).optional().describe("Voxel size in world units."),m=s.z.number().int().positive().optional().describe("Time-series bucket width, seconds."),p=s.z.string().optional().describe("Restrict to a single event type, e.g. pointer_click."),h=s.z.enum(["mouse","touch","stylus","pen","xr-controller","hand","gaze","transient","other"]).optional().describe("Restrict a pointer/world heatmap to one input source."),g=s.z.enum(["viewer","first-person"]).optional().describe("Camera navigation mode to scope to: 'viewer' (orbit) or 'first-person' (walkable)."),x=s.z.number().nonnegative().max(Math.PI).optional().describe("Rapid-turn threshold in radians (0..π); view turns above this flag motion-sickness risk."),b=s.z.string().min(1).describe('Funnel steps as a JSON-encoded array of ordered step predicates (ADR 0038). Required. Each step is `{ "type": <event_type>, ... }`; e.g. `[{"type":"scene_change","to":"lobby"},{"type":"mesh_interaction","mesh":"buy"}]`.');function f(e){return{since:n(e.since),until:n(e.until)}}let v=[{name:"list_sessions",title:"List recent sessions",description:"Recent sessions with id, visitor, event count, and start/end times.",inputSchema:{since:i,until:r,limit:l},buildRequest:e=>({path:"api/v1/sessions",params:{...f(e),limit:n(e.limit)}})},{name:"pointer_heatmap",title:"2D pointer heatmap",description:"Binned 2D pointer-position heatmap (screen-normalized).",inputSchema:{since:i,until:r,bins:o,scene:c,source:h,session:d},buildRequest:e=>({path:"api/v1/heatmaps/pointer",params:{...f(e),bins:n(e.bins),scene:a(e.scene),source:a(e.source),session:a(e.session)}})},{name:"world_heatmap",title:"3D world-space pointer heatmap",description:"Voxelized world-space pointer heatmap.",inputSchema:{since:i,until:r,cellSize:u,limit:l,scene:c,source:h},buildRequest:e=>({path:"api/v1/heatmaps/world",params:{...f(e),cellSize:n(e.cellSize),limit:n(e.limit),scene:a(e.scene),source:a(e.source)}})},{name:"camera_heatmap",title:"View-direction heatmap",description:"Camera view-direction distribution as spherical bins.",inputSchema:{since:i,until:r,bins:o,scene:c,session:d},buildRequest:e=>({path:"api/v1/heatmaps/camera",params:{...f(e),bins:n(e.bins),scene:a(e.scene),session:a(e.session)}})},{name:"click_rays",title:"View-gated click rays",description:"Clicks ASOF-joined to their nearest camera sample, per voxel and clicked mesh.",inputSchema:{since:i,until:r,cellSize:u,limit:l,scene:c,source:h,session:d},buildRequest:e=>({path:"api/v1/heatmaps/click-rays",params:{...f(e),cellSize:n(e.cellSize),limit:n(e.limit),scene:a(e.scene),source:a(e.source),session:a(e.session)}})},{name:"flow_links",title:"Gaze→mesh flow links",description:"Aggregate links from camera-direction bins to clicked meshes.",inputSchema:{since:i,until:r,bins:o,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/heatmaps/flow",params:{...f(e),bins:n(e.bins),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})},{name:"top_meshes",title:"Most-interacted meshes",description:"Meshes ranked by interaction count.",inputSchema:{since:i,until:r,limit:l,session:d},buildRequest:e=>({path:"api/v1/meshes/top",params:{...f(e),limit:n(e.limit),session:a(e.session)}})},{name:"perf_summary",title:"Rendering performance summary",description:"Sample count and avg/min/p50 FPS over the range.",inputSchema:{since:i,until:r,session:d},buildRequest:e=>({path:"api/v1/perf",params:{...f(e),session:a(e.session)}})},{name:"list_scenes",title:"List active scenes",description:"Distinct developer-assigned scenes with activity.",inputSchema:{since:i,until:r,limit:l},buildRequest:e=>({path:"api/v1/scenes",params:{...f(e),limit:n(e.limit)}})},{name:"timeseries",title:"Event-volume time series",description:"Event-volume buckets over time, with average FPS per bucket.",inputSchema:{since:i,until:r,interval:m,scene:c,type:p},buildRequest:e=>({path:"api/v1/timeseries",params:{...f(e),interval:n(e.interval),scene:a(e.scene),type:a(e.type)}})},{name:"event_counts",title:"Per-event-type counts",description:"Counts per event type over the range (scene-health panel).",inputSchema:{since:i,until:r,scene:c},buildRequest:e=>({path:"api/v1/event-counts",params:{...f(e),scene:a(e.scene)}})},{name:"session_meta",title:"Session descriptor",description:"Coarse descriptor for one session (device/scene/user). No raw event stream.",inputSchema:{sessionId:s.z.string().min(1).describe("The session id to describe.")},buildRequest:e=>({path:`api/v1/sessions/${encodeURIComponent(a(e.sessionId)??"")}/meta`,params:{}})},{name:"scene_representation",title:"Scene representation",description:"Registered proxy geometry (bounds/meshes) for one scene, if any.",inputSchema:{sceneId:s.z.string().min(1).describe("The scene id to fetch.")},buildRequest:e=>({path:`api/v1/scenes/${encodeURIComponent(a(e.sceneId)??"")}/representation`,params:{}})},{name:"funnel",title:"Conversion funnel",description:"Ordered, per-session conversion funnel (ADR 0038): how many sessions reach each caller-supplied step. Steps are a JSON array (see the `steps` argument).",inputSchema:{since:i,until:r,scene:c,cameraMode:g,steps:b},buildRequest:e=>({path:"api/v1/funnel",params:{...f(e),scene:a(e.scene),cameraMode:a(e.cameraMode),steps:a(e.steps)}})},{name:"aggregate_paths",title:"Aggregate desire-line paths",description:"Crowd-level movement routes (ADR 0037): every session's camera path binned onto the ground grid and returned as ordered, session-keyed points for an overlaid route map.",inputSchema:{since:i,until:r,cellSize:u,limit:l,scene:c,cameraMode:g},buildRequest:e=>({path:"api/v1/paths",params:{...f(e),cellSize:n(e.cellSize),limit:n(e.limit),scene:a(e.scene),cameraMode:a(e.cameraMode)}})},{name:"rendering_technology",title:"Rendering-technology breakdown",description:"Rendering-technology mix from session_start.graphics (ADR 0046): session count per (api, backend, api_version, shading_language) — WebGPU vs WebGL2 and shading language.",inputSchema:{since:i,until:r,scene:c,session:d},buildRequest:e=>({path:"api/v1/rendering-technology",params:{...f(e),scene:a(e.scene),session:a(e.session)}})},{name:"xr_rotation",title:"XR head-rotation rate",description:"XR head/view rotation rate (ADR 0048), a motion-sickness proxy: per-session rapid-turn counts over the camera pose stream.",inputSchema:{since:i,until:r,rapidTurn:x,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/xr/rotation",params:{...f(e),rapidTurn:n(e.rapidTurn),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})},{name:"xr_sources",title:"XR input-source usage",description:"XR input-source split (ADR 0048): hand vs. controller vs. gaze usage.",inputSchema:{since:i,until:r,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/xr/sources",params:{...f(e),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})},{name:"xr_abandonment",title:"XR session abandonment",description:"XR session abandonment (ADR 0048): per XR session, its time bounds and event/interaction counts; a short span signals headset drop-off.",inputSchema:{since:i,until:r,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/xr/abandonment",params:{...f(e),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})},{name:"xr_locomotion",title:"XR locomotion & comfort",description:"XR locomotion & comfort (ADR 0048): per XR session, its locomotion-style mix (fly / navigate / teleport + duration) and wall-clock span — a discomfort proxy.",inputSchema:{since:i,until:r,limit:l,scene:c,session:d},buildRequest:e=>({path:"api/v1/xr/locomotion",params:{...f(e),limit:n(e.limit),scene:a(e.scene),session:a(e.session)}})}];async function y(e){let{provider:t,client:n,signal:a}=e,i=e.tools??v,r=e.maxSteps??8,o=new Map(i.map(e=>[e.name,e])),l=function(e=v){return e.map(e=>({name:e.name,description:e.description,parameters:s.z.toJSONSchema(s.z.object(e.inputSchema))}))}(i),c=[...e.messages],d=0;for(;d<r;){d+=1;let e=await t.complete({messages:c,tools:l,signal:a});if("final"===e.kind)return c.push({role:"assistant",content:e.content}),{content:e.content,messages:c,steps:d,stoppedOnMaxSteps:!1};for(let t of(c.push({role:"assistant",content:e.content??"",toolCalls:e.toolCalls}),e.toolCalls))c.push(await w(n,o.get(t.name),t))}return{content:"",messages:c,steps:d,stoppedOnMaxSteps:!0}}async function w(e,t,n){let a=e=>({role:"tool",toolCallId:n.id,name:n.name,content:e});if(!t)return a(`Error: unknown tool "${n.name}".`);let i=s.z.object(t.inputSchema).safeParse(n.arguments??{});if(!i.success){let e=i.error.issues.map(e=>`${e.path.join(".")||"(root)"}: ${e.message}`).join("; ");return a(`Error: invalid arguments for "${n.name}": ${e}`)}try{let{path:s,params:n}=t.buildRequest(i.data),r=await e.get(s,n);return a(JSON.stringify(r))}catch(t){let e=t instanceof Error?t.message:String(t);return a(`Error: ${e}`)}}var k=e.i(36542),j=e.i(74698),S=e.i(20880);let C=(0,t.createContext)(null),N='You are Uptimizr\'s in-browser analytics assistant. You help a developer understand\ntheir 3D-scene analytics by calling read-only tools against their own collector\'s\nquery API and summarising the results in clear, concise prose.\n\nGuidelines:\n- Use the provided tools to fetch data before answering; never invent numbers.\n- All data is aggregate and privacy-preserving — there are no raw per-session events,\n no PII, and no way to ingest or modify data. Do not claim otherwise.\n- Timestamps are epoch milliseconds. When the user gives a relative range\n ("this week", "last 24h"), convert it to `since`/`until` before calling a tool.\n- Prefer a short, direct answer with the key figures. Call out caveats (small sample\n sizes, missing scenes) when relevant.\n- If a tool returns an error, explain what went wrong and, if useful, try a corrected call.';function R(e){return"function"==typeof e.unload}function A(s={}){let{collectorUrl:n,apiKey:a,api:i,systemPrompt:r=N,maxSteps:o,confirmDownload:l,persistBackend:c=!0}=s,d=(0,t.useContext)(C),u=(0,t.useMemo)(()=>i||(n&&a?new S.CollectorApi(n,a):d?.api??null),[i,n,a,d?.api]),[m]=(0,t.useState)(()=>(0,j.isWebGpuAvailable)()),[p,h]=(0,t.useState)(()=>s.backend?s.backend:(0,j.loadBackendConfig)()),[g,x]=(0,t.useState)([]),[b,f]=(0,t.useState)("idle"),[v,w]=(0,t.useState)(null),[P,z]=(0,t.useState)([]),[_,M]=(0,t.useState)(null),q=(0,t.useRef)(g);q.current=g;let L=(0,t.useRef)(p);L.current=p;let I=(0,t.useRef)(null),B=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{B.current?.abort();let e=I.current;I.current=null,e&&R(e.provider)&&e.provider.unload().catch(()=>{})},[]);let D=(0,t.useCallback)(e=>{h(e),c&&(0,j.saveBackendConfig)(e)},[c]),E=(0,t.useCallback)(async t=>{if("local"===t.backend){let{createWebLlmProvider:s}=await e.A(86354);return s({model:t.webllm?.model,confirmDownload:l,onInitProgress:e=>{M(e),f(e.progress>=1?"thinking":"initializing")}})}if(!t.hosted)throw Error("Hosted backend selected but not configured (endpoint, key, and model).");let{createHostedProvider:s}=await e.A(45697),{api:n,endpoint:a,apiKey:i,model:r}=t.hosted;return s({api:n,endpoint:a,apiKey:i,model:r})},[l]),G=(0,t.useCallback)(async e=>{let t=JSON.stringify(e),s=I.current;if(s&&s.key===t)return s.provider;s&&R(s.provider)&&s.provider.unload().catch(()=>{});let n=await E(e);return I.current={key:t,provider:n},n},[E]),O=(0,t.useCallback)(async e=>{let t=e.trim();if(!t)return;let s=L.current;if(!u){w(Error("No collector connection. Pass collectorUrl + apiKey or wrap in <UptimizrProvider>.")),f("error");return}if(!s){w(Error("No assistant backend selected. Choose a local or hosted backend first.")),f("error");return}let n={role:"user",content:t},a=q.current,i=0===a.length?[{role:"system",content:r},n]:[...a,n];x(i),z([]),w(null),M(null),f("initializing");let l=new AbortController;B.current=l;let c=e=>z(t=>{let s=t.findIndex(e=>"running"===e.status),n=-1===s?void 0:t[s];if(!n)return t;let a=t.slice();return a[s]={...n,status:e},a});try{let e=await G(s);f("thinking");let t=await y({provider:{async complete(t){let s=await e.complete(t);return"tool_calls"===s.kind&&z(e=>[...e,...s.toolCalls.map(e=>({id:e.id,name:e.name,status:"running"}))]),s}},client:{async get(e,t){try{let s=await u.read(e,t);return c("done"),s}catch(e){throw c("error"),e}}},messages:i,maxSteps:o,signal:l.signal});x(t.messages),z(e=>e.map(e=>"running"===e.status?{...e,status:"done"}:e)),f("idle")}catch(e){if(l.signal.aborted)return void f("idle");w(e instanceof Error?e:Error(String(e))),f("error")}finally{M(null),B.current===l&&(B.current=null)}},[u,r,o,G]),U=(0,t.useCallback)(()=>{B.current?.abort()},[]),T=(0,t.useCallback)(()=>{B.current?.abort(),x([]),z([]),w(null),M(null),f("idle")},[]);return{messages:g,status:b,error:v,toolActivity:P,initProgress:_,backend:p,webGpuAvailable:m,models:k.CURATED_MODELS,isReady:!!u&&!!p,isBusy:"initializing"===b||"thinking"===b,send:O,setBackend:D,cancel:U,reset:T}}var P=e.i(46369);function z({webGpuAvailable:e,onPick:t}){return(0,P.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,P.jsx)("p",{className:"text-xs text-fg-muted",children:"Choose how the assistant runs. Nothing is loaded or downloaded until you pick — your choice is remembered next time."}),(0,P.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2",children:[(0,P.jsxs)("div",{className:`flex flex-col gap-2 rounded-md border border-edge p-3 ${e?"":"opacity-60"}`,children:[(0,P.jsxs)("div",{className:"flex items-center gap-2",children:[(0,P.jsx)("h3",{className:"text-sm font-medium text-fg-hi",children:"Local (in-browser)"}),e&&(0,P.jsx)("span",{className:"rounded-full bg-emerald-500/20 px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-emerald-300",children:"Recommended"})]}),(0,P.jsxs)("p",{className:"text-xs text-fg-muted",children:["Private — ",(0,P.jsx)("strong",{children:"nothing leaves your device"}),". Runs on your GPU. Requires a WebGPU browser with ~5 GB free VRAM and a one-time ~4 GB model download."]}),(0,P.jsx)("button",{type:"button",disabled:!e,onClick:()=>t("local"),className:"mt-auto self-start rounded-md bg-emerald-500/70 px-3 py-1 text-xs text-fg-hi disabled:opacity-50",children:"Use local"}),!e&&(0,P.jsx)("p",{className:"text-[11px] text-fg-muted",children:"Requires a WebGPU browser."})]}),(0,P.jsxs)("div",{className:"flex flex-col gap-2 rounded-md border border-edge p-3",children:[(0,P.jsx)("h3",{className:"text-sm font-medium text-fg-hi",children:"Bring your own hosted key"}),(0,P.jsxs)("p",{className:"text-xs text-fg-muted",children:["Lightweight — no download. You supply an OpenAI-compatible or Anthropic endpoint + key. Your questions and aggregated analytics context are"," ",(0,P.jsx)("strong",{children:"sent to that provider"})," (never raw events or PII)."]}),(0,P.jsx)("button",{type:"button",onClick:()=>t("hosted"),className:"mt-auto self-start rounded-md bg-emerald-500/70 px-3 py-1 text-xs text-fg-hi",children:"Use hosted key"})]})]})]})}function _({backend:e,webGpuAvailable:s,models:n,onChange:a,initialKind:i}){let[r,o]=(0,t.useState)(i??e?.backend??(s?"local":"hosted")),[l,c]=(0,t.useState)(e?.webllm?.model??n[0]?.id??""),[d,u]=(0,t.useState)(e?.hosted?.api??"openai"),[m,p]=(0,t.useState)(e?.hosted?.endpoint??""),[h,g]=(0,t.useState)(e?.hosted?.apiKey??""),[x,b]=(0,t.useState)(e?.hosted?.model??"");return(0,P.jsxs)("fieldset",{className:"flex flex-col gap-2 rounded-md border border-edge p-2 text-xs",children:[(0,P.jsx)("legend",{className:"px-1 text-fg-muted",children:"LLM backend"}),(0,P.jsxs)("label",{className:"flex items-center gap-2",children:[(0,P.jsx)("input",{type:"radio",name:"assistant-backend",checked:"local"===r,disabled:!s,onChange:()=>o("local")}),(0,P.jsxs)("span",{className:s?"text-fg":"text-fg-muted",children:["Local (WebLLM / WebGPU) — runs in your browser, zero egress",!s&&" (WebGPU unavailable)"]})]}),"local"===r&&s&&(0,P.jsxs)("div",{className:"ml-6 flex flex-col gap-1",children:[(0,P.jsxs)("label",{className:"flex items-center gap-2",children:[(0,P.jsx)("span",{className:"text-fg-muted",children:"Model"}),(0,P.jsx)("select",{"aria-label":"Local model",value:l,className:"rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>c(e.target.value),children:n.map(e=>(0,P.jsxs)("option",{value:e.id,children:[e.label," (",e.downloadSize,")"]},e.id))})]}),(0,P.jsx)("button",{type:"button",onClick:()=>a({backend:"local",webllm:{model:l}}),disabled:!l,className:"self-start rounded-md bg-emerald-500/70 px-2 py-0.5 text-fg-hi disabled:opacity-50",children:"Use this model locally"})]}),(0,P.jsxs)("label",{className:"flex items-center gap-2",children:[(0,P.jsx)("input",{type:"radio",name:"assistant-backend",checked:"hosted"===r,onChange:()=>o("hosted")}),(0,P.jsx)("span",{className:"text-fg",children:"Bring your own hosted provider (OpenAI-compatible or Anthropic)"})]}),"hosted"===r&&(0,P.jsxs)("div",{className:"ml-6 flex flex-col gap-1",children:[(0,P.jsxs)("label",{className:"flex items-center gap-2",children:[(0,P.jsx)("span",{className:"w-16 text-fg-muted",children:"API"}),(0,P.jsxs)("select",{"aria-label":"Hosted API",value:d,className:"rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>u(e.target.value),children:[(0,P.jsx)("option",{value:"openai",children:"OpenAI-compatible"}),(0,P.jsx)("option",{value:"anthropic",children:"Anthropic"})]})]}),(0,P.jsxs)("label",{className:"flex items-center gap-2",children:[(0,P.jsx)("span",{className:"w-16 text-fg-muted",children:"Endpoint"}),(0,P.jsx)("input",{type:"url","aria-label":"Endpoint",value:m,placeholder:"https://api.openai.com/v1",className:"flex-1 rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>p(e.target.value)})]}),(0,P.jsxs)("label",{className:"flex items-center gap-2",children:[(0,P.jsx)("span",{className:"w-16 text-fg-muted",children:"API key"}),(0,P.jsx)("input",{type:"password","aria-label":"API key",value:h,className:"flex-1 rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>g(e.target.value)})]}),(0,P.jsxs)("label",{className:"flex items-center gap-2",children:[(0,P.jsx)("span",{className:"w-16 text-fg-muted",children:"Model"}),(0,P.jsx)("input",{type:"text","aria-label":"Hosted model",value:x,placeholder:"gpt-4o-mini",className:"flex-1 rounded-sm border border-edge bg-ink/40 px-1 py-0.5 text-fg",onChange:e=>b(e.target.value)})]}),(0,P.jsx)("button",{type:"button",onClick:()=>a({backend:"hosted",hosted:{api:d,endpoint:m,apiKey:h,model:x}}),disabled:!m||!h||!x,className:"self-start rounded-md bg-emerald-500/70 px-2 py-0.5 text-fg-hi disabled:opacity-50",children:"Use this provider"})]})]})}function M({backend:e}){let t=e?.backend==="hosted"?"Your prompt and aggregated results are sent to your own provider — never raw events or PII.":"Runs 100% in your browser. Nothing — not your prompt nor your data — leaves this device.";return(0,P.jsx)("p",{className:"text-xs text-fg-muted",children:t})}function q({model:e,onDecision:t}){return(0,P.jsxs)("div",{role:"dialog","aria-modal":"true","aria-label":"Download model",className:"flex flex-col gap-2 rounded-md border border-edge bg-surface p-3 text-xs",children:[(0,P.jsxs)("p",{className:"text-fg",children:["Download ",(0,P.jsx)("strong",{children:e.label})," (",e.downloadSize,", needs ~",e.vram," VRAM)? It runs 100% locally in your browser and nothing leaves this device."]}),(0,P.jsx)("p",{className:"text-fg-muted",children:e.description}),(0,P.jsxs)("div",{className:"flex gap-2",children:[(0,P.jsx)("button",{type:"button",onClick:()=>t(!0),className:"rounded-md bg-emerald-500/70 px-3 py-1 text-fg-hi",children:"Download & run locally"}),(0,P.jsx)("button",{type:"button",onClick:()=>t(!1),className:"rounded-md border border-edge px-3 py-1 text-fg-muted hover:text-fg",children:"Cancel"})]})]})}e.s(["AssistantPanel",0,function({title:e="Analytics assistant",placeholder:s="Ask about your 3D analytics…",className:n,...a}){let[i,r]=(0,t.useState)(null),o=(0,t.useCallback)(e=>new Promise(t=>r({model:e,resolve:t})),[]),{messages:l,status:c,error:d,toolActivity:u,initProgress:m,backend:p,webGpuAvailable:h,isBusy:g,isReady:x,send:b,cancel:f,setBackend:v,models:y}=A({...a,confirmDownload:a.confirmDownload??o}),[w,k]=(0,t.useState)(""),[j,S]=(0,t.useState)(!1),[C,N]=(0,t.useState)(null),R=(0,t.useCallback)(e=>{e.preventDefault(),w.trim()&&!g&&(k(""),b(w))},[w,g,b]),L=function(e){let t=[];for(let s of e)"user"===s.role?t.push({role:"user",content:s.content}):"assistant"===s.role&&s.content.trim()&&t.push({role:"assistant",content:s.content});return t}(l),I=null===p,B=I||j,D=(0,t.useCallback)(()=>{N(null),S(!0)},[]),E=(0,t.useCallback)(()=>{N(null),S(!1)},[]),G=(0,t.useCallback)(e=>{v(e),N(null),S(!1)},[v]);return(0,P.jsxs)("div",{className:`flex flex-col gap-3 text-sm text-fg ${n??""}`,children:[(0,P.jsxs)("header",{className:"flex items-center justify-between gap-2",children:[(0,P.jsx)("h2",{className:"text-base font-medium text-fg-hi",children:e}),!B&&(0,P.jsx)("button",{type:"button",className:"rounded-md border border-edge px-2 py-1 text-xs text-fg-muted hover:text-fg",onClick:D,children:"Change backend"})]}),B?null===C?(0,P.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,P.jsx)(z,{webGpuAvailable:h,onPick:N}),!I&&(0,P.jsx)("button",{type:"button",onClick:E,className:"self-start text-xs text-fg-muted hover:text-fg",children:"← Back to chat"})]}):(0,P.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,P.jsx)("button",{type:"button",onClick:()=>N(null),className:"self-start text-xs text-fg-muted hover:text-fg",children:"← Choose a different backend"}),(0,P.jsx)(_,{backend:p,initialKind:C,webGpuAvailable:h,models:y,onChange:G})]}):(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(M,{backend:p}),(0,P.jsxs)("ol",{className:"flex min-h-[8rem] flex-col gap-2","aria-label":"Conversation",children:[0===L.length&&(0,P.jsx)("li",{className:"text-xs text-fg-muted",children:"Ask a question to get started — e.g. “What were the most-clicked meshes this week?”"}),L.map((e,t)=>(0,P.jsxs)("li",{className:"user"===e.role?"text-fg-hi":"text-fg","data-role":e.role,children:[(0,P.jsx)("span",{className:"mr-1 text-xs uppercase text-fg-muted",children:"user"===e.role?"You":"Assistant"}),(0,P.jsx)("div",{className:"whitespace-pre-wrap",children:e.content})]},t))]}),u.length>0&&(0,P.jsx)("ul",{className:"flex flex-col gap-1 text-xs text-fg-muted","aria-label":"Tool activity",children:u.map((e,t)=>(0,P.jsxs)("li",{"data-status":e.status,children:["running"===e.status?"⏳":"error"===e.status?"⚠️":"✓"," ",e.name]},`${e.name}-${t}`))}),m&&(0,P.jsxs)("div",{className:"flex flex-col gap-1 text-xs text-fg-muted","aria-label":"Model download progress",children:[(0,P.jsx)("span",{children:m.text}),(0,P.jsx)("div",{className:"h-1.5 w-full overflow-hidden rounded-full bg-ink/60",children:(0,P.jsx)("div",{className:"h-full bg-emerald-400",style:{width:`${Math.round(100*m.progress)}%`}})})]}),"error"===c&&d&&(0,P.jsx)("p",{className:"rounded-md bg-rose-500/20 px-2 py-1 text-xs text-rose-300",role:"alert",children:d.message}),(0,P.jsxs)("form",{onSubmit:R,className:"flex items-center gap-2",children:[(0,P.jsx)("input",{type:"text",value:w,onChange:e=>k(e.target.value),placeholder:s,disabled:g,"aria-label":"Message",className:"flex-1 rounded-md border border-edge bg-ink/40 px-2 py-1 text-fg placeholder:text-fg-muted"}),g?(0,P.jsx)("button",{type:"button",onClick:f,className:"rounded-md border border-edge px-3 py-1 text-xs text-fg-muted hover:text-fg",children:"Stop"}):(0,P.jsx)("button",{type:"submit",disabled:!w.trim()||!x,className:"rounded-md bg-emerald-500/70 px-3 py-1 text-xs text-fg-hi disabled:opacity-50",children:"Send"})]})]}),i&&(0,P.jsx)(q,{model:i.model,onDecision:e=>{i.resolve(e),r(null)}})]})},"DEFAULT_SYSTEM_PROMPT",0,N,"useAssistant",0,A],80760)},55810,e=>{e.n(e.i(80760))},688,e=>{e.v(t=>Promise.all(["static/chunks/2x83vs8ns4pww.js"].map(t=>e.l(t))).then(()=>t(21435)))},45697,e=>{e.v(t=>Promise.all(["static/chunks/1xqv11mvnfa8n.js"].map(t=>e.l(t))).then(()=>t(44196)))},86354,e=>{e.v(e=>Promise.resolve().then(()=>e(36542)))}]);
|
|
File without changes
|
|
File without changes
|
|
File without changes
|