@billyvg/sentry-tui-app 0.11.0
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/LICENSE +21 -0
- package/README.md +4 -0
- package/THIRD_PARTY_NOTICES +102 -0
- package/app/app.mjs +21 -0
- package/app/app.mjs.map +191 -0
- package/app/assets/activeadmin-p8zytf80.png +0 -0
- package/app/assets/actix-tt2a8ysg.png +0 -0
- package/app/assets/aiohttp-gmt10x6m.png +0 -0
- package/app/assets/alpinejs-wqnxn6y1.png +0 -0
- package/app/assets/amazon-p185z4ev.png +0 -0
- package/app/assets/amd-p8c25cfe.png +0 -0
- package/app/assets/analogjs-cna1hg98.png +0 -0
- package/app/assets/android-phone-mjzxta39.png +0 -0
- package/app/assets/android-tablet-mjzxta39.png +0 -0
- package/app/assets/android-xjr1314k.png +0 -0
- package/app/assets/angularjs-7h46ejvd.png +0 -0
- package/app/assets/anthropic-claude-4n50evr8.png +0 -0
- package/app/assets/anthropic-rrcv6ejq.png +0 -0
- package/app/assets/apache-airflow-w7c50371.png +0 -0
- package/app/assets/apache-beam-2q3zbaks.png +0 -0
- package/app/assets/apache-spark-a680t00k.png +0 -0
- package/app/assets/app-engine-ghexy1y6.png +0 -0
- package/app/assets/apple-fh3mfwj2.png +0 -0
- package/app/assets/apple-ipad-dfky3d0g.png +0 -0
- package/app/assets/apple-iphone-dfky3d0g.png +0 -0
- package/app/assets/apple-tv-dfky3d0g.png +0 -0
- package/app/assets/apple-watch-dfky3d0g.png +0 -0
- package/app/assets/ariadne-p2xx19an.png +0 -0
- package/app/assets/arm-5rs1ketc.png +0 -0
- package/app/assets/astro-nbngj53v.png +0 -0
- package/app/assets/aws-7vzr54cj.png +0 -0
- package/app/assets/awslambda-qzxqvkkb.png +0 -0
- package/app/assets/azure-functions-bst1wkws.png +0 -0
- package/app/assets/backbone-7cg22pv4.png +0 -0
- package/app/assets/bazzite-ybxzg5vm.png +0 -0
- package/app/assets/blazor-hxv5b1jm.png +0 -0
- package/app/assets/bottle-fgvkq9ed.png +0 -0
- package/app/assets/bun-qzcj59r5.png +0 -0
- package/app/assets/capacitor-a3m2sqp1.png +0 -0
- package/app/assets/celery-gd1erc4d.png +0 -0
- package/app/assets/chalice-xmacx55d.png +0 -0
- package/app/assets/chrome-xdd75zcv.png +0 -0
- package/app/assets/chromium-s43136bv.png +0 -0
- package/app/assets/clickhouse-eg3e8wwt.png +0 -0
- package/app/assets/clojure-kvpja977.png +0 -0
- package/app/assets/cloudflare-pages-0nwgb0by.png +0 -0
- package/app/assets/cloudflare-pxsb5f3n.png +0 -0
- package/app/assets/cloudflare-workers-x0py78jv.png +0 -0
- package/app/assets/cohere-sp0b9n61.png +0 -0
- package/app/assets/compass_active-mcnd0q22.png +0 -0
- package/app/assets/compass_active_light-v08f7cvf.png +0 -0
- package/app/assets/compass_inactive-ddbmyj5v.png +0 -0
- package/app/assets/compass_inactive_light-wwd8x0j5.png +0 -0
- package/app/assets/connect-7r7dc91q.png +0 -0
- package/app/assets/convex-az2pt1fc.png +0 -0
- package/app/assets/cordova-7wzvfz77.png +0 -0
- package/app/assets/cpp-n8ke0smy.png +0 -0
- package/app/assets/cryengine-c186nv57.png +0 -0
- package/app/assets/crystal-zwaetd1f.png +0 -0
- package/app/assets/csharp-4cgxa8dg.png +0 -0
- package/app/assets/css-g8jdrx8v.png +0 -0
- package/app/assets/dart-g38t75be.png +0 -0
- package/app/assets/dashboard_active-3k2ysmyr.png +0 -0
- package/app/assets/dashboard_active_light-j060573s.png +0 -0
- package/app/assets/dashboard_inactive-a3pdwyw3.png +0 -0
- package/app/assets/dashboard_inactive_light-47zscdjm.png +0 -0
- package/app/assets/deepseek-7r4457fz.png +0 -0
- package/app/assets/default-mqvk902r.png +0 -0
- package/app/assets/deno-815kzqz1.png +0 -0
- package/app/assets/django-qq1crz4g.png +0 -0
- package/app/assets/dotnet-5gqvv1yc.png +0 -0
- package/app/assets/dotnetcore-n03w6x5h.png +0 -0
- package/app/assets/dotnetframework-brnpeeq7.png +0 -0
- package/app/assets/dotnetfx-7vm66a84.png +0 -0
- package/app/assets/dramatiq-b0c46xrk.png +0 -0
- package/app/assets/echo-7va69gxg.png +0 -0
- package/app/assets/edge-4qt9t9s2.png +0 -0
- package/app/assets/edge-legacy-sqwdg70h.png +0 -0
- package/app/assets/effect-sqx9ndtk.png +0 -0
- package/app/assets/electron-2n9s8mts.png +0 -0
- package/app/assets/elixir-mckzq1sq.png +0 -0
- package/app/assets/ember-a65qyfxw.png +0 -0
- package/app/assets/expo-24k68r06.png +0 -0
- package/app/assets/express-bagm4hrp.png +0 -0
- package/app/assets/falcon-y3g2pkw1.png +0 -0
- package/app/assets/fastapi-y61f6fkc.png +0 -0
- package/app/assets/fasthttp-dg3jpzzs.png +0 -0
- package/app/assets/fastify-6kqs83vt.png +0 -0
- package/app/assets/fastmcp-z39yqz67.png +0 -0
- package/app/assets/fiber-4hk7w77j.png +0 -0
- package/app/assets/firebase-cxe03y85.png +0 -0
- package/app/assets/firefox-bg5zmx5g.png +0 -0
- package/app/assets/flask-cen3cnk3.png +0 -0
- package/app/assets/flutter-yg7vv7v2.png +0 -0
- package/app/assets/font-gm2xc8k1.png +0 -0
- package/app/assets/fsharp-rdvgykvd.png +0 -0
- package/app/assets/gatsby-1cbrkhen.png +0 -0
- package/app/assets/gcp-functions-f9fr7ptc.png +0 -0
- package/app/assets/gemini-kkn8pkkz.png +0 -0
- package/app/assets/gin-50chx0th.png +0 -0
- package/app/assets/git-2wwbsash.png +0 -0
- package/app/assets/gnu-sza5z2m0.png +0 -0
- package/app/assets/go-fe31mx1h.png +0 -0
- package/app/assets/godot-5pyt3hf3.png +0 -0
- package/app/assets/google-h9hjmbaw.png +0 -0
- package/app/assets/grape-z45yjx7n.png +0 -0
- package/app/assets/graphene-wdrmh5wg.png +0 -0
- package/app/assets/graphql-jfg31yab.png +0 -0
- package/app/assets/grok-tek8dkt5.png +0 -0
- package/app/assets/groq-3w8j5sz6.png +0 -0
- package/app/assets/grpc-41ce8e5w.png +0 -0
- package/app/assets/hanami-h1ha69g0.png +0 -0
- package/app/assets/hapi-xjkhg9xk.png +0 -0
- package/app/assets/highlights-3ybh5bp2.scm +154 -0
- package/app/assets/highlights-9wx8m64k.scm +123 -0
- package/app/assets/highlights-bds7v5h1.scm +203 -0
- package/app/assets/highlights-k2cbtg72.scm +137 -0
- package/app/assets/hono-ydv0kfra.png +0 -0
- package/app/assets/httpx-72gb9ze8.png +0 -0
- package/app/assets/huey-a53cr7qy.png +0 -0
- package/app/assets/huggingface-yceen1hy.png +0 -0
- package/app/assets/hydrogen-wremh7ah.png +0 -0
- package/app/assets/internet-explorer-mc34535p.png +0 -0
- package/app/assets/ionic-9x7e24b2.png +0 -0
- package/app/assets/iris-nvn6jx31.png +0 -0
- package/app/assets/issues_active-k2k0e07f.png +0 -0
- package/app/assets/issues_active_light-ppxjynwp.png +0 -0
- package/app/assets/issues_inactive-5jhnttk9.png +0 -0
- package/app/assets/issues_inactive_light-efzr1ggk.png +0 -0
- package/app/assets/java-xd88qxr3.png +0 -0
- package/app/assets/javascript-fkw36jr6.png +0 -0
- package/app/assets/koa-xeggzpx7.png +0 -0
- package/app/assets/kotlin-kttwkzk0.png +0 -0
- package/app/assets/langchain-dsrcgqtg.png +0 -0
- package/app/assets/langgraph-0gbzq3bw.png +0 -0
- package/app/assets/laravel-8vdwspz3.png +0 -0
- package/app/assets/launchdarkly-8nrxg4j1.png +0 -0
- package/app/assets/linux-mbda8m22.png +0 -0
- package/app/assets/lit-yy9gb2z5.png +0 -0
- package/app/assets/litellm-mn7mn3p5.png +0 -0
- package/app/assets/litestar-qgaq765e.png +0 -0
- package/app/assets/livewire-dhq1zp6k.png +0 -0
- package/app/assets/logback-qdan81zj.png +0 -0
- package/app/assets/loguru-1qkw3dj3.png +0 -0
- package/app/assets/magento-mbmqx6pj.png +0 -0
- package/app/assets/martini-0ynefktw.png +0 -0
- package/app/assets/mastra-bkzx6z2t.png +0 -0
- package/app/assets/maui-k0v6671h.png +0 -0
- package/app/assets/mcp-3a0e0d7f.png +0 -0
- package/app/assets/meteor-pfjeajd9.png +0 -0
- package/app/assets/million-hqa7qjzr.png +0 -0
- package/app/assets/mistral-c8k352td.png +0 -0
- package/app/assets/mongodb-8zfpdrvw.png +0 -0
- package/app/assets/monitors_active-ypv5rjbw.png +0 -0
- package/app/assets/monitors_active_light-7en9bsxt.png +0 -0
- package/app/assets/monitors_inactive-vncjn4xh.png +0 -0
- package/app/assets/monitors_inactive_light-3p8t6ysq.png +0 -0
- package/app/assets/mono-2jgc1h36.png +0 -0
- package/app/assets/motorola-se1nxnrc.png +0 -0
- package/app/assets/nativec-8hc1qqqq.png +0 -0
- package/app/assets/nestjs-pdtzc08t.png +0 -0
- package/app/assets/nextjs-1h4ss2x7.png +0 -0
- package/app/assets/nintendo-b121b9tx.png +0 -0
- package/app/assets/nintendo-switch-10fwf0z8.png +0 -0
- package/app/assets/nintendo-switch-2-c30gwjdr.png +0 -0
- package/app/assets/nitro-0m2zry4j.png +0 -0
- package/app/assets/nodejs-4440bt1m.png +0 -0
- package/app/assets/nuxt-9az5kp86.png +0 -0
- package/app/assets/nvidia-sx95qpxr.png +0 -0
- package/app/assets/openai-30efemfr.png +0 -0
- package/app/assets/openfeature-7d7994hd.png +0 -0
- package/app/assets/opennext-qwtbtf69.png +0 -0
- package/app/assets/opera-vm5934z4.png +0 -0
- package/app/assets/padrino-h1r8j27p.png +0 -0
- package/app/assets/perforce-m3brdm35.png +0 -0
- package/app/assets/perl-rtt66y1c.png +0 -0
- package/app/assets/perplexity-hppwdxr6.png +0 -0
- package/app/assets/php-epsnnhgx.png +0 -0
- package/app/assets/playstation-hdnq37vd.png +0 -0
- package/app/assets/postgresql-460mxqat.png +0 -0
- package/app/assets/powershell-4fhvrc1v.png +0 -0
- package/app/assets/pydantic-ai-fktc46py.png +0 -0
- package/app/assets/pyramid-68tybq4d.png +0 -0
- package/app/assets/python-0nvac8nw.png +0 -0
- package/app/assets/qq-vr99tzv0.png +0 -0
- package/app/assets/qt-k87rvs14.png +0 -0
- package/app/assets/quart-r5ngms2j.png +0 -0
- package/app/assets/qwik-bz2wcfjr.png +0 -0
- package/app/assets/rails-4pkdasvb.png +0 -0
- package/app/assets/ray-gmyxm5cx.png +0 -0
- package/app/assets/react-8r99y108.png +0 -0
- package/app/assets/react-native-wmddwz2w.png +0 -0
- package/app/assets/react-router-v69yad6z.png +0 -0
- package/app/assets/redis-q94fh9hd.png +0 -0
- package/app/assets/remix-53wdkf82.png +0 -0
- package/app/assets/ruby-kcaxbrv4.png +0 -0
- package/app/assets/rust-v7er9616.png +0 -0
- package/app/assets/safari-pcf00dtn.png +0 -0
- package/app/assets/samsung-cm92184f.png +0 -0
- package/app/assets/sanic-7z0zpwya.png +0 -0
- package/app/assets/scala-9aq9kgns.png +0 -0
- package/app/assets/seer_active-s87c2fsc.png +0 -0
- package/app/assets/seer_active_light-qr5zb8g1.png +0 -0
- package/app/assets/seer_inactive-vnbwgb8m.png +0 -0
- package/app/assets/seer_inactive_light-g6ryga4y.png +0 -0
- package/app/assets/sentry-a94jrdn1.png +0 -0
- package/app/assets/sentry_light-xph1a1zb.png +0 -0
- package/app/assets/serverless-5293xmwf.png +0 -0
- package/app/assets/sidekiq-rnhzcwdj.png +0 -0
- package/app/assets/sinatra-c03nt3xg.png +0 -0
- package/app/assets/solid-c96n8hcv.png +0 -0
- package/app/assets/solidstart-rb5kh1an.png +0 -0
- package/app/assets/spring-nq4z52xr.png +0 -0
- package/app/assets/springboot-n0jkm57m.png +0 -0
- package/app/assets/sql-hax5xfdd.png +0 -0
- package/app/assets/sqlalchemy-rkmzzb4z.png +0 -0
- package/app/assets/sqlserver-xy5xks5j.png +0 -0
- package/app/assets/starlette-j4s3ckgz.png +0 -0
- package/app/assets/steamos-esnc2vf1.png +0 -0
- package/app/assets/strawberry-gvtdbrv2.png +0 -0
- package/app/assets/stride3d-na06nbdk.png +0 -0
- package/app/assets/supabase-b8xn5ya6.png +0 -0
- package/app/assets/svelte-99kpn61e.png +0 -0
- package/app/assets/swift-rz9jd9bd.png +0 -0
- package/app/assets/symfony-5g12vm0z.png +0 -0
- package/app/assets/tanstack-803fcdrr.png +0 -0
- package/app/assets/tauri-s27nrazn.png +0 -0
- package/app/assets/tokio-2qsmkbdt.png +0 -0
- package/app/assets/tornado-jr9hafty.png +0 -0
- package/app/assets/tower-m2b3e55m.png +0 -0
- package/app/assets/tracing-sf8fezjm.png +0 -0
- package/app/assets/trailblazer-tts0mg9m.png +0 -0
- package/app/assets/tree-sitter-go-dve313fn.wasm +0 -0
- package/app/assets/tree-sitter-php-only-jk6j4gjt.wasm +0 -0
- package/app/assets/tree-sitter-python-d56ewc8c.wasm +0 -0
- package/app/assets/tree-sitter-ruby-kmdgpnz0.wasm +0 -0
- package/app/assets/tryton-agrkpqzp.png +0 -0
- package/app/assets/typer-4ax7g9nv.png +0 -0
- package/app/assets/ubuntu-2485bsgg.png +0 -0
- package/app/assets/unity-dh3f2d41.png +0 -0
- package/app/assets/unleash-3n7nzk6v.png +0 -0
- package/app/assets/uno-f3aqa0pr.png +0 -0
- package/app/assets/unreal-66wfngpk.png +0 -0
- package/app/assets/vercel-5tsw5vx4.png +0 -0
- package/app/assets/visual-basic-mv5kd4ph.png +0 -0
- package/app/assets/vscode-ht1kf4d5.png +0 -0
- package/app/assets/vue-s1y5fsg1.png +0 -0
- package/app/assets/wasm-zc2sdxtz.png +0 -0
- package/app/assets/windows-m96vxbh1.png +0 -0
- package/app/assets/xamarin-13pfqd8y.png +0 -0
- package/app/assets/xbox-j22pmsf0.png +0 -0
- package/app/manifest.json +5 -0
- package/package.json +27 -0
package/app/app.mjs
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var dk=import.meta.require;var vi=1,pk=["h:0__","h:1______________","h:2__________________","h:3__________","h:4___________","h:5_______________________","h:6___________________________","h:7___________________________________","h:8________________________________","h:9________________________________"],X1=Object.fromEntries(pk.map((e,t)=>[e,`h:${t}`.padEnd(e.length,"_")]));var Gi="0.11.0";var na=Gi,oa=`v${na}`;import{useCallback as qt,useEffect as $o,useMemo as E_,useRef as xi,useState as Ot}from"h:0__";import{useKeyboard as j1,useTerminalDimensions as D1}from"h:4___________";import{writeConfig as $H}from"h:8________________________________";var gk={bodySerializer:(e)=>JSON.stringify(e,(t,r)=>typeof r==="bigint"?r.toString():r)},Ok={$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"},Y1=Object.entries(Ok),yk=({onRequest:e,onSseError:t,onSseEvent:r,responseTransformer:H,responseValidator:n,sseDefaultRetryDelay:o,sseMaxRetryAttempts:a,sseMaxRetryDelay:s,sseSleepFn:i,url:l,...c})=>{let A,u=i??((g)=>new Promise((m)=>setTimeout(m,g)));return{stream:async function*(){let g=o??3000,m=0,O=c.signal??new AbortController().signal;while(!0){if(O.aborted)break;m++;let y=c.headers instanceof Headers?c.headers:new Headers(c.headers);if(A!==void 0)y.set("Last-Event-ID",A);try{let L={redirect:"follow",...c,body:c.serializedBody,headers:y,signal:O},f=new Request(l,L);if(e)f=await e(l,L);let w=await(c.fetch??globalThis.fetch)(f);if(!w.ok)throw Error(`SSE failed: ${w.status} ${w.statusText}`);if(!w.body)throw Error("No body in SSE response");let S=w.body.pipeThrough(new TextDecoderStream).getReader(),I="",P=()=>{try{S.cancel()}catch{}};O.addEventListener("abort",P);try{while(!0){let{done:x,value:q}=await S.read();if(x)break;I+=q,I=I.replace(/\r\n/g,`
|
|
3
|
+
`).replace(/\r/g,`
|
|
4
|
+
`);let v=I.split(`
|
|
5
|
+
|
|
6
|
+
`);I=v.pop()??"";for(let C of v){let b=C.split(`
|
|
7
|
+
`),T=[],Q;for(let K of b)if(K.startsWith("data:"))T.push(K.replace(/^data:\s*/,""));else if(K.startsWith("event:"))Q=K.replace(/^event:\s*/,"");else if(K.startsWith("id:"))A=K.replace(/^id:\s*/,"");else if(K.startsWith("retry:")){let ee=Number.parseInt(K.replace(/^retry:\s*/,""),10);if(!Number.isNaN(ee))g=ee}let B,R=!1;if(T.length){let K=T.join(`
|
|
8
|
+
`);try{B=JSON.parse(K),R=!0}catch{B=K}}if(R){if(n)await n(B);if(H)B=await H(B)}if(r?.({data:B,event:Q,id:A,retry:g}),T.length)yield B}}}finally{O.removeEventListener("abort",P),S.releaseLock()}break}catch(L){if(t?.(L),a!==void 0&&m>=a)break;let f=Math.min(g*2**(m-1),s??30000);await u(f)}}}()}},fk=(e)=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},Sk=(e)=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},_k=(e)=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},Wi=({allowReserved:e,explode:t,name:r,style:H,value:n})=>{if(!t){let s=(e?n:n.map((i)=>encodeURIComponent(i))).join(Sk(H));switch(H){case"label":return`.${s}`;case"matrix":return`;${r}=${s}`;case"simple":return s;default:return`${r}=${s}`}}let o=fk(H),a=n.map((s)=>{if(H==="label"||H==="simple")return e?s:encodeURIComponent(s);return tn({allowReserved:e,name:r,value:s})}).join(o);return H==="label"||H==="matrix"?o+a:a},tn=({allowReserved:e,name:t,value:r})=>{if(r===void 0||r===null)return"";if(typeof r==="object")throw Error("Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?r:encodeURIComponent(r)}`},Bi=({allowReserved:e,explode:t,name:r,style:H,value:n,valueOnly:o})=>{if(n instanceof Date)return o?n.toISOString():`${r}=${n.toISOString()}`;if(H!=="deepObject"&&!t){let i=[];Object.entries(n).forEach(([c,A])=>{i=[...i,c,e?A:encodeURIComponent(A)]});let l=i.join(",");switch(H){case"form":return`${r}=${l}`;case"label":return`.${l}`;case"matrix":return`;${r}=${l}`;default:return l}}let a=_k(H),s=Object.entries(n).map(([i,l])=>tn({allowReserved:e,name:H==="deepObject"?`${r}[${i}]`:i,value:l})).join(a);return H==="label"||H==="matrix"?a+s:s},kk=/\{[^{}]+\}/g,hk=({path:e,url:t})=>{let r=t,H=t.match(kk);if(H)for(let n of H){let o=!1,a=n.substring(1,n.length-1),s="simple";if(a.endsWith("*"))o=!0,a=a.substring(0,a.length-1);if(a.startsWith("."))a=a.substring(1),s="label";else if(a.startsWith(";"))a=a.substring(1),s="matrix";let i=e[a];if(i===void 0||i===null)continue;if(Array.isArray(i)){r=r.replace(n,Wi({explode:o,name:a,style:s,value:i}));continue}if(typeof i==="object"){r=r.replace(n,Bi({explode:o,name:a,style:s,value:i,valueOnly:!0}));continue}if(s==="matrix"){r=r.replace(n,`;${tn({name:a,value:i})}`);continue}let l=encodeURIComponent(s==="label"?`.${i}`:i);r=r.replace(n,l)}return r},Lk=({baseUrl:e,path:t,query:r,querySerializer:H,url:n})=>{let o=n.startsWith("/")?n:`/${n}`,a=(e??"")+o;if(t)a=hk({path:t,url:a});let s=r?H(r):"";if(s.startsWith("?"))s=s.substring(1);if(s)a+=`?${s}`;return a};function Ei(e){let t=e.body!==void 0;if(t&&e.bodySerializer){if("serializedBody"in e)return e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null;return e.body!==""?e.body:null}if(t)return e.body;return}var Ik=async(e,t)=>{let r=typeof t==="function"?await t(e):t;if(!r)return;if(e.scheme==="bearer")return`Bearer ${r}`;if(e.scheme==="basic")return`Basic ${btoa(r)}`;return r},Fi=({parameters:e={},...t}={})=>(H)=>{let n=[];if(H&&typeof H==="object")for(let o in H){let a=H[o];if(a===void 0||a===null)continue;let s=e[o]||t;if(Array.isArray(a)){let i=Wi({allowReserved:s.allowReserved,explode:!0,name:o,style:"form",value:a,...s.array});if(i)n.push(i)}else if(typeof a==="object"){let i=Bi({allowReserved:s.allowReserved,explode:!0,name:o,style:"deepObject",value:a,...s.object});if(i)n.push(i)}else{let i=tn({allowReserved:s.allowReserved,name:o,value:a});if(i)n.push(i)}}return n.join("&")},bk=(e)=>{if(!e)return"stream";let t=e.split(";")[0]?.trim();if(!t)return;if(t.startsWith("application/json")||t.endsWith("+json"))return"json";if(t==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some((r)=>t.startsWith(r)))return"blob";if(t.startsWith("text/"))return"text";return},wk=(e,t)=>{if(!t)return!1;if(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`))return!0;return!1},Tk=async({security:e,...t})=>{for(let r of e){if(wk(t,r.name))continue;let H=await Ik(r,t.auth);if(!H)continue;let n=r.name??"Authorization";switch(r.in){case"query":if(!t.query)t.query={};t.query[n]=H;break;case"cookie":t.headers.append("Cookie",`${n}=${H}`);break;case"header":default:t.headers.set(n,H);break}}},Ki=(e)=>Lk({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer==="function"?e.querySerializer:Fi(e.querySerializer),url:e.url}),Xi=(e,t)=>{let r={...e,...t};if(r.baseUrl?.endsWith("/"))r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1);return r.headers=Ui(e.headers,t.headers),r},xk=(e)=>{let t=[];return e.forEach((r,H)=>{t.push([H,r])}),t},Ui=(...e)=>{let t=new Headers;for(let r of e){if(!r)continue;let H=r instanceof Headers?xk(r):Object.entries(r);for(let[n,o]of H)if(o===null)t.delete(n);else if(Array.isArray(o))for(let a of o)t.append(n,a);else if(o!==void 0)t.set(n,typeof o==="object"?JSON.stringify(o):o)}return t};class en{fns=[];clear(){this.fns=[]}eject(e){let t=this.getInterceptorIndex(e);if(this.fns[t])this.fns[t]=null}exists(e){let t=this.getInterceptorIndex(e);return Boolean(this.fns[t])}getInterceptorIndex(e){if(typeof e==="number")return this.fns[e]?e:-1;return this.fns.indexOf(e)}update(e,t){let r=this.getInterceptorIndex(e);if(this.fns[r])return this.fns[r]=t,e;return!1}use(e){return this.fns.push(e),this.fns.length-1}}var Pk=()=>({error:new en,request:new en,response:new en}),qk=Fi({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),Mk={"Content-Type":"application/json"},Yi=(e={})=>({...gk,headers:Mk,parseAs:"auto",querySerializer:qk,...e}),Ck=(e={})=>{let t=Xi(Yi(),e),r=()=>({...t}),H=(l)=>(t=Xi(t,l),r()),n=Pk(),o=async(l)=>{let c={...t,...l,fetch:l.fetch??t.fetch??globalThis.fetch,headers:Ui(t.headers,l.headers),serializedBody:void 0};if(c.security)await Tk({...c,security:c.security});if(c.requestValidator)await c.requestValidator(c);if(c.body!==void 0&&c.bodySerializer)c.serializedBody=c.bodySerializer(c.body);if(c.body===void 0||c.serializedBody==="")c.headers.delete("Content-Type");let A=Ki(c);return{opts:c,url:A}},a=async(l)=>{let{opts:c,url:A}=await o(l),u={redirect:"follow",...c,body:Ei(c)},d=new Request(A,u);for(let h of n.request.fns)if(h)d=await h(d,c);let p=c.fetch,g;try{g=await p(d)}catch(h){let w=h;for(let S of n.error.fns)if(S)w=await S(h,void 0,d,c);if(w=w||{},c.throwOnError)throw w;return c.responseStyle==="data"?void 0:{error:w,request:d,response:void 0}}for(let h of n.response.fns)if(h)g=await h(g,d,c);let m={request:d,response:g};if(g.ok){let h=(c.parseAs==="auto"?bk(g.headers.get("Content-Type")):c.parseAs)??"json";if(g.status===204||g.headers.get("Content-Length")==="0"){let S;switch(h){case"arrayBuffer":case"blob":case"text":S=await g[h]();break;case"formData":S=new FormData;break;case"stream":S=g.body;break;case"json":default:S={};break}return c.responseStyle==="data"?S:{data:S,...m}}let w;switch(h){case"arrayBuffer":case"blob":case"formData":case"text":w=await g[h]();break;case"json":{let S=await g.text();w=S?JSON.parse(S):{};break}case"stream":return c.responseStyle==="data"?g.body:{data:g.body,...m}}if(h==="json"){if(c.responseValidator)await c.responseValidator(w);if(c.responseTransformer)w=await c.responseTransformer(w)}return c.responseStyle==="data"?w:{data:w,...m}}let O=await g.text(),y;try{y=JSON.parse(O)}catch{}let L=y??O,f=L;for(let h of n.error.fns)if(h)f=await h(L,g,d,c);if(f=f||{},c.throwOnError)throw f;return c.responseStyle==="data"?void 0:{error:f,...m}},s=(l)=>(c)=>a({...c,method:l}),i=(l)=>async(c)=>{let{opts:A,url:u}=await o(c);return yk({...A,body:A.body,headers:A.headers,method:l,onRequest:async(d,p)=>{let g=new Request(d,p);for(let m of n.request.fns)if(m)g=await m(g,A);return g},serializedBody:Ei(A),url:u})};return{buildUrl:Ki,connect:s("CONNECT"),delete:s("DELETE"),get:s("GET"),getConfig:r,head:s("HEAD"),interceptors:n,options:s("OPTIONS"),patch:s("PATCH"),post:s("POST"),put:s("PUT"),request:a,setConfig:H,sse:{connect:i("CONNECT"),delete:i("DELETE"),get:i("GET"),head:i("HEAD"),options:i("OPTIONS"),patch:i("PATCH"),post:i("POST"),put:i("PUT"),trace:i("TRACE")},trace:s("TRACE")}},Gt=Ck(Yi()),$i=(e)=>(e?.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/",...e}),Vi=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/",...e});var Qk=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/dashboards/",...e});var Nk=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/detectors/",...e});var Zi=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/environments/",...e});var jk=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/events/",...e});var aa=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/projects/",...e});var Dk=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/replays/",...e}),zi=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/replays/{replay_id}/",...e});var Ji=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/trace-items/attributes/",...e});var Rk=(e)=>(e.client??Gt).get({security:[{scheme:"bearer",type:"http"}],url:"/api/0/organizations/{organization_id_or_slug}/workflows/",...e});class ec extends Error{status;body;response;documented;constructor(e,t,r,H,n=e===void 0?"Sentry API request failed before receiving a response":`Sentry API request failed with status ${e}`){super(n);this.name="SentryApiError",this.status=e,this.body=t,this.response=r,this.documented=H}}var vk=(e)=>{if(!e)return{};let t=e.split(","),r,H;for(let o of t){let a=o.trim().split(";").map((c)=>c.trim()),s,i,l;for(let c of a){let A=c.match(/^rel="([^"]*)"$/);if(A){s=A[1];continue}let u=c.match(/^results="([^"]*)"$/);if(u){i=u[1];continue}let d=c.match(/^cursor="([^"]*)"$/);if(d){l=d[1];continue}}if(i!=="true"||!l)continue;if(s==="next")r=l;else if(s==="previous")H=l}let n={};if(r!==void 0)n.nextCursor=r;if(H!==void 0)n.prevCursor=H;return n},OH=(e,t)=>{if(e.query===void 0&&t===void 0)return e;return{...e,query:{...e.query,...t!==void 0?{cursor:t}:void 0}}},Gk=(e,t)=>{if(e.error!==void 0){let r=e.response?.status;throw new ec(r,e.error,e.response,!1,r===void 0?`${t}: API request failed before receiving a response: ${String(e.error)}`:`${t}: API request failed with status ${r}: ${JSON.stringify(e.error)}`)}return{data:e.data,response:e.response}},Ek=(e,t)=>{let{data:r,response:H}=Gk(e,t),n=H.headers.get("link"),{nextCursor:o,prevCursor:a}=vk(n),s={data:r};if(o!==void 0)s.nextCursor=o;if(a!==void 0)s.prevCursor=a;return s},yH=async(e,t,r)=>{let H=await e(r);return Ek(H,t)};var tc=(e,t)=>yH((r)=>Qk(OH(e,r)),"listOrganizationDashboards",t);var sa=(e,t)=>yH((r)=>Nk(OH(e,r)),"listOrganizationDetectors",t);var rc=(e,t)=>yH((r)=>jk(OH(e,r)),"listOrganizationEvents",t);var Hc=(e,t)=>yH((r)=>Dk(OH(e,r)),"listOrganizationReplays",t);var nc=(e,t)=>yH((r)=>Rk(OH(e,r)),"listOrganizationWorkflows",t);function Ee(e){return e&&e.length>0?[...e]:["-1"]}var ca="is:unresolved issue.priority:[high, medium]",Lt="14d",Kk="24h",la=25,Aa=[{value:"recommended",label:"Recommended"},{value:"date",label:"Last Seen"},{value:"new",label:"Age"},{value:"trends",label:"Trends"},{value:"freq",label:"Events"},{value:"user",label:"Users"},{value:"inbox",label:"Date Added"},{value:"progress",label:"Progress"}],rn="date";function oc(e){return Aa.some((t)=>t.value===e)?e:rn}async function ac(e,{org:t,query:r=ca,sort:H=rn,statsPeriod:n=Lt,project:o,environment:a,cursor:s,limit:i=la,signal:l}){return e.request(`/organizations/${t}/issues/`,{query:{query:r,sort:H,statsPeriod:n,limit:i,shortIdLookup:1,cursor:s,project:Ee(o),environment:a,expand:["owners","inbox"],collapse:["stats","unhandled"]},signal:l})}async function sc(e,{org:t,groups:r,statsPeriod:H=Lt,groupStatsPeriod:n=Kk,project:o,signal:a}){if(r.length===0)return{};let s=await e.request(`/organizations/${t}/issues-stats/`,{query:{groups:r,statsPeriod:H,groupStatsPeriod:n,project:Ee(o)},signal:a}),i=Array.isArray(s.data)?s.data:[];return Object.fromEntries(i.map((l)=>[l.id,l]))}async function ic(e,{org:t,issueId:r,signal:H}){return(await e.request(`/organizations/${t}/issues/${r}/`,{signal:H})).data}async function cc(e,{org:t,issueId:r,eventId:H="latest",signal:n}){return(await e.request(`/organizations/${t}/issues/${r}/events/${H}/`,{signal:n})).data}async function lc(e,{org:t,issueId:r,update:H,signal:n}){return(await e.request(`/organizations/${t}/issues/${r}/`,{method:"PUT",body:H,signal:n})).data}async function Ac(e,{org:t,signal:r}){let{data:H}=await Vi({...e.generatedOptions(r),path:{organization_id_or_slug:t}});return fc(H)}async function uc(e,t){let r=await e.request("/users/me/",{signal:t}),H=r.data&&typeof r.data==="object"?r.data:{};return{...typeof H.id==="string"?{id:H.id}:{},...typeof H.name==="string"?{name:H.name}:{},...typeof H.email==="string"?{email:H.email}:{}}}async function dc(e,t){let{data:r}=await $i(e.generatedOptions(t));return r.map(fc)}async function pc(e,{org:t,signal:r}){return(await e.request(`/organizations/${t}/users/`,{signal:r})).data}var ia=100,mc=["latestDeploys","unusedFeatures"];async function gc(e,{org:t,query:r,perPage:H=ia,signal:n}){let o={query:r?.trim()||void 0,per_page:H,collapse:mc},{data:a}=await aa({...e.generatedOptions(n),path:{organization_id_or_slug:t},query:o});return Xk(a)}async function Oc(e,{org:t,ids:r,signal:H}){let n=[...new Set(r)].filter((a)=>/^\d+$/.test(a)),o=[];for(let a=0;a<n.length;a+=ia){let s=n.slice(a,a+ia),i={query:s.map((c)=>`id:${c}`).join(" "),per_page:s.length,collapse:mc},{data:l}=await aa({...e.generatedOptions(H),path:{organization_id_or_slug:t},query:i});o.push(...l.map(({id:c,slug:A})=>({id:c,slug:A})))}return o}function Xk(e){return e.map(({id:t,slug:r,name:H,platform:n})=>({id:t,slug:r,name:H,platform:n}))}async function yc(e,{org:t,signal:r}){let{data:H}=await Zi({...e.generatedOptions(r),path:{organization_id_or_slug:t}});return H}function fc(e){let t=e.avatar;return{id:e.id,slug:e.slug,name:e.name,features:e.features,...t?.avatarType?{avatar:{avatarType:t.avatarType,avatarUuid:t.avatarUuid??null,avatarUrl:t.avatarUrl}}:{}}}var Et=[{id:"issues",label:"Issues",glyph:"I",sections:[{items:["Feed","Inbox"]},{items:["Errors & Outages","Breached Metrics","Warnings","Configuration","User Feedback"]},{title:"Autofix",items:["Recently Run"]},{items:["All Views"]}]},{id:"explore",label:"Explore",glyph:"E",sections:[{items:["Traces","Logs","Metrics","Errors","Discover","Profiles","Replays","Releases","Conversations"]},{items:["All Queries"]}]},{id:"dashboards",label:"Dashboards",glyph:"D",sections:[{items:["All Dashboards","Sentry Built"]}]},{id:"seer",label:"Seer",glyph:"S",sections:[{items:["Ask Seer"]}]},{id:"monitors",label:"Monitors",glyph:"M",sections:[{items:["All Monitors","My Monitors"]},{title:"By Monitor Type",items:["Error","Metric","Cron","Uptime","Mobile Build"]},{items:["Alerts"]}]}];function pt(e){let t=Et.find((r)=>r.id===e);if(!t)throw Error(`Unknown nav group: ${e}`);return t}function Wk(e){return e.sections.flatMap((t)=>t.items)}function ua(e){let t=Wk(e);return t.length===1?t[0]:void 0}var fH=[{id:"sentry.app.quit",title:"Quit",category:"app",defaultKeys:["q"],palette:"always"},{id:"sentry.app.help",title:"Help",category:"app",defaultKeys:["?"],description:"Toggle this help overlay",palette:"always"},{id:"sentry.app.commandPalette",title:"Command palette",category:"app",defaultKeys:["ctrl+k","meta+k"],description:"Search every command and destination"},{id:"sentry.app.refresh",title:"Refresh",category:"app",defaultKeys:["ctrl+r","R"],description:"Reload the current view from the API",palette:"always"},{id:"sentry.app.update",title:"Restart into the update",category:"app",defaultKeys:["U"],description:"Restart into the downloaded update",palette:"update"},{id:"sentry.app.switchOrg",title:"Switch organization",category:"app",defaultKeys:["o"],description:"Open the organization picker",palette:"always"},{id:"sentry.app.openUrl",title:"Open Sentry URL\u2026",category:"app",defaultKeys:["ctrl+o"],description:"Open a copied Sentry URL",palette:"always"},{id:"sentry.app.focusNext",title:"Next pane",category:"app",defaultKeys:["tab"]},{id:"sentry.app.focusPrev",title:"Previous pane",category:"app",defaultKeys:["shift+tab"]},{id:"sentry.nav.down",title:"Move down",category:"nav",defaultKeys:["j","down"]},{id:"sentry.nav.up",title:"Move up",category:"nav",defaultKeys:["k","up"]},{id:"sentry.nav.top",title:"Jump to top",category:"nav",defaultKeys:["g","home"]},{id:"sentry.nav.bottom",title:"Jump to bottom",category:"nav",defaultKeys:["G","end"]},{id:"sentry.nav.pageDown",title:"Page down",category:"nav",defaultKeys:["pagedown","ctrl+d"]},{id:"sentry.nav.pageUp",title:"Page up",category:"nav",defaultKeys:["pageup","ctrl+u"]},{id:"sentry.nav.open",title:"Open",category:"nav",defaultKeys:["return"]},{id:"sentry.nav.back",title:"Back",category:"nav",defaultKeys:["escape"]},{id:"sentry.nav.goto",title:"Navigate",category:"nav",defaultKeys:["n"],description:"Jump to a nav item by its printed key"},{id:"sentry.nav.search",title:"Search",category:"nav",defaultKeys:["/"],description:"Focus the search box for this list",palette:"stream"},{id:"sentry.issue.resolve",title:"Resolve",category:"issue",defaultKeys:["r"],palette:"issue"},{id:"sentry.issue.archive",title:"Archive",category:"issue",defaultKeys:["a"],description:"Archive until the issue escalates",palette:"issue"},{id:"sentry.issue.unresolve",title:"Unresolve",category:"issue",defaultKeys:["u"],palette:"issue"},{id:"sentry.issue.bookmark",title:"Bookmark",category:"issue",defaultKeys:["b"],palette:"issue"},{id:"sentry.issue.markReviewed",title:"Mark reviewed",category:"issue",defaultKeys:["m"],palette:"issue"},{id:"sentry.seer.compose",title:"Ask Seer",category:"seer",defaultKeys:["i"],description:"Focus the Seer composer"},{id:"sentry.seer.newChat",title:"New chat",category:"seer",defaultKeys:["N"],description:"Start a fresh Seer conversation"},{id:"sentry.seer.interrupt",title:"Interrupt Seer",category:"seer",defaultKeys:["x"],description:"Ask Seer to stop the current turn"},{id:"sentry.seer.history",title:"Conversation history",category:"seer",defaultKeys:["H"],description:"Open recent Seer conversations"},{id:"sentry.seer.pushChanges",title:"Create or update pull requests",category:"seer",defaultKeys:["p"],description:"Push accepted Seer Code Mode changes"},{id:"sentry.view.filterProject",title:"Filter by project",category:"view",defaultKeys:["P"],description:"Open the project selector",palette:"stream"},{id:"sentry.view.filterEnv",title:"Filter by environment",category:"view",defaultKeys:["E"],description:"Open the environment selector",palette:"stream"},{id:"sentry.view.filterDate",title:"Filter by date",category:"view",defaultKeys:["D"],description:"Open the date range selector",palette:"stream"},{id:"sentry.view.sort",title:"Sort by",category:"view",defaultKeys:["S"],description:"Choose sort order"},{id:"sentry.explore.visualize",title:"Visualize",category:"view",defaultKeys:["V"],description:"Choose the aggregate to plot"},{id:"sentry.explore.visualizeField",title:"Visualize field",category:"view",defaultKeys:["F"],description:"Choose what the aggregate reads"},{id:"sentry.explore.groupBy",title:"Group by",category:"view",defaultKeys:["B"],description:"Group results by an attribute"},{id:"sentry.explore.sortDirection",title:"Sort direction",category:"view",defaultKeys:["O"],description:"Flip between ascending and descending"},{id:"sentry.explore.interval",title:"Chart interval",category:"view",defaultKeys:["I"],description:"Choose the chart bucket width"},{id:"sentry.view.toggleSection",title:"Fold section",category:"view",defaultKeys:["1","2","3","4","5","6"],description:"Fold the numbered section"},{id:"sentry.view.toggleAllSections",title:"Fold all sections",category:"view",defaultKeys:["z"],description:"Fold or unfold every section at once"}],Bk=new Map(fH.map((e)=>[e.id,e]));function Sc(e){return Bk.get(e)}function be(e){return Sc(e)?.defaultKeys[0]??""}var Fk={return:"enter",escape:"esc",pagedown:"pgdn",pageup:"pgup",down:"\u2193",up:"\u2191"},Uk={meta:"cmd"};function Ke(e){let t=e.split("+"),r=t.pop();return[...t.map((n)=>Uk[n]??n),Fk[r]??r].join("+")}function j(e,t){let r=Sc(e);if(!r)return!1;return r.defaultKeys.some((H)=>Yk(H,t))}function Yk(e,t){let r=e.split("+"),H=r[r.length-1],n=r.includes("ctrl"),o=r.includes("shift"),a=r.includes("meta");if(Boolean(t.ctrl)!==n)return!1;if(Boolean(t.meta)!==a)return!1;if(H.length===1&&/[a-zA-Z]/.test(H)){let i=o||H===H.toUpperCase();return t.name.toLowerCase()===H.toLowerCase()&&Boolean(t.shift)===i}if(Boolean(t.shift)!==o)return!1;return t.name===H}function _c(e){if(e>=97&&e<=122)return 0;if(e>=65&&e<=90)return 1;if(e>=48&&e<=57)return 2;return 3}function da(e){let t=e.charCodeAt(0);return t>=65&&t<=90?String.fromCharCode(t+32):e}function Gr(e,t){if(t.length===0)return{score:0,positions:[]};let r=0,H=-1,n=-1;for(let i=0;i<e.length;i++){if(da(e[i])!==t[r])continue;if(H<0)H=i;if(r++,r===t.length){n=i+1;break}}if(n===-1)return null;r=t.length-1;for(let i=n-1;i>=H;i--){if(da(e[i])!==t[r])continue;if(r--,r<0){H=i;break}}let{score:o,positions:a}=Vk(e,t,H,n);return{score:H===0&&n===e.length&&e.length===t.length?o+16:o,positions:a}}function $k(e,t){if(e===3&&t!==3)return 8;if(e===0&&t===1||e!==2&&t===2)return 7;if(t===3)return 8;return 0}function Vk(e,t,r,H){let n=0,o=0,a=!1,s=0,i=0,l=r>0?_c(e.charCodeAt(r-1)):3,c=[];for(let A=r;A<H;A++){let u=da(e[A]),d=_c(u.charCodeAt(0));if(u===t[n]){c.push(A),o+=16;let p=$k(l,d);if(i===0)s=p;else{if(p===8)s=p;p=Math.max(p,s,4)}o+=n===0?p*2:p,a=!1,i++,n++}else o+=a?-1:-3,a=!0,i=0,s=0;l=d}return{score:o,positions:c}}var kc=["Go to","Issue","Commands"],Lc=6;function Zk(e,t){switch(e){case"always":return!0;case"stream":return t.streamView;case"issue":return t.hasIssue;case"update":return t.updateReady}}function Ic(e,t=Et){let r=[];for(let H of t)for(let n of H.sections)for(let o of n.items)r.push({id:`nav:${H.id}:${o}`,section:"Go to",label:o,detail:H.label,keywords:n.title?[H.label,n.title]:[H.label],target:{kind:"nav",group:H.id,item:o}});for(let H of fH){if(!H.palette||!Zk(H.palette,e))continue;let n=be(H.id);r.push({id:`command:${H.id}`,section:H.category==="issue"?"Issue":"Commands",label:H.title,detail:n?Ke(n):void 0,keywords:H.description?[H.description]:void 0,target:{kind:"command",commandId:H.id}})}return r}function bc(e,t){let r=t.trim().toLowerCase();if(!r)return e.map((n)=>({action:n,score:0,positions:[]}));let H=[];for(let n of e){let o=Gr(n.label,r),a=o?.score??-1/0;for(let s of n.keywords??[]){let i=Gr(s,r);if(i&&i.score>a)a=i.score}if(a===-1/0)continue;H.push({action:n,score:a,positions:o?.positions??[]})}return H.sort((n,o)=>o.score-n.score)}function wc(e,t){let r=new Map;for(let H of e){let n=r.get(H.action.section);if(n)n.push(H);else r.set(H.action.section,[H])}return Array.from(r,([H,n])=>({section:H,results:t===void 0?n:n.slice(0,t),hidden:t===void 0?0:Math.max(0,n.length-t)})).sort((H,n)=>hc(n.results)-hc(H.results)||kc.indexOf(H.section)-kc.indexOf(n.section))}function hc(e){return e.length>0?Math.max(...e.map((t)=>t.score)):0}function Tc(e){let t=[],r=0;for(let H of e){t.push({kind:"heading",section:H.section});for(let n of H.results)t.push({kind:"result",result:n,index:r}),r++;if(H.hidden>0)t.push({kind:"more",section:H.section,count:H.hidden})}return t}function xc(e,t){return e.findIndex((r)=>r.kind==="result"&&r.index===t)}var zk=[[43200,"3h"],[20160,"1h"],[5760,"30m"],[2880,"10m"],[720,"5m"],[360,"1m"],[0,"1m"]];var Pc=["1m","2m","5m","10m","15m","20m","30m","1h","2h","3h","4h","6h","12h","1d","2d","1w"],Jk=[[43200,"12h"],[20160,"6h"],[5760,"3h"],[2880,"1h"],[720,"30m"],[360,"10m"],[60,"5m"],[5,"5m"],[0,"1m"]],eh=[{value:"1m",label:"1 minute"},{value:"5m",label:"5 minutes"},{value:"10m",label:"10 minutes"},{value:"30m",label:"30 minutes"},{value:"1h",label:"1 hour"},{value:"3h",label:"3 hours"},{value:"6h",label:"6 hours"},{value:"12h",label:"12 hours"}],th={s:0.016666666666666666,m:1,h:60,d:1440,w:10080};function Kt(e){if(!e)return;let t=/^(\d+)([smhdw]?)$/.exec(e.trim());if(!t)return;let r=Number(t[1]);if(!Number.isFinite(r))return;return r*th[t[2]||"s"]}function Sr(e){let t=Kt(e);if(t===void 0||t<0)return;return zk.find(([r])=>t>=r)[1]}function qc(e,t,r){if(r)return"1d";let H=Kt(t),n=Sr(e),o=H===void 0||H<=0?n:t,a=Kt(o),s=Kt(e);if(a===void 0||s===void 0)return o;let i=s/66;if(a>=i)return o;return Pc.find((l)=>Kt(l)>=i)??Pc.at(-1)}function Mc(e){let t=Kt(e);if(t===void 0||t<0)return[];let r=Kt(Sr(e)),H=Kt(Jk.find(([o])=>t>=o)[1]),n=eh.filter(({value:o})=>{let a=Kt(o);return a>=r&&a<=H});return t>=20160?[...n,{value:"1d",label:"1 day"}]:n}var rh=50,Hh=new Set(["errors","logs","spans","tracemetrics"]);async function It(e,{org:t,dataset:r,fields:H,sort:n,query:o="",statsPeriod:a,project:s,environment:i,cursor:l,limit:c=rh,referrer:A,signal:u}){if(nh(r)){let p=await rc({...e.generatedOptions(u),path:{organization_id_or_slug:t},query:{dataset:r,field:[...H],sort:n,query:o||void 0,statsPeriod:a,per_page:c,project:Ee(s),environment:i,referrer:A}},l);return{rows:Cc(p.data),nextCursor:p.nextCursor??null}}let d=await e.request(`/organizations/${t}/events/`,{query:{dataset:r,field:[...H],sort:n,query:o||void 0,statsPeriod:a,per_page:c,cursor:l,project:Ee(s),environment:i,referrer:A},signal:u});return{rows:Cc(d.data),nextCursor:d.nextCursor}}function nh(e){return Hh.has(e)}async function pa(e,{org:t,dataset:r,yAxis:H="count()",query:n="",statsPeriod:o,interval:a=Sr(o),project:s,environment:i,referrer:l,signal:c}){let A=await e.request(`/organizations/${t}/events-stats/`,{query:{dataset:r,yAxis:H,query:n||void 0,statsPeriod:o,interval:a,project:Ee(s),environment:i,referrer:l},signal:c});return oh(A.data)}async function Nc(e,{org:t,dataset:r,yAxis:H="count()",query:n="",statsPeriod:o,interval:a=Sr(o),project:s,environment:i,referrer:l,signal:c,groupBy:A,sort:u,topEvents:d}){let p=await e.request(`/organizations/${t}/events-timeseries/`,{query:{dataset:r,yAxis:H,query:n||void 0,statsPeriod:o,interval:a,project:Ee(s),environment:i,referrer:l,partial:1,excludeOther:0,sampling:"NORMAL",groupBy:A?[...A]:void 0,sort:u,topEvents:d},signal:c}),g=Array.isArray(p.data?.timeSeries)?p.data.timeSeries:[],m=new Map;for(let O of g.flatMap((y)=>Array.isArray(y?.values)?y.values:[])){if(!O||!Number.isFinite(O.timestamp))continue;let y=O.value===null?0:Number(O.value);if(!Number.isFinite(y))continue;let L=m.get(O.timestamp);m.set(O.timestamp,{count:(L?.count??0)+y,incomplete:Boolean(L?.incomplete||O.incomplete)})}return[...m.entries()].sort(([O],[y])=>O-y).map(([O,y])=>[O/1000,[{count:y.count}],{incomplete:y.incomplete||void 0}])}function Cc(e){if(Array.isArray(e))return e.filter(Qc);let t=e?.data;return Array.isArray(t)?t.filter(Qc):[]}function Qc(e){return typeof e==="object"&&e!==null}function oh(e){let t=Array.isArray(e)?e:e?.data;return Array.isArray(t)?t.filter(ah):[]}function ah(e){return Array.isArray(e)&&e.length>=2&&typeof e[0]==="number"}function je(e,t){let r=e[t];if(r===void 0||r===null||r==="")return;return String(r)}function yt(e,t){let r=Number(e[t]);return Number.isFinite(r)?r:void 0}var jc="1h";function kr(e,t){return`${e}\x00${t}`}var sh=20,ma="14d",ih="24h",Dc=[{value:"date",label:"Date Created"},{value:"sessions",label:"Total Sessions"},{value:"sessions_24h",label:"Active Sessions"},{value:"users_24h",label:"Active Users"},{value:"crash_free_sessions",label:"Crash-Free Sessions"},{value:"crash_free_users",label:"Crash-Free Users"},{value:"build",label:"Build Number"},{value:"semver",label:"Semantic Version"},{value:"adoption",label:"Date Adopted"}],Ec="date",ch=new Set(["sessions","sessions_24h","users_24h","crash_free_sessions","crash_free_users"]);function ga(e){return e.length===1?Dc:Dc.filter((t)=>t.value!=="adoption")}function Kc(e,t){return ga(t).some((r)=>r.value===e)?e:Ec}async function Xc(e,t){let r=await e.request(`/organizations/${t.org}/releases/`,Fc(t));return{data:Er(r.data).map(lh),nextCursor:r.nextCursor}}async function Wc(e,t){let r=Fc(t),H=await e.request(`/organizations/${t.org}/releases/`,{...r,query:{...r.query,health:"1",healthStat:"sessions",healthStatsPeriod:ih}}),n=new Map;for(let o of Er(H.data)){let a=Ct(o.version);if(!a)continue;for(let s of Er(o.projects)){let i=Xt(s.id),l=uh(s.healthData);if(i===void 0||!l)continue;n.set(kr(a,i),l)}}return n}async function Bc(e,{org:t,releases:r,project:H,environment:n,signal:o}){if(r.length===0)return new Map;let a=[...new Set(r.map((A)=>A.version).filter(Boolean))];if(a.length===0)return new Map;let s={field:["sum(session)"],interval:"1h",statsPeriod:"24h",project:H,environment:n},i=a.map((A)=>`release:${ph(A)}`).join(" OR "),[l,c]=await Promise.all([e.request(`/organizations/${t}/sessions/`,{query:{...s,query:i,groupBy:["project","release"]},signal:o}),e.request(`/organizations/${t}/sessions/`,{query:{...s,groupBy:["project"]},signal:o})]);return dh(r,l.data,c.data)}function Fc({query:e,statsPeriod:t=ma,project:r,environment:H,sort:n=Ec,cursor:o,limit:a=sh,signal:s}){let i=ch.has(n);return{query:{query:e||void 0,statsPeriod:t,project:r,environment:H,cursor:o,per_page:a,status:"open",sort:n,flatten:i?"1":void 0,summaryStatsPeriod:t},signal:s}}function lh(e){let t=Ct(e.version)??"",r=_r(e.versionInfo),H=_r(e.lastDeploy),n=H&&Ct(H.dateFinished);return{version:t,shortVersion:Ct(e.shortVersion)??t,package:r?Ct(r.package):void 0,dateCreated:Ct(e.dateCreated)??"",dateReleased:Ct(e.dateReleased),lastDeploy:n?{environment:Ct(H.environment)??"",dateFinished:n}:void 0,commitCount:Xt(e.commitCount)??0,authorCount:Er(e.authors).length,projects:Er(e.projects).map(Ah)}}function Ah(e){let t=Ct(e.slug)??"";return{id:Xt(e.id)??-1,slug:t,name:Ct(e.name)??t,platform:Ct(e.platform),newGroups:Xt(e.newGroups)??0}}function uh(e){let t=_r(e);if(!t)return;return{adoption:Xt(t.sessionsAdoption),crashFreeSessions:Xt(t.crashFreeSessions),crashFreeUsers:Xt(t.crashFreeUsers),sessionsCrashed:Xt(t.sessionsCrashed),totalSessions24h:Xt(t.totalSessions24h)}}function dh(e,t,r){let H=Rc(t,!0),n=Rc(r,!1),o=Math.max(vc(t),vc(r)),a=new Map;for(let s of e)for(let i of s.projects){let l=H.get(kr(s.version,i.id)),c=n.get(String(i.id));if(!l&&!c)continue;let A=Math.max(o,l?.length??0,c?.length??0);a.set(kr(s.version,i.id),{release:Gc(l,A),project:Gc(c,A)})}return a}function Rc(e,t){let r=_r(e),H=new Map;for(let n of Er(r?.groups)){let o=_r(n.by),a=Xt(o?.project),s=Ct(o?.release),i=_r(n.series)?.["sum(session)"];if(a===void 0||!Array.isArray(i))continue;if(t&&!s)continue;let l=t?kr(s,a):String(a);H.set(l,i.map((c)=>Xt(c)??0))}return H}function vc(e){let t=_r(e)?.intervals;return Array.isArray(t)?t.length:0}function Gc(e,t){return Array.from({length:t},(r,H)=>e?.[H]??0)}function ph(e){return`"${e.replaceAll("\\","\\\\").replaceAll('"',"\\\"")}"`}function Er(e){return Array.isArray(e)?e.filter(Uc):[]}function Uc(e){return typeof e==="object"&&e!==null}function _r(e){return Uc(e)?e:void 0}function Ct(e){if(e===void 0||e===null||e==="")return;return String(e)}function Xt(e){if(e===void 0||e===null||e==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}import{beginRequest as gN,log as ON,reportError as yN}from"h:7___________________________________";var Yc="https://sentry.io/api/0";class sr extends Error{status;retryable;retryAfterSeconds;constructor(e,{status:t,retryable:r,retryAfterSeconds:H}){super(e);this.name="ApiError",this.status=t,this.retryable=r,this.retryAfterSeconds=H}}var mh=50,Xr="14d",ya=[{value:"-started_at",label:"Newest"},{value:"started_at",label:"Oldest"},{value:"-activity",label:"Activity (high-low)"},{value:"activity",label:"Activity (low-high)"},{value:"-duration",label:"Longest duration"},{value:"duration",label:"Shortest duration"},{value:"-count_errors",label:"Most errors"},{value:"count_errors",label:"Fewest errors"},{value:"-count_dead_clicks",label:"Most dead clicks"},{value:"count_dead_clicks",label:"Fewest dead clicks"},{value:"-count_rage_clicks",label:"Most rage clicks"},{value:"count_rage_clicks",label:"Fewest rage clicks"},{value:"browser.name",label:"Browser (A-Z)"},{value:"-browser.name",label:"Browser (Z-A)"},{value:"os.name",label:"OS (A-Z)"},{value:"-os.name",label:"OS (Z-A)"}],$c="-started_at";function Vc(e){return ya.some((t)=>t.value===e)?e:$c}var gh=["activity","browser","count_dead_clicks","count_errors","count_infos","count_rage_clicks","count_segments","count_urls","count_warnings","device","dist","duration","environment","error_ids","finished_at","has_viewed","id","info_ids","is_archived","os","platform","project_id","releases","sdk","started_at","tags","trace_ids","urls","user","warning_ids"],Oh=["id","title","issue","level","project.name","timestamp"],yh=Yc.replace(/\/api\/0\/?$/,"");async function Zc(e,{org:t,query:r="",statsPeriod:H=Xr,project:n,environment:o,sort:a=$c,cursor:s,limit:i=mh,signal:l}){let c=await Hc({...e.generatedOptions(l),path:{organization_id_or_slug:t},query:{field:[...gh],sort:a,query:r||void 0,statsPeriod:H,per_page:i,project:Ee(n),environment:o,queryReferrer:"replayList"}},s);return{data:fh(c.data).map(tl),nextCursor:c.nextCursor??null}}async function zc(e,{org:t,replayId:r,signal:H}){let{data:n}=await zi({...e.generatedOptions(H),path:{organization_id_or_slug:t,replay_id:r}}),o=n.data;if(!Kr(o))throw Error(`Replay ${r} was not found.`);return tl(o,0)}async function Jc(e,{org:t,replayId:r,statsPeriod:H=Xr,environment:n,signal:o}){let a=await It(e,{org:t,dataset:"errors",fields:Oh,sort:"timestamp",query:`replayId:[${r}]`,statsPeriod:H,project:Ee(),environment:n,referrer:"sentry-tui.replay-details",signal:o});return{data:a.rows.map(Sh),nextCursor:a.nextCursor}}function el(e,t){return`${yh}/organizations/${e}/explore/replays/${t}/`}function fh(e){let t=Array.isArray(e)?e:Kr(e)?e.data:void 0;return Array.isArray(t)?t.filter(Kr):[]}function Kr(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function tl(e,t){return{id:Ht(e.id)??String(t),projectId:Ht(e.project_id),isArchived:e.is_archived===!0,hasViewed:e.has_viewed===!0,user:kh(e.user),startedAt:Ht(e.started_at)??"",finishedAt:Ht(e.finished_at)??"",durationSec:hr(e.duration),os:Oa(e.os),browser:Oa(e.browser),device:_h(e.device),sdk:Oa(e.sdk),platform:Ht(e.platform),environment:Ht(e.environment),releases:Hn(e.releases),activity:hr(e.activity),countErrors:hr(e.count_errors),countDeadClicks:hr(e.count_dead_clicks),countRageClicks:hr(e.count_rage_clicks),countUrls:hr(e.count_urls),countSegments:hr(e.count_segments),errorIds:Hn(e.error_ids),traceIds:Hn(e.trace_ids),urls:Hn(e.urls)}}function Sh(e,t){return{id:je(e,"id")??String(t),title:je(e,"title")??"",issue:je(e,"issue"),level:je(e,"level"),projectName:je(e,"project.name"),timestamp:je(e,"timestamp")??""}}function Ht(e){if(e===void 0||e===null||e==="")return;return String(e)}function hr(e){if(e===void 0||e===null||e==="")return;let t=Number(e);return Number.isFinite(t)?t:void 0}function Hn(e){if(!Array.isArray(e))return[];return e.map(Ht).filter((t)=>t!==void 0)}function Oa(e){if(!Kr(e))return{};return{name:Ht(e.name),version:Ht(e.version)}}function _h(e){if(!Kr(e))return{};return{name:Ht(e.name),version:Ht(e.model_id),brand:Ht(e.brand),family:Ht(e.family)}}function kh(e){if(!Kr(e))return{};return{displayName:Ht(e.display_name),email:Ht(e.email),id:Ht(e.id),ip:Ht(e.ip),username:Ht(e.username)}}function fa(e){if(e===void 0||e<0)return"\u2014";let t=Math.round(e),r=t%60,H=Math.floor(t/60)%60,n=Math.floor(t/3600),o=String(H).padStart(2,"0"),a=String(r).padStart(2,"0");return n>0?`${n}:${o}:${a}`:`${H}:${a}`}function SH(e){if(!e.name)return"\u2014";let t=e.version;if(!t||!/^\d/.test(t))return e.name;return`${e.name} ${t.split(".")[0]}`}function _H(e){return e.slice(0,8)}var rl="All Views";function nn(e){return`is:unresolved issue.category:[${e.join(",")}]`}var on=[{label:"Feed",query:ca,description:"High and medium priority issues across your projects."},{label:"Inbox",query:"is:unresolved issue.progress:[fix_proposed,diagnosed,assigned,identified,fix_applied] assigned_or_suggested:me issue.category:[error,mobile,frontend,db_query,http_client,configuration]",sort:"progress",description:"Issues assigned or suggested to you that Seer has moved along."},{label:"Errors & Outages",query:nn(["error","outage"]),description:"Issues that break functionality such as application errors, failed jobs, or downtime incidents."},{label:"Breached Metrics",query:nn(["metric"]),description:"Issues that indicate degraded system behavior such as endpoint latency regressions or metric threshold violations."},{label:"Warnings",query:nn(["db_query","http_client","frontend","mobile"]),description:"Issues in your code or configuration that may not break functionality but can degrade performance or user experience."},{label:"Configuration",query:nn(["configuration"]),description:"Issues detected from SDK or tooling configuration problems that degrade your ability to debug telemetry using Sentry."},{label:"User Feedback",query:"issue.category:feedback status:unresolved",description:"Feedback submitted by your users."},{label:"Recently Run",query:"is:unresolved has:issue.seer_last_run",description:"Issues where Seer has identified a root cause."}],hh=new Map(on.map((e)=>[e.label,e]));function Hl(e){return hh.get(e)}var bN=on[0];var Sa="explore.events",Lr="monitors.detectors",ol="issues.saved-view",_a="explore.replay-detail",nl="dashboards.list",al="dashboards.detail",ka={query:"",statsPeriod:jc},Lh={query:"",statsPeriod:Xr},Ih={Feed:"issues.feed",Inbox:"issues.inbox","Errors & Outages":"issues.errors-outages","Breached Metrics":"issues.breached-metrics",Warnings:"issues.warnings",Configuration:"issues.configuration","User Feedback":"issues.user-feedback","Recently Run":"issues.recently-run"},bh=[...on.map((e)=>({id:Ih[e.label],group:"issues",item:e.label,kind:"table",defaults:{query:e.query,sort:e.sort,statsPeriod:Lt}})),Ve("issues.all-views","issues",rl,"table")],ha=[...bh,an("explore.traces","Traces"),wh(),an("explore.metrics","Metrics"),an("explore.errors","Errors"),Th(),xh(),Ve("explore.replays","explore","Replays","table",void 0,Lh),an("explore.conversations","Conversations"),Ve("explore.discover","explore","Discover","table"),Ve("explore.all-queries","explore","All Queries","table"),Ve("dashboards.all","dashboards","All Dashboards","table",nl),Ve("dashboards.sentry-built","dashboards","Sentry Built","table",nl),Ve("monitors.all","monitors","All Monitors","table",Lr),Ve("monitors.mine","monitors","My Monitors","table",Lr),Ve("monitors.error","monitors","Error","table",Lr),Ve("monitors.metric","monitors","Metric","table",Lr),Ve("monitors.cron","monitors","Cron","table",Lr),Ve("monitors.uptime","monitors","Uptime","table",Lr),Ve("monitors.mobile-build","monitors","Mobile Build","table",Lr),Ve("monitors.alerts","monitors","Alerts","table"),Ve("seer.ask","seer","Ask Seer","chat")];function wh(){return{...Ve("explore.logs","explore","Logs","table",Sa,ka),openLabel:"details"}}function Th(){return{...Ve("explore.profiles","explore","Profiles","table",Sa,ka),openLabel:"details"}}function xh(){return{...Ve("explore.releases","explore","Releases","cards",void 0,{query:"",statsPeriod:ma}),openLabel:"expand"}}function an(e,t){return{...Ve(e,"explore",t,"table",Sa,ka),openLabel:"details"}}function Ve(e,t,r,H,n,o){return{id:e,group:t,item:r,kind:H,stateKey:n,defaults:o}}var Ph=new Map(ha.map((e)=>[sl(e.group,e.item),e])),qh=new Map(ha.map((e)=>[e.id,e]));function sl(e,t){return`${e}::${t}`}function il(e,t){return Ph.get(sl(e,t))}function kH(e){let t=qh.get(e);if(!t)throw Error(`Unknown screen id: ${e}`);return t}function Ir(e){return e.stateKey??e.id}function cl(e){return ha.find((t)=>Ir(t)===e)?.defaults??{}}import{countMetric as ll}from"h:7___________________________________";var Mh=/^[a-z0-9][a-z0-9_-]*$/i,Al=/^\d+$/,Ch=new Set(["www","us","eu"]),Qh={inbox:"issues.inbox","errors-outages":"issues.errors-outages","breached-metrics":"issues.breached-metrics",warnings:"issues.warnings","sentry-configuration":"issues.configuration",feedback:"issues.user-feedback","user-feedback":"issues.user-feedback",alerts:"monitors.alerts"},Nh={traces:"explore.traces",logs:"explore.logs",metrics:"explore.metrics",errors:"explore.errors","errors-v2":"explore.errors",profiles:"explore.profiles",profiling:"explore.profiles",replays:"explore.replays",releases:"explore.releases",agents:"explore.conversations",conversations:"explore.conversations","saved-queries":"explore.all-queries"},jh={"my-monitors":"monitors.mine",errors:"monitors.error",metrics:"monitors.metric",crons:"monitors.cron",uptime:"monitors.uptime","mobile-builds":"monitors.mobile-build",alerts:"monitors.alerts"};function ul(e){let t=e.trim();if(!t)return br("empty","Enter a full Sentry production URL.");let r;try{r=new URL(t)}catch{return br("malformed","That is not a valid URL.")}if(r.protocol!=="https:")return br("protocol","Sentry production URLs must use https.");if(!Dh(r.hostname))return br("host","That URL is not hosted on sentry.io.");let H;try{H=r.pathname.split("/").filter(Boolean).map(decodeURIComponent)}catch{return br("malformed","The URL path contains invalid escaping.")}let n;if(H[0]==="organizations")n=H[1],H=H.slice(2);let o=Rh(r.hostname);if(n&&o&&n!==o)return br("organization_mismatch","The organizations in the Sentry hostname and URL path do not match.");let a=vh(H,r.searchParams);if(a.kind==="unsupported")return a;let s=n??o;if(!s||!Mh.test(s))return br("organization","The URL does not identify a Sentry organization.");return{kind:"location",location:{org:s,...a.location,state:Fh(r.searchParams)}}}function dl(e,t){if(e.kind==="invalid")ll("nav.url.invalid",{surface:t,reason:e.reason});else ll("nav.url.unsupported",{surface:t,family:e.family})}function Dh(e){return e==="sentry.io"||e.endsWith(".sentry.io")}function Rh(e){if(!e.endsWith(".sentry.io"))return;let r=e.slice(0,-10);if(!r||r.includes(".")||Ch.has(r))return;return r}function vh(e,t){let[r,...H]=e;if(r==="issues")return Gh(H);if(r==="explore")return Eh(H,t);if(r==="dashboard"||r==="dashboards")return Xh(r,H,t);if(r==="monitors")return Wh(H);if(r==="traces")return Wr("explore.traces",H,"explore");if(r==="logs")return Wr("explore.logs",H,"explore");if(r==="profiling")return Wr("explore.profiles",H,"explore");if(r==="replays")return Bh(H);if(r==="releases")return Wr("explore.releases",H,"explore");if(r==="discover")return Wr("explore.discover",H,"explore");if(r==="errors-v2")return Wr("explore.errors",H,"explore");if(r==="feedback"&&H.length===0)return Ue("issues.user-feedback");return Wt(r==="settings"?"settings":r==="projects"?"projects":"other")}function Gh(e){if(e.length===0)return Ue("issues.feed");let t=Qh[e[0]];if(t&&e.length===1)return Ue(t);if(e[0]==="views"&&e.length===1)return Ue("issues.all-views");if(e[0]==="autofix"&&e[1]==="recent"&&e.length===2)return Ue("issues.recently-run");let r=e[0];if(r&&Al.test(r)){if(e.length===1)return Ue("issues.feed",{kind:"issue",issueId:r});if(e[1]==="events"&&e[2]&&e.length===3)return Ue("issues.feed",{kind:"issue",issueId:r,eventId:e[2]})}return Wt("issues")}function Eh(e,t){let r=e[0];if(!r)return Wt("explore");if(r==="replays"){if(e.length===1)return Ue("explore.replays");if(e.length===2&&e[1])return Ue("explore.replays",{kind:"replay",replayId:e[1]});return Wt("explore")}if(r==="discover"){if(e.length===1||e.length===2&&["homepage","queries"].includes(e[1]))return Ue("explore.discover");if(e.length===2&&e[1]==="results"){let n=Kh(t.get("dataset"));return n?Ue(n):Wt("explore")}return Wt("explore")}let H=Nh[r];return H&&e.length===1?Ue(H):Wt("explore")}function Kh(e){switch(e?.toLowerCase()){case"spans":return"explore.traces";case"logs":return"explore.logs";case"metrics":case"tracemetrics":return"explore.metrics";case"errors":case"issueplatform":return"explore.errors";default:return}}function Xh(e,t,r){if(e==="dashboards"&&t.length===0)return Ue(r.get("filter")==="onlyPrebuilt"?"dashboards.sentry-built":"dashboards.all");if(t.length===1&&t[0])return Ue("dashboards.all",{kind:"dashboard",dashboardId:t[0]});return Wt("dashboards")}function Wh(e){if(e.length===0)return Ue("monitors.all");let t=jh[e[0]];if(t&&e.length===1)return Ue(t);if(e.length===1&&e[0]&&Al.test(e[0]))return Ue("monitors.all",{kind:"monitor",detectorId:e[0]});return Wt("monitors")}function Bh(e){if(e.length===0)return Ue("explore.replays");if(e.length===1&&e[0])return Ue("explore.replays",{kind:"replay",replayId:e[0]});return Wt("explore")}function Wr(e,t,r){return t.length===0?Ue(e):Wt(r)}function Ue(e,t){return{kind:"matched",location:{screen:e,detail:t}}}function Fh(e){let t={},r=e.get("query"),H=e.get("statsPeriod"),n=e.get("sort"),o=e.getAll("project").filter(Boolean),a=e.getAll("environment").filter(Boolean);if(r!==null)t.query=r;if(H)t.statsPeriod=H;if(n)t.sort=n;if(o.length>0)t.selectedProjects=o;if(a.length>0)t.selectedEnvs=a;return Object.keys(t).length>0?t:void 0}function br(e,t){return{kind:"invalid",reason:e,message:t}}function Wt(e){return{kind:"unsupported",family:e,message:"That Sentry page is not implemented in sentry-tui yet."}}import{createContext as Yh,useContext as $h,useEffect as Vh,useState as Zh}from"h:0__";var La={mode:"dark",bg:"#0D0A10",panel:"#1B1821",panelAlt:"#24202B",chip:{surface:"#2D2835",rim:"#46404F",rimShadow:"#393442"},selected:"#26212E",border:"#393442",borderFocused:"#7553FF",text:"#E7E5EA",muted:"#A49EAE",subText:"#958E9F",accent:"#7553FF",danger:"#F6938C",warning:"#FFCE00",success:"#5ECE73",highlight:"#FF45A8",hotkey:"#FF45A8",syntax:{keyword:"#F6938C",string:"#5ECE73",number:"#FF9838",comment:"#A49EAE",function:"#9A94F1",type:"#FFCE00",variable:"#E7E5EA",constant:"#FF9838",operator:"#A49EAE",punctuation:"#A49EAE"},level:{fatal:"#C10000",error:"#FF9838",warning:"#FFCE00",info:"#7553FF",sample:"#7553FF",unknown:"#958E9F"},status:{resolved:"#5ECE73",regressed:"#9A94F1",escalating:"#F6938C",new:"#FFCE00",ongoing:"#A49EAE",archived:"#A49EAE"}},Uh={mode:"light",bg:"#FFFFFF",panel:"#F8F8F9",panelAlt:"#EEEEF0",chip:{surface:"#E8E8EB",rim:"#CDCCD2",rimShadow:"#B1AFB8"},selected:"#E8E8EB",border:"#C0BEC6",borderFocused:"#5827D6",text:"#302E36",muted:"#5B5864",subText:"#6A6772",accent:"#5827D6",danger:"#C10000",warning:"#813100",success:"#007800",highlight:"#9F005F",hotkey:"#9F005F",syntax:{keyword:"#C10000",string:"#007800",number:"#934100",comment:"#5B5864",function:"#5533B2",type:"#813100",variable:"#302E36",constant:"#C10000",operator:"#5B5864",punctuation:"#5B5864"},level:{fatal:"#780000",error:"#C10000",warning:"#813100",info:"#5827D6",sample:"#5827D6",unknown:"#5B5864"},status:{resolved:"#007800",regressed:"#5533B2",escalating:"#C10000",new:"#813100",ongoing:"#5B5864",archived:"#5B5864"}};function ml(e){return e==="light"?Uh:La}var pl=new Map;async function gl(e){let t=pl.get(e.mode);if(t)return t;let{SyntaxStyle:r}=await import("h:3__________"),H=r.fromStyles({default:{fg:e.text},keyword:{fg:e.syntax.keyword},string:{fg:e.syntax.string},number:{fg:e.syntax.number},comment:{fg:e.syntax.comment,italic:!0},function:{fg:e.syntax.function},type:{fg:e.syntax.type},variable:{fg:e.syntax.variable},constant:{fg:e.syntax.constant},operator:{fg:e.syntax.operator},punctuation:{fg:e.syntax.punctuation}});return pl.set(e.mode,H),H}import{jsxDEV as zh}from"h:6___________________________";var Ol=Yh(La);function _(){return $h(Ol)}function yl({source:e,initialMode:t,fixed:r,children:H}){let[n,o]=Zh(t);return Vh(()=>{if(r)return;let a=(s)=>o(s);if(e.on("theme_mode",a),e.themeMode)o(e.themeMode);return()=>{e.off("theme_mode",a)}},[r,e]),zh(Ol.Provider,{value:ml(n),children:H},void 0,!1,void 0,this)}var bt={RESOLVED:"resolved",UNRESOLVED:"unresolved",IGNORED:"ignored",REPROCESSING:"reprocessing"},Br={ARCHIVED_UNTIL_ESCALATING:"archived_until_escalating",ARCHIVED_UNTIL_CONDITION_MET:"archived_until_condition_met",ARCHIVED_FOREVER:"archived_forever",ESCALATING:"escalating",ONGOING:"ongoing",REGRESSED:"regressed",NEW:"new"};function Fr(e,t){if(!Array.isArray(e))return;return e.find((r)=>r.type===t)}function fl(e,t){let r={...e};if(t.status!==void 0)r.status=t.status;if(t.substatus!==void 0)r.substatus=t.substatus;if(t.isBookmarked!==void 0)r.isBookmarked=t.isBookmarked;if(t.isSubscribed!==void 0)r.isSubscribed=t.isSubscribed;if(t.hasSeen!==void 0)r.hasSeen=t.hasSeen;if(t.priority!==void 0)r.priority=t.priority;if(t.inbox===!1)r.hasSeen=!0;return r}var Ia=[{commandId:"sentry.issue.resolve",pastTense:"resolved",update:(e)=>e.status===bt.RESOLVED?null:{status:bt.RESOLVED}},{commandId:"sentry.issue.archive",pastTense:"archived",update:(e)=>e.status===bt.IGNORED?{status:bt.UNRESOLVED}:{status:bt.IGNORED,substatus:Br.ARCHIVED_UNTIL_ESCALATING}},{commandId:"sentry.issue.unresolve",pastTense:"unresolved",update:(e)=>e.status===bt.UNRESOLVED?null:{status:bt.UNRESOLVED}},{commandId:"sentry.issue.bookmark",pastTense:"bookmarked",update:(e)=>({isBookmarked:!e.isBookmarked})},{commandId:"sentry.issue.markReviewed",pastTense:"marked reviewed",update:(e)=>e.hasSeen?null:{inbox:!1,hasSeen:!0}}];function sn(e){return Ia.find((t)=>t.commandId===e)}function Sl(e){switch(e){case"sentry.issue.resolve":return"already resolved";case"sentry.issue.unresolve":return"already unresolved";case"sentry.issue.markReviewed":return"already reviewed";default:return"nothing to do"}}import{breadcrumb as R1,identify as v1,log as G1}from"h:7___________________________________";import{useEffect as bL,useMemo as wL,useState as Gl}from"h:0__";import{useKeyboard as TL,useTerminalDimensions as xL}from"h:4___________";function ba({onlyFirst:e=!1}={}){return new RegExp("(?:\\u001B\\][^\\u0007\\u001B\\u009C]*(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",e?void 0:"g")}var Jh=ba();function wa(e){if(typeof e!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(Jh,"")}var _l=161,kl=1114109,hl=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],Ll=12288,Il=65510,bl=[12288,12288,65281,65376,65504,65510];var wl=4352,Tl=262141,Ta=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141];var cn=(e,t)=>{let r=0,H=Math.floor(e.length/2)-1;while(r<=H){let n=Math.floor((r+H)/2),o=n*2;if(t<e[o])H=n-1;else if(t>e[o+1])r=n+1;else return!0}return!1};var xl=19968,[eL,tL]=rL(Ta);function rL(e){let t=e[0],r=e[1];for(let H=0;H<e.length;H+=2){let n=e[H],o=e[H+1];if(xl>=n&&xl<=o)return[n,o];if(o-n>r-t)t=n,r=o}return[t,r]}var Pl=(e)=>{if(e<_l||e>kl)return!1;return cn(hl,e)},ql=(e)=>{if(e<Ll||e>Il)return!1;return cn(bl,e)};var Ml=(e)=>{if(e>=eL&&e<=tL)return!0;if(e<wl||e>Tl)return!1;return cn(Ta,e)};function HL(e){if(!Number.isSafeInteger(e))throw TypeError(`Expected a code point, got \`${typeof e}\`.`)}function hH(e,{ambiguousAsWide:t=!1}={}){if(HL(e),ql(e)||Ml(e)||t&&Pl(e))return 2;return 1}var nL=new Intl.Segmenter,Cl=/^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Format}|\p{Nonspacing_Mark}|\p{Enclosing_Mark}|\p{Surrogate})+$/v,oL=/^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Nonspacing_Mark}\p{Enclosing_Mark}\p{Surrogate}]+/v,aL=/\p{Spacing_Mark}/v,sL=/^\p{RGI_Emoji}$/v,iL=/^[\d#*]\u20E3$/,cL=/\p{Extended_Pictographic}/gu;function lL(e){if(e.length>50)return!1;if(iL.test(e))return!0;if(e.includes("\u200D")){let t=e.match(cL);return t!==null&&t.length>=2}return!1}function AL(e){return e.replace(oL,"")}function uL(e){return Cl.test(e)}function Ql(e){return e>=4352&&e<=4447||e>=43360&&e<=43388}function Nl(e){return e>=4448&&e<=4519||e>=55216&&e<=55238}function jl(e){return e>=4520&&e<=4607||e>=55243&&e<=55291}function dL(e){return Ql(e)||Nl(e)||jl(e)}function pL(e,t){let r=[];for(let n of e){if(Cl.test(n))continue;r.push(n.codePointAt(0))}if(r.length===0)return;let H=0;for(let n=0;n<r.length;n++){let o=r[n];if(!dL(o)){if(H===0)return;for(let a=n;a<r.length;a++)H+=hH(r[a],t);return H}if(Ql(o)&&Nl(r[n+1])){H+=2,n+=jl(r[n+2])?2:1;continue}H+=hH(o,t)}return H}function mL(e,t){let r=0,H=!0;for(let n of e){if(H){H=!1;continue}if(aL.test(n)||n>="\uFF00"&&n<="\uFFEF")r+=hH(n.codePointAt(0),t)}return r}function xa(e,t={}){if(typeof e!=="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:H=!1}=t,n=e;if(!H&&(n.includes("\x1B")||n.includes("\x9B")))n=wa(n);if(n.length===0)return 0;if(/^[\u0020-\u007E]*$/.test(n))return n.length;let o=0,a={ambiguousAsWide:!r};for(let{segment:s}of nL.segment(n)){if(uL(s))continue;if(sL.test(s)||lL(s)){o+=2;continue}let i=AL(s),l=pL(i,a);if(l!==void 0){o+=l;continue}let c=i.codePointAt(0);o+=hH(c,a),o+=mL(i,a)}return o}function Ae(e){return xa(e)}var gL=/\u001b\][\s\S]*?(?:\u0007|\u001b\\)/g,OL=/\u001b(?:\[[0-9;?]*[ -/]*[@-~]|[@-Z\\-_])/g,yL=/[\n\r\t\v\f\u0085\u2028\u2029]+/g,fL=/[\u0000-\u0009\u000b-\u001f\u007f-\u009f\u2028\u2029]/g,SL=/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/g;function Dl(e){return e.replace(gL,"").replace(OL,"")}function _L(e){if(!/[\u0000-\u0009\u000b-\u001f\u007f-\u009f\u2028\u2029]/.test(e))return e;return Dl(e).replace(fL,"")}function Rl(e){if(!/[\u0000-\u001f\u007f-\u009f\u2028\u2029]/.test(e))return e;return Dl(e).replace(yL," ").replace(SL,"")}function D(e,t,r="\u2026"){if(t<=0)return"";let H=Rl(e);if(Ae(H)<=t)return H;let n=Ae(r);if(t<=n)return r.slice(0,t);let o=t-n,a="",s=0;for(let i of H){let l=Ae(i);if(s+l>o)break;a+=i,s+=l}return a+r}function wr(e,t){if(t<=0)return[];let r=[];for(let H of _L(e).split(`
|
|
9
|
+
`)){if(H===""){r.push("");continue}let n="";for(let o of H.split(" ")){let a=n===""?o:`${n} ${o}`;if(Ae(a)<=t){n=a;continue}if(n!=="")r.push(n),n="";let s=o;while(Ae(s)>t){let i="",l=0;for(let c of s){let A=Ae(c);if(l+A>t)break;i+=c,l+=A}r.push(i),s=s.slice(i.length)}n=s}r.push(n)}return r}function k(e,t,r="left"){let H=D(e,t),n=Math.max(0,t-Ae(H));if(r==="center"){let a=Math.floor(n/2);return" ".repeat(a)+H+" ".repeat(n-a)}let o=" ".repeat(n);return r==="left"?H+o:o+H}function Pa(e,t,r="\u2026"){if(t<=0)return"";let H=Rl(e);if(Ae(H)<=t)return H;let n=Ae(r);if(t<=n)return r.slice(0,t);let o=t-n,a=Math.ceil(o/2),s=o-a,i=[...H],l="",c=0;for(let u of i){let d=Ae(u);if(c+d>a)break;l+=u,c+=d}let A="";c=0;for(let u=i.length-1;u>=0;u--){let d=i[u],p=Ae(d);if(c+p>s)break;A=d+A,c+=p}return l+r+A}import{jsxDEV as vl}from"h:6___________________________";function ln({text:e,positions:t,width:r,fg:H}){let n=_(),o=D(e,r),a=o===e?o.length:Math.max(0,o.length-1),s=new Set(t),i=[],l="",c=!1,A=()=>{if(!l)return;i.push(vl("span",{fg:c?n.accent:H,children:l},i.length,!1,void 0,this)),l=""};for(let u=0;u<o.length;u++){let d=u<a&&s.has(u);if(d!==c)A(),c=d;l+=o[u]}return A(),vl("text",{children:i},void 0,!1,void 0,this)}import{useTerminalDimensions as kL}from"h:4___________";function An({width:e,height:t,terminalWidth:r,terminalHeight:H,margin:n=2}){let o=Math.max(1,Math.min(e,r-n*2)),a=Math.max(1,Math.min(t,H-n*2));return{width:o,height:a,left:Math.max(0,Math.floor((r-o)/2)),top:Math.max(0,Math.floor((H-a)/2))}}function un(e,t,r){if(t<=r)return 0;let H=e-Math.floor(r/2);return Math.min(Math.max(H,0),t-r)}import{jsxDEV as qa,Fragment as IL}from"h:6___________________________";var hL=55,LL=60;function Ur({title:e,width:t,height:r,onClose:H,children:n}){let o=_(),{width:a,height:s}=kL(),i=An({width:t,height:r,terminalWidth:a,terminalHeight:s});return qa(IL,{children:[qa("box",{style:{position:"absolute",top:0,left:0,width:a,height:s,zIndex:hL},onMouseUp:H},void 0,!1,void 0,this),qa("box",{title:e,style:{position:"absolute",top:i.top,left:i.left,width:i.width,height:i.height,zIndex:LL,border:!0,borderColor:o.accent,backgroundColor:o.panel,flexDirection:"column",paddingTop:1,paddingRight:1,paddingBottom:0,paddingLeft:1},onMouseUp:(l)=>l.stopPropagation(),children:n},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function dn(e){return e.name==="down"||e.name==="n"&&Boolean(e.ctrl)}function pn(e){return e.name==="up"||e.name==="p"&&Boolean(e.ctrl)}function mt(e){e.preventDefault(),e.stopPropagation()}function tr(e,t,r=mt){for(let H of e){let n=H(t);if(n==="notMine")continue;if(n==="mine")r(t);return!0}return!1}import{jsxDEV as nt}from"h:6___________________________";var El=68,Kl=24,PL=7,qL=2,Xl=2,ML="\u2191\u2193 move \xB7 enter select \xB7 esc close";function Wl({actions:e,onRun:t,onClose:r}){let H=_(),{width:n,height:o}=xL(),[a,s]=Gl(""),[i,l]=Gl(0),{results:c,rows:A}=wL(()=>{let m=bc(e,a),O=wc(m,a.trim()?Lc:void 0);return{results:O.flatMap((L)=>L.results),rows:Tc(O)}},[e,a]);bL(()=>l(0),[a]),TL((m)=>{tr([()=>{if(j("sentry.nav.back",m))return r(),"mine";if(j("sentry.app.commandPalette",m))return r(),"mine";if(j("sentry.nav.open",m)){let O=c[i]?.action;if(O)t(O);return"mine"}if(dn(m))return l((O)=>Math.min(O+1,c.length-1)),"mine";if(pn(m))return l((O)=>Math.max(O-1,0)),"mine";return"notMine"}],m,mt)});let u=An({width:El,height:Kl,terminalWidth:n,terminalHeight:o}),d=Math.max(1,u.width-4),p=Math.max(1,u.height-PL),g=un(Math.max(0,xc(A,i)),A.length,p);return nt(Ur,{title:" Command palette ",width:El,height:Kl,onClose:r,children:[nt("box",{style:{flexDirection:"row",flexShrink:0},children:[nt("text",{fg:H.accent,children:"\u276F "},void 0,!1,void 0,this),nt("input",{value:a,placeholder:"Search commands and destinations\u2026",focused:!0,onInput:s,style:{flexGrow:1,textColor:H.text,backgroundColor:H.panel,focusedTextColor:H.text,focusedBackgroundColor:H.panel,placeholderColor:H.subText}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),nt("box",{style:{flexGrow:1,flexDirection:"column",marginTop:1},children:A.length===0?nt("text",{fg:H.muted,children:D(`No matches for "${a}"`,d)},void 0,!1,void 0,this):A.slice(g,g+p).map((m)=>{if(m.kind==="heading")return nt("text",{fg:H.accent,children:m.section},`heading:${m.section}`,!1,void 0,this);if(m.kind==="more")return nt("text",{fg:H.subText,children:` +${m.count} more \u2014 keep typing`},`more:${m.section}`,!1,void 0,this);return nt(CL,{row:m,selected:m.index===i,width:d,onPress:()=>t(m.result.action)},m.result.action.id,!1,void 0,this)})},void 0,!1,void 0,this),nt("box",{style:{flexDirection:"row",flexShrink:0,marginTop:1},children:[nt("text",{fg:H.muted,children:D(ML,Math.max(0,d-oa.length-Xl))},void 0,!1,void 0,this),nt("box",{style:{flexGrow:1}},void 0,!1,void 0,this),nt("text",{fg:H.subText,children:oa},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function CL({row:e,selected:t,width:r,onPress:H}){let n=_(),{action:o,positions:a}=e.result,s=o.detail??"",i=Math.max(1,r-qL-(s?s.length+Xl:0));return nt("box",{style:{flexDirection:"row",flexShrink:0,backgroundColor:t?n.selected:void 0},onMouseUp:H,children:[nt("text",{fg:n.accent,children:t?"\u25B8 ":" "},void 0,!1,void 0,this),nt(ln,{text:o.label,positions:a,width:i,fg:t?n.text:n.muted},void 0,!1,void 0,this),nt("box",{style:{flexGrow:1}},void 0,!1,void 0,this),s?nt("text",{fg:n.subText,children:s},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}import{TextAttributes as LH}from"h:3__________";var G=LH.BOLD,ir=LH.ITALIC,Ze=LH.DIM,Yr=LH.UNDERLINE,$r=LH.NONE;import{jsxDEV as QL}from"h:6___________________________";function wt({command:e,emphasised:t=!1}){let r=_(),H=be(e);if(!H)return null;return QL("text",{fg:r.hotkey,attributes:t?G|Yr:Yr,children:Ke(H)},void 0,!1,void 0,this)}import{jsxDEV as Ma}from"h:6___________________________";var NL=10,Bl=2,Ca="sentry.nav.back";function Fl(e){let t=be(e);return t?Ae(Ke(t)):0}function Ul(e,t){let r=Math.floor(t/2)-Bl-Fl(Ca);return D(`back to ${e} `,Math.max(0,r))}function Qa(e,t){let r=Ul(e,t);return r?Bl+Ae(r)+Fl(Ca):0}function Yl({parent:e,top:t,right:r,paneWidth:H}){let n=_(),o=Ul(e,H);if(!o)return null;let a=Qa(e,H);return Ma("box",{style:{position:"absolute",top:t,left:Math.max(0,r-a),width:a,height:1,zIndex:NL,flexDirection:"row",backgroundColor:n.bg,paddingLeft:1,paddingRight:1},children:[Ma("text",{fg:n.muted,children:o},void 0,!1,void 0,this),Ma(wt,{command:Ca},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as Wa,useEffect as Ba,useMemo as hn,useState as gm}from"h:0__";import{jsxDEV as ze,Fragment as GL}from"h:6___________________________";var dr=1,Tt=3,jL="\u2590",DL="\u258C",Vl=2,RL="\u2581",vL="\u2594";function Qt({command:e,label:t,caret:r=!1}){let H=Ke(be(e)),n=H?Ae(H)+1:0;return Vl+1+n+Ae(t)+(r?2:0)+1}function Zl(e){let t=[],r=0;for(let H of e)t.push(r),r+=Qt(H)+dr;return t}function Tr({command:e,label:t,caret:r=!1,active:H=!1,onPress:n}){let o=_(),a=Ke(be(e)),s=H?o.accent:o.text,i=Qt({command:e,label:t,caret:r})-Vl;return ze("box",{style:{flexDirection:"column",flexShrink:0},onMouseDown:n,children:[ze($l,{glyph:RL,width:i,color:o.chip.rim},void 0,!1,void 0,this),ze("box",{style:{flexDirection:"row"},children:[ze("text",{fg:o.chip.rim,children:jL},void 0,!1,void 0,this),ze("box",{style:{flexDirection:"row",backgroundColor:o.chip.surface},children:[ze("text",{children:" "},void 0,!1,void 0,this),a?ze(GL,{children:[ze(wt,{command:e,emphasised:!0},void 0,!1,void 0,this),ze("text",{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,ze("text",{fg:s,children:t},void 0,!1,void 0,this),r?ze("text",{fg:H?o.accent:o.muted,children:" \u25BE"},void 0,!1,void 0,this):null,ze("text",{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),ze("text",{fg:o.chip.rim,children:DL},void 0,!1,void 0,this)]},void 0,!0,void 0,this),ze($l,{glyph:vL,width:i,color:o.chip.rimShadow},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function $l({glyph:e,width:t,color:r}){return ze("text",{fg:r,children:` ${e.repeat(Math.max(0,t))} `},void 0,!1,void 0,this)}function mn({chips:e,activeIndex:t,onPress:r}){return ze("box",{style:{flexDirection:"row",flexShrink:0},children:e.map((H,n)=>ze("box",{style:{flexDirection:"row"},children:[n>0?ze("text",{children:" ".repeat(dr)},void 0,!1,void 0,this):null,ze(Tr,{...H,active:n===t,onPress:()=>r?.(H,n)},void 0,!1,void 0,this)]},H.command,!0,void 0,this))},void 0,!1,void 0,this)}import{useCallback as im,useEffect as cm,useMemo as Ra,useRef as $w,useState as va}from"h:0__";import{useKeyboard as Vw,useTerminalDimensions as Zw}from"h:4___________";import{readFileSync as EL}from"fs";var zl=new Map;function gn(e){let t=zl.get(e);if(!t)t=EL(e),zl.set(e,t);return t}var Jl="./assets/activeadmin-p8zytf80.png";var eA="./assets/actix-tt2a8ysg.png";var tA="./assets/aiohttp-gmt10x6m.png";var rA="./assets/alpinejs-wqnxn6y1.png";var HA="./assets/amazon-p185z4ev.png";var nA="./assets/amd-p8c25cfe.png";var oA="./assets/analogjs-cna1hg98.png";var aA="./assets/android-xjr1314k.png";var sA="./assets/android-phone-mjzxta39.png";var iA="./assets/android-tablet-mjzxta39.png";var cA="./assets/angularjs-7h46ejvd.png";var lA="./assets/anthropic-rrcv6ejq.png";var AA="./assets/anthropic-claude-4n50evr8.png";var uA="./assets/apache-airflow-w7c50371.png";var dA="./assets/apache-beam-2q3zbaks.png";var pA="./assets/apache-spark-a680t00k.png";var mA="./assets/app-engine-ghexy1y6.png";var gA="./assets/apple-fh3mfwj2.png";var OA="./assets/apple-ipad-dfky3d0g.png";var yA="./assets/apple-iphone-dfky3d0g.png";var fA="./assets/apple-tv-dfky3d0g.png";var SA="./assets/apple-watch-dfky3d0g.png";var _A="./assets/ariadne-p2xx19an.png";var kA="./assets/arm-5rs1ketc.png";var hA="./assets/astro-nbngj53v.png";var LA="./assets/aws-7vzr54cj.png";var IA="./assets/awslambda-qzxqvkkb.png";var bA="./assets/azure-functions-bst1wkws.png";var wA="./assets/backbone-7cg22pv4.png";var TA="./assets/bazzite-ybxzg5vm.png";var xA="./assets/blazor-hxv5b1jm.png";var PA="./assets/bottle-fgvkq9ed.png";var qA="./assets/bun-qzcj59r5.png";var MA="./assets/capacitor-a3m2sqp1.png";var CA="./assets/celery-gd1erc4d.png";var QA="./assets/chalice-xmacx55d.png";var NA="./assets/chrome-xdd75zcv.png";var jA="./assets/chromium-s43136bv.png";var DA="./assets/clickhouse-eg3e8wwt.png";var RA="./assets/clojure-kvpja977.png";var vA="./assets/cloudflare-pxsb5f3n.png";var GA="./assets/cloudflare-pages-0nwgb0by.png";var EA="./assets/cloudflare-workers-x0py78jv.png";var KA="./assets/cohere-sp0b9n61.png";var XA="./assets/connect-7r7dc91q.png";var WA="./assets/convex-az2pt1fc.png";var BA="./assets/cordova-7wzvfz77.png";var FA="./assets/cpp-n8ke0smy.png";var UA="./assets/cryengine-c186nv57.png";var YA="./assets/crystal-zwaetd1f.png";var $A="./assets/csharp-4cgxa8dg.png";var VA="./assets/css-g8jdrx8v.png";var ZA="./assets/dart-g38t75be.png";var zA="./assets/deepseek-7r4457fz.png";var JA="./assets/default-mqvk902r.png";var eu="./assets/deno-815kzqz1.png";var tu="./assets/django-qq1crz4g.png";var ru="./assets/dotnet-5gqvv1yc.png";var Hu="./assets/dotnetcore-n03w6x5h.png";var nu="./assets/dotnetframework-brnpeeq7.png";var ou="./assets/dotnetfx-7vm66a84.png";var au="./assets/dramatiq-b0c46xrk.png";var su="./assets/echo-7va69gxg.png";var iu="./assets/edge-4qt9t9s2.png";var cu="./assets/edge-legacy-sqwdg70h.png";var lu="./assets/effect-sqx9ndtk.png";var Au="./assets/electron-2n9s8mts.png";var uu="./assets/elixir-mckzq1sq.png";var du="./assets/ember-a65qyfxw.png";var pu="./assets/expo-24k68r06.png";var mu="./assets/express-bagm4hrp.png";var gu="./assets/falcon-y3g2pkw1.png";var Ou="./assets/fastapi-y61f6fkc.png";var yu="./assets/fasthttp-dg3jpzzs.png";var fu="./assets/fastify-6kqs83vt.png";var Su="./assets/fastmcp-z39yqz67.png";var _u="./assets/fiber-4hk7w77j.png";var ku="./assets/firebase-cxe03y85.png";var hu="./assets/firefox-bg5zmx5g.png";var Lu="./assets/flask-cen3cnk3.png";var Iu="./assets/flutter-yg7vv7v2.png";var bu="./assets/font-gm2xc8k1.png";var wu="./assets/fsharp-rdvgykvd.png";var Tu="./assets/gatsby-1cbrkhen.png";var xu="./assets/gcp-functions-f9fr7ptc.png";var Pu="./assets/gemini-kkn8pkkz.png";var qu="./assets/gin-50chx0th.png";var Mu="./assets/git-2wwbsash.png";var Cu="./assets/gnu-sza5z2m0.png";var Qu="./assets/go-fe31mx1h.png";var Nu="./assets/godot-5pyt3hf3.png";var ju="./assets/google-h9hjmbaw.png";var Du="./assets/grape-z45yjx7n.png";var Ru="./assets/graphene-wdrmh5wg.png";var vu="./assets/graphql-jfg31yab.png";var Gu="./assets/grok-tek8dkt5.png";var Eu="./assets/groq-3w8j5sz6.png";var Ku="./assets/grpc-41ce8e5w.png";var Xu="./assets/hanami-h1ha69g0.png";var Wu="./assets/hapi-xjkhg9xk.png";var Bu="./assets/hono-ydv0kfra.png";var Fu="./assets/httpx-72gb9ze8.png";var Uu="./assets/huey-a53cr7qy.png";var Yu="./assets/huggingface-yceen1hy.png";var $u="./assets/hydrogen-wremh7ah.png";var Vu="./assets/internet-explorer-mc34535p.png";var Zu="./assets/ionic-9x7e24b2.png";var zu="./assets/iris-nvn6jx31.png";var Ju="./assets/java-xd88qxr3.png";var ed="./assets/javascript-fkw36jr6.png";var td="./assets/koa-xeggzpx7.png";var rd="./assets/kotlin-kttwkzk0.png";var Hd="./assets/langchain-dsrcgqtg.png";var nd="./assets/langgraph-0gbzq3bw.png";var od="./assets/laravel-8vdwspz3.png";var ad="./assets/launchdarkly-8nrxg4j1.png";var sd="./assets/linux-mbda8m22.png";var id="./assets/lit-yy9gb2z5.png";var cd="./assets/litellm-mn7mn3p5.png";var ld="./assets/litestar-qgaq765e.png";var Ad="./assets/livewire-dhq1zp6k.png";var ud="./assets/logback-qdan81zj.png";var dd="./assets/loguru-1qkw3dj3.png";var pd="./assets/magento-mbmqx6pj.png";var md="./assets/martini-0ynefktw.png";var gd="./assets/mastra-bkzx6z2t.png";var Od="./assets/maui-k0v6671h.png";var yd="./assets/mcp-3a0e0d7f.png";var fd="./assets/meteor-pfjeajd9.png";var Sd="./assets/million-hqa7qjzr.png";var _d="./assets/mistral-c8k352td.png";var kd="./assets/mongodb-8zfpdrvw.png";var hd="./assets/mono-2jgc1h36.png";var Ld="./assets/motorola-se1nxnrc.png";var Id="./assets/nativec-8hc1qqqq.png";var bd="./assets/nestjs-pdtzc08t.png";var wd="./assets/nextjs-1h4ss2x7.png";var Td="./assets/nintendo-b121b9tx.png";var xd="./assets/nintendo-switch-10fwf0z8.png";var Pd="./assets/nintendo-switch-2-c30gwjdr.png";var qd="./assets/nitro-0m2zry4j.png";var Md="./assets/nodejs-4440bt1m.png";var Cd="./assets/nuxt-9az5kp86.png";var Qd="./assets/nvidia-sx95qpxr.png";var Nd="./assets/openai-30efemfr.png";var jd="./assets/openfeature-7d7994hd.png";var Dd="./assets/opennext-qwtbtf69.png";var Rd="./assets/opera-vm5934z4.png";var vd="./assets/padrino-h1r8j27p.png";var Gd="./assets/perforce-m3brdm35.png";var Ed="./assets/perl-rtt66y1c.png";var Kd="./assets/perplexity-hppwdxr6.png";var Xd="./assets/php-epsnnhgx.png";var Wd="./assets/playstation-hdnq37vd.png";var Bd="./assets/postgresql-460mxqat.png";var Fd="./assets/powershell-4fhvrc1v.png";var Ud="./assets/pydantic-ai-fktc46py.png";var Yd="./assets/pyramid-68tybq4d.png";var $d="./assets/python-0nvac8nw.png";var Vd="./assets/qq-vr99tzv0.png";var Zd="./assets/qt-k87rvs14.png";var zd="./assets/quart-r5ngms2j.png";var Jd="./assets/qwik-bz2wcfjr.png";var ep="./assets/rails-4pkdasvb.png";var tp="./assets/ray-gmyxm5cx.png";var rp="./assets/react-8r99y108.png";var Hp="./assets/react-native-wmddwz2w.png";var np="./assets/react-router-v69yad6z.png";var op="./assets/redis-q94fh9hd.png";var ap="./assets/remix-53wdkf82.png";var sp="./assets/ruby-kcaxbrv4.png";var ip="./assets/rust-v7er9616.png";var cp="./assets/safari-pcf00dtn.png";var lp="./assets/samsung-cm92184f.png";var Ap="./assets/sanic-7z0zpwya.png";var up="./assets/scala-9aq9kgns.png";var dp="./assets/serverless-5293xmwf.png";var pp="./assets/sidekiq-rnhzcwdj.png";var mp="./assets/sinatra-c03nt3xg.png";var gp="./assets/solid-c96n8hcv.png";var Op="./assets/solidstart-rb5kh1an.png";var yp="./assets/spring-nq4z52xr.png";var fp="./assets/springboot-n0jkm57m.png";var Sp="./assets/sql-hax5xfdd.png";var _p="./assets/sqlalchemy-rkmzzb4z.png";var kp="./assets/sqlserver-xy5xks5j.png";var hp="./assets/starlette-j4s3ckgz.png";var Lp="./assets/steamos-esnc2vf1.png";var Ip="./assets/strawberry-gvtdbrv2.png";var bp="./assets/stride3d-na06nbdk.png";var wp="./assets/supabase-b8xn5ya6.png";var Tp="./assets/svelte-99kpn61e.png";var xp="./assets/swift-rz9jd9bd.png";var Pp="./assets/symfony-5g12vm0z.png";var qp="./assets/tanstack-803fcdrr.png";var Mp="./assets/tauri-s27nrazn.png";var Cp="./assets/tokio-2qsmkbdt.png";var Qp="./assets/tornado-jr9hafty.png";var Np="./assets/tower-m2b3e55m.png";var jp="./assets/tracing-sf8fezjm.png";var Dp="./assets/trailblazer-tts0mg9m.png";var Rp="./assets/tryton-agrkpqzp.png";var vp="./assets/typer-4ax7g9nv.png";var Gp="./assets/ubuntu-2485bsgg.png";var Ep="./assets/unity-dh3f2d41.png";var Kp="./assets/unleash-3n7nzk6v.png";var Xp="./assets/uno-f3aqa0pr.png";var Wp="./assets/unreal-66wfngpk.png";var Bp="./assets/vercel-5tsw5vx4.png";var Fp="./assets/visual-basic-mv5kd4ph.png";var Up="./assets/vscode-ht1kf4d5.png";var Yp="./assets/vue-s1y5fsg1.png";var $p="./assets/wasm-zc2sdxtz.png";var Vp="./assets/windows-m96vxbh1.png";var Zp="./assets/xamarin-13pfqd8y.png";var zp="./assets/xbox-j22pmsf0.png";var Na={activeadmin:Jl,actix:eA,aiohttp:tA,alpinejs:rA,amazon:HA,amd:nA,analogjs:oA,android:aA,"android-phone":sA,"android-tablet":iA,angularjs:cA,anthropic:lA,"anthropic-claude":AA,"apache-airflow":uA,"apache-beam":dA,"apache-spark":pA,"app-engine":mA,apple:gA,"apple-ipad":OA,"apple-iphone":yA,"apple-tv":fA,"apple-watch":SA,ariadne:_A,arm:kA,astro:hA,aws:LA,awslambda:IA,"azure-functions":bA,backbone:wA,bazzite:TA,blazor:xA,bottle:PA,bun:qA,capacitor:MA,celery:CA,chalice:QA,chrome:NA,chromium:jA,clickhouse:DA,clojure:RA,cloudflare:vA,"cloudflare-pages":GA,"cloudflare-workers":EA,cohere:KA,connect:XA,convex:WA,cordova:BA,cpp:FA,cryengine:UA,crystal:YA,csharp:$A,css:VA,dart:ZA,deepseek:zA,default:JA,deno:eu,django:tu,dotnet:ru,dotnetcore:Hu,dotnetframework:nu,dotnetfx:ou,dramatiq:au,echo:su,edge:iu,"edge-legacy":cu,effect:lu,electron:Au,elixir:uu,ember:du,expo:pu,express:mu,falcon:gu,fastapi:Ou,fasthttp:yu,fastify:fu,fastmcp:Su,fiber:_u,firebase:ku,firefox:hu,flask:Lu,flutter:Iu,font:bu,fsharp:wu,gatsby:Tu,"gcp-functions":xu,gemini:Pu,gin:qu,git:Mu,gnu:Cu,go:Qu,godot:Nu,google:ju,grape:Du,graphene:Ru,graphql:vu,grok:Gu,groq:Eu,grpc:Ku,hanami:Xu,hapi:Wu,hono:Bu,httpx:Fu,huey:Uu,huggingface:Yu,hydrogen:$u,"internet-explorer":Vu,ionic:Zu,iris:zu,java:Ju,javascript:ed,koa:td,kotlin:rd,langchain:Hd,langgraph:nd,laravel:od,launchdarkly:ad,linux:sd,lit:id,litellm:cd,litestar:ld,livewire:Ad,logback:ud,loguru:dd,magento:pd,martini:md,mastra:gd,maui:Od,mcp:yd,meteor:fd,million:Sd,mistral:_d,mongodb:kd,mono:hd,motorola:Ld,nativec:Id,nestjs:bd,nextjs:wd,nintendo:Td,"nintendo-switch":xd,"nintendo-switch-2":Pd,nitro:qd,nodejs:Md,nuxt:Cd,nvidia:Qd,openai:Nd,openfeature:jd,opennext:Dd,opera:Rd,padrino:vd,perforce:Gd,perl:Ed,perplexity:Kd,php:Xd,playstation:Wd,postgresql:Bd,powershell:Fd,"pydantic-ai":Ud,pyramid:Yd,python:$d,qq:Vd,qt:Zd,quart:zd,qwik:Jd,rails:ep,ray:tp,react:rp,"react-native":Hp,"react-router":np,redis:op,remix:ap,ruby:sp,rust:ip,safari:cp,samsung:lp,sanic:Ap,scala:up,serverless:dp,sidekiq:pp,sinatra:mp,solid:gp,solidstart:Op,spring:yp,springboot:fp,sql:Sp,sqlalchemy:_p,sqlserver:kp,starlette:hp,steamos:Lp,strawberry:Ip,stride3d:bp,supabase:wp,svelte:Tp,swift:xp,symfony:Pp,tanstack:qp,tauri:Mp,tokio:Cp,tornado:Qp,tower:Np,tracing:jp,trailblazer:Dp,tryton:Rp,typer:vp,ubuntu:Gp,unity:Ep,unleash:Kp,uno:Xp,unreal:Wp,vercel:Bp,"visual-basic":Fp,vscode:Up,vue:Yp,wasm:$p,windows:Vp,xamarin:Zp,xbox:zp};var sE=Object.keys(Na);function Jp(e){let t=Na[e];return t===void 0?void 0:gn(t)}var em={amazon:"amazon",amd:"amd",android:"android","android-phone":"android-phone","android-tablet":"android-tablet",anthropic:"anthropic","anthropic-claude":"anthropic-claude",apple:"apple","apple-ipad":"apple-ipad","apple-iphone":"apple-iphone","apple-tv":"apple-tv","apple-watch":"apple-watch",arm:"arm",bazzite:"bazzite",bun:"bun",capacitor:"capacitor",chrome:"chrome",chromium:"chromium",clojure:"clojure",cloudflare:"cloudflare",cocoa:"apple","cocoa-objc":"apple","cocoa-swift":"swift",cohere:"cohere",convex:"convex",cordova:"cordova",cpp:"cpp",cryengine:"cryengine",crystal:"crystal",csharp:"csharp","csharp-aspnetcore":"csharp",css:"css",dart:"dart",deepseek:"deepseek",default:"default",deno:"deno",dotnet:"dotnet","dotnet-aspnet":"dotnet","dotnet-aspnetcore":"dotnet","dotnet-awslambda":"awslambda","dotnet-blazor":"blazor","dotnet-csharp":"csharp","dotnet-gcpfunctions":"gcp-functions","dotnet-maui":"maui","dotnet-uno":"uno","dotnet-xamarin":"xamarin",dotnetcore:"dotnetcore",dotnetframework:"dotnetframework",dotnetfx:"dotnetfx",edge:"edge","edge-legacy":"edge-legacy",electron:"electron",elixir:"elixir",expo:"expo",fastmcp:"fastmcp",firebase:"firebase",firefox:"firefox",flutter:"flutter",font:"font",fsharp:"fsharp",gemini:"gemini",git:"git",go:"go","go-echo":"echo","go-fasthttp":"fasthttp","go-fiber":"fiber","go-gin":"gin","go-iris":"iris","go-martini":"martini","go-negroni":"go",godot:"godot",google:"google",grok:"grok",groq:"groq",huggingface:"huggingface","internet-explorer":"internet-explorer",ionic:"ionic",java:"java","java-android":"android","java-appengine":"app-engine","java-log4j":"java","java-log4j2":"java","java-logback":"logback","java-logging":"java","java-ray":"ray","java-spring":"spring","java-spring-boot":"springboot",javascript:"javascript","javascript-alpinejs":"alpinejs","javascript-analogjs":"analogjs","javascript-angular":"angularjs","javascript-angularjs":"angularjs","javascript-astro":"astro","javascript-awslambda":"awslambda","javascript-azurefunctions":"azure-functions","javascript-backbone":"backbone","javascript-browser":"javascript","javascript-capacitor":"capacitor","javascript-cloudflare-pages":"cloudflare-pages","javascript-cloudflare-workers":"cloudflare-workers","javascript-connect":"connect","javascript-cordova":"cordova","javascript-effect":"effect","javascript-electron":"electron","javascript-ember":"ember","javascript-expo":"expo","javascript-express":"express","javascript-fastify":"fastify","javascript-firebase":"firebase","javascript-gatsby":"gatsby","javascript-gcpfunctions":"gcp-functions","javascript-hapi":"hapi","javascript-hono":"hono","javascript-hydrogen":"hydrogen","javascript-ionic":"ionic","javascript-koa":"koa","javascript-lit":"lit","javascript-meteor":"meteor","javascript-million":"million","javascript-nestjs":"nestjs","javascript-nextjs":"nextjs","javascript-nitro":"nitro","javascript-node":"nodejs","javascript-nuxt":"nuxt","javascript-opennext":"opennext","javascript-qwik":"qwik","javascript-react":"h:0__","javascript-react-router":"react-router","javascript-remix":"remix","javascript-serverlesscloud":"serverless","javascript-solid":"solid","javascript-solidstart":"solidstart","javascript-svelte":"svelte","javascript-sveltekit":"svelte","javascript-tanstackstart-react":"tanstack","javascript-vue":"vue","javascript-wasm":"wasm",kotlin:"kotlin","kotlin-android":"android",langchain:"langchain",langgraph:"langgraph",launchdarkly:"launchdarkly",linux:"linux",litellm:"litellm",mastra:"mastra",mcp:"mcp",mistral:"mistral",mono:"mono",motorola:"motorola",native:"nativec","native-qt":"qt",nintendo:"nintendo","nintendo-switch":"nintendo-switch","nintendo-switch-2":"nintendo-switch-2",node:"nodejs",nvidia:"nvidia",openai:"openai",openfeature:"openfeature",opera:"opera",perforce:"perforce",perl:"perl",perplexity:"perplexity",php:"php","php-laravel":"laravel","php-livewire":"livewire","php-magento":"magento","php-monolog":"php","php-symfony":"symfony","php-symfony2":"symfony",playstation:"playstation",powershell:"powershell","pydantic-ai":"pydantic-ai",python:"python","python-aiohttp":"aiohttp","python-airflow":"apache-airflow","python-ariadne":"ariadne","python-asyncpg":"postgresql","python-awslambda":"awslambda","python-azurefunctions":"azure-functions","python-beam":"apache-beam","python-boto3":"aws","python-bottle":"bottle","python-celery":"celery","python-chalice":"chalice","python-clickhouse-driver":"clickhouse","python-django":"django","python-dramatiq":"dramatiq","python-falcon":"falcon","python-fastapi":"fastapi","python-flask":"flask","python-gcpfunctions":"gcp-functions","python-gnu_backtrace":"gnu","python-gql":"graphql","python-graphene":"graphene","python-grpc":"grpc","python-httpx":"httpx","python-huey":"huey","python-litestar":"litestar","python-loguru":"loguru","python-pylons":"python","python-pymongo":"mongodb","python-pyramid":"pyramid","python-pythonawslambda":"awslambda","python-quart":"quart","python-ray":"ray","python-redis":"redis","python-rq":"redis","python-sanic":"sanic","python-serverless":"serverless","python-spark":"apache-spark","python-sqlalchemy":"sqlalchemy","python-starlette":"starlette","python-strawberry":"strawberry","python-tornado":"tornado","python-tryton":"tryton","python-typer":"typer",qq:"qq",qt:"qt","react-native":"react-native",ruby:"ruby","ruby-activeadmin":"activeadmin","ruby-grape":"grape","ruby-hanami":"hanami","ruby-padrino":"padrino","ruby-rack":"ruby","ruby-rails":"rails","ruby-sidekiq":"sidekiq","ruby-sinatra":"sinatra","ruby-trailblazer":"trailblazer",rust:"rust","rust-actix":"actix","rust-axum":"tokio","rust-tower":"tower","rust-tracing":"tracing",safari:"safari",samsung:"samsung",scala:"scala",sql:"sql",sqlserver:"sqlserver",steamos:"steamos",stride3d:"stride3d",supabase:"supabase",swift:"swift",tauri:"tauri",ubuntu:"ubuntu",ue4:"unreal",unity:"unity",unleash:"unleash",unreal:"unreal",unrealengine:"unreal",uwp:"windows",vercel:"vercel",visualbasic:"visual-basic",vscode:"vscode",windows:"windows",xbox:"xbox"};var tm="default";function rm(e){if(!e)return tm;let t=e.split("-");for(let r=t.length;r>0;r--){let H=em[t.slice(0,r).join("-")];if(H)return H}return tm}import{useCallback as Hm,useSyncExternalStore as Kw}from"h:0__";import{useRenderer as Xw}from"h:4___________";var Ww=!!(process.env.HERDR_ENV||process.env.TMUX||process.env.STY),Bw={supported:!1,supportsHighRes:!1},nm=new WeakMap;function ja(e){let t=nm.get(e);if(!t)t={value:Bw,listeners:new Set,handler:null},nm.set(e,t);return t}function om(e){let t=e.capabilities;if(!t)return;let r={supported:!0,supportsHighRes:!Ww&&(t.kitty_graphics||t.sixel)},H=ja(e);if(H.value.supported===r.supported&&H.value.supportsHighRes===r.supportsHighRes)return;H.value=r;for(let n of H.listeners)n()}function Bt(){let e=Xw(),t=Hm((H)=>{let n=ja(e);if(n.listeners.add(H),!n.handler)n.handler=()=>om(e),e.on("capabilities",n.handler);return om(e),()=>{if(n.listeners.delete(H),n.listeners.size===0&&n.handler)e.off("capabilities",n.handler),n.handler=null}},[e]),r=Hm(()=>ja(e).value,[e]);return Kw(t,r)}import{jsxDEV as Uw}from"h:6___________________________";var am=2,Fw=1;function On(){let{supportsHighRes:e}=Bt();return e?am+1:0}function Vr({platform:e}){let{supportsHighRes:t}=Bt();if(!t)return null;let r=Jp(rm(e));if(!r)return null;return Uw("image",{source:r,fit:"fit",style:{width:am,height:Fw,flexShrink:0,marginRight:1}},void 0,!1,void 0,this)}import{jsxDEV as Da,Fragment as Yw}from"h:6___________________________";function Nt(){return Da(Yw,{children:[Da(wt,{command:"sentry.nav.search"},void 0,!1,void 0,this),Da("text",{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function yn(e,t){let r=t.trim().toLowerCase();if(!r)return e.map((n)=>({item:n,positions:[]}));let H=[];for(let n of e){let o=Gr(n.label,r);if(!o)continue;H.push({item:n,positions:o.positions,score:o.score})}return H.sort((n,o)=>o.score-n.score),H.map(({item:n,positions:o})=>({item:n,positions:o}))}function sm(e,t){let r=t.trim().toLowerCase();if(!r)return e.map((H)=>({item:H,positions:[]}));return e.map((H)=>({item:H,positions:Gr(H.label,r)?.positions??[]}))}import{jsxDEV as jt,Fragment as tT}from"h:6___________________________";var lm=50,Am=2,zw=12,Jw=20,eT=32,Ga=0;function Ea(){return Ga>0}function lt({title:e,items:t,selected:r,anchorLeft:H,anchorTop:n,availableWidth:o,showAll:a=!0,multiple:s=!1,filterable:i=!1,onQueryChange:l,remoteFilter:c=!1,loading:A=!1,maxWidth:u,placeholder:d,onSelect:p,onClose:g}){let m=_(),{width:O,height:y}=Zw(),L=On(),[f,h]=va(""),w=im((z)=>{h(z),l?.(z)},[l]),[S,I]=va(!1),P=$w(!1),x=Ra(()=>a&&!(c&&f.trim())?[{label:"All",value:"__all__"},...t]:[...t],[a,t,c,f]),q=Ra(()=>c?sm(x,f):yn(x,f),[x,f,c]),v=Ra(()=>{if(r.length===0)return 0;let z=x.findIndex((X)=>X.value===r[0]);return z>=0?z:0},[x,r]),[C,b]=va(v);cm(()=>{if(f.trim())b(0);else if(!s||!P.current)b(v)},[v,s,f]),cm(()=>(Ga+=1,()=>{Ga-=1}),[]);let T=im((z)=>{let X=q[z]?.item;if(!X)return;if(P.current=!0,X.value==="__all__")p([]);else if(s)p(r.includes(X.value)?r.filter((xe)=>xe!==X.value):[...r,X.value]);else p([X.value]);if(!s)g()},[q,s,r,p,g]);Vw((z)=>{tr([()=>{if(j("sentry.nav.open",z))return T(C),"mine";if(dn(z))return b((X)=>Math.min(X+1,q.length-1)),"mine";if(pn(z))return b((X)=>Math.max(X-1,0)),"mine";if(S){if(j("sentry.nav.back",z))return w(""),I(!1),"mine";return"focused"}if(j("sentry.nav.back",z))return g(),"mine";if(i&&j("sentry.nav.search",z))return I(!0),"mine";if(j("sentry.nav.down",z))return b((X)=>Math.min(X+1,q.length-1)),"mine";if(j("sentry.nav.up",z))return b((X)=>Math.max(X-1,0)),"mine";if(j("sentry.nav.top",z))return b(0),"mine";if(j("sentry.nav.bottom",z))return b(q.length-1),"mine";return"mine"}],z,mt)});let Q=x.some((z)=>("platform"in z))?L:0,B=q.length>0?void 0:A?"Searching\u2026":x.length>0||c&&f.trim()?`No match for "${f.trim()}"`:d,R=B?1:q.length,K=Am+Q+2,ee=i?1:0,ae=Math.max(i?eT:Jw,...x.map((z)=>z.label.length+K),B?B.length+K:0),He=Math.min(O,o??O),se=Math.min(ae,u??1/0,He-2),le=Math.max(1,Math.min(R,zw,y-n-3-ee)),ue=le+ee+2,ne=un(C,q.length,le),N=Math.max(0,Math.min(H,He-se-1)),U=Math.min(n,y-ue-1);return jt(tT,{children:[jt("box",{style:{position:"absolute",top:0,left:0,width:O,height:y,zIndex:lm-1},onMouseDown:g},void 0,!1,void 0,this),jt("box",{title:` ${e} `,style:{position:"absolute",top:U,left:N,width:se,height:ue,zIndex:lm,border:!0,borderColor:m.accent,backgroundColor:m.panel,flexDirection:"column"},onMouseUp:(z)=>z.stopPropagation(),children:[i?jt("box",{style:{flexDirection:"row",flexShrink:0},onMouseUp:()=>I(!0),children:[jt(Nt,{},void 0,!1,void 0,this),jt("input",{value:f,placeholder:"filter\u2026",focused:S,onInput:w,style:{flexGrow:1,textColor:m.text,backgroundColor:m.panel,focusedTextColor:m.text,focusedBackgroundColor:m.panel,placeholderColor:m.subText}},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,B?jt("text",{fg:m.muted,children:` ${D(B,se-3)}`},void 0,!1,void 0,this):null,q.slice(ne,ne+le).map(({item:z,positions:X},xe)=>{let ie=ne+xe===C,re=z.value==="__all__"?r.length===0:r.includes(z.value),Ne=ie?m.text:re?m.accent:m.muted,ye=se-2-Q-Am;return jt("box",{style:{flexDirection:"row",alignSelf:"flex-start",backgroundColor:ie?m.selected:void 0},children:[jt("text",{fg:Ne,children:re?"\u25CF ":" "},void 0,!1,void 0,this),Q>0?"platform"in z?jt(Vr,{platform:z.platform},void 0,!1,void 0,this):jt("box",{style:{width:Q,flexShrink:0}},void 0,!1,void 0,this):null,jt(ln,{text:z.label,positions:X,width:ye,fg:Ne},void 0,!1,void 0,this)]},z.value,!0,void 0,this)})]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{useEffect as rT}from"h:0__";import{jsxDEV as dm}from"h:6___________________________";var IH="sentry.view.sort",Ka=0;function um(){return Ka>0}function bH(e,t){return e.find((r)=>r.value===t)?.label??t}function fn(e){return e.flatMap((t)=>[{value:`-${t}`,label:`${t} (desc)`},{value:t,label:`${t} (asc)`}])}function Sn({value:e,items:t,open:r,onOpen:H}){return rT(()=>(Ka+=1,()=>{Ka-=1}),[]),dm(Tr,{command:IH,label:bH(t,e),caret:!0,active:r,onPress:H},void 0,!1,void 0,this)}function _n({value:e,items:t,anchorLeft:r,anchorTop:H,availableWidth:n,onChange:o,onClose:a}){return dm(lt,{title:"Sort By",items:t,selected:[e],anchorLeft:r,anchorTop:H,availableWidth:n,showAll:!1,onSelect:(s)=>{let i=s[0];if(i)o(i);a()},onClose:a},void 0,!1,void 0,this)}import{useEffect as Xa,useMemo as HT,useRef as nT,useState as kn}from"h:0__";var pm=new WeakMap,oT=new Map;async function aT(e,t,r){let H=pm.get(e);if(!H)H=new Map,pm.set(e,H);let n=H.get(t);if(!n)n=new Map,H.set(t,n);let o=r.filter((s)=>!n.has(s));if(o.length>0){let s=Oc(e,{org:t,ids:o}).then((i)=>new Map(i.map((l)=>[l.id,l.slug])));for(let i of o){let l=s.then((c)=>c.get(i));n.set(i,l),l.catch(()=>{if(n.get(i)===l)n.delete(i)})}}let a=await Promise.all(r.map(async(s)=>{let i=await n.get(s);return i===void 0?void 0:[s,i]}));return new Map(a.filter((s)=>s!==void 0))}function Zr(e,t,r,H=!0){let n=[...new Set(r.filter((s)=>/^\d+$/.test(s)))].sort().join(","),[o,a]=kn(null);return Xa(()=>{if(!e||!H||n==="")return;let s=!0;return aT(e,t,n.split(",")).then((i)=>{if(s)a({client:e,org:t,key:n,slugs:i})}).catch(()=>{}),()=>{s=!1}},[e,t,n,H]),o?.client===e&&o.org===t&&o.key===n?o.slugs:oT}var sT=200;function mm(e,t,r){let[H,n]=kn([]),[o,a]=kn(null),[s,i]=kn(!1),l=nT(new Map),c=r.trim();return Xa(()=>{l.current.clear(),n([]),a(null)},[e,t]),Xa(()=>{if(!e)return;let u=l.current.get(c);if(u){a({query:c,projects:u}),i(!1);return}let d=new AbortController,p=!1;i(!0);let g=setTimeout(()=>{gc(e,{org:t,query:c,signal:d.signal}).then((m)=>{if(p)return;l.current.set(c,m),n((O)=>iT(O,m)),a({query:c,projects:m}),i(!1)}).catch(()=>{if(!p)i(!1)})},c?sT:0);return()=>{p=!0,d.abort(),clearTimeout(g)}},[e,t,c]),{projects:HT(()=>{let u=o?.query===c?o.projects:[];if(!c)return u.length>0?u:H;let d=yn(H.map((g)=>({label:g.slug,project:g})),c).map((g)=>g.item.project),p=new Set(d.map((g)=>g.id));return[...d,...u.filter((g)=>!p.has(g.id))]},[H,o,c]),loading:s}}function iT(e,t){let r=new Set(e.map((n)=>n.id)),H=t.filter((n)=>!r.has(n.id));return H.length>0?[...e,...H]:e}import{jsxDEV as Ft,Fragment as AT}from"h:6___________________________";var he=3,cT=[{label:"1 hour",value:"1h"},{label:"24 hours",value:"24h"},{label:"7 days",value:"7d"},{label:"14 days",value:"14d"},{label:"30 days",value:"30d"},{label:"90 days",value:"90d"}],Fa=["project","env","date"];function lT(e,t,r){let H=Math.max(0,Math.floor(r)),n=Ae(e),o=Ae(t),a=Math.min(n,Math.ceil(H/2)),s=Math.min(o,Math.floor(H/2)),i=H-a-s;if(a===n)s+=Math.min(i,o-s);else if(s===o)a+=Math.min(i,n-a);return[a,s]}var Ln={project:0,env:0,date:0};function In(e){if(e)return Ln[e]>0;return Fa.some((t)=>Ln[t]>0)}function Be({client:e,org:t,openDropdown:r,selectedProjects:H,selectedEnvs:n,statsPeriod:o,filters:a=Fa,sort:s,width:i,anchorTop:l,onProjectChange:c,onEnvChange:A,onPeriodChange:u,onDropdownClose:d,onDropdownOpen:p}){let g=a.join(","),m=hn(()=>new Set(a),[g]),[O,y]=gm(""),{projects:L,loading:f}=mm(m.has("project")?e:null,t,O),[h,w]=gm([]);Ba(()=>{for(let re of m)Ln[re]+=1;return()=>{for(let re of m)Ln[re]-=1}},[m]),Ba(()=>{if(r!=="project")y("")},[r]),Ba(()=>{if(!e||!m.has("env"))return;let re=new AbortController;return yc(e,{org:t,signal:re.signal}).then((Ne)=>w(Ne)).catch(()=>{}),()=>re.abort()},[e,t,m]);let S=hn(()=>{let re=L.map((Y)=>({label:Y.slug,value:Y.slug,platform:Y.platform??null})),Ne=new Set(re.map((Y)=>Y.value));return[...O.trim()?[]:H.filter((Y)=>!Ne.has(Y)).map((Y)=>({label:Y,value:Y,platform:null})),...re]},[L,H,O]),I=hn(()=>h.map((re)=>({label:re.name,value:re.name})),[h]),P=hn(()=>{let re=new Map(L.map((Ne)=>[Ne.id,Ne.slug]));return H.map((Ne)=>re.get(Ne)??Ne)},[L,H]),x=P.length===0?"all projects":P.join(", "),q=n.length===0?"all envs":n.join(", "),v={command:"sentry.view.filterProject",label:x,caret:!0},C={command:"sentry.view.filterEnv",label:q,caret:!0},b={command:"sentry.view.filterDate",label:o,caret:!0},T=s?{command:IH,label:bH(s.items,s.value),caret:!0}:void 0,Q=Fa.filter((re)=>m.has(re)),B=Q.length+(T?1:0),R=(m.has("project")?Qt({...v,label:""}):0)+(m.has("env")?Qt({...C,label:""}):0)+(m.has("date")?Qt(b):0)+(T?Qt(T):0)+dr*Math.max(0,B-1),K=i-R,[ee,ae]=m.has("project")&&m.has("env")?lT(x,q,K):m.has("project")?[Math.max(0,K),0]:[0,Math.max(0,K)],He={project:{...v,label:D(x,ee)},env:{...C,label:D(q,ae)},date:b},se=Q.map((re)=>He[re]),le=Zl(se),ue=new Map(Q.map((re,Ne)=>[re,le[Ne]??0])),ne=ue.get("project")??0,N=ue.get("env")??0,U=ue.get("date")??0,z=T?Math.max(0,i-Qt(T)):0,X=l+Tt,xe=Wa((re)=>{c(re)},[c]),Qe=Wa((re)=>{A(re)},[A]),ie=Wa((re)=>{u(re[0]??"14d"),d()},[u,d]);return Ft(AT,{children:[Ft("box",{style:{flexDirection:"row",alignItems:"center",flexShrink:0,height:Tt,overflow:"hidden"},children:[Ft(mn,{chips:se,activeIndex:r&&r!=="sort"?Q.indexOf(r):void 0,onPress:(re,Ne)=>p?.(Q[Ne]??null)},void 0,!1,void 0,this),Ft("box",{style:{flexGrow:1}},void 0,!1,void 0,this),s&&T?Ft("box",{style:{flexDirection:"row",flexShrink:0},children:[Ft("text",{children:" ".repeat(dr)},void 0,!1,void 0,this),Ft(Sn,{value:s.value,items:s.items,open:r==="sort",onOpen:()=>p?.("sort")},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this),r==="project"&&m.has("project")?Ft(lt,{title:"Project",items:S,selected:P,anchorLeft:ne,anchorTop:X,availableWidth:i,filterable:!0,remoteFilter:!0,multiple:!0,loading:f,onQueryChange:y,placeholder:"No projects",onSelect:xe,onClose:d},void 0,!1,void 0,this):null,r==="env"&&m.has("env")?Ft(lt,{title:"Environment",items:I,selected:n,anchorLeft:N,anchorTop:X,availableWidth:i,multiple:!0,onSelect:Qe,onClose:d},void 0,!1,void 0,this):null,r==="date"&&m.has("date")?Ft(lt,{title:"Date Range",items:cT,selected:[o],anchorLeft:U,anchorTop:X,availableWidth:i,showAll:!1,onSelect:ie,onClose:d},void 0,!1,void 0,this):null,r==="sort"&&s?Ft(_n,{value:s.value,items:s.items,anchorLeft:z,anchorTop:X,availableWidth:i,onChange:s.onChange,onClose:d},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}import{jsxDEV as xr}from"h:6___________________________";var Om=[{category:"nav",title:"Navigation"},{category:"issue",title:"Issue actions"},{category:"seer",title:"Seer"},{category:"view",title:"View / Filters"},{category:"app",title:"Application"}],uT=4,dT=60,pT=17;function ym({onClose:e}){let t=_(),r=Om.flatMap(({category:o,title:a})=>{let s=fH.filter((i)=>i.category===o&&i.defaultKeys.length>0);return s.length?[{heading:a},...s]:[]}),H=Math.max(0,Om.length-1),n=r.length+H+uT+1;return xr(Ur,{title:" Keyboard shortcuts ",width:dT,height:n,onClose:e,children:[xr("scrollbox",{style:{flexGrow:1},children:r.map((o,a)=>{if("heading"in o)return xr("text",{fg:t.accent,children:[a===0?"":`
|
|
10
|
+
`,o.heading]},`h-${o.heading}`,!0,void 0,this);let s=o.defaultKeys.map(Ke).join(", ");return xr("text",{children:[xr("span",{fg:t.text,children:k(s,pT)},void 0,!1,void 0,this),xr("span",{fg:t.muted,children:o.description??o.title},void 0,!1,void 0,this)]},o.id,!0,void 0,this)})},void 0,!1,void 0,this),xr("text",{fg:t.muted,style:{marginTop:1},children:"esc to close"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useState as fm}from"h:0__";import{useKeyboard as mT}from"h:4___________";import{jsxDEV as wH}from"h:6___________________________";var gT=76,OT=8;function Sm({onSubmit:e,onClose:t}){let r=_(),[H,n]=fm(""),[o,a]=fm();mT((i)=>{tr([()=>{if(j("sentry.nav.back",i))return t(),"mine";if(j("sentry.nav.open",i))return a(e(H)),"mine";return"notMine"}],i,mt)});let s=o?.kind==="unsupported"?"Not implemented":"Invalid URL";return wH(Ur,{title:" Open Sentry URL ",width:gT,height:OT,onClose:t,children:[wH("text",{fg:r.muted,children:"Paste a sentry.io URL"},void 0,!1,void 0,this),wH("input",{value:H,placeholder:"https://acme.sentry.io/issues/\u2026",focused:!0,onInput:(i)=>{n(i),a(void 0)},style:{marginTop:1,textColor:r.text,backgroundColor:r.panel,focusedTextColor:r.text,focusedBackgroundColor:r.panel,placeholderColor:r.subText}},void 0,!1,void 0,this),o?wH("text",{fg:o.kind==="invalid"?r.danger:r.warning,children:`${s}: ${o.message}`},void 0,!1,void 0,this):wH("text",{fg:r.subText,children:"enter open \xB7 esc cancel"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as TH}from"h:6___________________________";function bn({label:e,hotkey:t,fg:r,bold:H=!1}){let n=_(),o=H?G:$r;if(!t)return TH("text",{fg:r,attributes:o,children:e},void 0,!1,void 0,this);let a=[...e],s=t.index>=0,i=s?a.slice(0,t.index).join(""):`${e} `,l=s?a.slice(t.index+1).join(""):"",c=H?G|Yr:Yr;return TH("text",{attributes:o,children:[i?TH("span",{fg:r,children:i},void 0,!1,void 0,this):null,TH("span",{fg:n.hotkey,attributes:c,children:t.key},void 0,!1,void 0,this),l?TH("span",{fg:r,children:l},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var _m="./assets/compass_active-mcnd0q22.png";var km="./assets/compass_inactive-ddbmyj5v.png";var hm="./assets/compass_active_light-v08f7cvf.png";var Lm="./assets/compass_inactive_light-wwd8x0j5.png";var Im="./assets/dashboard_active-3k2ysmyr.png";var bm="./assets/dashboard_inactive-a3pdwyw3.png";var wm="./assets/dashboard_active_light-j060573s.png";var Tm="./assets/dashboard_inactive_light-47zscdjm.png";var xm="./assets/issues_active-k2k0e07f.png";var Pm="./assets/issues_inactive-5jhnttk9.png";var qm="./assets/issues_active_light-ppxjynwp.png";var Mm="./assets/issues_inactive_light-efzr1ggk.png";var Cm="./assets/monitors_active-ypv5rjbw.png";var Qm="./assets/monitors_inactive-vncjn4xh.png";var Nm="./assets/monitors_active_light-7en9bsxt.png";var jm="./assets/monitors_inactive_light-3p8t6ysq.png";var Dm="./assets/seer_active-s87c2fsc.png";var Rm="./assets/seer_inactive-vnbwgb8m.png";var vm="./assets/seer_active_light-qr5zb8g1.png";var Gm="./assets/seer_inactive_light-g6ryga4y.png";var Em="./assets/sentry-a94jrdn1.png";var Km="./assets/sentry_light-xph1a1zb.png";var Xm={compass_active:_m,compass_inactive:km,dashboard_active:Im,dashboard_inactive:bm,issues_active:xm,issues_inactive:Pm,monitors_active:Cm,monitors_inactive:Qm,seer_active:Dm,seer_inactive:Rm,sentry:Em},GT={dark:Xm,light:{compass_active:hm,compass_inactive:Lm,dashboard_active:wm,dashboard_inactive:Tm,issues_active:qm,issues_inactive:Mm,monitors_active:Nm,monitors_inactive:jm,seer_active:vm,seer_inactive:Gm,sentry:Km}};function Ua(e,t="dark"){return gn(GT[t][e])}var AX=Object.keys(Xm);import{jsxDEV as Um}from"h:6___________________________";var ET={issues:"issues",explore:"compass",dashboards:"dashboard",seer:"seer",monitors:"monitors"},Wm=1,xH=2;function Bm({groupId:e,active:t}){let r=_(),H=t?"active":"inactive";return Um("image",{source:Ua(`${ET[e]}_${H}`,r.mode),fit:"fit",style:{width:xH,height:Wm}},void 0,!1,void 0,this)}function Fm(){let e=_();return Um("image",{source:Ua("sentry",e.mode),fit:"fit",style:{width:xH,height:Wm}},void 0,!1,void 0,this)}import{jsxDEV as ft}from"h:6___________________________";var Ym="sentry.app.switchOrg",wn=2,Tn=1,KT=1,XT=1,$m=1,Ya=4,Vm=Math.max(...Et.map((e)=>Ae(e.label))),Zm=(()=>{let e=Ke(be(Ym));return e?1+Ae(e):0})(),WT=xH+$m+Vm,BT=wn+1+Vm+Zm,$a=Ya+Math.max(WT,BT),Va=Ya+xH,zm=1,FT=2,Jm=1,eg=1+zm+Tn;function tg({active:e,expanded:t,focused:r,hotkeys:H,avatarUrl:n,orgSlug:o,onSelect:a,onExpand:s,onOrgPress:i,groups:l=Et}){let c=_(),A=t?$a:Va,u=A-Ya,{supportsHighRes:d}=Bt(),p=t?u-(d&&n?wn+1:0)-Zm:0;return ft("box",{style:{width:A,flexShrink:0,flexDirection:"column",border:!0,borderColor:r?c.borderFocused:c.border,paddingLeft:1,paddingRight:1},onMouseDown:t?void 0:s,children:[o||d&&n?ft("box",{style:{height:d?Tn:1,flexDirection:"column",alignItems:t?"stretch":"center",marginTop:zm,marginBottom:FT},onMouseDown:t?i:void 0,children:t?ft("box",{style:{flexDirection:"row",alignItems:"center",gap:1},children:[d&&n?ft("image",{source:n,fit:"fit",style:{width:wn,height:Tn}},void 0,!1,void 0,this):null,o?ft("text",{fg:c.text,attributes:1,children:D(o,p)},void 0,!1,void 0,this):null,ft("box",{style:{flexDirection:"row"},children:ft(wt,{command:Ym},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):d&&n?ft("image",{source:n,fit:"fit",style:{width:wn,height:Tn}},void 0,!1,void 0,this):o?ft("text",{fg:c.text,attributes:1,children:Array.from(o)[0]?.toUpperCase()},void 0,!1,void 0,this):null},void 0,!1,void 0,this):null,ft("box",{style:{flexDirection:"column",gap:d?XT:0},children:l.map((g)=>{let m=g.id===e;return ft("box",{style:{flexDirection:"row",alignItems:"center",gap:d?$m:0,height:KT},onMouseDown:t?()=>a?.(g.id):void 0,children:[d?ft(Bm,{groupId:g.id,active:m},void 0,!1,void 0,this):null,t?ft(bn,{label:g.label,hotkey:H?.get(g.id),fg:m?c.accent:c.muted,bold:m},void 0,!1,void 0,this):d?null:ft("text",{fg:m?c.accent:c.muted,attributes:m?1:0,children:g.glyph},void 0,!1,void 0,this)]},g.id,!0,void 0,this)})},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as UT,useEffect as YT,useMemo as $T,useState as Za}from"h:0__";import{jsxDEV as VT}from"h:6___________________________";function rg({client:e,currentOrg:t,anchorLeft:r,anchorTop:H,onSelect:n,onClose:o}){let[a,s]=Za([]),[i,l]=Za(null),[c,A]=Za(e!==null);YT(()=>{if(!e)return;let p=new AbortController;return A(!0),dc(e,p.signal).then((g)=>{if(p.signal.aborted)return;s(g),l(null)}).catch((g)=>{if(p.signal.aborted)return;l(g instanceof Error?g.message:String(g))}).finally(()=>{if(!p.signal.aborted)A(!1)}),()=>p.abort()},[e]);let u=$T(()=>a.map((p)=>({label:p.slug,value:p.slug})),[a]),d=UT((p)=>{let g=p[0];if(g)n(g)},[n]);return VT(lt,{title:"Organization",items:u,selected:t?[t]:[],anchorLeft:r,anchorTop:H,showAll:!1,filterable:!0,placeholder:c?"Loading organizations\u2026":i??"No organizations",onSelect:d,onClose:o},void 0,!1,void 0,this)}var pr={sections:[]};function za(e,t=pr){return[...pt(e).sections.map((H)=>({title:H.title,items:H.items.map((n)=>({label:n}))})),...t.sections]}function Ja(e,t=pr){return za(e,t).flatMap((r)=>r.items)}function Hg(e,t){return t.target??{group:e,item:t.label}}import{jsxDEV as Pr}from"h:6___________________________";var xn=22,ng=xn-4;function og({group:e,activeItem:t,focused:r,extras:H=pr,hotkeys:n,onSelect:o}){let a=_(),s=pt(e),i=za(e,H);return Pr("box",{style:{width:xn,flexShrink:0,flexDirection:"column",overflow:"hidden",border:!0,borderColor:r?a.borderFocused:a.border,paddingTop:1,paddingLeft:1,paddingRight:1},children:[Pr("text",{fg:a.text,attributes:1,children:s.label},void 0,!1,void 0,this),i.map((l,c)=>Pr("box",{style:{flexDirection:"column",flexShrink:0},children:[Pr("text",{fg:a.border,children:"\u2500".repeat(ng)},void 0,!1,void 0,this),l.title?Pr("text",{fg:a.muted,children:l.title},void 0,!1,void 0,this):null,l.items.map((A,u)=>{let d=A.label===t;return Pr("box",{style:{flexDirection:"row",height:1,flexShrink:0},onMouseDown:()=>o?.(A),children:Pr(bn,{label:D(A.label,ng),hotkey:n?.get(A.label),fg:d?a.accent:a.muted,bold:d},void 0,!1,void 0,this)},`${c}:${u}:${A.label}`,!1,void 0,this)})]},c,!0,void 0,this))]},void 0,!0,void 0,this)}import{useEffect as ZT,useState as zT}from"h:0__";import{jsxDEV as ex}from"h:6___________________________";var ag=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],JT=80;function es(e=!0){let[t,r]=zT(0);return ZT(()=>{if(!e)return;let H=setInterval(()=>r((n)=>(n+1)%ag.length),JT);return()=>clearInterval(H)},[e]),ag[t]}function zr(){let e=es();return ex("span",{children:e},void 0,!1,void 0,this)}import{jsxDEV as at,Fragment as ox}from"h:6___________________________";function tx(e,t){return e==="error"?t.danger:t.highlight}function rx({commandId:e,label:t}){let r=_();if(!be(e))return null;return at(ox,{children:[at(wt,{command:e},void 0,!1,void 0,this),at("text",{children:" "},void 0,!1,void 0,this),t?at("text",{fg:r.muted,children:t},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function Hx({onPress:e}){let t=_();return at("box",{style:{flexDirection:"row",flexShrink:0},onMouseDown:e,children:[at("text",{fg:t.highlight,attributes:G,children:"Update"},void 0,!1,void 0,this),at("text",{fg:t.subText,children:" \xB7 "},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function sg({notice:e,hints:t,since:r,onUpdate:H}){let n=_(),o=e.kind==="loading",a=es(o),s=e.text;if(o){let i=r===void 0?void 0:Date.now()-r,l=i!==void 0&&i>=2000?` ${(i/1000).toFixed(1)}s`:"";s=`${a} ${e.text}${l}`}return at("box",{style:{height:1,flexShrink:0,flexDirection:"row",backgroundColor:n.panel,paddingLeft:1,paddingRight:1},children:[H?at(Hx,{onPress:H},void 0,!1,void 0,this):null,at("text",{fg:tx(e.kind,n),children:s},void 0,!1,void 0,this),at("box",{style:{flexGrow:1}},void 0,!1,void 0,this),t.map(({command:i,label:l},c)=>{if(!be(i))return null;return at("box",{style:{flexDirection:"row"},children:[c>0?at("text",{fg:n.subText,children:" \xB7 "},void 0,!1,void 0,this):null,at(rx,{commandId:i,label:l},void 0,!1,void 0,this)]},i,!0,void 0,this)}),at(nx,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function nx(){let{supportsHighRes:e}=Bt();if(!e)return null;return at("box",{style:{marginLeft:1},children:at(Fm,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)}import{useCallback as ax,useMemo as sx,useRef as ix,useState as cx}from"h:0__";function ig(e,t){let[r,H]=cx(t??e[0]),n=ix(r);n.current=r;let o=ax((a)=>{let i=(e.indexOf(n.current)+a+e.length)%e.length;H(e[i])},[e]);return sx(()=>({focused:r,focusedRef:n,isFocused:(a)=>r===a,focus:H,next:()=>o(1),prev:()=>o(-1)}),[r,o])}import{useCallback as er,useMemo as Uo,useReducer as r1,useState as H1}from"h:0__";var cg=/[a-z0-9]/i;function lx(e){let t=[...e],r=[],H=[];return t.forEach((n,o)=>{if(!cg.test(n))return;let a=t[o-1];if(a===void 0||!cg.test(a))r.push(o);else H.push(o)}),[...r,...H]}function lg(e,t=[]){let r=new Set;for(let H of t)r.add(H.toLowerCase());return e.map((H)=>{let n=[...H];for(let a of lx(H)){let s=n[a].toLowerCase();if(r.has(s))continue;return r.add(s),{key:s,index:a}}let o=[..."abcdefghijklmnopqrstuvwxyz0123456789"].find((a)=>!r.has(a));if(!o)return;return r.add(o),{key:o,index:-1}})}var Ax=[be("sentry.nav.goto"),be("sentry.app.switchOrg")].filter(Boolean);function Ag(e,t=Et){let r=pt(e).sections.flatMap((s)=>s.items),H=lg([...t.map((s)=>s.label),...r],Ax),n=new Map,o=new Map,a=new Map;return t.forEach((s,i)=>{let l=H[i];if(!l)return;n.set(s.id,l),a.set(l.key,{kind:"group",group:s.id})}),r.forEach((s,i)=>{let l=H[t.length+i];if(!l)return;o.set(s,l),a.set(l.key,{kind:"item",item:s})}),{groups:n,items:o,byKey:a}}var ug=" \u203A ",ux="\u2026";function dg(e,t){let r=e.filter((n)=>Boolean(n&&n.trim()));if(r.length===0||t<=0)return"";let H=r.join(ug);if(Ae(H)<=t)return H;for(let n=1;n<r.length;n++){let o=[ux,...r.slice(n)].join(ug);if(Ae(o)<=t)return o}return D(r[r.length-1],t)}import{useCallback as qr,useMemo as pg,useReducer as dx,useRef as mg}from"h:0__";function Ut(e){if(e.entriesSource!==null&&e.entriesSource!==e.source)throw Error(`Screen "${e.source}" cannot read rows written by "${e.entriesSource}" from shared state "${e.key}"`);return e.entries}var px="__unregistered__";function Pn(e,t=[]){let r=cl(e),H=r.query??"";return{entries:[],entriesSource:null,selected:0,status:{loading:!1},openDropdown:null,selectedProjects:[...t],selectedEnvs:[],statsPeriod:r.statsPeriod??Lt,sort:r.sort??rn,detailOpen:!1,searchQuery:H,committedQuery:H,searchFocused:!1,queryBeforeEdit:H}}function mx(e,t){return e.loading===t.loading&&e.since===t.since&&e.error===t.error&&e.noun===t.noun}function qn(e,t,r){switch(t.type){case"setEntries":{if(!r)throw Error("setEntries requires a screen source");let H=e.entriesSource===r?e.entries:[],n=typeof t.payload==="function"?t.payload(H):t.payload;if(n===e.entries&&e.entriesSource===r)return e;let o=Math.min(e.entriesSource===r?e.selected:0,Math.max(0,n.length-1));return{...e,entries:n,entriesSource:r,selected:o}}case"setSelected":{let H=r===void 0||e.entriesSource===r,n=H?e.selected:0,o=typeof t.payload==="function"?t.payload(n):t.payload,a=H?e.entries.length:0,s=Math.max(0,Math.min(o,Math.max(0,a-1)));return s===e.selected?e:{...e,selected:s}}case"setStatus":return mx(e.status,t.payload)?e:{...e,status:t.payload};case"setOpenDropdown":return e.openDropdown===t.payload?e:{...e,openDropdown:t.payload};case"setSelectedProjects":return{...e,selectedProjects:t.payload};case"setSelectedEnvs":return{...e,selectedEnvs:t.payload};case"setStatsPeriod":return e.statsPeriod===t.payload?e:{...e,statsPeriod:t.payload};case"setSort":return e.sort===t.payload?e:{...e,sort:t.payload};case"setDetailOpen":{let H=typeof t.payload==="function"?t.payload(e.detailOpen):t.payload;return H===e.detailOpen?e:{...e,detailOpen:H}}case"setSearchQuery":return e.searchQuery===t.payload?e:{...e,searchQuery:t.payload};case"focusSearch":return{...e,queryBeforeEdit:e.committedQuery,searchFocused:!0};case"submitSearch":return{...e,committedQuery:e.searchQuery,searchFocused:!1};case"cancelSearch":case"handleSearchBlur":return{...e,searchQuery:e.queryBeforeEdit,searchFocused:!1};case"resetOrgScoped":return{...e,entries:[],entriesSource:null,selected:0,status:{loading:!1},openDropdown:null,selectedProjects:[...t.payload.projects],selectedEnvs:[],detailOpen:!1,searchFocused:!1};case"seed":{let H=t.payload.query??e.searchQuery;return{...e,searchQuery:H,committedQuery:H,queryBeforeEdit:H,sort:t.payload.sort??e.sort,statsPeriod:t.payload.statsPeriod??e.statsPeriod,selectedProjects:t.payload.selectedProjects??e.selectedProjects,selectedEnvs:t.payload.selectedEnvs??e.selectedEnvs}}}}function gx(e,t){if(t.type==="resetOrgScoped"){let o=new Map;for(let[a,s]of e)o.set(a,qn(s,{type:"resetOrgScoped",payload:{projects:t.projects}}));return o}let r=new Map(e);if(t.type==="seed")return r.set(t.key,qn(Pn(t.key),{type:"seed",payload:t.values})),r;let H=e.get(t.key)??t.fallback,n=qn(H,t.action,t.source);if(n===H&&e.has(t.key))return e;return r.set(t.key,n),r}function gg(e,t,r=[],H){let n=e??px,[o,a]=dx(gx,void 0,()=>H?new Map([[n,qn(Pn(n,r),{type:"seed",payload:H})]]):new Map),s=mg(r);s.current=r;let i=mg(!1),l=qr((y)=>{a({type:"dispatch",key:n,source:t,action:y,fallback:Pn(n,s.current)})},[n,t]),c=qr(()=>l({type:"focusSearch"}),[l]),A=qr(()=>{i.current=!0,l({type:"submitSearch"})},[l]),u=qr(()=>{i.current=!0,l({type:"cancelSearch"})},[l]),d=qr(()=>{if(i.current){i.current=!1;return}l({type:"handleSearchBlur"})},[l]),p=pg(()=>o.get(n)??Pn(n,r),[o,n,r]),g=pg(()=>({...p,entries:p.entriesSource===null||p.entriesSource===t?p.entries:[],selected:p.entriesSource===null||p.entriesSource===t?p.selected:0,key:n,source:t,dispatch:l,focusSearch:c,submitSearch:A,cancelSearch:u,handleSearchBlur:d}),[p,n,t,l,c,A,u,d]),m=qr((y=[])=>{a({type:"resetOrgScoped",projects:[...y]})},[]),O=qr((y,L)=>{a({type:"seed",key:y,values:L})},[]);return{active:g,resetOrgScoped:m,seed:O}}import{useMemo as dP}from"h:0__";var ts=20;var Ox=[{value:"mostStarred",label:"Most Starred"},{value:"recentlyViewed",label:"Recently Viewed"},{value:"name",label:"Name (A-Z)"},{value:"-name",label:"Name (Z-A)"},{value:"-dateAdded",label:"Created (Newest)"},{value:"dateAdded",label:"Created (Oldest)"}],yx=[{value:"myqueries",label:"My Queries"},{value:"-dateUpdated",label:"Recently Edited"},{value:"name",label:"Name (A-Z)"},{value:"-dateCreated",label:"Created (Newest)"},{value:"dateCreated",label:"Created (Oldest)"},{value:"dateUpdated",label:"Most Outdated"},{value:"mostPopular",label:"Most Popular"},{value:"recentlyViewed",label:"Recently Viewed"}];function rs(e){return e==="explore"?Ox:yx}function Og(e,t){if(rs(t).some((H)=>H.value===e))return e;return t==="explore"?"mostStarred":"myqueries"}var yg={logs:"Logs",spans:"Traces",segment_spans:"Traces",metrics:"Metrics",replays:"Replays",ai_conversations:"Conversations"},fx={logs:"logs",spans:"spans",segment_spans:"spans",metrics:"tracemetrics",replays:"replays",ai_conversations:"spans"};async function Sx(e,{org:t,starred:r,search:H,sort:n="recentlyViewed",limit:o=50,cursor:a,signal:s}){let i=await e.request(`/organizations/${t}/explore/saved/`,{query:{sortBy:["starred",n],per_page:o,starred:r?1:void 0,query:H||void 0,cursor:a},signal:s});return{...i,data:_g(i.data).map(_x).filter(Sg)}}function _x(e,t){let r=hx(e.dataset),H=kx(e.query);return{id:st(e.id)??String(t),source:"explore",name:st(e.name)??"Untitled query",datasetLabel:yg[r],dataset:fx[r],query:st(H?.query)??"",fields:Mn(H?.fields),sort:st(H?.orderby),projects:kg(e.projects),environment:Mn(e.environment),statsPeriod:st(e.range),lastVisited:st(e.lastVisited),dateUpdated:st(e.dateUpdated),starred:e.starred===!0,createdBy:e.isPrebuilt===!0?void 0:hg(e.createdBy),isPrebuilt:e.isPrebuilt===!0}}function kx(e){if(!Array.isArray(e))return;let t=e[0];return typeof t==="object"&&t!==null?t:void 0}function hx(e){let t=String(e??"spans");return t in yg?t:"spans"}var Lx={"error-events":"Errors","transaction-like":"Transactions",discover:"Discover"},Ix={"error-events":"errors","transaction-like":"transactions",discover:"discover"};async function bx(e,{org:t,search:r,sort:H="myqueries",limit:n=50,cursor:o,signal:a}){let s=r?.trim(),i=await e.request(`/organizations/${t}/discover/saved/`,{query:{query:s?`version:2 name:"${s}"`:"version:2",sortBy:H,per_page:n,cursor:o},signal:a});return{...i,data:_g(i.data).map(wx).filter(Sg)}}function wx(e,t){let r=st(e.queryDataset)??"discover";return{id:st(e.id)??String(t),source:"discover",name:st(e.name)??"Untitled query",datasetLabel:Lx[r]??"Discover",dataset:Ix[r]??"discover",query:st(e.query)??"",fields:Mn(e.fields),sort:Array.isArray(e.orderby)?st(e.orderby[0]):st(e.orderby),projects:kg(e.projects),environment:Mn(e.environment),statsPeriod:st(e.range),dateUpdated:st(e.dateUpdated),starred:!1,createdBy:hg(e.createdBy),isPrebuilt:!1}}function fg(e,t,r){return t==="explore"?Sx(e,r):bx(e,r)}function Sg(e){return e.fields.length>0}function _g(e){return Array.isArray(e)?e.filter((t)=>typeof t==="object"&&t!==null):[]}function st(e){if(e===void 0||e===null||e==="")return;return String(e)}function Mn(e){return Array.isArray(e)?e.map((t)=>String(t)).filter(Boolean):[]}function kg(e){if(!Array.isArray(e))return[];return e.map((t)=>Number(t)).filter((t)=>Number.isFinite(t))}function hg(e){if(!e)return;return st(e.name)??st(e.email)}import{reportError as Tx}from"h:7___________________________________";function qe(e){if(e instanceof sr)return{message:e.message,retryable:e.retryable,retryAfterSeconds:e.retryAfterSeconds};if(!xx(e))Tx(e,{source:"api.response.unreadable"});return{message:e instanceof Error?e.message:String(e),retryable:!0}}function xx(e){if(!(e instanceof Error))return!1;return e.name==="AbortError"||e.name==="TimeoutError"}var de=()=>({state:"idle"});function Se(e,t){return{state:"loading",since:t,previous:W(e)}}function pe(e,t){return{state:"ready",value:e,fetchedAt:t}}function me(e,t){return{state:"error",error:t,previous:W(e)}}function W(e){if(!e)return;switch(e.state){case"ready":return e.value;case"loading":case"error":return e.previous;case"idle":return}}function it(e,t){switch(e.state){case"idle":return e;case"loading":return e.previous===void 0?{state:"loading",since:e.since}:{state:"loading",since:e.since,previous:t(e.previous)};case"ready":return{state:"ready",value:t(e.value),fetchedAt:e.fetchedAt};case"error":return e.previous===void 0?{state:"error",error:e.error}:{state:"error",error:e.error,previous:t(e.previous)}}}function Lg(e){return e?.state==="loading"}function _e(e){return e?.state==="loading"&&e.previous===void 0}function oe(e){return e?.state==="error"?e.error:void 0}function Ye(e){return e?.state==="loading"?e.since:void 0}import{useCallback as Nx,useEffect as jx,useMemo as Dx,useState as Rx}from"h:0__";var Ig=[{value:"mydashboards",label:"My Dashboards"},{value:"title",label:"Name (A-Z)"},{value:"-title",label:"Name (Z-A)"},{value:"-dateCreated",label:"Newest Created"},{value:"dateCreated",label:"Oldest Created"},{value:"mostPopular",label:"Most Popular"},{value:"recentlyViewed",label:"Recently Viewed"}];function Hs(e){return e?Ig.filter((t)=>t.value!=="mydashboards"):Ig}function bg(e,t,r){return Hs(r).some((H)=>H.value===e)?e:t}var Px=50,qx=20;async function wg(e,{org:t,filter:r,query:H,sort:n,limit:o=Px,cursor:a,signal:s}){let i=await tc({...e.generatedOptions(s),path:{organization_id_or_slug:t},query:{filter:r?[r]:void 0,query:H||void 0,sort:n,pin:"favorites",per_page:o}},a);return e.generatedPage(i)}async function Tg(e,{org:t,limit:r=qx,signal:H}){let n=await e.request(`/organizations/${t}/dashboards/starred/`,{query:{per_page:r},signal:H});return Array.isArray(n.data)?n.data:[]}async function xg(e,{org:t,id:r,signal:H}){let o=(await e.request(`/organizations/${t}/dashboards/${r}/`,{signal:H})).data;return{...o,widgets:Array.isArray(o?.widgets)?o.widgets:[]}}var Pg={source:{repository:"https://github.com/getsentry/sentry",revision:"c8c670f927d1bae633f44289e43a49db8cfc294f",path:"static/app/views/dashboards/utils/prebuiltConfigs.tsx"},dashboards:{"1":{title:"Frontend Session Health",description:"Monitor browser session health by user and session.",widgets:[{id:"issue-counts",title:"Issue Counts",displayType:"bar",widgetType:"issue",queries:[{name:"",conditions:"",columns:[],aggregates:["count(new_issues)","count(resolved_issues)"],orderby:"",fields:["count(new_issues)","count(resolved_issues)"]}],interval:"5m",layout:{x:0,y:0,w:3,h:2,minH:2}},{id:"issues",title:"Issues",displayType:"table",widgetType:"issue",queries:[{name:"",conditions:"",columns:["issue","project","title"],aggregates:[],orderby:"",fields:["issue","project","title"]}],interval:"5m",layout:{x:3,y:0,w:3,h:2,minH:2}},{id:"unhealthy-sessions",title:"Unhealthy Sessions",displayType:"line",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["unhealthy_rate(session)"],orderby:"",fields:["unhealthy_rate(session)"]}],interval:"5m",layout:{x:0,y:2,w:3,h:3,minH:2}},{id:"user-health",title:"User Health",displayType:"area",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["abnormal_rate(user)","crash_rate(user)","errored_rate(user)","unhandled_rate(user)"],orderby:"",fields:["abnormal_rate(user)","crash_rate(user)","errored_rate(user)","unhandled_rate(user)"]}],interval:"5m",layout:{x:3,y:2,w:3,h:3,minH:2}},{id:"session-health",title:"Session Health",displayType:"area",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["abnormal_rate(session)","crash_rate(session)","errored_rate(session)","unhandled_rate(session)"],orderby:"",fields:["abnormal_rate(session)","crash_rate(session)","errored_rate(session)","unhandled_rate(session)"]}],interval:"5m",layout:{x:0,y:5,w:2,h:3,minH:2}},{id:"session-counts",title:"Session Counts",displayType:"line",widgetType:"metrics",queries:[{name:"",conditions:"",columns:["session.status"],aggregates:["sum(session)"],orderby:"",fields:["session.status","sum(session)"]}],interval:"5m",layout:{x:2,y:5,w:2,h:3,minH:2}},{id:"user-counts",title:"User Counts",displayType:"line",widgetType:"metrics",queries:[{name:"",conditions:"",columns:["session.status"],aggregates:["count_unique(user)"],orderby:"",fields:["session.status","count_unique(user)"]}],interval:"5m",layout:{x:4,y:5,w:2,h:3,minH:2}}]},"2":{title:"Queries",description:"Track database query throughput and duration, with per-query drill-downs.",widgets:[{id:"throughput",title:"Queries Per Minute",displayType:"line",widgetType:"spans",queries:[{name:"Queries Per Minute",conditions:"span.category:db has:sentry.normalized_description",columns:[],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{y:0,w:3,h:2,x:0,minH:2}},{id:"duration",title:"Average Duration",displayType:"line",widgetType:"spans",queries:[{name:"Average Duration",conditions:"span.category:db has:sentry.normalized_description",columns:[],aggregates:["avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)"]}],interval:"5m",layout:{y:0,w:3,h:2,x:3,minH:2}},{id:"queries-table",title:"Queries List",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.category:db has:sentry.normalized_description",columns:["sentry.normalized_description"],aggregates:["epm()","avg(span.duration)","sum(span.duration)"],orderby:"-sum(span.duration)",fields:["sentry.normalized_description","epm()","avg(span.duration)","sum(span.duration)"],fieldAliases:["Query Description","Queries Per Minute","Avg Duration","Time Spent"]}],interval:"5m",layout:{y:2,w:6,h:6,x:0,minH:2}}]},"3":{title:"Query Details",description:"",widgets:[{id:"metrics-throughput",title:"Queries Per Minute",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"Queries Per Minute",conditions:"span.category:db has:sentry.normalized_description",columns:[],aggregates:["epm()"],orderby:"",fields:["epm()"]}],interval:"1h",layout:{y:0,x:2,h:1,w:2,minH:1}},{id:"metrics-duration",title:"Average Duration",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"Average Duration",conditions:"span.category:db has:sentry.normalized_description",columns:[],aggregates:["avg(span.duration)"],orderby:"",fields:["avg(span.duration)"]}],interval:"1h",layout:{y:0,x:0,h:1,w:2,minH:1}},{id:"metrics-time-spent",title:"Time Spent",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"span.category:db has:sentry.normalized_description",columns:[],aggregates:["sum(span.duration)"],orderby:"",fields:["sum(span.duration)"]}],interval:"1h",layout:{y:0,x:4,h:1,w:2,minH:1}},{id:"example-query",title:"Example Query",description:"",displayType:"details",widgetType:"spans",queries:[{name:"",conditions:"span.category:db has:sentry.normalized_description",columns:["id","span.op","span.group","span.description","span.category"],aggregates:[],orderby:"id",fields:["id","span.op","span.group","span.description","span.category"],fieldAliases:[]}],interval:"1h",limit:1,layout:{y:1,x:0,h:2,w:6,minH:2}},{id:"transactions-with-query",title:"Transactions with Query",description:"",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.category:db has:sentry.normalized_description",columns:["transaction"],aggregates:["epm()","sum(span.duration)"],orderby:"-sum(span.duration)",fields:["transaction","epm()","sum(span.duration)"],fieldAliases:["Found In","Queries Per Minute","Time Spent"]}],interval:"1h",layout:{y:5,x:0,h:2,w:6,minH:2}},{id:"metrics-throughput-line",title:"Queries Per Minute",description:"",displayType:"line",widgetType:"spans",queries:[{name:"Queries Per Minute",conditions:"span.category:db has:sentry.normalized_description",columns:[],aggregates:["epm()"],orderby:"epm()",fields:["epm()"],fieldAliases:[]}],interval:"1h",layout:{y:3,x:0,h:2,w:3,minH:2}},{id:"metrics-duration-line",title:"Average Duration",description:"",displayType:"line",widgetType:"spans",queries:[{name:"Average Duration",conditions:"span.category:db has:sentry.normalized_description",columns:[],aggregates:["avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)"],fieldAliases:[]}],interval:"1h",layout:{y:3,x:3,h:2,w:3,minH:2}}]},"4":{title:"Outbound API Requests",description:"Track HTTP client request performance.",widgets:[{id:"throughput-chart",title:"Requests Per Minute",displayType:"line",widgetType:"spans",queries:[{name:"Requests Per Minute",conditions:"span.op:http.client",columns:[],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{x:0,y:0,w:2,h:2,minH:2}},{id:"duration-chart",title:"Average Duration",displayType:"line",widgetType:"spans",queries:[{name:"Average Duration",conditions:"span.op:http.client",columns:[],aggregates:["avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)"]}],interval:"5m",layout:{x:2,y:0,w:2,h:2,minH:2}},{id:"response-codes-chart",title:"Response Codes (3XX, 4XX, 5XX)",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.client",columns:[],aggregates:["equation|count_if(span.status_code,between,300,399) / count(span.duration)","equation|count_if(span.status_code,between,400,499) / count(span.duration)","equation|count_if(span.status_code,between,500,599) / count(span.duration)"],orderby:"equation|count_if(span.status_code,between,300,399) / count(span.duration)",fields:["equation|count_if(span.status_code,between,300,399) / count(span.duration)","equation|count_if(span.status_code,between,400,499) / count(span.duration)","equation|count_if(span.status_code,between,500,599) / count(span.duration)"]}],interval:"5m",layout:{x:4,y:0,w:2,h:2,minH:2}},{id:"domain-table",title:"Domains",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.client",columns:["span.domain","project"],aggregates:["epm()","equation|count_if(span.status_code,between,300,399) / count(span.duration)","equation|count_if(span.status_code,between,400,499) / count(span.duration)","equation|count_if(span.status_code,between,500,599) / count(span.duration)","avg(span.duration)","sum(span.duration)"],orderby:"-sum(span.duration)",fields:["span.domain","project","epm()","equation|count_if(span.status_code,between,300,399) / count(span.duration)","equation|count_if(span.status_code,between,400,499) / count(span.duration)","equation|count_if(span.status_code,between,500,599) / count(span.duration)","avg(span.duration)","sum(span.duration)"],fieldAliases:["Domain","Project","Requests Per Minute","3XXs","4XXs","5XXs","Avg Duration","Time Spent"]}],interval:"5m",layout:{x:0,y:2,minH:2,h:4,w:6}}]},"5":{title:"Domain Details",description:"",widgets:[{id:"domain-widget",title:"Domain",displayType:"details",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.client",columns:["id","span.op","span.group","span.description","span.category"],aggregates:[],orderby:"id",fields:["id","span.op","span.group","span.description","span.category"],fieldAliases:[]}],interval:"5m",layout:{x:0,y:0,minH:1,h:1,w:6}},{id:"throughput-big-number",title:"Requests Per Minute",displayType:"big_number",widgetType:"spans",queries:[{name:"Requests Per Minute",conditions:"span.op:http.client",columns:[],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{x:0,y:1,w:1,h:1,minH:1}},{id:"duration-big-number",title:"Average Duration",displayType:"big_number",widgetType:"spans",queries:[{name:"Average Duration",conditions:"span.op:http.client",columns:[],aggregates:["avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)"]}],interval:"5m",layout:{x:1,y:1,w:1,h:1,minH:1}},{id:"3xx-percentage-big-number",title:"3XX",displayType:"big_number",widgetType:"spans",queries:[{name:"3XX",conditions:"span.op:http.client",columns:[],aggregates:["equation|count_if(span.status_code,between,300,399) / count(span.duration)"],orderby:"equation|count_if(span.status_code,between,300,399) / count(span.duration)",fields:["equation|count_if(span.status_code,between,300,399) / count(span.duration)"]}],interval:"5m",layout:{x:2,y:1,w:1,h:1,minH:1}},{id:"4xx-percentage-big-number",title:"4XX",displayType:"big_number",widgetType:"spans",queries:[{name:"4XX",conditions:"span.op:http.client",columns:[],aggregates:["equation|count_if(span.status_code,between,400,499) / count(span.duration)"],orderby:"equation|count_if(span.status_code,between,400,499) / count(span.duration)",fields:["equation|count_if(span.status_code,between,400,499) / count(span.duration)"]}],interval:"5m",layout:{x:3,y:1,w:1,h:1,minH:1}},{id:"5xx-percentage-big-number",title:"5XX",displayType:"big_number",widgetType:"spans",queries:[{name:"5XX",conditions:"span.op:http.client",columns:[],aggregates:["equation|count_if(span.status_code,between,500,599) / count(span.duration)"],orderby:"equation|count_if(span.status_code,between,500,599) / count(span.duration)",fields:["equation|count_if(span.status_code,between,500,599) / count(span.duration)"]}],interval:"5m",layout:{x:4,y:1,w:1,h:1,minH:1}},{id:"time-spent-big-number",title:"Time Spent",displayType:"big_number",widgetType:"spans",queries:[{name:"Time Spent",conditions:"span.op:http.client",columns:[],aggregates:["sum(span.duration)"],orderby:"sum(span.duration)",fields:["sum(span.duration)"]}],interval:"5m",layout:{x:5,y:1,w:1,h:1,minH:1}},{id:"throughput-chart",title:"Requests Per Minute",displayType:"line",widgetType:"spans",queries:[{name:"Requests Per Minute",conditions:"span.op:http.client",columns:[],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{x:0,y:2,w:2,h:2,minH:2}},{id:"duration-chart",title:"Average Duration",displayType:"line",widgetType:"spans",queries:[{name:"Average Duration",conditions:"span.op:http.client",columns:[],aggregates:["avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)"]}],interval:"5m",layout:{x:2,y:2,w:2,h:2,minH:2}},{id:"response-codes-chart",title:"Response Codes (3XX, 4XX, 5XX)",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.client",columns:[],aggregates:["equation|count_if(span.status_code,between,300,399) / count(span.duration)","equation|count_if(span.status_code,between,400,499) / count(span.duration)","equation|count_if(span.status_code,between,500,599) / count(span.duration)"],orderby:"equation|count_if(span.status_code,between,300,399) / count(span.duration)",fields:["equation|count_if(span.status_code,between,300,399) / count(span.duration)","equation|count_if(span.status_code,between,400,499) / count(span.duration)","equation|count_if(span.status_code,between,500,599) / count(span.duration)"]}],interval:"5m",layout:{x:4,y:2,w:2,h:2,minH:2}},{id:"transactions-table",title:"Transactions Making Requests to This Domain",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.client",columns:["transaction"],aggregates:["epm()","equation|count_if(span.status_code,between,300,399) / count(span.duration)","equation|count_if(span.status_code,between,400,499) / count(span.duration)","equation|count_if(span.status_code,between,500,599) / count(span.duration)","avg(span.duration)","sum(span.duration)"],orderby:"-sum(span.duration)",fields:["transaction","epm()","equation|count_if(span.status_code,between,300,399) / count(span.duration)","equation|count_if(span.status_code,between,400,499) / count(span.duration)","equation|count_if(span.status_code,between,500,599) / count(span.duration)","avg(span.duration)","sum(span.duration)"],fieldAliases:["Found In","Requests Per Minute","3XXs","4XXs","5XXs","Avg Duration","Time Spent"]}],interval:"5m",layout:{x:0,y:4,minH:2,h:5,w:6}}]},"6":{title:"Web Vitals",description:"Track real-user Web Vitals, ranked by improvement opportunity.",widgets:[{id:"score-breakdown-wheel",title:"Performance Score",description:"Tracks the overall performance rating of the pages in your selected project.",displayType:"wheel",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)","performance_score(measurements.score.total)","count_scores(measurements.score.total)","count_scores(measurements.score.lcp)","count_scores(measurements.score.fcp)","count_scores(measurements.score.inp)","count_scores(measurements.score.cls)","count_scores(measurements.score.ttfb)"],aggregates:[],orderby:"",fields:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)","performance_score(measurements.score.total)","count_scores(measurements.score.total)","count_scores(measurements.score.lcp)","count_scores(measurements.score.fcp)","count_scores(measurements.score.inp)","count_scores(measurements.score.cls)","count_scores(measurements.score.ttfb)"]}],interval:"5m",limit:1,layout:{y:0,w:2,h:2,x:0,minH:2}},{id:"score-breakdown-chart",title:"Score Breakdown",description:"Each Web Vital score contributes a different amount to the total score. Refer to the Performance Score wheel for total contribution.",displayType:"area",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)"],orderby:"",fields:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)"]}],interval:"5m",layout:{y:0,w:4,h:2,x:2,minH:2}},{id:"lcp-p75-meter",title:"P75 Largest Contentful Paint",description:"Time to render the largest item in the viewport. Bad LCP frustrates users because the website feels slow to load.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["p75(browser.web_vital.lcp.value)"],orderby:"",fields:["p75(browser.web_vital.lcp.value)"]}],interval:"5m",layout:{y:2,w:1,h:1,x:0,minH:1}},{id:"inp-p75-meter",title:"P75 Interaction to Next Paint",description:"Latency between user input and visual response. Bad INP makes users feel like the site is laggy, outdated, and unresponsive.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["p75(browser.web_vital.inp.value)"],orderby:"",fields:["p75(browser.web_vital.inp.value)"]}],interval:"5m",layout:{y:2,w:1,h:1,x:1,minH:1}},{id:"cls-p75-meter",title:"P75 Cumulative Layout Shift",description:"Measures content 'shifting' during load. Bad CLS indicates a janky website, degrading UX and trust.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["p75(browser.web_vital.cls.value)"],orderby:"",fields:["p75(browser.web_vital.cls.value)"]}],interval:"5m",layout:{y:3,w:1,h:1,x:0,minH:1}},{id:"ttfb-p75-meter",title:"P75 Time to First Byte",description:"Time until first byte is delivered to the client. Bad TTFB makes the server feel unresponsive.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["p75(browser.web_vital.ttfb.value)"],orderby:"",fields:["p75(browser.web_vital.ttfb.value)"]}],interval:"5m",layout:{y:3,w:1,h:1,x:1,minH:1}},{id:"issues-table",title:"Web Vital Issues",displayType:"table",widgetType:"issue",queries:[{name:"",conditions:"issue.type:[web_vitals,performance_render_blocking_asset_span,performance_uncompressed_assets,performance_http_overhead,performance_consecutive_http,performance_n_plus_one_api_calls,performance_large_http_payload,performance_p95_endpoint_regression]",columns:["issue","assignee","title"],aggregates:[],orderby:"date",fields:["issue","assignee","title"]}],interval:"5m",layout:{y:2,w:4,h:2,x:2,minH:2}},{id:"pages-table",title:"Pages",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:["transaction","project","count()","p75(browser.web_vital.lcp.value)","p75(browser.web_vital.fcp.value)","p75(browser.web_vital.cls.value)","p75(browser.web_vital.ttfb.value)","p75(browser.web_vital.inp.value)","performance_score(measurements.score.total)","opportunity_score(measurements.score.total)"],aggregates:[],orderby:"-opportunity_score(measurements.score.total)",fields:["transaction","project","count()","p75(browser.web_vital.lcp.value)","p75(browser.web_vital.fcp.value)","p75(browser.web_vital.cls.value)","p75(browser.web_vital.ttfb.value)","p75(browser.web_vital.inp.value)","performance_score(measurements.score.total)","opportunity_score(measurements.score.total)"],fieldAliases:["Pages","Project","Pageloads","LCP","FCP","CLS","TTFB","INP","Perf Score","Opportunity"]}],interval:"5m",layout:{y:4,w:6,h:6,x:0,minH:2}}]},"7":{title:"Web Vitals Page Summary",description:"",widgets:[{id:"score-breakdown-chart",title:"Score Breakdown",description:"Each Web Vital score contributes a different amount to the total score. Refer to the Performance Score wheel for total contribution.",displayType:"area",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)"],orderby:"",fields:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)"]}],interval:"5m",layout:{y:0,w:5,h:2,x:0,minH:2}},{id:"score-breakdown-wheel",title:"Performance Score",description:"The overall performance rating of this page.",displayType:"wheel",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)","performance_score(measurements.score.total)","count_scores(measurements.score.total)","count_scores(measurements.score.lcp)","count_scores(measurements.score.fcp)","count_scores(measurements.score.inp)","count_scores(measurements.score.cls)","count_scores(measurements.score.ttfb)"],aggregates:[],orderby:"",fields:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)","performance_score(measurements.score.total)","count_scores(measurements.score.total)","count_scores(measurements.score.lcp)","count_scores(measurements.score.fcp)","count_scores(measurements.score.inp)","count_scores(measurements.score.cls)","count_scores(measurements.score.ttfb)"]}],interval:"5m",layout:{y:0,w:1,h:2,x:5,minH:2}},{id:"lcp-p75-meter",title:"P75 Largest Contentful Paint",description:"Time to render the largest item in the viewport. Bad LCP frustrates users because the website feels slow to load.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["p75(browser.web_vital.lcp.value)"],orderby:"",fields:["p75(browser.web_vital.lcp.value)"]}],interval:"5m",layout:{y:2,w:1,h:1,x:0,minH:1}},{id:"inp-p75-meter",title:"P75 Interaction to Next Paint",description:"Latency between user input and visual response. Bad INP makes users feel like the site is laggy, outdated, and unresponsive.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["p75(browser.web_vital.inp.value)"],orderby:"",fields:["p75(browser.web_vital.inp.value)"]}],interval:"5m",layout:{y:2,w:1,h:1,x:1,minH:1}},{id:"cls-p75-meter",title:"P75 Cumulative Layout Shift",description:"Measures content 'shifting' during load. Bad CLS indicates a janky website, degrading UX and trust.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["p75(browser.web_vital.cls.value)"],orderby:"",fields:["p75(browser.web_vital.cls.value)"]}],interval:"5m",layout:{y:3,w:1,h:1,x:0,minH:1}},{id:"ttfb-p75-meter",title:"P75 Time to First Byte",description:"Time until first byte is delivered to the client. Bad TTFB makes the server feel unresponsive.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:[],aggregates:["p75(browser.web_vital.ttfb.value)"],orderby:"",fields:["p75(browser.web_vital.ttfb.value)"]}],interval:"5m",layout:{y:3,w:1,h:1,x:1,minH:1}},{id:"issues-table",title:"Web Vital Issues",displayType:"table",widgetType:"issue",queries:[{name:"",conditions:"issue.type:[web_vitals,performance_render_blocking_asset_span,performance_uncompressed_assets,performance_http_overhead,performance_consecutive_http,performance_n_plus_one_api_calls,performance_large_http_payload,performance_p95_endpoint_regression]",columns:["issue","assignee","title"],aggregates:[],orderby:"date",fields:["issue","assignee","title"]}],interval:"5m",layout:{y:2,w:3,h:2,x:2,minH:2}},{id:"lcp-samples-table",title:"LCP Samples",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"has:browser.web_vital.lcp.value",columns:["project","trace","browser.web_vital.lcp.element","browser.web_vital.lcp.value","profile.id","replay.id","measurements.score.ratio.lcp","timestamp"],aggregates:[],orderby:"-timestamp",fields:["project","trace","browser.web_vital.lcp.element","browser.web_vital.lcp.value","profile.id","replay.id","measurements.score.ratio.lcp","timestamp"]}],interval:"5m",layout:{y:6,w:5,h:2,x:0,minH:2}},{id:"inp-samples-table",title:"INP Samples",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"has:browser.web_vital.inp.value",columns:["project","trace","browser.web_vital.inp.value","profile.id","replay.id","measurements.score.ratio.inp","timestamp"],aggregates:[],orderby:"-timestamp",fields:["project","trace","browser.web_vital.inp.value","profile.id","replay.id","measurements.score.ratio.inp","timestamp"]}],interval:"5m",layout:{y:8,w:5,h:2,x:0,minH:2}},{id:"cls-samples-table",title:"CLS Samples",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"has:browser.web_vital.cls.value",columns:["project","trace","browser.web_vital.cls.value","profile.id","replay.id","measurements.score.ratio.cls","timestamp"],aggregates:[],orderby:"-timestamp",fields:["project","trace","browser.web_vital.cls.value","profile.id","replay.id","measurements.score.ratio.cls","timestamp"]}],interval:"5m",layout:{y:10,w:5,h:2,x:0,minH:2}},{id:"pageloads-chart",title:"Pageloads",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:pageload",columns:[],aggregates:["count()"],orderby:"",fields:["count()"]}],interval:"5m",layout:{y:2,w:1,h:2,x:5,minH:2}},{id:"interactions-chart",title:"Interactions",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press]",columns:[],aggregates:["count()"],orderby:"",fields:["count()"]}],interval:"5m",layout:{y:4,w:1,h:2,x:5,minH:2}}]},"8":{title:"Mobile Vitals",description:"Track key mobile performance metrics, including Time-to-Initial-Display.",widgets:[{id:"cold-start-big-number",title:"Average Cold App Start",description:"Average cold app start duration",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.cold.value OR span.op:app.start.cold has:app.vitals.start.cold.value)",columns:[],aggregates:["avg(app.vitals.start.cold.value)"],orderby:"",fields:["avg(app.vitals.start.cold.value)"]}],interval:"1h",layout:{h:1,x:0,y:0,w:1,minH:1}},{id:"warm-start-big-number",title:"Average Warm App Start",description:"Average warm app start duration",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.warm.value OR span.op:app.start.warm has:app.vitals.start.warm.value)",columns:[],aggregates:["avg(app.vitals.start.warm.value)"],orderby:"",fields:["avg(app.vitals.start.warm.value)"]}],interval:"1h",layout:{h:1,x:1,y:0,w:1,minH:1}},{id:"avg-ttid-big-number",title:"Average TTID",description:"Average time to initial display",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttid.value OR span.op:ui.load.initial_display has:app.vitals.ttid.value)",columns:[],aggregates:["avg(app.vitals.ttid.value)"],orderby:"",fields:["avg(app.vitals.ttid.value)"]}],interval:"1h",layout:{h:1,x:2,y:0,w:1,minH:1}},{id:"avg-ttfd-big-number",title:"Average TTFD",description:"Average time to full display",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttfd.value OR span.op:ui.load.full_display has:app.vitals.ttfd.value)",columns:[],aggregates:["avg(app.vitals.ttfd.value)"],orderby:"",fields:["avg(app.vitals.ttfd.value)"]}],interval:"1h",layout:{h:1,x:3,y:0,w:1,minH:1}},{id:"slow-frame-rate-big-number",title:"Slow Frame Rate",description:"Percentage of slow frames across screen load transactions, calculated as total slow frames divided by total frames.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.frames.total.count",columns:[],aggregates:["sum(app.vitals.frames.slow.count)","sum(app.vitals.frames.total.count)","equation|sum(app.vitals.frames.slow.count) / sum(app.vitals.frames.total.count)"],orderby:"",fields:["sum(app.vitals.frames.slow.count)","sum(app.vitals.frames.total.count)","equation|sum(app.vitals.frames.slow.count) / sum(app.vitals.frames.total.count)"],selectedAggregate:2}],interval:"1h",layout:{h:1,x:0,y:1,w:1,minH:1}},{id:"frozen-frame-rate-big-number",title:"Frozen Frame Rate",description:"Percentage of frozen frames across screen load transactions, calculated as total frozen frames divided by total frames.",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.frames.total.count",columns:[],aggregates:["sum(app.vitals.frames.frozen.count)","sum(app.vitals.frames.total.count)","equation|sum(app.vitals.frames.frozen.count) / sum(app.vitals.frames.total.count)"],orderby:"",fields:["sum(app.vitals.frames.frozen.count)","sum(app.vitals.frames.total.count)","equation|sum(app.vitals.frames.frozen.count) / sum(app.vitals.frames.total.count)"],selectedAggregate:2}],interval:"1h",layout:{h:1,x:1,y:1,w:1,minH:1}},{id:"avg-frame-delay-big-number",title:"Average Frame Delay",description:"Average frame delay",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.frames.total.count",columns:[],aggregates:["avg(app.vitals.frames.delay.value)"],orderby:"",fields:["avg(app.vitals.frames.delay.value)"]}],interval:"1h",layout:{h:1,x:2,y:1,w:1,minH:1}},{id:"crash-free-session-rate-big-number",title:"Crash Free Session Rate",description:"Percentage of sessions that did not crash. Based on session data, so span filters do not apply.",displayType:"big_number",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["crash_free_rate(session)"],orderby:"",fields:["crash_free_rate(session)"]}],interval:"1h",layout:{h:1,x:3,y:1,w:1,minH:1}},{id:"about-this-page-text",title:"About this page",description:`Top-level metrics show your app's health. When one looks off, use the tables below to find the screens responsible, then drill in to investigate.
|
|
11
|
+
|
|
12
|
+
App start metrics only count launches that open the app UI, not background starts.
|
|
13
|
+
|
|
14
|
+
See the [Mobile Vitals docs](https://docs.sentry.io/product/insights/mobile/mobile-vitals/) for more information.`,displayType:"text",queries:[],interval:"1h",layout:{h:2,x:4,y:0,w:2,minH:2}},{id:"app-start-table",title:"App Starts",description:"",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"((is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.start.cold.value OR span.op:app.start.cold has:app.vitals.start.cold.value) OR (is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.start.warm.value OR span.op:app.start.warm has:app.vitals.start.warm.value)) has:transaction",columns:["transaction"],aggregates:["avg(app.vitals.start.cold.value)","avg(app.vitals.start.warm.value)","count_unique(transaction.span_id)"],orderby:"-count_unique(transaction.span_id)",fields:["transaction","avg(app.vitals.start.cold.value)","avg(app.vitals.start.warm.value)","count_unique(transaction.span_id)"],fieldAliases:["Screen","Avg Cold Start","Avg Warm Start","Screen Loads"]}],interval:"1h",layout:{h:3,x:0,y:2,w:6,minH:2}},{id:"screen-load-table",title:"Screen Loads",description:"",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"((is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttid.value OR span.op:ui.load.initial_display has:app.vitals.ttid.value) OR (is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttfd.value OR span.op:ui.load.full_display has:app.vitals.ttfd.value)) has:transaction",columns:["transaction"],aggregates:["avg(app.vitals.ttid.value)","avg(app.vitals.ttfd.value)","count_unique(transaction.span_id)"],orderby:"-count_unique(transaction.span_id)",fields:["transaction","avg(app.vitals.ttid.value)","avg(app.vitals.ttfd.value)","count_unique(transaction.span_id)"],fieldAliases:["Screen","Avg TTID","Avg TTFD","Screen Loads"]}],interval:"1h",layout:{h:3,x:0,y:5,w:6,minH:2}},{id:"screen-rendering-table",title:"Screen Rendering",description:"Frame rates are weighted across screen load transactions using total frame counts.",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.frames.total.count has:transaction",columns:["transaction"],aggregates:["equation|sum(app.vitals.frames.slow.count)/sum(app.vitals.frames.total.count)","equation|sum(app.vitals.frames.frozen.count)/sum(app.vitals.frames.total.count)","count_unique(transaction.span_id)"],orderby:"-count_unique(transaction.span_id)",fields:["transaction","equation|sum(app.vitals.frames.slow.count)/sum(app.vitals.frames.total.count)","equation|sum(app.vitals.frames.frozen.count)/sum(app.vitals.frames.total.count)","count_unique(transaction.span_id)"],fieldAliases:["Transaction","Slow Frame %","Frozen Frame %","Screen Loads"]}],interval:"1h",layout:{h:3,x:0,y:8,w:6,minH:2}}]},"9":{title:"Mobile Vitals App Starts",description:"",widgets:[{id:"avg-cold-starts-big-number",title:"Average Cold Start",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.cold.value OR span.op:app.start.cold has:app.vitals.start.cold.value)",columns:[],aggregates:["avg(app.vitals.start.cold.value)"],orderby:"",fields:["avg(app.vitals.start.cold.value)"]}],interval:"1h",layout:{h:1,x:0,y:0,w:1,minH:1}},{id:"avg-warm-starts-big-number",title:"Average Warm Start",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.warm.value OR span.op:app.start.warm has:app.vitals.start.warm.value)",columns:[],aggregates:["avg(app.vitals.start.warm.value)"],orderby:"",fields:["avg(app.vitals.start.warm.value)"]}],interval:"1h",layout:{h:1,x:3,y:0,w:1,minH:1}},{id:"total-cold-start-count-big-number",title:"Cold Start Count",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.cold.value OR span.op:app.start.cold has:app.vitals.start.cold.value)",columns:[],aggregates:["count_unique(transaction.span_id)"],orderby:"",fields:["count_unique(transaction.span_id)"]}],interval:"1h",layout:{h:1,x:1,y:0,w:1,minH:1}},{id:"total-warm-start-count-big-number",title:"Warm Start Count",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.warm.value OR span.op:app.start.warm has:app.vitals.start.warm.value)",columns:[],aggregates:["count_unique(transaction.span_id)"],orderby:"",fields:["count_unique(transaction.span_id)"]}],interval:"1h",layout:{h:1,x:4,y:0,w:1,minH:1}},{id:"avg-cold-start-line",title:"Average Cold Start",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.cold.value OR span.op:app.start.cold has:app.vitals.start.cold.value)",columns:[],aggregates:["avg(app.vitals.start.cold.value)"],orderby:"-avg(app.vitals.start.cold.value)",fields:["avg(app.vitals.start.cold.value)"],fieldAliases:[]}],interval:"1h",layout:{h:2,x:0,y:1,w:3,minH:2}},{id:"avg-warm-start-line",title:"Average Warm Start",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.warm.value OR span.op:app.start.warm has:app.vitals.start.warm.value)",columns:[],aggregates:["avg(app.vitals.start.warm.value)"],orderby:"-avg(app.vitals.start.warm.value)",fields:["avg(app.vitals.start.warm.value)"],fieldAliases:[]}],interval:"1h",layout:{h:2,x:3,y:1,w:3,minH:2}},{id:"cold-start-device-distribution-bar",title:"Cold Start Device Distribution",description:"",displayType:"categorical_bar",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.cold.value OR span.op:app.start.cold has:app.vitals.start.cold.value)",columns:["device.class"],aggregates:["avg(app.vitals.start.cold.value)"],orderby:"device.class",fields:["device.class","avg(app.vitals.start.cold.value)"]}],interval:"1h",layout:{h:2,x:0,y:3,w:3,minH:2}},{id:"warm-start-device-distribution-bar",title:"Warm Start Device Distribution",description:"",displayType:"categorical_bar",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation,app.start] has:app.vitals.start.warm.value OR span.op:app.start.warm has:app.vitals.start.warm.value)",columns:["device.class"],aggregates:["avg(app.vitals.start.warm.value)"],orderby:"device.class",fields:["device.class","avg(app.vitals.start.warm.value)"]}],interval:"1h",layout:{h:2,x:3,y:3,w:3,minH:2}},{id:"cold-operations-table",title:"Cold Start Operations",description:"",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:'(!span.description:"Cold Start" !span.description:"Warm Start" !span.description:"Cold App Start" !span.description:"Warm App Start" !span.description:"Initial Frame Render" has:span.description transaction.op:[ui.load,navigation] has:ttid app_start_type:cold span.op:[app.start.cold,app.start.warm,contentprovider.load,application.load,activity.load,ui.load,process.load] OR !is_transaction:true ((has:span.description !span.description:"Cold Start" !span.description:"Warm Start" !span.description:"Cold App Start" !span.description:"Warm App Start" !span.description:"Initial Frame Render") OR (has:span.name !span.name:"Cold Start" !span.name:"Warm Start" !span.name:"Cold App Start" !span.name:"Warm App Start" !span.name:"Initial Frame Render")) app.vitals.start.type:cold span.op:[app.start.cold,app.start.warm,contentprovider.load,application.load,activity.load,ui.load,process.load])',columns:["span.op","span.name","span.description"],aggregates:["avg(span.self_time)"],orderby:"-avg(span.self_time)",fields:["span.op","span.name","span.description","avg(span.self_time)"],fieldAliases:["Operation","Span Name","Span Description","Avg"]}],interval:"1h",layout:{h:6,x:0,y:5,w:3,minH:2}},{id:"warm-operations-table",title:"Warm Start Operations",description:"",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:'(!span.description:"Cold Start" !span.description:"Warm Start" !span.description:"Cold App Start" !span.description:"Warm App Start" !span.description:"Initial Frame Render" has:span.description transaction.op:[ui.load,navigation] has:ttid app_start_type:warm span.op:[app.start.cold,app.start.warm,contentprovider.load,application.load,activity.load,ui.load,process.load] OR !is_transaction:true ((has:span.description !span.description:"Cold Start" !span.description:"Warm Start" !span.description:"Cold App Start" !span.description:"Warm App Start" !span.description:"Initial Frame Render") OR (has:span.name !span.name:"Cold Start" !span.name:"Warm Start" !span.name:"Cold App Start" !span.name:"Warm App Start" !span.name:"Initial Frame Render")) app.vitals.start.type:warm span.op:[app.start.cold,app.start.warm,contentprovider.load,application.load,activity.load,ui.load,process.load])',columns:["span.op","span.name","span.description"],aggregates:["avg(span.self_time)"],orderby:"-avg(span.self_time)",fields:["span.op","span.name","span.description","avg(span.self_time)"],fieldAliases:["Operation","Span Name","Span Description","Avg"]}],interval:"1h",layout:{h:6,x:3,y:5,w:3,minH:2}}]},"10":{title:"Mobile Vitals Screen Loads",description:"",widgets:[{id:"avg-ttid-big-number",title:"Average TTID",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttid.value OR span.op:ui.load.initial_display has:app.vitals.ttid.value)",columns:[],aggregates:["avg(app.vitals.ttid.value)"],orderby:"",fields:["avg(app.vitals.ttid.value)"]}],interval:"1h",layout:{h:1,x:0,y:0,w:2,minH:1}},{id:"avg-ttfd-big-number",title:"Average TTFD",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttfd.value OR span.op:ui.load.full_display has:app.vitals.ttfd.value)",columns:[],aggregates:["avg(app.vitals.ttfd.value)"],orderby:"",fields:["avg(app.vitals.ttfd.value)"]}],interval:"1h",layout:{h:1,x:2,y:0,w:2,minH:1}},{id:"total-count-big-number",title:"Total Count",description:"",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"((is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttid.value OR span.op:ui.load.initial_display has:app.vitals.ttid.value) OR (is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttfd.value OR span.op:ui.load.full_display has:app.vitals.ttfd.value))",columns:[],aggregates:["count_unique(transaction.span_id)"],orderby:"",fields:["count_unique(transaction.span_id)"]}],interval:"1h",layout:{h:1,x:4,y:0,w:2,minH:1}},{id:"average-ttid-line",title:"Average TTID",description:"",displayType:"line",widgetType:"spans",queries:[{name:"TTID",conditions:"(is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttid.value OR span.op:ui.load.initial_display has:app.vitals.ttid.value)",columns:[],aggregates:["avg(app.vitals.ttid.value)"],orderby:"avg(app.vitals.ttid.value)",fields:["avg(app.vitals.ttid.value)"],fieldAliases:[]}],interval:"1h",layout:{h:2,x:0,y:1,w:2,minH:2}},{id:"average-ttfd-line",title:"Average TTFD",description:"",displayType:"line",widgetType:"spans",queries:[{name:"TTFD",conditions:"(is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttfd.value OR span.op:ui.load.full_display has:app.vitals.ttfd.value)",columns:[],aggregates:["avg(app.vitals.ttfd.value)"],orderby:"avg(app.vitals.ttfd.value)",fields:["avg(app.vitals.ttfd.value)"],fieldAliases:[]}],interval:"1h",layout:{h:2,x:2,y:1,w:2,minH:2}},{id:"total-count-line",title:"Total Count",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"((is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttid.value OR span.op:ui.load.initial_display has:app.vitals.ttid.value) OR (is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttfd.value OR span.op:ui.load.full_display has:app.vitals.ttfd.value))",columns:[],aggregates:["count_unique(transaction.span_id)"],orderby:"count_unique(transaction.span_id)",fields:["count_unique(transaction.span_id)"],fieldAliases:[]}],interval:"1h",layout:{h:2,x:4,y:1,w:2,minH:2}},{id:"ttid-device-class-bar",title:"TTID by Device Class",description:"",displayType:"categorical_bar",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttid.value OR span.op:ui.load.initial_display has:app.vitals.ttid.value)",columns:["device.class"],aggregates:["avg(app.vitals.ttid.value)"],orderby:"device.class",fields:["device.class","avg(app.vitals.ttid.value)"],fieldAliases:["Device Class","AVG TTID"]}],interval:"1h",layout:{h:2,x:0,y:3,w:2,minH:2}},{id:"ttfd-device-class-bar",title:"TTFD by Device Class",description:"",displayType:"categorical_bar",widgetType:"spans",queries:[{name:"",conditions:"(is_transaction:true transaction.op:[ui.load,navigation] has:app.vitals.ttfd.value OR span.op:ui.load.full_display has:app.vitals.ttfd.value)",columns:["device.class"],aggregates:["avg(app.vitals.ttfd.value)"],orderby:"device.class",fields:["device.class","avg(app.vitals.ttfd.value)"],fieldAliases:["Device Class","AVG TTFD"]}],interval:"1h",layout:{h:2,x:2,y:3,w:2,minH:2}},{id:"span-operations-table",title:"Span Operations",description:"",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"transaction.op:[ui.load,navigation] (has:span.description OR has:span.name) span.op:[file.read,file.write,ui.load,navigation,http.client,db,db.sql.room,db.sql.query,db.sql.transaction]",columns:["span.op","span.name","span.description"],aggregates:["equation|ttid_contribution_rate()","equation|ttfd_contribution_rate()","avg(span.self_time)","sum(span.self_time)"],orderby:"-sum(span.self_time)",fields:["span.op","span.name","span.description","equation|ttid_contribution_rate()","equation|ttfd_contribution_rate()","avg(span.self_time)","sum(span.self_time)"],fieldAliases:["Operation","Span Name","Span Description","TTID Contribution Rate","TTFD Contribution Rate","Avg Self Time","Total Time Spent"]}],interval:"1h",layout:{h:4,x:0,y:5,w:6,minH:2}}]},"11":{title:"Mobile Vitals Screen Rendering",description:"",widgets:[{id:"span-operations-table",title:"Span Operations",description:"",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"!is_transaction:true has:app.vitals.frames.total.count has:span.op",columns:["span.op","span.name","span.description"],aggregates:["equation|sum(app.vitals.frames.slow.count)/sum(app.vitals.frames.total.count)","equation|sum(app.vitals.frames.frozen.count)/sum(app.vitals.frames.total.count)","avg(app.vitals.frames.delay.value)"],orderby:"-avg(app.vitals.frames.delay.value)",fields:["span.op","span.name","span.description","equation|sum(app.vitals.frames.slow.count)/sum(app.vitals.frames.total.count)","equation|sum(app.vitals.frames.frozen.count)/sum(app.vitals.frames.total.count)","avg(app.vitals.frames.delay.value)"],fieldAliases:["Operation","Span Name","Span Description","Slow Frame %","Frozen Frame %","Delay"]}],interval:"1h",layout:{h:7,x:0,y:0,w:6,minH:2}}]},"12":{title:"Backend Overview",description:"Monitor backend services and dependencies, including caches and queues.",widgets:[{id:"requests-widget",title:"Requests",description:"",displayType:"line",widgetType:"spans",queries:[{name:"Requests",conditions:"span.op:http.server",columns:[],aggregates:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"],orderby:"count(span.duration)",fields:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"],fieldAliases:[]}],interval:"1h",limit:5,layout:{x:0,y:0,w:2,h:2,minH:2}},{id:"api-latency-widget",title:"API Latency",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.server",columns:[],aggregates:["avg(span.duration)","p95(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)","p95(span.duration)"],fieldAliases:[]}],interval:"1h",layout:{x:2,y:0,w:2,h:2,minH:2}},{id:"issue-counts",title:"Issue Counts",displayType:"bar",widgetType:"issue",queries:[{name:"",conditions:"",columns:[],aggregates:["count(new_issues)","count(resolved_issues)"],orderby:"",fields:["count(new_issues)","count(resolved_issues)"]}],interval:"5m",layout:{x:4,y:0,w:2,h:2,minH:2}},{id:"jobs-chart",title:"Jobs",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:queue.process",columns:[],aggregates:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"],orderby:"count(span.duration)",fields:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"],fieldAliases:[]}],interval:"1h",limit:3,layout:{x:0,y:2,w:2,h:3,minH:3}},{id:"queries-by-time-spent-chart",title:"Queries by Time Spent",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.category:db has:sentry.normalized_description",columns:["sentry.normalized_description"],aggregates:["p75(span.duration)"],orderby:"-sum(span.duration)",fields:["sentry.normalized_description","p75(span.duration)"],fieldAliases:[""]}],interval:"5m",limit:3,layout:{x:2,y:2,w:2,h:3,minH:3}},{id:"cache-miss-rates-chart",title:"Cache Miss Rates",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:[cache.get,cache.get_item]",columns:["transaction"],aggregates:["equation|count_if(cache.hit,equals,false) / count(span.duration)"],orderby:"-equation|count_if(cache.hit,equals,false) / count(span.duration)",fields:["equation|count_if(cache.hit,equals,false) / count(span.duration)"],fieldAliases:[""]}],interval:"1h",limit:3,layout:{x:4,y:2,w:2,h:3,minH:3}},{id:"backend-overview-transactions-table",title:"Transactions",description:"",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"( ( !span.op:pageload !span.op:navigation !span.op:ui.render !span.op:interaction !span.op:ui.action.swipe !span.op:ui.action.scroll !span.op:ui.action.click !span.op:ui.action !span.op:ui.load !span.op:app.lifecycle !span.op:ui.interaction !span.op:ui.interaction.click !span.op:ui.interaction.hover !span.op:ui.interaction.drag !span.op:ui.interaction.press !span.op:ui.webvital.cls !span.op:ui.webvital.lcp !span.op:ui.webvital.fcp ) OR ( span.op:http.server ) ) is_transaction:true",columns:["is_starred_transaction","request.method","transaction","span.op","project"],aggregates:["epm()","p50(span.duration)","p95(span.duration)","equation|failure_count() / count(span.duration)","count_unique(user)","sum(span.duration)"],orderby:"-sum(span.duration)",fields:["is_starred_transaction","request.method","transaction","span.op","project","epm()","p50(span.duration)","p95(span.duration)","equation|failure_count() / count(span.duration)","count_unique(user)","sum(span.duration)"],fieldAliases:["","HTTP Method","Transaction","Operation","Project","TPM","P50","P95","Failure rate","Users","Time Spent"]}],interval:"5m",layout:{x:0,w:6,h:6,minH:2,y:7}}]},"13":{title:"Mobile Session Health",description:"Monitor mobile session health by user and session.",widgets:[{id:"crash-free-sessions",title:"Crash Free Sessions",displayType:"big_number",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["crash_free_rate(session)"],orderby:"",fields:["crash_free_rate(session)"]}],interval:"5m",layout:{x:0,y:0,w:2,h:1,minH:1}},{id:"crash-free-users",title:"Crash Free Users",displayType:"big_number",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["crash_free_rate(user)"],orderby:"",fields:["crash_free_rate(user)"]}],interval:"5m",layout:{x:2,y:0,w:2,h:1,minH:1}},{id:"anr-rate",title:"ANR / App Hang Rate",displayType:"big_number",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["anr_rate()"],orderby:"",fields:["anr_rate()"]}],interval:"5m",layout:{x:4,y:0,w:2,h:1,minH:1}},{id:"crash-free-session-line-chart",title:"Crash Free Sessions",displayType:"line",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["crash_free_rate(session)"],orderby:"",fields:["crash_free_rate(session)"]}],interval:"5m",layout:{x:0,y:1,w:3,h:2,minH:2}},{id:"crash-free-user-line-chart",title:"Crash Free Users",displayType:"line",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["crash_free_rate(user)"],orderby:"",fields:["crash_free_rate(user)"]}],interval:"5m",layout:{x:3,y:1,w:3,h:2,minH:2}},{id:"issue-counts",title:"Issue Counts",displayType:"bar",widgetType:"issue",queries:[{name:"",conditions:"",columns:[],aggregates:["count(new_issues)","count(resolved_issues)"],orderby:"",fields:["count(new_issues)","count(resolved_issues)"]}],interval:"5m",layout:{x:0,y:4,w:3,h:2,minH:2}},{id:"total-sessions",title:"Total Sessions",displayType:"line",widgetType:"metrics",queries:[{name:"",conditions:"",columns:[],aggregates:["sum(session)"],orderby:"",fields:["sum(session)"]}],interval:"5m",layout:{x:3,y:4,w:3,h:2,minH:2}},{id:"crash-rate-table",title:"Crash Free Rate by Project",displayType:"table",widgetType:"metrics",queries:[{name:"",conditions:"",columns:["project"],aggregates:["crash_free_rate(session)"],orderby:"crash_free_rate(session)",fields:["project","crash_free_rate(session)"],fieldAliases:["Project","Crash Free Rate"]}],interval:"5m",layout:{x:0,y:6,w:6,h:2,minH:2}},{id:"release-table",title:"Releases",displayType:"table",widgetType:"metrics",queries:[{name:"",conditions:"",columns:["project","release"],aggregates:["crash_free_rate(session)","sum(session)"],orderby:"-release",fields:["project","release","crash_free_rate(session)","sum(session)"],fieldAliases:["Project","Release","Crash Free Rate","Total Sessions"]}],interval:"5m",layout:{x:0,y:8,w:6,h:3,minH:2}}]},"14":{title:"Frontend Overview",description:"Monitor frontend errors and performance telemetry.",widgets:[{id:"throughput-widget",title:"Transaction Throughput",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"( span.op:[pageload,navigation,ui.render,interaction] OR sdk.name:[dart,dart-sentry-client,sentry.dart,sentry.dart.browser,sentry.dart.flutter,sentry.dart.logging,raven-js,sentry-browser,sentry.javascript.angular,sentry.javascript.angular-ivy,sentry.javascript.astro,sentry.javascript.browser,sentry.javascript.electron,sentry.javascript.ember,sentry.javascript.enrio,sentry.javascript.gatsby,sentry.javascript.miniapp,sentry.javascript.nextjs,sentry.javascript.nuxt,sentry.javascript.react,sentry.javascript.remix,sentry.javascript.solid,sentry.javascript.solidstart,sentry.javascript.svelte,sentry.javascript.sveltekit,sentry.javascript.uniapp,sentry.javascript.vue] ) !span.op:http.server is_transaction:true",columns:[],aggregates:["epm()"],orderby:"-epm()",fields:["epm()"],fieldAliases:[]}],interval:"5m",layout:{x:0,y:0,w:2,h:2,minH:2}},{id:"duration-widget",title:"Transaction Duration",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"( span.op:[pageload,navigation,ui.render,interaction] OR sdk.name:[dart,dart-sentry-client,sentry.dart,sentry.dart.browser,sentry.dart.flutter,sentry.dart.logging,raven-js,sentry-browser,sentry.javascript.angular,sentry.javascript.angular-ivy,sentry.javascript.astro,sentry.javascript.browser,sentry.javascript.electron,sentry.javascript.ember,sentry.javascript.enrio,sentry.javascript.gatsby,sentry.javascript.miniapp,sentry.javascript.nextjs,sentry.javascript.nuxt,sentry.javascript.react,sentry.javascript.remix,sentry.javascript.solid,sentry.javascript.solidstart,sentry.javascript.svelte,sentry.javascript.sveltekit,sentry.javascript.uniapp,sentry.javascript.vue] ) !span.op:http.server is_transaction:true",columns:[],aggregates:["p50(span.duration)","p75(span.duration)","p95(span.duration)"],orderby:"-p50(span.duration)",fields:["p50(span.duration)","p75(span.duration)","p95(span.duration)"],fieldAliases:[]}],interval:"5m",layout:{x:2,y:0,w:2,h:2,minH:2}},{id:"score-breakdown-wheel",title:"Performance Score",description:"Tracks the overall performance rating of the pages in your selected project.",displayType:"wheel",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)","performance_score(measurements.score.total)","count_scores(measurements.score.total)","count_scores(measurements.score.lcp)","count_scores(measurements.score.fcp)","count_scores(measurements.score.inp)","count_scores(measurements.score.cls)","count_scores(measurements.score.ttfb)"],aggregates:[],orderby:"",fields:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)","performance_score(measurements.score.total)","count_scores(measurements.score.total)","count_scores(measurements.score.lcp)","count_scores(measurements.score.fcp)","count_scores(measurements.score.inp)","count_scores(measurements.score.cls)","count_scores(measurements.score.ttfb)"]}],interval:"5m",limit:1,layout:{x:4,y:0,w:2,h:2,minH:2}},{id:"issue-counts",title:"Issue Counts",displayType:"bar",widgetType:"issue",queries:[{name:"",conditions:"",columns:[],aggregates:["count(new_issues)","count(resolved_issues)"],orderby:"",fields:["count(new_issues)","count(resolved_issues)"]}],interval:"5m",layout:{x:0,y:2,w:2,h:3,minH:3}},{id:"assets-by-time-spent-widget",title:"Assets by Time Spent",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:'has:sentry.normalized_description has:sentry.normalized_description !sentry.normalized_description:"browser-extension://*" ( span.op:resource.script OR file_extension:css OR file_extension:[woff,woff2,ttf,otf,eot] OR file_extension:[jpg,jpeg,png,gif,svg,webp,apng,avif] OR span.op:resource.img )',columns:["sentry.normalized_description"],aggregates:["p75(span.duration)"],orderby:"-sum(span.duration)",fields:["p75(span.duration)"]}],interval:"5m",limit:3,layout:{x:2,y:2,w:2,h:3,minH:3}},{id:"network-requests-by-time-spent-widget",title:"Network Requests by Time Spent",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.category:http",columns:["span.domain"],aggregates:["p75(span.duration)"],orderby:"-sum(span.duration)",fields:["p75(span.duration)"]}],interval:"5m",limit:3,layout:{x:4,y:2,w:2,h:3,minH:3}},{id:"frontend-overview-table",title:"Transactions",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"!span.op:http.server ( span.op:[pageload,navigation,ui.render,interaction,ui.render,interaction,ui.interaction,ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,ui.webvital.fcp,pageload] OR sdk.name:[dart,dart-sentry-client,sentry.dart,sentry.dart.browser,sentry.dart.flutter,sentry.dart.logging,raven-js,sentry-browser,sentry.javascript.angular,sentry.javascript.angular-ivy,sentry.javascript.astro,sentry.javascript.browser,sentry.javascript.electron,sentry.javascript.ember,sentry.javascript.enrio,sentry.javascript.gatsby,sentry.javascript.miniapp,sentry.javascript.nextjs,sentry.javascript.nuxt,sentry.javascript.react,sentry.javascript.remix,sentry.javascript.solid,sentry.javascript.solidstart,sentry.javascript.svelte,sentry.javascript.sveltekit,sentry.javascript.uniapp,sentry.javascript.vue] )",columns:["is_starred_transaction","transaction","project"],aggregates:["equation|tpm()","equation|p50_if(span.duration,is_transaction,equals,true)","equation|p75_if(span.duration,is_transaction,equals,true)","equation|p95_if(span.duration,is_transaction,equals,true)","equation|failure_rate_if(is_transaction,equals,true)","count_unique(user)","equation|sum_if(span.duration,is_transaction,equals,true)","performance_score(measurements.score.total)"],orderby:"-equation|sum_if(span.duration,is_transaction,equals,true)",fields:["is_starred_transaction","transaction","project","equation|tpm()","equation|p50_if(span.duration,is_transaction,equals,true)","equation|p75_if(span.duration,is_transaction,equals,true)","equation|p95_if(span.duration,is_transaction,equals,true)","equation|failure_rate_if(is_transaction,equals,true)","count_unique(user)","equation|sum_if(span.duration,is_transaction,equals,true)","performance_score(measurements.score.total)"],fieldAliases:["","Transaction","Project","TPM","P50","P75","P95","Failure Rate","Users","Time Spent","Performance Score"]}],interval:"5m",layout:{x:0,y:7,w:6,h:6,minH:2}}]},"15":{title:"Next.js Overview",description:"Monitor frontend and SSR performance for Next.js applications.",widgets:[{id:"pageloads-widget",title:"Pageloads",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:pageload",columns:[],aggregates:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"],orderby:"-count(span.duration)",fields:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"]}],interval:"5m",layout:{x:0,y:0,w:2,h:2,minH:2}},{id:"api-latency-widget",title:"API Latency",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.server",columns:[],aggregates:["avg(span.duration)","p95(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)","p95(span.duration)"]}],interval:"5m",layout:{x:2,y:0,w:2,h:2,minH:2}},{id:"issue-counts",title:"Issue Counts",displayType:"bar",widgetType:"issue",queries:[{name:"",conditions:"",columns:[],aggregates:["count(new_issues)","count(resolved_issues)"],orderby:"",fields:["count(new_issues)","count(resolved_issues)"]}],interval:"5m",layout:{x:4,y:0,w:2,h:2,minH:2}},{id:"score-breakdown-wheel",title:"Performance Score",description:"Tracks the overall performance rating of the pages in your selected project.",displayType:"wheel",widgetType:"spans",queries:[{name:"",conditions:'span.op:[ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,pageload,""]',columns:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)","performance_score(measurements.score.total)","count_scores(measurements.score.total)","count_scores(measurements.score.lcp)","count_scores(measurements.score.fcp)","count_scores(measurements.score.inp)","count_scores(measurements.score.cls)","count_scores(measurements.score.ttfb)"],aggregates:[],orderby:"",fields:["performance_score(measurements.score.lcp)","performance_score(measurements.score.fcp)","performance_score(measurements.score.inp)","performance_score(measurements.score.cls)","performance_score(measurements.score.ttfb)","performance_score(measurements.score.total)","count_scores(measurements.score.total)","count_scores(measurements.score.lcp)","count_scores(measurements.score.fcp)","count_scores(measurements.score.inp)","count_scores(measurements.score.cls)","count_scores(measurements.score.ttfb)"]}],interval:"5m",limit:1,layout:{x:0,y:2,w:2,h:3,minH:3}},{id:"rage-and-dead-clicks-widget",title:"Rage and Dead Clicks",description:"Visualizes the rage and dead clicks in your frontend project.",displayType:"rage_and_dead_clicks",queries:[{name:"",conditions:"",columns:[],aggregates:[],orderby:"",fields:[]}],interval:"5m",layout:{x:2,y:2,w:2,h:3,minH:3}},{id:"slow-ssr-widget",title:"Slow SSR",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:function.nextjs",columns:["span.description"],aggregates:["avg(span.duration)"],orderby:"-avg(span.duration)",fields:["span.description","avg(span.duration)"]}],interval:"5m",limit:3,layout:{x:4,y:2,w:2,h:3,minH:3}},{id:"client-transactions-table",title:"Client Transactions",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:[ui.render,interaction,ui.interaction,ui.interaction.click,ui.interaction.hover,ui.interaction.drag,ui.interaction.press,ui.webvital.cls,ui.webvital.lcp,ui.webvital.fcp,pageload,navigation,default] !span.op:http.server is_transaction:true !sentry.origin:auto.db.* !sentry.origin:auto",columns:["transaction","span.op","project"],aggregates:["count(span.duration)","failure_rate()","avg(span.duration)","p95(span.duration)","performance_score(measurements.score.total)"],orderby:"-count(span.duration)",fields:["transaction","project","span.op","count(span.duration)","failure_rate()","avg(span.duration)","p95(span.duration)","performance_score(measurements.score.total)"],fieldAliases:["Transaction","","Operation","Views","Error Rate","Avg","P95","Perf Score"]}],interval:"5m",layout:{x:0,y:5,w:6,h:3,minH:2}},{id:"server-transactions-table",title:"Server Transactions",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.server is_transaction:true",columns:["transaction","project"],aggregates:["count(span.duration)","failure_rate()","avg(span.duration)","p95(span.duration)","sum(span.duration)"],orderby:"-count(span.duration)",fields:["transaction","project","count(span.duration)","failure_rate()","avg(span.duration)","p95(span.duration)","sum(span.duration)"],fieldAliases:["Transaction","","Views","Error Rate","Avg","P95","Time Spent"]}],interval:"5m",layout:{x:0,y:8,w:6,h:3,minH:2}},{id:"server-tree-widget",title:"SSR File Tree",description:"Visualizes the file tree of the server-rendered components in your Next.js project.",displayType:"server_tree",queries:[{name:"",conditions:"",columns:[],aggregates:[],orderby:"",fields:[]}],interval:"5m",layout:{x:0,y:11,w:6,h:3,minH:3}}]},"16":{title:"AI Agents Overview",description:"Monitor AI agent workflows, model costs, token usage, and tool calls.",widgets:[{id:"ai-agents-overview-agent-runs",title:"Agent Runs",description:"Number of agent runs captured over time.",displayType:"bar",widgetType:"spans",queries:[{name:"Count",conditions:"gen_ai.operation.type:agent",columns:[],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["count(span.duration)"],fieldAliases:["Count"]}],interval:"1h",layout:{x:0,y:0,w:2,h:2,minH:2}},{id:"ai-agents-overview-estimated-cost",title:"Estimated Cost",description:"Estimated cost of LLM calls with token and model data.",displayType:"bar",widgetType:"spans",queries:[{name:"Cost",conditions:"gen_ai.operation.type:ai_client",columns:[],aggregates:["sum(gen_ai.cost.total_tokens)"],orderby:"-sum(gen_ai.cost.total_tokens)",fields:["sum(gen_ai.cost.total_tokens)"],fieldAliases:["Estimated Cost"]}],interval:"1h",layout:{x:2,y:0,w:2,h:2,minH:2}},{id:"ai-agents-overview-duration",title:"Duration",description:"Average and p95 duration for agent runs and LLM calls.",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:[agent, ai_client]",columns:[],aggregates:["avg(span.duration)","p95(span.duration)"],orderby:"-avg(span.duration)",fields:["avg(span.duration)","p95(span.duration)"],fieldAliases:["Avg","P95"]}],interval:"1h",layout:{x:4,y:0,w:2,h:2,minH:2}},{id:"ai-agents-overview-llm-calls-by-model",title:"LLM Calls by Model",description:"Number of LLM calls grouped by response model.",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:ai_client",columns:["gen_ai.response.model"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["gen_ai.response.model","count(span.duration)"],fieldAliases:["Model","Calls"]}],interval:"1h",limit:3,layout:{x:0,y:2,w:2,h:3,minH:3}},{id:"ai-agents-overview-tokens-used",title:"Tokens Used",description:"Total tokens used by LLM calls, grouped by response model.",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:ai_client",columns:["gen_ai.response.model"],aggregates:["sum(gen_ai.usage.total_tokens)"],orderby:"-sum(gen_ai.usage.total_tokens)",fields:["gen_ai.response.model","sum(gen_ai.usage.total_tokens)"],fieldAliases:["Model","Total Tokens"]}],interval:"1h",limit:3,layout:{x:2,y:2,w:2,h:3,minH:3}},{id:"ai-agents-overview-tool-calls",title:"Tool Calls",description:"Tool call volume grouped by tool name.",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:tool",columns:["gen_ai.tool.name"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["gen_ai.tool.name","count(span.duration)"],fieldAliases:["Tool","Calls"]}],interval:"1h",limit:3,layout:{x:4,y:2,w:2,h:3,minH:3}},{id:"ai-agents-traces-table",title:"Traces",description:"Agent traces with duration, token, cost, and tool usage.",displayType:"agents_traces_table",queries:[{name:"",conditions:"",columns:[],aggregates:[],orderby:"",fields:[]}],interval:"1h",limit:10,layout:{x:0,y:6,w:6,h:4,minH:2}}]},"17":{title:"AI Agents Model Details",description:"View AI agent token usage and costs by model.",widgets:[{id:"ai-agents-model-cost",title:"Model Cost",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:ai_client",columns:["gen_ai.response.model"],aggregates:["sum(gen_ai.cost.total_tokens)"],orderby:"-sum(gen_ai.cost.total_tokens)",fields:["gen_ai.response.model","sum(gen_ai.cost.total_tokens)"],fieldAliases:["Model","Total Cost"]}],interval:"1h",limit:3,layout:{x:0,y:0,w:2,h:3,minH:3}},{id:"ai-agents-token-usage",title:"Tokens Used",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:ai_client",columns:["gen_ai.response.model"],aggregates:["sum(gen_ai.usage.total_tokens)"],orderby:"-sum(gen_ai.usage.total_tokens)",fields:["gen_ai.response.model","sum(gen_ai.usage.total_tokens)"],fieldAliases:["Model","Total Tokens"]}],interval:"1h",limit:3,layout:{x:2,y:0,w:2,h:3,minH:3}},{id:"ai-agents-token-types",title:"Token Types",displayType:"area",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:ai_client",columns:[],aggregates:["sum(gen_ai.usage.input_tokens)","sum(gen_ai.usage.input_tokens.cached)","sum(gen_ai.usage.output_tokens)","sum(gen_ai.usage.output_tokens.reasoning)"],orderby:"",fields:["sum(gen_ai.usage.input_tokens)","sum(gen_ai.usage.input_tokens.cached)","sum(gen_ai.usage.output_tokens)","sum(gen_ai.usage.output_tokens.reasoning)"],fieldAliases:["Input Tokens","Cached Input Tokens","Output Tokens","Reasoning Tokens"]}],interval:"1h",limit:3,layout:{x:4,y:0,w:2,h:3,minH:3}},{id:"ai-agents-models-table",title:"Models",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:ai_client",columns:["gen_ai.response.model"],aggregates:["count()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)","sum(gen_ai.cost.total_tokens)","sum(gen_ai.usage.input_tokens)","sum(gen_ai.usage.input_tokens.cached)","sum(gen_ai.usage.output_tokens)","sum(gen_ai.usage.output_tokens.reasoning)"],orderby:"-count()",fields:["gen_ai.response.model","count()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)","sum(gen_ai.cost.total_tokens)","sum(gen_ai.usage.input_tokens)","sum(gen_ai.usage.input_tokens.cached)","sum(gen_ai.usage.output_tokens)","sum(gen_ai.usage.output_tokens.reasoning)"],fieldAliases:["Model","Requests","Errors","Avg","P95","Cost","Input Tokens","Cached Tokens","Output Tokens","Reasoning Tokens"]}],interval:"1h",layout:{x:0,y:3,w:6,h:4,minH:2}}]},"18":{title:"AI Agents Tool Details",description:"Track AI agent tool calls and error rates.",widgets:[{id:"ai-agents-tool-calls",title:"Tool Calls",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:tool",columns:["gen_ai.tool.name"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["gen_ai.tool.name","count(span.duration)"],fieldAliases:["Tool","Calls"]}],interval:"1h",limit:3,layout:{x:0,y:0,w:3,h:3,minH:3}},{id:"ai-agents-tool-errors",title:"Tool Errors",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:tool span.status:[internal_error,error]",columns:["gen_ai.tool.name"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["gen_ai.tool.name","count(span.duration)"],fieldAliases:["Tool","Errors"]}],interval:"1h",limit:3,layout:{x:3,y:0,w:3,h:3,minH:3}},{id:"ai-agents-tools-table",title:"Tools",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"gen_ai.operation.type:tool",columns:["gen_ai.tool.name"],aggregates:["count()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],orderby:"-count()",fields:["gen_ai.tool.name","count()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],fieldAliases:["Tool","Requests","Errors","Avg","P95"]}],interval:"1h",layout:{x:0,y:3,w:6,h:4,minH:2}}]},"19":{title:"MCP Overview",description:"Monitor MCP server usage and performance.",widgets:[{id:"mcp-overview-traffic",title:"Traffic",displayType:"bar",widgetType:"spans",queries:[{name:"Count",conditions:"span.op:mcp.server",columns:[],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["count(span.duration)"],fieldAliases:["Count"]}],interval:"1h",layout:{x:0,y:0,w:2,h:3,minH:3}},{id:"mcp-overview-traffic-by-client",title:"Traffic by Client",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server",columns:["mcp.client.name"],aggregates:["count()"],orderby:"-count()",fields:["mcp.client.name","count()"],fieldAliases:["Client","Count"]}],interval:"1h",limit:3,layout:{x:2,y:0,w:2,h:3,minH:3}},{id:"mcp-overview-transport-distribution",title:"Transport Distribution",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.transport",columns:["mcp.transport"],aggregates:["count()"],orderby:"-count()",fields:["mcp.transport","count()"],fieldAliases:["Transport","Count"]}],interval:"1h",limit:3,layout:{x:4,y:0,w:2,h:3,minH:3}},{id:"mcp-overview-most-used-tools",title:"Most Used Tools",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.tool.name",columns:["mcp.tool.name"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["mcp.tool.name","count(span.duration)"],fieldAliases:["Tool","Count"]}],interval:"1h",limit:3,layout:{x:0,y:3,w:2,h:3,minH:3}},{id:"mcp-overview-most-used-resources",title:"Most Used Resources",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.resource.uri",columns:["mcp.resource.uri"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["mcp.resource.uri","count(span.duration)"],fieldAliases:["Resource","Count"]}],interval:"1h",limit:3,layout:{x:2,y:3,w:2,h:3,minH:3}},{id:"mcp-overview-most-used-prompts",title:"Most Used Prompts",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.prompt.name",columns:["mcp.prompt.name"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["mcp.prompt.name","count(span.duration)"],fieldAliases:["Prompt","Count"]}],interval:"1h",limit:3,layout:{x:4,y:3,w:2,h:3,minH:3}},{id:"mcp-overview-table",title:"MCP Overview",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server",columns:["span.description"],aggregates:["count()","failure_rate()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],orderby:"-count()",fields:["span.description","count()","failure_rate()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],fieldAliases:["Span Description","Requests","Error Rate","Errors","Avg","P95"]}],interval:"1h",layout:{x:0,y:6,w:6,h:4,minH:2}}]},"20":{title:"MCP Tool Details",description:"Track MCP tool call latency, frequency, and error rates.",widgets:[{id:"mcp-tools-most-used-tools",title:"Most Used Tools",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.tool.name",columns:["mcp.tool.name"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["mcp.tool.name","count(span.duration)"],fieldAliases:["Tool","Calls"]}],interval:"1h",limit:3,layout:{x:0,y:0,w:2,h:3,minH:3}},{id:"mcp-tools-slowest-tools",title:"Slowest Tools",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.tool.name",columns:["mcp.tool.name"],aggregates:["avg(span.duration)"],orderby:"-avg(span.duration)",fields:["mcp.tool.name","avg(span.duration)"],fieldAliases:["Tool","Avg"]}],interval:"1h",limit:3,layout:{x:2,y:0,w:2,h:3,minH:3}},{id:"mcp-tools-most-failing-tools",title:"Most Failing Tools",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.tool.name",columns:["mcp.tool.name"],aggregates:["failure_rate()"],orderby:"-failure_rate()",fields:["mcp.tool.name","failure_rate()"],fieldAliases:["Tool","Error Rate"]}],interval:"1h",limit:3,layout:{x:4,y:0,w:2,h:3,minH:3}},{id:"mcp-tools-table",title:"Tools",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.tool.name",columns:["mcp.tool.name"],aggregates:["count()","failure_rate()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],orderby:"-count()",fields:["mcp.tool.name","count()","failure_rate()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],fieldAliases:["Tool Name","Requests","Error Rate","Errors","Avg","P95"]}],interval:"1h",layout:{x:0,y:3,w:6,h:4,minH:2}}]},"21":{title:"MCP Resource Details",description:"Track MCP resource call latency, frequency, and error rates.",widgets:[{id:"mcp-resources-most-used-resources",title:"Most Used Resources",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.resource.uri",columns:["mcp.resource.uri"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["mcp.resource.uri","count(span.duration)"],fieldAliases:["Resource","Calls"]}],interval:"1h",limit:3,layout:{x:0,y:0,w:2,h:3,minH:3}},{id:"mcp-resources-slowest-resources",title:"Slowest Resources",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.resource.uri",columns:["mcp.resource.uri"],aggregates:["avg(span.duration)"],orderby:"-avg(span.duration)",fields:["mcp.resource.uri","avg(span.duration)"],fieldAliases:["Resource","Avg"]}],interval:"1h",limit:3,layout:{x:2,y:0,w:2,h:3,minH:3}},{id:"mcp-resources-most-failing-resources",title:"Most Failing Resources",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.resource.uri",columns:["mcp.resource.uri"],aggregates:["failure_rate()"],orderby:"-failure_rate()",fields:["mcp.resource.uri","failure_rate()"],fieldAliases:["Resource","Error Rate"]}],interval:"1h",limit:3,layout:{x:4,y:0,w:2,h:3,minH:3}},{id:"mcp-resources-table",title:"Resources",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.resource.uri",columns:["mcp.resource.uri"],aggregates:["count()","failure_rate()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],orderby:"-count()",fields:["mcp.resource.uri","count()","failure_rate()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],fieldAliases:["Resource URI","Requests","Error Rate","Errors","Avg","P95"]}],interval:"1h",layout:{x:0,y:3,w:6,h:4,minH:2}}]},"22":{title:"MCP Prompt Details",description:"Track MCP prompt call latency, frequency, and error rates.",widgets:[{id:"mcp-prompts-most-used-prompts",title:"Most Used Prompts",displayType:"bar",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.prompt.name",columns:["mcp.prompt.name"],aggregates:["count(span.duration)"],orderby:"-count(span.duration)",fields:["mcp.prompt.name","count(span.duration)"],fieldAliases:["Prompt","Calls"]}],interval:"1h",limit:3,layout:{x:0,y:0,w:2,h:3,minH:3}},{id:"mcp-prompts-slowest-prompts",title:"Slowest Prompts",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.prompt.name",columns:["mcp.prompt.name"],aggregates:["avg(span.duration)"],orderby:"-avg(span.duration)",fields:["mcp.prompt.name","avg(span.duration)"],fieldAliases:["Prompt","Avg"]}],interval:"1h",limit:3,layout:{x:2,y:0,w:2,h:3,minH:3}},{id:"mcp-prompts-most-failing-prompts",title:"Most Failing Prompts",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.prompt.name",columns:["mcp.prompt.name"],aggregates:["failure_rate()"],orderby:"-failure_rate()",fields:["mcp.prompt.name","failure_rate()"],fieldAliases:["Prompt","Error Rate"]}],interval:"1h",limit:3,layout:{x:4,y:0,w:2,h:3,minH:3}},{id:"mcp-prompts-table",title:"Prompts",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:mcp.server has:mcp.prompt.name",columns:["mcp.prompt.name"],aggregates:["count()","failure_rate()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],orderby:"-count()",fields:["mcp.prompt.name","count()","failure_rate()","equation|count_if(span.status,equals,internal_error) + count_if(span.status,equals,error)","avg(span.duration)","p95(span.duration)"],fieldAliases:["Prompt Name","Requests","Error Rate","Errors","Avg","P95"]}],interval:"1h",layout:{x:0,y:3,w:6,h:4,minH:2}}]},"23":{title:"Laravel Overview",description:"Monitor Laravel services and dependencies, including background jobs.",widgets:[{id:"requests-widget",title:"Requests",description:"",displayType:"line",widgetType:"spans",queries:[{name:"Requests",conditions:"span.op:http.server",columns:[],aggregates:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"],orderby:"count(span.duration)",fields:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"],fieldAliases:[]}],interval:"1h",limit:5,layout:{x:0,y:0,w:2,h:2,minH:2}},{id:"api-latency-widget",title:"API Latency",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.server",columns:[],aggregates:["avg(span.duration)","p95(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)","p95(span.duration)"],fieldAliases:[]}],interval:"1h",layout:{x:2,y:0,w:2,h:2,minH:2}},{id:"issue-counts",title:"Issue Counts",displayType:"bar",widgetType:"issue",queries:[{name:"",conditions:"",columns:[],aggregates:["count(new_issues)","count(resolved_issues)"],orderby:"",fields:["count(new_issues)","count(resolved_issues)"]}],interval:"5m",layout:{x:4,y:0,w:2,h:2,minH:2}},{id:"jobs-chart",title:"Jobs",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:queue.process",columns:[],aggregates:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"],orderby:"count(span.duration)",fields:["count(span.duration)","equation|(count_if(trace.status,equals,internal_error) + count_if(trace.status,equals,error)) / count(span.duration)"],fieldAliases:[]}],interval:"1h",limit:3,layout:{x:0,y:2,w:2,h:3,minH:3}},{id:"queries-by-time-spent-chart",title:"Queries by Time Spent",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.category:db has:sentry.normalized_description",columns:["sentry.normalized_description"],aggregates:["p75(span.duration)"],orderby:"-sum(span.duration)",fields:["sentry.normalized_description","p75(span.duration)"],fieldAliases:[""]}],interval:"5m",limit:3,layout:{x:2,y:2,w:2,h:3,minH:3}},{id:"cache-miss-rates-chart",title:"Cache Miss Rates",description:"",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:[cache.get,cache.get_item]",columns:["transaction"],aggregates:["equation|count_if(cache.hit,equals,false) / count(span.duration)"],orderby:"-equation|count_if(cache.hit,equals,false) / count(span.duration)",fields:["equation|count_if(cache.hit,equals,false) / count(span.duration)"],fieldAliases:[""]}],interval:"1h",limit:3,layout:{x:4,y:2,w:2,h:3,minH:3}},{id:"paths-table",title:"Paths",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"transaction.op:http.server is_transaction:true",columns:["http.request.method","transaction"],aggregates:["count()","failure_rate()","avg(span.duration)","p95(span.duration)","sum(span.duration)","count_unique(user)"],orderby:"-count()",fields:["http.request.method","transaction","count()","failure_rate()","avg(span.duration)","p95(span.duration)","sum(span.duration)","count_unique(user)"],fieldAliases:["Method","Path","Requests","Error Rate","Avg","P95","Time Spent","Users"]}],interval:"5m",layout:{x:0,y:7,w:6,h:3,minH:2}},{id:"commands-table",title:"Commands",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:console.command*",columns:["command"],aggregates:["count()","failure_rate()","avg(span.duration)","p95(span.duration)","sum(span.duration)"],orderby:"-count()",fields:["command","count()","failure_rate()","avg(span.duration)","p95(span.duration)","sum(span.duration)"],fieldAliases:["Command","Invocations","Error Rate","Avg","P95","Time Spent"]}],interval:"5m",layout:{x:0,y:10,w:6,h:3,minH:2}},{id:"jobs-table",title:"Jobs",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:queue.process",columns:["messaging.destination.name","transaction"],aggregates:["count()","failure_rate()","avg(messaging.message.receive.latency)","equation|avg_if(span.duration,span.op,equals,queue.process)","sum(span.duration)"],orderby:"-count()",fields:["transaction","messaging.destination.name","count()","failure_rate()","avg(messaging.message.receive.latency)","equation|avg_if(span.duration,span.op,equals,queue.process)","sum(span.duration)"],fieldAliases:["Job","Queue Name","Processed","Error Rate","Avg Time in Queue","Avg Processing Time","Time Spent"]}],interval:"5m",layout:{x:0,y:13,w:6,h:3,minH:2}}]},"24":{title:"Frontend Assets",description:"Track JS, CSS, and image asset performance, with per-resource drill-downs.",widgets:[{id:"requests-per-min-widget",title:"Requests per Minute",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"has:sentry.normalized_description",columns:[],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{x:0,y:0,w:3,h:2,minH:2}},{id:"average-duration-widget",title:"Average Duration",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"has:sentry.normalized_description",columns:[],aggregates:["avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)"]}],interval:"5m",layout:{x:3,y:0,w:3,h:2,minH:2}},{id:"assets-table",title:"Assets",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"has:sentry.normalized_description",columns:["sentry.normalized_description"],aggregates:["epm()","avg(span.duration)","sum(span.duration)","avg(http.response_content_length)"],orderby:"-sum(span.duration)",fields:["sentry.normalized_description","epm()","avg(span.duration)","sum(span.duration)","avg(http.response_content_length)"],fieldAliases:["Asset description","Requests per Minute","Avg","Time Spent","Avg Encoded Size"]}],interval:"5m",layout:{x:0,y:2,w:6,h:6,minH:2}}]},"25":{title:"Frontend Assets Summary",description:"",widgets:[{id:"domain-widget",title:"Example Asset",displayType:"details",widgetType:"spans",queries:[{name:"",conditions:"",columns:["id","span.op","span.group","span.description","span.category","project.id"],aggregates:[],orderby:"id",fields:["id","span.op","span.group","span.description","span.category","project.id"],fieldAliases:[]}],interval:"5m",layout:{x:0,y:0,minH:2,h:2,w:6}},{id:"request-per-min-big-number",title:"Requests per Minute",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"",columns:[],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{x:0,y:2,w:1,h:1,minH:1}},{id:"average-encoded-size-big-number",title:"Average Encoded Size",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(http.response_content_length)"],orderby:"avg(http.response_content_length)",fields:["avg(http.response_content_length)"]}],interval:"5m",layout:{x:1,y:2,w:1,h:1,minH:1}},{id:"average-decoded-size-big-number",title:"Average Decoded Size",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(http.decoded_response_content_length)"],orderby:"avg(http.decoded_response_content_length)",fields:["avg(http.decoded_response_content_length)"]}],interval:"5m",layout:{x:2,y:2,w:1,h:1,minH:1}},{id:"average-transfer-size-big-number",title:"Average Transfer Size",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(http.response_transfer_size)"],orderby:"avg(http.response_transfer_size)",fields:["avg(http.response_transfer_size)"]}],interval:"5m",layout:{x:3,y:2,w:1,h:1,minH:1}},{id:"average-duration-big-number",title:"Average Duration",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)"]}],interval:"5m",layout:{x:4,y:2,w:1,h:1,minH:1}},{id:"time-spent-big-number",title:"Time Spent",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"",columns:[],aggregates:["sum(span.duration)"],orderby:"sum(span.duration)",fields:["sum(span.duration)"]}],interval:"5m",layout:{x:5,y:2,w:1,h:1,minH:1}},{id:"requests-per-min-widget",title:"Requests per Minute",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"",columns:[],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{x:0,y:3,w:2,h:2,minH:2}},{id:"average-duration-widget",title:"Average Duration",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(span.duration)"]}],interval:"5m",layout:{x:2,y:3,w:2,h:2,minH:2}},{id:"average-asset-size-widget",title:"Average Asset Size",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(http.decoded_response_content_length)","avg(http.response_transfer_size)","avg(http.response_content_length)"],orderby:"avg(http.response_content_length)",fields:["avg(http.decoded_response_content_length)","avg(http.response_transfer_size)","avg(http.response_content_length)"],fieldAliases:["Avg Decoded Size","Avg Transfer Size","Avg Encoded Size"]}],interval:"5m",layout:{x:4,y:3,w:2,h:2,minH:2}},{id:"assets-table-widget",title:"Pages Containing This Asset",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"",columns:["transaction","resource.render_blocking_status"],aggregates:["epm()","avg(span.duration)","avg(http.response_content_length)"],orderby:"-epm()",fields:["transaction","epm()","avg(span.duration)","avg(http.response_content_length)","resource.render_blocking_status"],fieldAliases:["Transaction","Requests per Minute","Avg","Avg Encoded Size","Render Blocking"]}],interval:"5m",layout:{x:0,y:5,minH:2,h:6,w:6}}]},"26":{title:"Queues",description:"Track message queue throughput, latency, and error rates.",widgets:[{id:"average-duration-widget",title:"Average Duration",displayType:"area",widgetType:"spans",queries:[{name:"",conditions:"span.op:queue.process",columns:[],aggregates:["avg(messaging.message.receive.latency)","avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(messaging.message.receive.latency)","avg(span.duration)"]}],interval:"5m",layout:{x:0,y:0,w:3,h:2,minH:2}},{id:"throughput-widget",title:"Published vs Processed",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:[queue.publish, queue.process]",columns:["span.op"],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{x:3,y:0,w:3,h:2,minH:2}},{id:"destination-table",title:"Destinations",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:[queue.publish, queue.process]",columns:["messaging.destination.name"],aggregates:["avg(messaging.message.receive.latency)","equation|avg_if(span.duration,span.op,equals,queue.process)","equation|1 - (count_if(trace.status,equals,ok) / count(span.duration))","equation|count_if(span.op,equals,queue.publish)","equation|count_if(span.op,equals,queue.process)","sum(span.duration)"],orderby:"-sum(span.duration)",fields:["messaging.destination.name","avg(messaging.message.receive.latency)","equation|avg_if(span.duration,span.op,equals,queue.process)","equation|1 - (count_if(trace.status,equals,ok) / count(span.duration))","equation|count_if(span.op,equals,queue.publish)","equation|count_if(span.op,equals,queue.process)","sum(span.duration)"],fieldAliases:["Destination","Avg time in queue","Avg processing time","Error rate","Published","Processed","Time spent"]}],interval:"5m",layout:{x:0,y:3,w:6,h:6,minH:2}}]},"27":{title:"Queue Summary",description:"",widgets:[{id:"avg-time-in-queue-widget",title:"Average Time in Queue",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"span.op:[queue.process,queue.publish]",columns:[],aggregates:["avg(messaging.message.receive.latency)"],orderby:"avg(messaging.message.receive.latency)",fields:["avg(messaging.message.receive.latency)"]}],interval:"5m",layout:{x:0,y:0,w:1,h:1,minH:1}},{id:"avg-processing-time-widget",title:"Average Processing Time",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"span.op:[queue.process,queue.publish]",columns:[],aggregates:["equation|avg_if(span.duration,span.op,equals,queue.process)"],orderby:"equation|avg_if(span.duration,span.op,equals,queue.process)",fields:["equation|avg_if(span.duration,span.op,equals,queue.process)"]}],interval:"5m",layout:{x:1,y:0,w:1,h:1,minH:1}},{id:"error-rate-widget",title:"Error Rate",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"span.op:[queue.process,queue.publish]",columns:[],aggregates:["equation|1 - (count_if(trace.status,equals,ok) / count(span.duration))"],orderby:"equation|1 - (count_if(trace.status,equals,ok) / count(span.duration))",fields:["equation|1 - (count_if(trace.status,equals,ok) / count(span.duration))"]}],interval:"5m",layout:{x:2,y:0,w:1,h:1,minH:1}},{id:"published-widget",title:"Published",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"span.op:[queue.process,queue.publish]",columns:[],aggregates:["equation|count_if(span.op,equals,queue.publish)"],orderby:"equation|count_if(span.op,equals,queue.publish)",fields:["equation|count_if(span.op,equals,queue.publish)"]}],interval:"5m",layout:{x:3,y:0,w:1,h:1,minH:1}},{id:"processed-widget",title:"Processed",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"span.op:[queue.process,queue.publish]",columns:[],aggregates:["equation|count_if(span.op,equals,queue.process)"],orderby:"equation|count_if(span.op,equals,queue.process)",fields:["equation|count_if(span.op,equals,queue.process)"]}],interval:"5m",layout:{x:4,y:0,w:1,h:1,minH:1}},{id:"time-spent-widget",title:"Time Spent",displayType:"big_number",widgetType:"spans",queries:[{name:"",conditions:"span.op:[queue.process,queue.publish]",columns:[],aggregates:["sum(span.duration)"],orderby:"sum(span.duration)",fields:["sum(span.duration)"]}],interval:"5m",layout:{x:5,y:0,w:1,h:1,minH:1}},{id:"average-duration-widget",title:"Average Duration",displayType:"area",widgetType:"spans",queries:[{name:"",conditions:"span.op:queue.process",columns:[],aggregates:["avg(messaging.message.receive.latency)","avg(span.duration)"],orderby:"avg(span.duration)",fields:["avg(messaging.message.receive.latency)","avg(span.duration)"]}],interval:"5m",layout:{x:0,y:1,w:3,h:2,minH:2}},{id:"throughput-widget",title:"Published vs Processed",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:[queue.publish, queue.process]",columns:["span.op"],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{x:3,y:1,w:3,h:2,minH:2}},{id:"consumer-table",title:"Consumer Transactions",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:queue.process",columns:["transaction"],aggregates:["avg(messaging.message.receive.latency)","equation|avg_if(span.duration,span.op,equals,queue.process)","equation|1 - (count_if(trace.status,equals,ok) / count(span.duration))","equation|count_if(span.op,equals,queue.process)","sum(span.duration)"],orderby:"-sum(span.duration)",fields:["transaction","avg(messaging.message.receive.latency)","equation|avg_if(span.duration,span.op,equals,queue.process)","equation|1 - (count_if(trace.status,equals,ok) / count(span.duration))","equation|count_if(span.op,equals,queue.process)","sum(span.duration)"],fieldAliases:["Transaction","Avg time in queue","Avg processing time","Error rate","Processed","Time spent"]}],interval:"5m",layout:{x:0,y:4,w:6,h:3,minH:3}},{id:"producer-table",title:"Producer Transactions",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:queue.publish",columns:["transaction"],aggregates:["equation|1 - (count_if(trace.status,equals,ok) / count(span.duration))","equation|count_if(span.op,equals,queue.publish)","sum(span.duration)"],orderby:"-sum(span.duration)",fields:["transaction","equation|1 - (count_if(trace.status,equals,ok) / count(span.duration))","equation|count_if(span.op,equals,queue.publish)","sum(span.duration)"],fieldAliases:["Transaction","Error rate","Published","Time spent"]}],interval:"5m",layout:{x:0,y:7,w:6,h:3,minH:3}}]},"28":{title:"Caches",description:"Track cache hit rates, throughput, and latency.",widgets:[{id:"cache-hits-widget",title:"Miss Rate",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:[cache.get,cache.get_item]",columns:[],aggregates:["equation|count_if(cache.hit,equals,false) / count(span.duration)"],orderby:"equation|count_if(cache.hit,equals,false) / count(span.duration)",fields:["equation|count_if(cache.hit,equals,false) / count(span.duration)"]}],interval:"5m",layout:{x:0,y:0,w:3,h:2,minH:2}},{id:"throughput-widget",title:"Throughput",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:[cache.get,cache.get_item]",columns:[],aggregates:["epm()"],orderby:"epm()",fields:["epm()"]}],interval:"5m",layout:{x:3,y:0,w:3,h:2,minH:2}},{id:"transaction-table",title:"Transactions",displayType:"table",widgetType:"spans",queries:[{name:"",conditions:"span.op:[cache.get,cache.get_item]",columns:["transaction","project"],aggregates:["avg(cache.item_size)","epm()","equation|count_if(cache.hit,equals,false) / count(span.duration)","sum(span.duration)"],orderby:"-sum(span.duration)",fields:["transaction","project","avg(cache.item_size)","epm()","equation|count_if(cache.hit,equals,false) / count(span.duration)","sum(span.duration)"],fieldAliases:["Transaction","Project","Avg Value Size","Requests Per Minute","Miss Rate","Time Spent"]}],interval:"5m",layout:{x:0,y:3,w:6,h:6,minH:2}}]},"29":{title:"Node.js Runtime Metrics",description:"Track Node.js runtime metrics, including memory usage and event loop utilization.",widgets:[{id:"node-runtime-event-loop-utilization-kpi",title:"Event Loop Utilization",description:"Average fraction of time the Node.js event loop is active (0-100%) across the selected time range. High utilization means less capacity to handle new work and may indicate CPU-bound processing or blocking operations.",displayType:"big_number",widgetType:"tracemetrics",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(value,node.runtime.event_loop.utilization,gauge,none)"],orderby:"",fields:["avg(value,node.runtime.event_loop.utilization,gauge,none)"]}],interval:"5m",layout:{x:0,y:0,w:2,h:1,minH:1}},{id:"node-runtime-cpu-utilization-kpi",title:"CPU Utilization",description:"Average CPU usage across all cores over the selected time range. Values above 1.0 (100%) are possible on multi-core systems. Sustained high utilization may indicate compute-bound workloads or insufficient scaling.",displayType:"big_number",widgetType:"tracemetrics",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(value,node.runtime.cpu.utilization,gauge,none)"],orderby:"",fields:["avg(value,node.runtime.cpu.utilization,gauge,none)"]}],interval:"5m",layout:{x:2,y:0,w:2,h:1,minH:1}},{id:"node-runtime-process-uptime-kpi",title:"Process Uptime",description:"Total process uptime summed across instances. Sudden resets indicate process crashes or restarts. Useful for detecting instability and correlating with deployment events.",displayType:"big_number",widgetType:"tracemetrics",queries:[{name:"",conditions:"",columns:[],aggregates:["sum(value,node.runtime.process.uptime,counter,second)"],orderby:"",fields:["sum(value,node.runtime.process.uptime,counter,second)"]}],interval:"5m",layout:{x:4,y:0,w:2,h:1,minH:1}},{id:"node-runtime-memory-usage",title:"Memory Usage",description:"Resident Set Size (RSS, total memory footprint), V8 heap total (allocated), and heap used (in-use). Growing RSS without matching heap growth may indicate native memory leaks. Heap used approaching heap total triggers more frequent garbage collection.",displayType:"area",widgetType:"tracemetrics",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(value,node.runtime.mem.rss,gauge,byte)","avg(value,node.runtime.mem.heap_total,gauge,byte)","avg(value,node.runtime.mem.heap_used,gauge,byte)"],orderby:"",fields:["avg(value,node.runtime.mem.rss,gauge,byte)","avg(value,node.runtime.mem.heap_total,gauge,byte)","avg(value,node.runtime.mem.heap_used,gauge,byte)"]}],interval:"5m",layout:{x:0,y:1,w:6,h:2,minH:2}},{id:"node-runtime-cpu-utilization-over-time",title:"CPU Utilization Over Time",description:"CPU utilization trend over time. Correlate spikes with deployments, traffic changes, or event loop delay increases to identify compute-bound bottlenecks.",displayType:"line",widgetType:"tracemetrics",queries:[{name:"",conditions:"",columns:[],aggregates:["avg(value,node.runtime.cpu.utilization,gauge,none)"],orderby:"",fields:["avg(value,node.runtime.cpu.utilization,gauge,none)"]}],interval:"5m",layout:{x:0,y:3,w:3,h:2,minH:2}},{id:"node-runtime-http-request-duration",title:"HTTP Request Duration",description:"Server-side HTTP request latency (p50 and p95). Compare with event loop delay and CPU utilization to determine if slow responses are caused by runtime bottlenecks or application logic.",displayType:"line",widgetType:"spans",queries:[{name:"",conditions:"span.op:http.server",columns:[],aggregates:["p50(span.duration)","p95(span.duration)"],orderby:"",fields:["p50(span.duration)","p95(span.duration)"]}],interval:"5m",layout:{x:3,y:3,w:3,h:2,minH:2}}]}}};var qg=Pg.dashboards;function ns(e){if(e.prebuiltId==null)return e;let t=qg[e.prebuiltId];if(!t)return e;return{...e,description:e.description||t.description,widgetDisplay:e.widgetDisplay.length>0?e.widgetDisplay:t.widgets.map((r)=>r.displayType)}}function Mg(e){if(e.widgets.length>0||e.prebuiltId==null)return e;let t=qg[e.prebuiltId];return t?{...e,widgets:structuredClone(t.widgets)}:e}import{useCallback as Cx,useEffect as Qx,useRef as Cg,useState as Qg}from"h:0__";function Dt(e,{reloadKey:t,resetKey:r}={}){let[H,n]=Qg(de),[o,a]=Qg(0),s=Cg(0),i=Cg(r),l=Cx(()=>a((c)=>c+1),[]);return Qx(()=>{let c=new AbortController,A=++s.current,u=!Object.is(i.current,r);i.current=r;let d;try{d=e(c.signal)}catch(p){if(A===s.current&&!c.signal.aborted)n((g)=>me(u?void 0:g,qe(p)));return()=>{s.current++,c.abort()}}if(d===null)return n(de),()=>{s.current++,c.abort()};return n((p)=>Se(u?void 0:p,Date.now())),d.then((p)=>{if(A===s.current&&!c.signal.aborted)n(pe(p,Date.now()))}).catch((p)=>{if(A===s.current&&!c.signal.aborted)n((g)=>me(g,qe(p)))}),()=>{s.current++,c.abort()}},[e,t,r,o]),{status:H,refetch:l}}function Ng(e,{org:t,filter:r,query:H="",sort:n,reloadToken:o=0}){let a=Nx((i)=>{if(!e)return null;return wg(e,{org:t,filter:r,query:H,sort:n,signal:i}).then((l)=>({data:Array.isArray(l.data)?l.data.map(ns):[],nextCursor:l.nextCursor}))},[e,t,r,H,n]),{status:s}=Dt(a,{reloadKey:o});return{dashboards:it(s,(i)=>i.data),nextCursor:W(s)?.nextCursor??null}}function vx(e,{org:t,enabled:r,reloadToken:H=0}){let[n,o]=Rx([]);return jx(()=>{if(!e||!r||!t){o([]);return}let a=new AbortController,s=!1;return Tg(e,{org:t,signal:a.signal}).then((i)=>{if(!s)o(i.map(ns))}).catch(()=>{if(!s)o([])}),()=>{s=!0,a.abort()}},[e,t,r,H]),n}function jg(e,t,r,H){let n=vx(e,{org:t,enabled:r,reloadToken:H});return Dx(()=>{if(n.length===0)return pr;return{sections:[{title:"Starred Dashboards",items:n.map((o)=>({label:o.title,target:{group:"dashboards",item:"All Dashboards"}}))}]}},[n])}import{useEffect as Gx,useRef as Ex,useState as Dg}from"h:0__";function Cn(e,{org:t,source:r,starred:H,search:n,sort:o,limit:a,enabled:s=!0,reloadToken:i=0}){let[l,c]=Dg(de),[A,u]=Dg(null),d=Ex(l);return d.current=l,Gx(()=>{if(!e||!s)return;let p=new AbortController,{signal:g}=p,m=!1;return c(Se(d.current,Date.now())),(async()=>{try{let O=await fg(e,r,{org:t,starred:H,search:n,sort:o,limit:a,signal:g});if(m)return;c(pe(O.data,Date.now())),u(O.nextCursor)}catch(O){if(m||g.aborted)return;c(me(d.current,qe(O)))}})(),()=>{m=!0,p.abort()}},[e,t,r,H,n,o,a,s,i]),{queries:l,nextCursor:A}}import{useEffect as Ug,useMemo as Yg}from"h:0__";var Kx={"explore.all-queries":{source:"explore",title:"All Queries",description:"Saved Explore queries for this organization.",noun:"saved queries",searchPlaceholder:"Search queries by name\u2026",activityLabel:"Last Viewed",emptyHint:"This organization may not have Explore saved queries enabled."},"explore.discover":{source:"discover",title:"Discover",description:"Legacy saved queries, superseded by All Queries.",noun:"Discover queries",searchPlaceholder:"Search queries by name\u2026",activityLabel:"Last Edited",emptyHint:"This organization may not have Discover enabled."}};function os(e){return Kx[e]}var Rg="explore.saved-query-results";import{useRef as Bx}from"h:0__";import{useEffect as Xx}from"h:0__";function vg({index:e,rowCount:t,rowHeight:r,viewportHeight:H,scrollTop:n}){return PH({rowTop:e*r,rowHeight:r,contentHeight:t*r,viewportHeight:H,scrollTop:n})}function PH({rowTop:e,rowHeight:t,contentHeight:r,viewportHeight:H,scrollTop:n}){let o=Math.max(0,r-H),a=e+t,s=e<n||t>H?e:a>n+H?a-H:n;return Math.min(Math.max(s,0),o)}function Jr(e,{index:t,rowCount:r,rowHeight:H,layout:n=[]}){let o,a,s;if(typeof H==="number")a=H,s=r*H;else{o=0;for(let i=0;i<t&&i<H.length;i++)o+=H[i]??0;a=H[t]??0,s=H.reduce((i,l)=>i+l,0)}Xx(()=>{let i=e.current;if(!i||r===0)return;let l=i.viewport.height;if(l<=0)return;let c=o===void 0?vg({index:t,rowCount:r,rowHeight:a,viewportHeight:l,scrollTop:i.scrollTop}):PH({rowTop:o,rowHeight:a,contentHeight:s,viewportHeight:l,scrollTop:i.scrollTop});if(c!==i.scrollTop)i.scrollTop=c},[e,t,r,o,a,s,...n])}function mr(e,t,{gap:r=1,minFlex:H=8}={}){let n=Math.max(0,Math.floor(t)),o=[...e],a=(p)=>p.reduce((g,m)=>g+(m.width==="flex"?H:m.width),0)+r*Math.max(0,p.length-1);while(o.length>0&&a(o)>n){let p=Wx(o);if(p<0)break;o.splice(p,1)}while(o.length>1&&a(o)>n)o.pop();if(o.length===0)return[];let s=r*(o.length-1),i=o.reduce((p,g)=>p+(g.width==="flex"?0:g.width),0),l=o.filter((p)=>p.width==="flex").length,c=o.map((p)=>p.width==="flex"?0:p.width);if(l>0){let p=Math.max(0,n-s-i),g=Math.floor(p/l),m=p-g*l;o.forEach((O,y)=>{if(O.width!=="flex")return;if(c[y]=g+(m>0?1:0),m>0)m--})}let A=c.reduce((p,g)=>p+g,0)+s;for(let p=c.length-1;p>=0&&A>n;p--){let g=Math.min(c[p]-1,A-n);if(g<=0)continue;c[p]=c[p]-g,A-=g}let u=[],d=0;return o.forEach((p,g)=>{let m=Math.max(0,c[g]);u.push({column:p,width:m,offset:d}),d+=m+r}),u}function Wx(e){let t=-1,r=1/0;return e.forEach((H,n)=>{if(H.priority===void 0)return;if(H.priority<=r)t=n,r=H.priority}),t}import{jsxDEV as fe,Fragment as Kg}from"h:6___________________________";var Fx=2,Ux=20;function Gg(e){return as(e.contentHeight)+(e.renderDetail?1:0)+(e.separator?1:0)}function as(e){if(e===void 0||!Number.isFinite(e))return 1;return Math.max(1,Math.floor(e))}function Je({rows:e,columns:t,width:r,selectedIndex:H,focused:n,rowKey:o,loading:a=!1,error:s,onRowClick:i,renderDetail:l,rowContentHeight:c,skeletonContentHeight:A=1,separator:u=!1,skeletonRows:d=Ux,empty:p,errorTitle:g="Failed to load",gap:m=1,minFlex:O,gutter:y=Fx,layout:L=[]}){let f=_(),h=Bx(null),w=Math.max(1,r-y),S=mr(t,w,{gap:m,minFlex:O}),I=S.map(({column:b})=>b),P=Gg({renderDetail:l,separator:u}),x=e&&c?e.map((b,T)=>as(c(b,T,I))):void 0,q=x?x.map((b)=>Gg({contentHeight:b,renderDetail:l,separator:u})):P;Jr(h,{index:H,rowCount:e?.length??0,rowHeight:q,layout:L});let v=e===void 0&&a,C=e!==void 0&&e.length===0&&!a;return fe(Kg,{children:[fe(Yx,{resolved:S,width:w,gap:m},void 0,!1,void 0,this),fe("scrollbox",{ref:h,focused:n,verticalScrollbarOptions:{showArrows:!1,trackOptions:{backgroundColor:f.panel,foregroundColor:f.muted}},style:{flexGrow:1,flexBasis:0,width:r},children:[v?Array.from({length:d},(b,T)=>fe(Vx,{resolved:S,width:w,gap:m,seed:T,contentHeight:A,detail:Boolean(l),separator:u},T,!1,void 0,this)):null,C&&p?fe(Zx,{...p},void 0,!1,void 0,this):null,e?.map((b,T)=>fe($x,{row:b,index:T,resolved:S,width:w,gap:m,selected:n&&T===H,contentHeight:x?.[T]??1,renderDetail:l,separator:u,onRowClick:i},o(b,T),!1,void 0,this)),s&&e===void 0?fe(zx,{title:g,error:s},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Yx({resolved:e,width:t,gap:r}){let H=_();return fe("box",{style:{flexDirection:"row",width:t,border:["bottom"],borderColor:H.border,flexShrink:0},children:e.map(({column:n,width:o},a)=>fe(ss,{width:o,gap:a>0?r:0,children:fe("text",{fg:H.muted,children:k(n.label,o,n.align??"left")},void 0,!1,void 0,this)},n.key,!1,void 0,this))},void 0,!1,void 0,this)}function ss({width:e,gap:t,children:r}){return fe(Kg,{children:[t>0?fe("text",{children:" ".repeat(t)},void 0,!1,void 0,this):null,fe("box",{style:{width:e,flexShrink:0,flexDirection:"row",overflow:"hidden"},children:r},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function $x({row:e,index:t,resolved:r,width:H,gap:n,selected:o,contentHeight:a,renderDetail:s,separator:i,onRowClick:l}){let c=_();return fe("box",{style:{flexDirection:"column",width:H,backgroundColor:o?c.selected:void 0,flexShrink:0},onMouseDown:l?()=>l(t,e):void 0,children:[fe("box",{style:{flexDirection:"row",height:a,flexShrink:0},children:r.map(({column:A,width:u},d)=>fe(ss,{width:u,gap:d>0?n:0,children:A.render(e,o,u)},A.key,!1,void 0,this))},void 0,!1,void 0,this),s?fe("box",{style:{flexDirection:"row",width:H},children:s(e,o,H)},void 0,!1,void 0,this):null,i?fe("text",{fg:c.border,children:"\u2500".repeat(Math.max(0,H))},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function Vx({resolved:e,width:t,gap:r,seed:H,contentHeight:n,detail:o,separator:a}){let s=_();return fe("box",{style:{flexDirection:"column",width:t,flexShrink:0},children:[Array.from({length:as(n)},(i,l)=>fe("box",{style:{flexDirection:"row"},children:e.map(({column:c,width:A},u)=>fe(ss,{width:A,gap:u>0?r:0,children:fe("text",{fg:s.panelAlt,children:k(Eg(A,H+l+u),A,c.align??"left")},void 0,!1,void 0,this)},c.key,!1,void 0,this))},l,!1,void 0,this)),o?fe("box",{style:{flexDirection:"row",width:t},children:fe("text",{fg:s.panelAlt,children:k(Eg(t,H+7),t)},void 0,!1,void 0,this)},void 0,!1,void 0,this):null,a?fe("text",{fg:s.border,children:"\u2500".repeat(Math.max(0,t))},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function Eg(e,t){if(e<=0)return"";let r=0.4+t*17%45/100;return"\u2500".repeat(Math.max(1,Math.min(e,Math.floor(e*r))))}function Zx({title:e,lines:t=[]}){let r=_();return fe("box",{style:{flexDirection:"column",padding:1},children:[fe("text",{fg:r.text,children:e},void 0,!1,void 0,this),t.filter(Boolean).map((H,n)=>fe("text",{fg:r.muted,children:H},n,!1,void 0,this))]},void 0,!0,void 0,this)}function zx({title:e,error:t}){let r=_();return fe("box",{style:{flexDirection:"column",padding:1},children:[fe("text",{fg:r.danger,children:e},void 0,!1,void 0,this),fe("text",{fg:r.muted,children:t.message},void 0,!1,void 0,this),t.retryable?fe("text",{fg:r.muted,children:"R to retry"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}var cr=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"],Xg=["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u2588"];function Qn(e,t,{floor:r=!1}={}){if(t<=0)return"";if(!e||e.length===0)return"\u254C".repeat(t);let H=e.map(([,i])=>i),n=Wg(H,t),o=Math.max(...n),a=r?cr[0]:" ";if(o===0)return cr[0].repeat(n.length).padStart(t);return n.map((i)=>{if(i===0)return a;let l=Math.ceil(i/o*cr.length)-1;return cr[Math.max(0,Math.min(cr.length-1,l))]}).join("").padStart(t)}function Nn(e,t,r,{floor:H=!1}={}){if(r<=0)return[];if(t<=0)return Array.from({length:r},()=>"");if(!e||e.length===0)return Array.from({length:r},()=>"\u254C".repeat(t));let n=Wg(e.map(([,s])=>s),t),o=Math.max(...n),a=" ".repeat(Math.max(0,t-n.length));return Array.from({length:r},(s,i)=>{let l=i===r-1,c=r-1-i,A=l&&(H||o===0)?cr[0]:" ",u=n.map((d)=>{let p=o===0?0:d/o*r,g=Math.min(1,p-c);if(g<=0)return A;let m=Math.ceil(g*cr.length)-1;return cr[Math.max(0,Math.min(cr.length-1,m))]}).join("");return a+u})}function is(e,t){if(t<=0)return"";let r=Number.isFinite(e)?Math.max(0,Math.min(1,e)):0,H=Math.round(r*t*8);if(H===0)return(r>0?Xg[0]:" ").padEnd(t);let n=Math.min(t,Math.floor(H/8)),o=H%8,a=o>0&&n<t?Xg[o-1]:"";return("\u2588".repeat(n)+a).padEnd(t)}function eH(e,t){if(e.length===0||e.length>=t)return[...e];return Array.from({length:t},(r,H)=>e[Math.min(e.length-1,Math.floor(H*e.length/t))])}function Wg(e,t){if(e.length<=t)return e;let r=e.length/t,H=[];for(let n=0;n<t;n++){let o=Math.floor(n*r),a=Math.min(e.length,Math.floor((n+1)*r)),s=0;for(let i=o;i<a;i++)s+=e[i];H.push(a>o?s/(a-o):0)}return H}function we(e){if(e===void 0)return"\xB7\xB7";let t=typeof e==="string"?Number(e):e;if(!Number.isFinite(t))return"0";let r=t<0?"-":"",H=Math.abs(t),n=[{divisor:1,suffix:""},{divisor:1000,suffix:"k"},{divisor:1e6,suffix:"m"},{divisor:1e9,suffix:"b"},{divisor:1000000000000,suffix:"t"}],o=0;while(o+1<n.length&&H>=n[o+1].divisor)o++;while(o+1<n.length){let l=H/n[o].divisor,c=o===0?2:l<10?1:0;if(Number(l.toFixed(c))<1000)break;o++}let a=n[o],s=H/a.divisor,i=o===0?2:s<10?1:0;return`${r}${Number(s.toFixed(i))}${a.suffix}`}function tH(e,t){let r=typeof e==="string"?Number(e):e;return`${we(e)} ${r===1?t:`${t}s`}`}function ke(e,t=Date.now()){if(!e)return"";let r=Date.parse(e);if(Number.isNaN(r))return"";let H=Math.max(0,Math.floor((t-r)/1000));if(H<60)return`${H}s`;let n=Math.floor(H/60);if(n<60)return`${n}m`;let o=Math.floor(n/60);if(o<24)return`${o}h`;let a=Math.floor(o/24);if(a<7)return`${a}d`;let s=Math.floor(a/7);if(s<52)return`${s}w`;return`${Math.floor(a/365)}y`}import{jsxDEV as Yt}from"h:6___________________________";function Jx(e,t,r=!1){let H=r?"+":"",n=e===1&&!r?t:`${t}s`;return`${we(e)}${H} ${n}`}function Me({count:e,noun:t,hasMore:r=!1,pagination:H}){let n=_(),o=H?.hasPrevious&&!H.loading,a=H?.hasNext&&!H.loading;return Yt("box",{style:{flexDirection:"row",flexShrink:0,height:1,paddingLeft:1,paddingRight:1},children:[Yt("text",{fg:n.subText,children:e===void 0?"":Jx(e,t,r)},void 0,!1,void 0,this),Yt("box",{style:{flexGrow:1}},void 0,!1,void 0,this),H?Yt("box",{style:{flexDirection:"row",flexShrink:0},children:[H.hasPrevious?Yt("box",{style:{flexDirection:"row"},onMouseDown:o?H.onPrevious:void 0,children:[Yt(wt,{command:"sentry.nav.pageUp"},void 0,!1,void 0,this),Yt("text",{fg:o?n.muted:n.subText,children:" \u2039 "},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,Yt("text",{fg:n.subText,children:H.page},void 0,!1,void 0,this),H.hasNext?Yt("box",{style:{flexDirection:"row"},onMouseDown:a?H.onNext:void 0,children:[Yt("text",{fg:a?n.muted:n.subText,children:" \u203A "},void 0,!1,void 0,this),Yt(wt,{command:"sentry.nav.pageDown"},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}import{useCallback as eP,useRef as tP}from"h:0__";import{RenderableEvents as jn}from"h:3__________";import{jsxDEV as cs}from"h:6___________________________";function St({value:e,placeholder:t,focused:r,width:H,onInput:n,onFocus:o,onBlur:a}){let s=_(),i=tP(null),l=eP((c)=>{let A=i.current;if(A)A.removeAllListeners(jn.FOCUSED),A.removeAllListeners(jn.BLURRED);if(i.current=c,c)c.on(jn.FOCUSED,()=>o()),c.on(jn.BLURRED,()=>a())},[o,a]);return cs("box",{style:{flexDirection:"row",width:H,flexShrink:0,height:he,border:!0,borderStyle:"rounded",borderColor:r?s.accent:s.border,backgroundColor:s.panel,paddingLeft:1,paddingRight:1},children:[cs(Nt,{},void 0,!1,void 0,this),cs("input",{ref:l,value:e,placeholder:t,focused:r,onInput:n,style:{flexGrow:1,textColor:s.text,backgroundColor:s.panel,focusedTextColor:s.text,focusedBackgroundColor:s.panel,placeholderColor:s.subText}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useEffect as rP,useRef as HP,useState as Bg}from"h:0__";function Fg(e,{org:t,dataset:r,fields:H,sort:n,query:o,statsPeriod:a,project:s,environment:i,referrer:l,reloadToken:c=0}){let[A,u]=Bg(de),[d,p]=Bg(null),g=HP(A);return g.current=A,rP(()=>{if(!e||H.length===0)return;let m=new AbortController,{signal:O}=m,y=!1;return u(Se(g.current,Date.now())),(async()=>{try{let L=await It(e,{org:t,dataset:r,fields:H,sort:n,query:o,statsPeriod:a,project:s,environment:i,referrer:l,signal:O});if(y)return;u(pe(L.rows,Date.now())),p(L.nextCursor)}catch(L){if(y||O.aborted)return;u(me(g.current,qe(L)))}})(),()=>{y=!0,m.abort()}},[e,t,r,H,n,o,a,s,i,l,c]),{rows:A,nextCursor:d}}import{jsxDEV as rr}from"h:6___________________________";function Dn(e){let t=e.projects.filter((r)=>r!==-1).map(String);return{id:`saved-query:${e.source}:${e.id}`,label:e.name,stateKey:Rg,initialState:{query:e.query,sort:e.sort,statsPeriod:e.statsPeriod,selectedProjects:t,selectedEnvs:e.environment},render:(r)=>r.state?rr(nP,{...r,state:r.state,query:e},void 0,!1,void 0,this):null}}function nP({client:e,org:t,state:r,focused:H,width:n,height:o,reloadToken:a,query:s}){let i=_(),{dispatch:l,focusSearch:c,handleSearchBlur:A}=r,u=r.selectedProjects.length>0?r.selectedProjects:void 0,d=r.selectedEnvs.length>0?r.selectedEnvs:void 0,p=Yg(()=>fn(s.fields),[s.fields]),g=p.some((S)=>S.value===r.sort)?r.sort:s.sort??p[0]?.value,{rows:m,nextCursor:O}=Fg(e,{org:t,dataset:s.dataset,fields:s.fields,sort:g,query:r.committedQuery,statsPeriod:r.statsPeriod,project:u,environment:d,referrer:"sentry-tui.saved-query",reloadToken:a}),y=W(m),L=oe(m),f=m.state==="loading",h=Ye(m);Ug(()=>{if(y)l({type:"setEntries",payload:y})},[y,l]),Ug(()=>{l({type:"setStatus",payload:{loading:f,since:h,error:L?.message,noun:"results"}})},[f,h,L,m,l]);let w=Yg(()=>lP(s.fields,i),[s.fields,i]);return rr("box",{style:{flexDirection:"column",width:n,height:o},children:[rr(St,{value:r.searchQuery,placeholder:"Refine this query\u2026",focused:r.searchFocused,width:n,onInput:(S)=>l({type:"setSearchQuery",payload:S}),onFocus:c,onBlur:A},void 0,!1,void 0,this),rr("box",{style:{flexDirection:"row",width:n,flexShrink:0,height:1,paddingLeft:1},children:[rr("text",{fg:i.accent,attributes:G,children:D(s.name,Math.max(8,n-24))},void 0,!1,void 0,this),rr("text",{fg:i.muted,children:` ${s.datasetLabel}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this),rr(Be,{client:e,org:t,openDropdown:r.openDropdown,selectedProjects:r.selectedProjects,selectedEnvs:r.selectedEnvs,statsPeriod:r.statsPeriod,sort:g?{value:g,items:p,onChange:(S)=>l({type:"setSort",payload:S})}:void 0,width:n,anchorTop:he+1,onProjectChange:(S)=>l({type:"setSelectedProjects",payload:S}),onEnvChange:(S)=>l({type:"setSelectedEnvs",payload:S}),onPeriodChange:(S)=>l({type:"setStatsPeriod",payload:S}),onDropdownClose:()=>l({type:"setOpenDropdown",payload:null}),onDropdownOpen:(S)=>l({type:"setOpenDropdown",payload:S})},void 0,!1,void 0,this),rr(Je,{rows:y,columns:w,width:n,selectedIndex:r.selected,focused:H,rowKey:(S,I)=>String(I),loading:_e(m),error:L,errorTitle:"Failed to run the query",minFlex:cP,empty:{title:"This query returned nothing.",lines:[r.committedQuery||void 0,"Try widening the time range or adjusting the query.",`This organization may not have ${s.datasetLabel} enabled.`]},layout:[o]},void 0,!1,void 0,this),rr(Me,{count:y?.length,noun:"result",hasMore:O!==null},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var oP=[{test:/timestamp|^time$/,width:19},{test:/^project(\.\w+)?$/,width:14},{test:/^(id|trace|replay_id|profile\.id)$|_id$/,width:12},{test:/\(.*\)/,width:12,align:"right"},{test:/duration|latency|size|count/,width:10,align:"right"},{test:/^(release|environment|platform|user|browser|os)(\.\w+)?$/,width:16}],aP=/^(message|description|name|transaction|title|url|culprit)$|\.(description|name)$/,sP=18,iP=20,cP=24;function lP(e,t){let r=e.map((n)=>{let o=oP.find((a)=>a.test.test(n));return{field:n,width:Math.max(o?.width??sP,Math.min(Ae(n),iP)),align:o?.align,wide:aP.test(n),unknown:o===void 0}}),H=AP(r.findIndex((n)=>n.wide),r.findIndex((n)=>n.unknown),r.length-1);return r.map((n,o)=>({key:n.field,label:n.field,width:o===H?"flex":n.width,align:n.align,priority:o===H?void 0:r.length-o,render:(a,s,i)=>rr("text",{fg:o===0?t.text:t.muted,children:k(D(uP(a[n.field]),i),i,n.align??"left")},void 0,!1,void 0,this)}))}function AP(...e){return e.find((t)=>t>=0)??0}function uP(e){if(e===void 0||e===null||e==="")return"\u2014";if(typeof e==="number")return Number.isInteger(e)?String(e):e.toFixed(2);if(typeof e==="object")return JSON.stringify(e);return String(e)}function $g(e,t,r,H){let n=pP(e,t,r==="explore",H),o=jg(e,t,r==="dashboards",H);switch(r){case"explore":return{sections:n};case"dashboards":return o;default:return pr}}function pP(e,t,r,H){let{queries:n}=Cn(e,{org:t,source:"explore",starred:!0,limit:ts,enabled:r,reloadToken:H}),o=W(n);return dP(()=>mP(o),[o])}function mP(e){if(!e||e.length===0)return[];return[{title:"Starred Queries",items:e.slice(0,ts).map((t)=>({label:t.name,target:{group:"explore",item:"All Queries"},open:()=>Dn(t)}))}]}function Vg(e,t,r){return{railGroup:e,activeGroup:e,activeItem:t,navExpanded:!1,showSecondary:!1,secondaryItem:t,gotoMode:!1,viewStack:r?[r]:[]}}function Zg(e,t){switch(t.type){case"navigate":return{...e,railGroup:t.group,activeGroup:t.group,activeItem:t.item,navExpanded:!1,showSecondary:!1,secondaryItem:t.item,gotoMode:!1,viewStack:[]};case"openGroup":return{...e,railGroup:t.group,showSecondary:!0,secondaryItem:t.item,gotoMode:!1};case"expandNav":return e.navExpanded?e:{...e,navExpanded:!0};case"openGoto":return{...e,navExpanded:!0,gotoMode:!0};case"closeGoto":return e.gotoMode?{...e,gotoMode:!1}:e;case"previewGroup":return{...e,railGroup:t.group,secondaryItem:t.item};case"selectRailGroup":return e.railGroup===t.group?e:{...e,railGroup:t.group};case"closeSecondary":return e.showSecondary?{...e,showSecondary:!1}:e;case"selectSecondaryItem":return e.secondaryItem===t.item?e:{...e,secondaryItem:t.item};case"pushView":return{...e,viewStack:[...e.viewStack,t.view]};case"popView":return e.viewStack.length===0?e:{...e,viewStack:e.viewStack.slice(0,-1)};case"clearViews":return e.viewStack.length===0?e:{...e,viewStack:[]};case"updateView":{let r=e.viewStack.findIndex((H)=>H.id===t.id);if(r===-1)return e;return{...e,viewStack:e.viewStack.map((H,n)=>n===r?{...H,...t.update}:H)}}case"replaceIssue":{let r=e.viewStack.map((H)=>H.issue?.id===t.issue.id?{...H,issue:t.issue}:H);return r.some((H,n)=>H!==e.viewStack[n])?{...e,viewStack:r}:e}}}import{useCallback as ZP,useEffect as gs,useRef as zP}from"h:0__";var gP=50;async function eO(e,{org:t,query:r="",statsPeriod:H,project:n,environment:o,cursor:a,limit:s=gP,signal:i}){let l=await e.request(`/organizations/${t}/ai-conversations/`,{query:{query:r||void 0,statsPeriod:H,project:Ee(n),environment:o,cursor:a,per_page:s,referrer:"sentry-tui.explore-conversations"},signal:i});return{data:(Array.isArray(l.data)?l.data:[]).map(OP).sort((A,u)=>Date.parse(u.endedAt)-Date.parse(A.endedAt)),nextCursor:l.nextCursor}}function OP(e,t){let r=e.startTimestamp??0,H=e.endTimestamp??r;return{id:e.conversationId??String(t),title:Mr(e.title),firstInput:zg(e.firstInput),lastOutput:zg(e.lastOutput),generationDurationMs:e.generationDuration??0,durationMs:Math.max(0,H-r),endedAt:H>0?new Date(H).toISOString():"",llmCalls:e.llmCalls??0,toolCalls:e.toolCalls??0,toolErrors:e.toolErrors??0,toolNames:Array.isArray(e.toolNames)?e.toolNames.filter(Jg):[],errors:e.errors??0,totalTokens:e.totalTokens??0,inputTokens:e.inputTokens??0,outputTokens:e.outputTokens??0,totalCost:typeof e.totalCost==="number"?e.totalCost:void 0,traceCount:e.traceCount??0,traceIds:Array.isArray(e.traceIds)?e.traceIds.filter(Jg):[],projectId:e.projectId==null?void 0:String(e.projectId),user:yP(e.user)}}function zg(e){if(typeof e==="string")return Mr(e);if(!Array.isArray(e))return;return Mr(e.find((t)=>t?.type==="text")?.text??e[0]?.text)}function Mr(e){let t=e?.trim();if(!t||t.toLowerCase()==="none")return;return t}function yP(e){if(!e)return;let t={id:Mr(e.id),email:Mr(e.email),username:Mr(e.username),ipAddress:Mr(e.ip_address)};return Object.values(t).some(Boolean)?t:void 0}function Jg(e){return typeof e==="string"&&e.trim().length>0}function ls(e){let t=e.title??e.firstInput;return t?t.replace(/\s+/g," ").trim()||void 0:void 0}var fP=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;function tO(e){return fP.test(e)?e.slice(0,8):e}function rO(e){if(!e)return;return e.email??e.username??e.ipAddress??void 0}var HO="has:gen_ai.conversation.id",qH={yAxis:"count_unique(gen_ai.conversation.id)",noun:"conversations"},nO="conversations";function oO(e){return[e||void 0,"Try widening the time range or adjusting the query.","This organization may not have gen-ai-conversations enabled."]}import{jsxDEV as $t}from"h:6___________________________";var SP=[" ","\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"],MH=10,_P=8,kP=5;function Rn(e,t=0){return e>=MH+_P+t+kP}var rH=7,hP=1,LP=1;function IP(e,t){if(e.length<=t)return e;let r=e.length/t,H=[];for(let n=0;n<t;n++){let o=Math.floor(n*r),a=Math.min(e.length,Math.floor((n+1)*r)),s=0,i=!1;for(let l=o;l<a;l++)s+=e[l].value,i||=e[l].incomplete;H.push({value:s,incomplete:i})}return H}function bP(e){return{top:k(we(e),rH-1,"right")+" ",mid:k(we(Math.round(e/2)),rH-1,"right")+" ",zero:k("0",rH-1,"right")+" "}}function wP(e){let t=new Date(e*1000),r=String(t.getHours()).padStart(2,"0"),H=String(t.getMinutes()).padStart(2,"0");return`${r}:${H}`}function TP(e,t,r){if(e.length===0||r<10)return"";let n=Math.max(2,Math.floor(r/(6+2))),o=Math.max(1,Math.floor(e.length/n)),a=Array.from({length:r},()=>" ");for(let s=0;s<e.length;s+=o){let i=e[s],l=wP(i[0]),c=Math.round(s/Math.max(1,e.length-1)*(r-l.length)),A=Math.max(0,Math.min(r-l.length,c));for(let u=0;u<l.length;u++)a[A+u]=l[u]}return a.join("")}function vn({buckets:e,width:t,height:r,title:H,noun:n}){let o=_();if(t<20||r<4)return null;let a=t-rH-3,s=Math.max(1,r-hP-LP-2),i=e.map(([,y])=>y[0]?.count??0),l=e.map(([,y,L])=>({value:y[0]?.count??0,incomplete:L?.incomplete===!0})),c=eH(IP(l,a),a),A=Math.max(1,...c.map(({value:y})=>y)),u=i.reduce((y,L)=>y+L,0),d=bP(A),p=[];for(let y=s-1;y>=0;y--){let L="";for(let f=0;f<c.length;f++){let{value:h,incomplete:w}=c[f],S=A===0?0:Math.round(h/A*s*8),I=Math.floor(S/8),P=S%8,x=y<I?"\u2588":y===I&&P>0?SP[P]:" ";L+=w&&x!==" "?"\u2591":x}p.push(L)}let g=TP(e,c.length,a),m=t-2-1,O=n===void 0?"":`${we(u)} ${n}`;return $t("box",{style:{flexDirection:"column",width:t,height:r,flexShrink:0,border:["top","bottom","left","right"],borderColor:o.border,backgroundColor:o.panel,paddingLeft:1},children:[$t("box",{style:{flexDirection:"row",width:m,flexShrink:0},children:[$t("text",{fg:o.text,children:D(H,Math.max(0,m-O.length-1))},void 0,!1,void 0,this),$t("box",{style:{flexGrow:1}},void 0,!1,void 0,this),$t("text",{fg:o.muted,attributes:Ze,children:O},void 0,!1,void 0,this)]},void 0,!0,void 0,this),p.map((y,L)=>{let f;if(L===0)f=d.top;else if(L===Math.floor(p.length/2))f=d.mid;else if(L===p.length-1)f=d.zero;else f=" ".repeat(rH);return $t("box",{style:{flexDirection:"row",flexShrink:0},children:[$t("text",{fg:o.muted,attributes:Ze,children:f},void 0,!1,void 0,this),$t("text",{fg:o.accent,children:y},void 0,!1,void 0,this)]},L,!0,void 0,this)}),$t("box",{style:{flexDirection:"row",flexShrink:0},children:[$t("text",{fg:o.muted,children:" ".repeat(rH)},void 0,!1,void 0,this),$t("text",{fg:o.muted,attributes:Ze,children:g},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as iO}from"h:0__";var xP=50;async function aO(e,{idField:t="id",limit:r=xP,...H}){let n=await It(e,{...H,limit:r});return{data:n.rows.map((o,a)=>PP(o,a,t)),nextCursor:n.nextCursor}}function PP(e,t,r){return{id:je(e,r)??String(t),row:e}}async function Gn(e,t){return Nc(e,t)}import{useCallback as As,useEffect as sO,useRef as Cr,useState as En}from"h:0__";function _t(e,t=0){let[r,H]=En(de),[n,o]=En(null),[a,s]=En(void 0),[i,l]=En(1),c=Cr(r);c.current=r;let A=Cr(void 0),u=Cr(1),d=Cr([void 0]),p=Cr(null),g=Cr(0),m=As((f,h)=>{p.current?.abort();let w=new AbortController;p.current=w;let S=++g.current,I;try{I=e(f,w.signal)}catch(x){return H((q)=>me(q,qe(x))),!1}if(I===null)return H(de),!1;let P=Se(c.current,Date.now());return c.current=P,H(P),I.then((x)=>{if(w.signal.aborted||S!==g.current)return;A.current=f,u.current=h,d.current[h-1]=f,d.current.length=h,s(f),l(h),o(x.nextCursor),H(pe(x,Date.now()))}).catch((x)=>{if(w.signal.aborted||S!==g.current)return;H((q)=>me(q,qe(x)))}),!0},[e]),O=Cr(null),y=As(()=>{if(n===null||c.current.state==="loading")return!1;return m(n,u.current+1)},[n,m]),L=As(()=>{if(u.current<=1||c.current.state==="loading")return!1;return m(d.current[u.current-2],u.current-1)},[m]);return sO(()=>{let f=O.current!==m;if(O.current=m,f)A.current=void 0,u.current=1,d.current=[void 0],s(void 0),l(1),o(null);m(A.current,u.current)},[m,t]),sO(()=>()=>{g.current++,p.current?.abort()},[]),{status:r,nextCursor:n,cursor:a,page:i,nextPage:y,previousPage:L}}function cO(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,reloadToken:a=0}){let s=iO((A,u)=>e?eO(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,cursor:A,signal:u}):null,[e,t,r,H,n,o]),i=iO((A)=>e?Gn(e,{org:t,statsPeriod:H,project:n,environment:o,signal:A,dataset:"spans",yAxis:qH.yAxis,query:[HO,r.trim()].filter(Boolean).join(" "),referrer:"sentry-tui.explore-conversations-chart"}):null,[e,t,r,H,n,o]),l=_t(s,a),c=Dt(i,{reloadKey:a}).status;return{conversations:it(l.status,(A)=>A.data),timeseries:c,nextCursor:l.nextCursor,page:l.page,nextPage:l.nextPage,previousPage:l.previousPage}}import{useEffect as qP}from"h:0__";function De(e,t){qP(()=>(e(t),()=>e(null)))}var lO=[{name:"count",argument:"count"},{name:"avg",argument:"number"},{name:"p50",argument:"number"},{name:"p75",argument:"number"},{name:"p90",argument:"number"},{name:"p95",argument:"number"},{name:"p99",argument:"number"},{name:"p100",argument:"number"},{name:"sum",argument:"number"},{name:"min",argument:"number"},{name:"max",argument:"number"},{name:"count_unique",argument:"any"},{name:"epm",argument:"none"},{name:"eps",argument:"none"},{name:"failure_rate",argument:"none"},{name:"failure_count",argument:"none"},{name:"performance_score",argument:"score"},{name:"opportunity_score",argument:"score"}],MP=new Map(lO.map((e)=>[e.name,e]));function lr(e){return MP.get(e)?.argument??"number"}function AO(e,t=[]){let r=e.builder;if(!r)return[];let H=new Set(r.aggregates);return lO.filter((n)=>H.has(n.name)&&(n.argument!=="number"||r.numberField||t.length>0))}var uO=new Set(["id","sentry.item_id","timestamp"]);function Kn(e){let t=/^([a-zA-Z0-9_]+)\((.*)\)$/.exec(e.trim());if(!t)return{aggregate:e.trim(),argument:""};return{aggregate:t[1],argument:t[2].trim()}}function CH(e){return`${e.aggregate}(${lr(e.aggregate)==="none"?"":e.argument})`}function dO(e){let{aggregate:t,argument:r}=Kn(e.yAxis);return{aggregate:t,argument:r,groupBys:[],sampleSort:null,aggregateSort:null}}function Xn(e){return e.groupBys.length>0?"aggregate":"samples"}function pO(e,t,r,H=[]){let n=CP(t,e,r,H);if(n===void 0)return e;return gO(e,{...e,aggregate:t,argument:n})}function mO(e,t){return gO(e,{...e,argument:t})}function gO(e,t){let r=t.aggregateSort;if(!r||r.field!==CH(e))return t;return{...t,aggregateSort:{...r,field:CH(t)}}}function CP(e,t,r,H){let n=lr(e),o=lr(t.aggregate);if(n==="none")return"";if(n==="count")return Kn(r.yAxis).argument;if(n==="any")return r.builder?.uniqueField;if(n==="score")return t.argument.startsWith("measurements.score.")?t.argument:"measurements.score.total";if(o==="none"||o==="any"||t.argument==="")return H[0]??r.builder?.numberField;if(o==="count")return H[0]??r.builder?.numberField;return t.argument}function OO(e,t,r){let H={...e,groupBys:t.filter(Boolean)},n=H.aggregateSort;if(n&&!ds(H,r).includes(n.field))return{...H,aggregateSort:null};return H}function QH(e,t){return Xn(e)==="aggregate"?{...e,aggregateSort:t}:{...e,sampleSort:t}}function Wn(e,t){let r=Bn(e,t);return QH(e,{field:r.field,direction:r.direction==="desc"?"asc":"desc"})}function Bn(e,t){if(Xn(e)==="aggregate")return e.aggregateSort??{field:CH(e),direction:"desc"};return e.sampleSort??us(t.sort)}function us(e){return e.startsWith("-")?{field:e.slice(1),direction:"desc"}:{field:e,direction:"asc"}}function QP(e){return e.direction==="desc"?`-${e.field}`:e.field}function ds(e,t){if(Xn(e)==="samples")return[...t.fields];return fO([CH(e),...e.groupBys])}function yO(e,t){let r=CH(t),H=Xn(t),n=QP(Bn(t,e));if(H==="samples")return{mode:H,fields:e.fields,sort:n,yAxis:r,groupBys:[],idField:e.idField};return{mode:H,fields:fO([...t.groupBys,r]),sort:n,yAxis:r,groupBys:t.groupBys,idField:t.groupBys[0]??""}}function fO(e){return[...new Set(e.filter(Boolean))]}function SO(e,t){let r=lr(e.aggregate);return r==="none"||r==="count"?t.noun:e.argument||"\u2014"}function _O(e){if(e.groupBys.length===0)return"\u2014";if(e.groupBys.length===1)return e.groupBys[0];return`${e.groupBys.length} groups`}function kO(e){return e==="count"||e==="failure_count"}function hO(e){return e.startsWith("measurements.score.")}function NH(e){if(!e)return"--:--:--";return e.match(/T(\d{2}:\d{2}:\d{2})/)?.[1]??(e.slice(11,19)||"--:--:--")}function Qr(e){if(!Number.isFinite(e)||e<0)return"";if(e<60)return`${Math.round(e)}s`;let t=Math.floor(e/60);if(t<60)return`${t}m`;let r=Math.floor(t/60);if(r<24)return`${r}h`;return`${Math.floor(r/24)}d`}var LO="------ --:--";function jH(e){if(!e)return LO;let t=e.match(/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2})/);return t?`${t[1]} ${t[2]}`:LO}function IO(e,t,r=Date.now()){let H=Date.parse(e);if(Number.isNaN(H))return"";let n=t?Date.parse(t):r;if(Number.isNaN(n))return"";return Qr(Math.max(0,(n-H)/1000))}import{jsxDEV as ge,Fragment as Fn}from"h:6___________________________";var bO=24;function wO(e,t){switch(e){case"explore.traces":return DP(t);case"explore.logs":return jP(t.theme);case"explore.metrics":return UP(t.theme);case"explore.errors":return VP(t.theme);default:return[]}}var NP={trace:"TRACE",debug:"DEBUG",info:" INFO",warn:" WARN",error:"ERROR",fatal:"FATAL"};function jP(e){let t={trace:e.subText,debug:e.muted,info:e.accent,warn:e.warning,error:e.danger,fatal:e.level.fatal};return[{key:"timestamp",label:"Time",width:10,render:(r,H,n)=>ge("text",{fg:e.muted,children:k(NH(je(r.row,"timestamp")),n)},void 0,!1,void 0,this)},{key:"sentry.severity",label:"Level",width:6,priority:2,render:(r,H,n)=>{let o=ps(r);return ge("text",{fg:t[o],attributes:o==="error"||o==="fatal"?G:0,children:k(NP[o],n)},void 0,!1,void 0,this)}},{key:"project",label:"Project",width:14,priority:1,render:(r,H,n)=>ge("text",{fg:e.subText,children:k(et(r,"project"),n)},void 0,!1,void 0,this)},{key:"message",label:"Message",width:"flex",render:(r,H,n)=>ge("text",{fg:e.text,children:k(et(r,"message"),n)},void 0,!1,void 0,this)}]}function ps(e){let t=et(e,"sentry.severity").toLowerCase();return t==="trace"||t==="debug"||t==="warn"||t==="error"||t==="fatal"?t:"info"}function DP(e){let{theme:t}=e;return[{key:"id",label:"Span ID",width:8,priority:3,render:(r,H,n)=>ge("text",{fg:t.muted,children:k(xO(r.id),n)},void 0,!1,void 0,this)},{key:"span.name",label:"Name",width:16,priority:2,render:(r,H,n)=>ge("text",{fg:t.subText,children:k(et(r,"span.name"),n)},void 0,!1,void 0,this)},{key:"span.description",label:"Description",width:"flex",render:(r,H,n)=>ge("text",{fg:t.text,children:k(et(r,"span.description"),n)},void 0,!1,void 0,this)},{key:"span.duration",label:"Duration",width:15,render:(r,H,n)=>ge(vP,{durationMs:yt(r.row,"span.duration"),maxMs:e.maxDurationMs,theme:t,width:n},void 0,!1,void 0,this)},{key:"transaction",label:"Transaction",width:18,priority:1,render:(r,H,n)=>ge("text",{fg:t.subText,children:k(et(r,"transaction"),n)},void 0,!1,void 0,this)},{key:"timestamp",label:"Time",width:8,priority:4,render:(r,H,n)=>ge("text",{fg:t.muted,children:k(NH(je(r.row,"timestamp")),n)},void 0,!1,void 0,this)}]}var RP=7;function vP({durationMs:e,maxMs:t,theme:r,width:H}){let n=Math.min(RP,H),o=Math.max(0,H-n-1);if(e===void 0)return ge("text",{fg:r.subText,children:k("\u2014",H,"right")},void 0,!1,void 0,this);let a=t>0?e/t:0;return ge(Fn,{children:[o>0?ge(Fn,{children:[ge("text",{fg:r.accent,children:is(a,o)},void 0,!1,void 0,this),ge("text",{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,ge("text",{fg:r.text,children:k(DH(e),n,"right")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function DH(e){if(!Number.isFinite(e)||e<0)return"\u2014";if(e<1)return`${Math.round(e*1000)}\xB5s`;if(e<10)return`${e.toFixed(2)}ms`;if(e<1000)return`${Math.round(e)}ms`;let t=e/1000;if(t<60)return`${t.toFixed(t<10?2:1)}s`;let r=t/60;if(r<60)return`${r.toFixed(1)}m`;return`${(r/60).toFixed(1)}h`}var GP=20,EP=8;function TO(e,t,r,H){let{aggregate:n,argument:o}=Kn(t);return[...e.map((a,s)=>({key:a,label:a,width:"flex",priority:s===0?void 0:e.length-s,render:(i,l,c)=>ge("text",{fg:s===0?H.text:H.subText,children:k(et(i,a)||"(none)",c)},void 0,!1,void 0,this)})),{key:t,label:t,width:GP,align:"right",render:(a,s,i)=>ge(KP,{value:yt(a.row,t),maxValue:r,text:BP(n,o,yt(a.row,t)),theme:H,width:i},void 0,!1,void 0,this)}]}function KP({value:e,maxValue:t,text:r,theme:H,width:n}){let o=Math.min(EP,n),a=Math.max(0,n-o-1);if(e===void 0)return ge("text",{fg:H.subText,children:k("\u2014",n,"right")},void 0,!1,void 0,this);let s=t>0?e/t:0;return ge(Fn,{children:[a>0?ge(Fn,{children:[ge("text",{fg:H.accent,children:is(s,a)},void 0,!1,void 0,this),ge("text",{children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,ge("text",{fg:H.text,children:k(r,o,"right")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var XP=new Set(["count","count_unique","failure_count"]),WP=new Set(["failure_rate","performance_score","opportunity_score"]);function BP(e,t,r){if(r===void 0)return"\u2014";if(XP.has(e))return we(r);if(WP.has(e))return`${(r*100).toFixed(1)}%`;if(FP(t))return DH(r);return Math.abs(r)>=1000?we(r):String(Number(r.toFixed(2)))}function FP(e){return e==="span.duration"||e==="span.self_time"||e.endsWith(".duration")||e.endsWith("_time")}function UP(e){return[{key:"metric.name",label:"Metric",width:"flex",render:(t,r,H)=>ge("text",{fg:e.text,children:k(et(t,"metric.name"),H)},void 0,!1,void 0,this)},{key:"metric.type",label:"Type",width:12,priority:2,render:(t,r,H)=>ge("text",{fg:e.subText,children:k(et(t,"metric.type"),H)},void 0,!1,void 0,this)},{key:"value",label:"Value",width:14,align:"right",render:(t,r,H)=>ge("text",{fg:e.accent,children:k($P(yt(t.row,"value"),je(t.row,"metric.unit")),H,"right")},void 0,!1,void 0,this)},{key:"project",label:"Project",width:14,priority:1,render:(t,r,H)=>ge("text",{fg:e.subText,children:k(et(t,"project"),H)},void 0,!1,void 0,this)},{key:"timestamp",label:"Time",width:8,priority:3,render:(t,r,H)=>ge("text",{fg:e.muted,children:k(NH(je(t.row,"timestamp")),H)},void 0,!1,void 0,this)}]}var YP={nanosecond:"ns",microsecond:"\xB5s",millisecond:"ms",second:"s",minute:"min",hour:"h",day:"d",week:"wk",bit:"b",byte:"B",kilobyte:"kB",kibibyte:"KiB",megabyte:"MB",mebibyte:"MiB",gigabyte:"GB",gibibyte:"GiB",terabyte:"TB",tebibyte:"TiB",percent:"%",ratio:""};function $P(e,t){if(e===void 0)return"\u2014";let r=Math.abs(e)<1000?String(Number(e.toFixed(2))):we(e);if(!t||t==="none")return r;let H=YP[t]??t;if(!H)return r;return H.length<=3?`${r}${H}`:`${r} ${H}`}function VP(e){let t={fatal:e.level.fatal,error:e.level.error,warning:e.level.warning,info:e.level.info,sample:e.level.sample};return[{key:"id",label:"Event ID",width:8,priority:3,render:(r,H,n)=>ge("text",{fg:e.muted,children:k(xO(r.id),n)},void 0,!1,void 0,this)},{key:"timestamp",label:"Time",width:8,render:(r,H,n)=>ge("text",{fg:e.muted,children:k(NH(je(r.row,"timestamp")),n)},void 0,!1,void 0,this)},{key:"level",label:"Level",width:7,priority:4,render:(r,H,n)=>{let o=et(r,"level").toLowerCase(),a=t[o]??e.level.unknown;return ge("text",{fg:a,attributes:o==="error"||o==="fatal"?G:0,children:k(o?o.toUpperCase():"",n)},void 0,!1,void 0,this)}},{key:"title",label:"Title",width:"flex",render:(r,H,n)=>ge("text",{fg:e.text,children:k(et(r,"title"),n)},void 0,!1,void 0,this)},{key:"project",label:"Project",width:14,priority:2,render:(r,H,n)=>ge("text",{fg:e.subText,children:k(et(r,"project"),n)},void 0,!1,void 0,this)},{key:"user.display",label:"User",width:18,priority:1,render:(r,H,n)=>ge("text",{fg:e.subText,children:k(et(r,"user.display"),n)},void 0,!1,void 0,this)}]}function ms(e){if(e===void 0)return"\u2014";if(e===0)return"$0";return e<1?`$${e.toFixed(4)}`:`$${e.toFixed(2)}`}function et(e,t){return je(e.row,t)??""}function xO(e,t=8){return e.slice(0,t)}import{jsxDEV as Fe}from"h:6___________________________";var JP=28,qO="Untitled conversation";function e5(e){return[{key:"conversation",label:"Conversation",width:"flex",render:(t,r,H)=>{let n=ls(t);return Fe("text",{fg:n?e.text:e.subText,children:k(n??qO,H)},void 0,!1,void 0,this)}},{key:"duration",label:"Duration",width:9,align:"right",priority:2,render:(t,r,H)=>Fe("text",{fg:e.text,children:k(DH(t.generationDurationMs),H,"right")},void 0,!1,void 0,this)},{key:"messages",label:"Msgs",width:5,align:"right",priority:5,render:(t,r,H)=>Fe("text",{fg:e.text,children:k(we(t.llmCalls),H,"right")},void 0,!1,void 0,this)},{key:"errors",label:"Errs",width:5,align:"right",priority:3,render:(t,r,H)=>{let n=t.errors;return Fe("text",{fg:n>0?e.danger:e.subText,attributes:n>0?G:0,children:k(n>0?we(n):"\xB7",H,"right")},void 0,!1,void 0,this)}},{key:"cost",label:"Cost",width:9,align:"right",priority:6,render:(t,r,H)=>Fe("text",{fg:e.accent,children:k(ms(t.totalCost),H,"right")},void 0,!1,void 0,this)},{key:"tools",label:"Tools",width:20,priority:1,render:(t,r,H)=>Fe("text",{fg:e.subText,children:k(t5(t,H),H)},void 0,!1,void 0,this)},{key:"age",label:"Age",width:5,align:"right",priority:4,render:(t,r,H)=>Fe("text",{fg:e.muted,children:k(ke(t.endedAt),H,"right")},void 0,!1,void 0,this)}]}function t5(e,t){let r=e.toolNames;if(r.length===0)return e.toolCalls>0?`${e.toolCalls} calls`:"";let H=[],n=0;for(let a of r){let s=(H.length>0?2:0)+a.length;if(n+s>t-(H.length<r.length-1?3:0))break;H.push(a),n+=s}if(H.length===0)H.push(r[0]);let o=r.length-H.length;return o>0?`${H.join(", ")} +${o}`:H.join(", ")}function MO({client:e,org:t,state:r,focused:H,width:n,height:o,reloadToken:a,onProjectSelect:s,registerActions:i,activateRow:l}){let c=_(),{dispatch:A,focusSearch:u,handleSearchBlur:d}=r,p=r.committedQuery,g=r.selectedProjects.length>0?r.selectedProjects:void 0,m=r.selectedEnvs.length>0?r.selectedEnvs:void 0,{conversations:O,timeseries:y,nextCursor:L,page:f,nextPage:h,previousPage:w}=cO(e,{org:t,query:p,statsPeriod:r.statsPeriod,project:g,environment:m,reloadToken:a}),S=O.state==="loading",I=Ye(O),P=W(O),x=oe(O),q=W(y);gs(()=>{if(P)A({type:"setEntries",payload:P})},[P,A]);let v=zP(f);gs(()=>{if(v.current===f)return;v.current=f,A({type:"setSelected",payload:0})},[f,A]),gs(()=>{A({type:"setStatus",payload:{loading:S,since:I,error:x?.message,noun:nO}})},[S,I,x,O,A]);let C=ZP(()=>A({type:"setOpenDropdown",payload:null}),[A]);De(i,{open:()=>A({type:"setDetailOpen",payload:(R)=>!R}),nextPage:h,previousPage:w,back:()=>{if(!r.detailOpen)return!1;return A({type:"setDetailOpen",payload:!1}),!0}});let b=P?.[r.selected]??null,T=r.detailOpen&&b!==null,Q=!T&&Rn(o)&&q!==void 0&&q.length>0,B=Math.max(20,n-2);return Fe("box",{style:{flexDirection:"column",width:n,height:o},children:[Fe(St,{value:r.searchQuery,placeholder:"Search AI conversations\u2026",focused:r.searchFocused,width:n,onInput:(R)=>A({type:"setSearchQuery",payload:R}),onFocus:u,onBlur:d},void 0,!1,void 0,this),Fe(Be,{client:e,org:t,openDropdown:r.openDropdown,selectedProjects:r.selectedProjects,selectedEnvs:r.selectedEnvs,statsPeriod:r.statsPeriod,width:n,anchorTop:he,onProjectChange:s,onEnvChange:(R)=>A({type:"setSelectedEnvs",payload:R}),onPeriodChange:(R)=>A({type:"setStatsPeriod",payload:R}),onDropdownClose:C,onDropdownOpen:(R)=>A({type:"setOpenDropdown",payload:R})},void 0,!1,void 0,this),Q&&q?Fe(vn,{buckets:q,width:B,height:MH,title:qH.yAxis,noun:qH.noun},void 0,!1,void 0,this):null,Fe(Je,{rows:P,columns:e5(c),width:n,selectedIndex:r.selected,focused:H,rowKey:(R,K)=>`${K}:${R.id}`,minFlex:JP,loading:_e(O),error:x,errorTitle:"Failed to load conversations",onRowClick:l,renderDetail:(R,K,ee)=>r5(R,K,ee,c),empty:{title:"No conversations found.",lines:oO(p)},layout:[o,Q,T]},void 0,!1,void 0,this),T&&b?Fe(H5,{conversation:b,width:B},void 0,!1,void 0,this):null,Fe(Me,{count:P?.length,noun:"conversation",hasMore:L!==null,pagination:L!==null||f>1?{page:f,hasPrevious:f>1,hasNext:L!==null,loading:S,onPrevious:w,onNext:h}:void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function r5(e,t,r,H){let n=[tO(e.id),e.projectId?`project ${e.projectId}`:void 0,rO(e.user),e.traceCount>1?`${e.traceCount} traces`:void 0].filter(Boolean);return Fe("text",{fg:H.subText,attributes:Ze,children:k(` ${n.join(" \u2502 ")}`,r)},void 0,!1,void 0,this)}function H5({conversation:e,width:t}){let r=_(),H=Math.max(10,t-2);return Fe("box",{style:{flexDirection:"column",width:t,border:["top"],borderColor:r.border,paddingTop:1,flexShrink:0},children:[Fe("text",{fg:r.accent,attributes:G,children:`\u25BE ${D(ls(e)??qO,t-2)}`},void 0,!1,void 0,this),e.firstInput&&e.title?Fe("text",{fg:r.text,children:D(` \u2192 ${PO(e.firstInput)}`,H)},void 0,!1,void 0,this):null,e.lastOutput?Fe("text",{fg:r.muted,children:D(` \u2190 ${PO(e.lastOutput)}`,H)},void 0,!1,void 0,this):null,Fe("text",{fg:r.muted,children:D(` ${tH(e.llmCalls,"call")} \u2502 `+`${tH(e.toolCalls,"tool")} \u2502 `+`${we(e.inputTokens)} in / ${we(e.outputTokens)} out \u2502 `+`${ms(e.totalCost)} \u2502 ${DH(e.generationDurationMs)}`,H)},void 0,!1,void 0,this),e.traceIds[0]?Fe("text",{fg:r.subText,attributes:Ze,children:D(` trace ${e.traceIds[0]}`,H)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function PO(e){return e.replace(/\s+/g," ").trim()}import{useCallback as fs,useEffect as Ss,useMemo as HH,useRef as O5,useState as _s}from"h:0__";var CO=["count","avg","p50","p75","p90","p95","p99","sum","min","max","count_unique"],n5=["count","avg","p50","p75","p90","p95","p99","p100","sum","min","max","count_unique","epm","eps","failure_rate","failure_count","performance_score","opportunity_score"],o5={id:"explore.traces",dataset:"spans",fields:["id","span.name","span.description","span.duration","transaction","timestamp"],sort:"-timestamp",idField:"id",yAxis:"count(span.duration)",builder:{itemType:"spans",aggregates:n5,numberField:"span.duration",uniqueField:"span.op"},noun:"spans",searchPlaceholder:"Search spans\u2026",referrer:"sentry-tui.explore-traces"},a5={id:"explore.logs",dataset:"logs",fields:["sentry.item_id","trace","sentry.severity","timestamp","message","project"],sort:"-timestamp",idField:"sentry.item_id",yAxis:"count(message)",builder:{itemType:"logs",aggregates:CO,uniqueField:"message"},noun:"logs",searchPlaceholder:"Search logs\u2026",referrer:"sentry-tui.explore-logs",feature:"logs"},s5={id:"explore.metrics",dataset:"tracemetrics",fields:["id","metric.name","metric.type","value","metric.unit","project","timestamp"],sort:"-timestamp",idField:"id",yAxis:"count(value)",builder:{itemType:"tracemetrics",aggregates:CO,numberField:"value",uniqueField:"metric.name"},noun:"metrics",searchPlaceholder:"Search metrics\u2026",referrer:"sentry-tui.explore-metrics",feature:"tracemetrics-enabled"},i5={id:"explore.errors",dataset:"errors",fields:["id","title","level","project","user.display","timestamp"],sort:"-timestamp",idField:"id",yAxis:"count()",noun:"events",searchPlaceholder:"Search error events\u2026",referrer:"sentry-tui.explore-errors",feature:"explore-errors"},c5=[o5,a5,s5,i5],l5=new Map(c5.map((e)=>[e.id,e]));function QO(e){return l5.get(e)}function NO(e,t){let r=e.baseQuery?.trim()??"",H=t.trim();if(!r)return H;if(!H)return r;return`(${r}) and (${H})`}function jO(e,t=e.yAxis){return t==="count()"||e.id==="explore.logs"&&t==="count(message)"?`count(${e.noun})`:t}function DO(e,t){return[t||void 0,"Try widening the time range or adjusting the query.",e.feature?`This organization may not have ${e.feature} enabled.`:"This organization may not be sending this data yet."]}import{useMemo as $n}from"h:0__";import{jsxDEV as xt,Fragment as p5}from"h:6___________________________";var Vn=Tt,Un=1,Os=3,ys="",vO=44;function GO({table:e,query:t,attributes:r,open:H,width:n,anchorTop:o,interval:a,intervalItems:s,onChange:i,onIntervalChange:l,onOpen:c,onClose:A}){let u=_(),d=Bn(t,e),p=lr(t.aggregate),g=p!=="none"&&p!=="count",m=$n(()=>r.number.map(({key:I})=>I),[r.number]),O=$n(()=>AO(e,m).map(({name:I})=>({label:I,value:I})),[e,m]),y=[{kind:"label",text:"Visualize",gapBefore:0},{kind:"chip",gapBefore:Un,opens:"visualize",onPress:()=>c("visualize"),chip:{command:"sentry.explore.visualize",label:t.aggregate,caret:!0}},{kind:"chip",gapBefore:dr,opens:"field",onPress:()=>g&&c("field"),chip:{command:"sentry.explore.visualizeField",label:SO(t,e),caret:g}},{kind:"label",text:"Group by",gapBefore:Os},{kind:"chip",gapBefore:Un,opens:"groupBy",onPress:()=>c("groupBy"),chip:{command:"sentry.explore.groupBy",label:_O(t),caret:!0}},{kind:"label",text:"Sort",gapBefore:Os},{kind:"chip",gapBefore:Un,opens:"sort",onPress:()=>c("sort"),chip:{command:"sentry.view.sort",label:d.field,caret:!0}},{kind:"chip",gapBefore:dr,opens:null,onPress:()=>i(Wn(t,e)),chip:{command:"sentry.explore.sortDirection",label:d.direction==="desc"?"Desc":"Asc"}},{kind:"label",text:"Interval",gapBefore:Os},{kind:"chip",gapBefore:Un,opens:"interval",onPress:()=>c("interval"),chip:{command:"sentry.explore.interval",label:a,caret:!0}}],L=RO(y,!0),f=L.total<=n,{placed:h}=f?L:RO(y,!1),w=o+Tt,S=(I)=>h.find((P)=>P.item.kind==="chip"&&P.item.opens===I)?.left??0;return xt(p5,{children:[xt("box",{style:{flexDirection:"row",alignItems:"center",flexShrink:0,height:Tt,overflow:"hidden"},children:h.map(({item:I,key:P,gap:x})=>I.kind==="label"?xt("text",{fg:u.muted,children:`${" ".repeat(x)}${I.text}`},P,!1,void 0,this):xt("box",{style:{flexDirection:"row",flexShrink:0},children:[x>0?xt("text",{children:" ".repeat(x)},void 0,!1,void 0,this):null,xt(Tr,{...I.chip,active:H!==null&&H===I.opens,onPress:I.onPress},void 0,!1,void 0,this)]},P,!0,void 0,this))},void 0,!1,void 0,this),H==="visualize"?xt(lt,{title:"Visualize",items:O,selected:[t.aggregate],anchorLeft:S("visualize"),anchorTop:w,showAll:!1,onSelect:(I)=>{let P=I[0];if(P)i(pO(t,P,e,m));A()},onClose:A},void 0,!1,void 0,this):null,H==="field"?xt(A5,{query:t,attributes:r,anchorLeft:S("field"),anchorTop:w,onSelect:(I)=>{i(mO(t,I)),A()},onClose:A},void 0,!1,void 0,this):null,H==="groupBy"?xt(u5,{query:t,attributes:r,anchorLeft:S("groupBy"),anchorTop:w,onSelect:(I)=>{i(OO(t,d5(t.groupBys,I),e)),A()},onClose:A},void 0,!1,void 0,this):null,H==="sort"?xt(lt,{title:"Sort By",items:ds(t,e).map((I)=>({label:I,value:I})),selected:[d.field],anchorLeft:S("sort"),anchorTop:w,showAll:!1,placeholder:"No sortable columns",onSelect:(I)=>{let P=I[0];if(P)i(QH(t,{field:P,direction:d.direction}));A()},onClose:A},void 0,!1,void 0,this):null,H==="interval"?xt(lt,{title:"Chart Interval",items:s,selected:[a],anchorLeft:S("interval"),anchorTop:w,showAll:!1,placeholder:"No intervals for this range",onSelect:(I)=>{let P=I[0];if(P)l(P);A()},onClose:A},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function A5({query:e,attributes:t,anchorLeft:r,anchorTop:H,onSelect:n,onClose:o}){let a=lr(e.aggregate),s=$n(()=>{if(a==="any")return Yn([...t.string,...t.number,...t.boolean]);if(a==="score")return Yn(t.number.filter((i)=>hO(i.key)));return Yn(t.number)},[a,t]);return xt(lt,{title:"Field",items:s,selected:[e.argument],anchorLeft:r,anchorTop:H,showAll:!1,filterable:!0,maxWidth:vO,placeholder:t.loading?"Loading attributes\u2026":"No attributes found",onSelect:(i)=>{let l=i[0];if(l)n(l)},onClose:o},void 0,!1,void 0,this)}function u5({query:e,attributes:t,anchorLeft:r,anchorTop:H,onSelect:n,onClose:o}){let a=$n(()=>[{label:"\u2014",value:ys},...Yn([...t.string,...t.number,...t.boolean].filter((s)=>!uO.has(s.key)))],[t.string,t.number,t.boolean]);return xt(lt,{title:"Group By",items:a,selected:e.groupBys.length>0?[...e.groupBys]:[ys],anchorLeft:r,anchorTop:H,showAll:!1,filterable:!0,maxWidth:vO,placeholder:t.loading?"Loading attributes\u2026":"No attributes found",onSelect:(s)=>n(s[0]??ys),onClose:o},void 0,!1,void 0,this)}function Yn(e){return[...new Map(e.map((t)=>[t.key,{label:t.key,value:t.key}])).values()]}function d5(e,t){if(!t)return[];return e.includes(t)?e.filter((r)=>r!==t):[...e,t]}function RO(e,t){let r=[],H=0,n=!0;for(let o of e){if(o.kind==="label"&&!t)continue;let a=n?0:o.gapBefore;n=!1;let s=H+a;r.push({item:o,key:o.kind==="label"?`label:${o.text}`:o.chip.command,left:s,gap:a}),H=s+(o.kind==="label"?Ae(o.text):Qt(o.chip))}return{placed:r,total:H}}import{useCallback as EO}from"h:0__";function KO(e,t,{org:r,query:H,request:n,statsPeriod:o,interval:a,project:s,environment:i,reloadToken:l=0}){let c=NO(t,H),A=EO((g,m)=>e?aO(e,{org:r,query:c,statsPeriod:o,project:s,environment:i,cursor:g,signal:m,dataset:t.dataset,fields:n.fields,sort:n.sort,idField:n.idField,referrer:t.referrer}):null,[e,r,c,n,o,s,i,t]),u=EO((g)=>e?Gn(e,{org:r,query:c,statsPeriod:o,interval:a,project:s,environment:i,signal:g,dataset:t.dataset,yAxis:n.yAxis,groupBy:n.groupBys.length>0?n.groupBys:void 0,sort:n.sort,topEvents:n.groupBys.length>0?9:void 0,referrer:`${t.referrer}-chart`}):null,[e,r,c,n,o,a,s,i,t]),d=_t(A,l),p=Dt(u,{reloadKey:l}).status;return{events:it(d.status,(g)=>g.data),timeseries:p,nextCursor:d.nextCursor,page:d.page,nextPage:d.nextPage,previousPage:d.previousPage}}import{useEffect as m5,useState as g5}from"h:0__";async function XO(e,{org:t,itemType:r,attributeType:H,project:n,environment:o,statsPeriod:a,signal:s}){let{data:i}=await Ji({...e.generatedOptions(s),path:{organization_id_or_slug:t},query:{itemType:r,attributeType:[H],project:Ee(n),environment:o,statsPeriod:a}}),l=new Set,c=[];for(let A of Array.isArray(i)?i:[]){let u=typeof A?.key==="string"?A.key:"";if(!u||l.has(u))continue;l.add(u),c.push({key:u,name:typeof A.name==="string"&&A.name?A.name:u,type:H})}return c.sort((A,u)=>A.name.localeCompare(u.name)),c}var Zn=[],WO={string:Zn,number:Zn,boolean:Zn,loading:!1};function BO(e,{org:t,itemType:r,statsPeriod:H,project:n,environment:o}){let[a,s]=g5(WO),i=n?.join(",")??"",l=o?.join(",")??"";return m5(()=>{if(!e||!r){s(WO);return}let c=new AbortController,A=!1;s((d)=>({...d,loading:!0}));let u=(d)=>XO(e,{org:t,itemType:r,attributeType:d,statsPeriod:H,project:i?i.split(","):void 0,environment:l?l.split(","):void 0,signal:c.signal}).catch(()=>Zn);return Promise.all([u("string"),u("number"),u("boolean")]).then(([d,p,g])=>{if(A)return;s({string:d,number:p,boolean:g,loading:!1})}),()=>{A=!0,c.abort()}},[e,t,r,H,i,l]),a}import{jsxDEV as Le,Fragment as b5}from"h:6___________________________";var FO=26;function RH(e){let t=_(),r=QO(e.screen.id);if(!r)return Le("box",{style:{flexDirection:"column",paddingLeft:1},children:Le("text",{fg:t.danger,children:`No Explore table configured for ${e.screen.id}.`},void 0,!1,void 0,this)},void 0,!1,void 0,this);return Le(y5,{...e,table:r},void 0,!1,void 0,this)}function y5({client:e,org:t,state:r,focused:H,width:n,height:o,reloadToken:a,onProjectSelect:s,registerActions:i,activateRow:l,table:c}){let A=_(),{dispatch:u,focusSearch:d,handleSearchBlur:p}=r,g=r.committedQuery,m=r.selectedProjects.length>0?r.selectedProjects:void 0,O=r.selectedEnvs.length>0?r.selectedEnvs:void 0,[y,L]=_s(()=>dO(c)),[f,h]=_s(null),[w,S]=_s(),I=c.builder!==void 0,P=HH(()=>yO(c,y),[c,y]),x=HH(()=>fn(c.fields),[c.fields]),q=HH(()=>Mc(r.statsPeriod),[r.statsPeriod]),v=q.find(({value:ye})=>ye===w)?.value??q[0]?.value??Sr(r.statsPeriod),C=BO(e,{org:t,itemType:c.builder?.itemType,statsPeriod:r.statsPeriod,project:m,environment:O}),{events:b,timeseries:T,nextCursor:Q,page:B,nextPage:R,previousPage:K}=KO(e,c,{org:t,query:g,request:P,statsPeriod:r.statsPeriod,interval:v,project:m,environment:O,reloadToken:a}),ee=b.state==="loading",ae=Ye(b),He=W(b),se=oe(b),le=W(T);Ss(()=>{if(He)u({type:"setEntries",payload:He})},[He,u]);let ue=O5(B);Ss(()=>{if(ue.current===B)return;ue.current=B,u({type:"setSelected",payload:0})},[B,u]),Ss(()=>{u({type:"setStatus",payload:{loading:ee,since:ae,error:se?.message,noun:c.noun}})},[ee,ae,se,b,u,c.noun]);let ne=fs(()=>u({type:"setOpenDropdown",payload:null}),[u]),N=fs(()=>h(null),[]),U=fs((ye)=>{u({type:"setOpenDropdown",payload:null}),h(ye)},[u]);De(i,{open:()=>u({type:"setDetailOpen",payload:(ye)=>!ye}),nextPage:R,previousPage:K,back:()=>{if(!r.detailOpen)return!1;return u({type:"setDetailOpen",payload:!1}),!0},handleKey:(ye)=>{if(j("sentry.explore.interval",ye))return U("interval"),!0;if(!I)return!1;if(j("sentry.explore.visualize",ye))return U("visualize"),!0;if(j("sentry.explore.visualizeField",ye)){let Y=lr(y.aggregate);if(Y!=="none"&&Y!=="count")U("field");return!0}if(j("sentry.explore.groupBy",ye))return U("groupBy"),!0;if(j("sentry.view.sort",ye))return U("sort"),!0;if(j("sentry.explore.sortDirection",ye))return L((Y)=>Wn(Y,c)),!0;return!1}});let z=HH(()=>L5(He),[He]),X=HH(()=>h5(He,P.yAxis),[He,P.yAxis]),xe=HH(()=>P.mode==="aggregate"?TO(y.groupBys,P.yAxis,X,A):wO(c.id,{maxDurationMs:z,theme:A}),[P.mode,P.yAxis,y.groupBys,X,c.id,z,A]),Qe=He?.[r.selected]??null,ie=r.detailOpen&&Qe!==null,re=!ie&&Rn(o,Vn)&&le!==void 0&&le.length>0,Ne=Math.max(20,n-2);return Le("box",{style:{flexDirection:"column",width:n,height:o},children:[Le(St,{value:r.searchQuery,placeholder:c.searchPlaceholder,focused:r.searchFocused,width:n,onInput:(ye)=>u({type:"setSearchQuery",payload:ye}),onFocus:d,onBlur:p},void 0,!1,void 0,this),Le(Be,{client:e,org:t,openDropdown:r.openDropdown,selectedProjects:r.selectedProjects,selectedEnvs:r.selectedEnvs,statsPeriod:r.statsPeriod,sort:I?void 0:{value:P.sort,items:x,onChange:(ye)=>L((Y)=>QH(Y,us(ye)))},width:n,anchorTop:he,onProjectChange:s,onEnvChange:(ye)=>u({type:"setSelectedEnvs",payload:ye}),onPeriodChange:(ye)=>u({type:"setStatsPeriod",payload:ye}),onDropdownClose:ne,onDropdownOpen:(ye)=>u({type:"setOpenDropdown",payload:ye})},void 0,!1,void 0,this),I?Le(GO,{table:c,query:y,attributes:C,open:f,width:n,anchorTop:he+Vn,interval:v??"",intervalItems:q,onChange:L,onIntervalChange:S,onOpen:U,onClose:N},void 0,!1,void 0,this):Le(f5,{interval:v??"",items:q,open:f==="interval",width:n,anchorTop:he+Vn,onOpen:()=>U("interval"),onChange:S,onClose:N},void 0,!1,void 0,this),re&&le?Le(vn,{buckets:le,width:Ne,height:MH,title:jO(c,P.yAxis),noun:kO(y.aggregate)?c.noun:void 0},void 0,!1,void 0,this):null,Le(Je,{rows:He,columns:xe,width:n,selectedIndex:r.selected,focused:H,rowKey:(ye,Y)=>`${Y}:${ye.id}`,minFlex:bO,loading:_e(b),error:se,errorTitle:`Failed to load ${c.noun}`,onRowClick:l,empty:{title:`No ${c.noun} found.`,lines:DO(c,g)},layout:[o,re,ie]},void 0,!1,void 0,this),ie&&Qe?c.id==="explore.logs"?Le(S5,{event:Qe,width:Ne},void 0,!1,void 0,this):Le(_5,{event:Qe,fields:P.fields,width:Ne},void 0,!1,void 0,this):null,Le(Me,{count:He?.length,noun:I5(c),hasMore:Q!==null,pagination:Q!==null||B>1?{page:B,hasPrevious:B>1,hasNext:Q!==null,loading:ee,onPrevious:K,onNext:R}:void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function f5({interval:e,items:t,open:r,width:H,anchorTop:n,onOpen:o,onChange:a,onClose:s}){let i=_();return Le(b5,{children:[Le("box",{style:{flexDirection:"row",alignItems:"center",flexShrink:0,height:Tt,overflow:"hidden"},children:[Le("text",{fg:i.muted,children:"Interval "},void 0,!1,void 0,this),Le(Tr,{command:"sentry.explore.interval",label:e,caret:!0,active:r,onPress:o},void 0,!1,void 0,this)]},void 0,!0,void 0,this),r?Le(lt,{title:"Chart Interval",items:t,selected:[e],anchorLeft:9,anchorTop:n+Tt,availableWidth:H,showAll:!1,onSelect:(l)=>{let c=l[0];if(c)a(c);s()},onClose:s},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function S5({event:e,width:t}){let r=_(),H=et(e,"trace");return Le("box",{style:{flexDirection:"column",width:t,border:["top"],borderColor:r.border,paddingTop:1,flexShrink:0},children:[Le("text",{fg:r.accent,attributes:G,children:"\u25BE Log Details"},void 0,!1,void 0,this),Le("text",{fg:r.text,children:D(et(e,"message"),t)},void 0,!1,void 0,this),Le("text",{fg:r.muted,children:` Severity: ${ps(e)} \u2502 Project: ${et(e,"project")||"\u2014"}`},void 0,!1,void 0,this),H?Le("text",{fg:r.muted,children:` Trace: ${H}`},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function _5({event:e,fields:t,width:r}){let H=_(),n=Math.max(10,r-FO-2);return Le("box",{style:{flexDirection:"column",width:r,border:["top"],borderColor:H.border,paddingTop:1,flexShrink:0},children:[Le("text",{fg:H.accent,attributes:G,children:"\u25BE Row Details"},void 0,!1,void 0,this),t.map((o)=>Le("box",{style:{flexDirection:"row",width:r},children:[Le("text",{fg:H.muted,children:` ${k(o,FO)}`},void 0,!1,void 0,this),Le("text",{fg:H.text,children:D(k5(e,o),n)},void 0,!1,void 0,this)]},o,!0,void 0,this))]},void 0,!0,void 0,this)}function k5(e,t){let r=et(e,t);return r===""?"\u2014":r.replace(/\s+/g," ")}function h5(e,t){let r=0;for(let H of e??[]){let n=yt(H.row,t);if(n!==void 0&&n>r)r=n}return r}function L5(e){if(!e)return 0;let t=0;for(let r of e){let H=Number(r.row["span.duration"]);if(Number.isFinite(H)&&H>t)t=H}return t}function I5(e){return e.noun.endsWith("s")?e.noun.slice(0,-1):e.noun}import{useCallback as uq,useEffect as dy,useMemo as dq}from"h:0__";var w5={"dashboards.all":{title:"All Dashboards",description:"Every dashboard in this organization.",sort:"recentlyViewed",searchPlaceholder:"Search dashboards by title\u2026",emptyTitle:"No dashboards found.",emptyLines:["This organization may not have dashboards enabled.","Otherwise there are none yet \u2014 create one on sentry.io, as this client is read-only."]},"dashboards.sentry-built":{title:"Sentry Built",description:"Prebuilt dashboards Sentry ships for you.",filter:"onlyPrebuilt",sort:"mostPopular",searchPlaceholder:"Search Sentry Built dashboards\u2026",emptyTitle:"No Sentry Built dashboards.",emptyLines:["This organization may not have prebuilt dashboards enabled.","The web app hides this section entirely without the feature; we can't read org features, so it shows up empty instead."]}};function UO(e){return w5[e]}import{jsxDEV as vH,Fragment as T5}from"h:6___________________________";function nH({value:e,items:t,open:r,width:H,anchorTop:n,onChange:o,onOpen:a,onClose:s}){let i=Math.max(0,H-Qt({command:IH,label:bH(t,e),caret:!0}));return vH(T5,{children:[vH("box",{style:{flexDirection:"row",alignItems:"center",flexShrink:0,width:H,height:Tt,overflow:"hidden"},children:[vH("box",{style:{flexGrow:1}},void 0,!1,void 0,this),vH(Sn,{value:e,items:t,open:r,onOpen:a},void 0,!1,void 0,this)]},void 0,!0,void 0,this),r?vH(_n,{value:e,items:t,anchorLeft:i,anchorTop:n+Tt,availableWidth:H,onChange:o,onClose:s},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}import{useCallback as nq,useEffect as oH,useMemo as qs,useRef as Ay,useState as oq}from"h:0__";function Nr(e){switch(e){case"big_number":return"number";case"bar":case"area":case"line":return"series";case"table":case"top_n":return"table";case"categorical_bar":return"bars";default:return"unsupported"}}function hs(e){switch(e){case void 0:case null:case"discover":return"discover";case"error-events":return"errors";case"transaction-like":return"transactions";case"spans":return"spans";case"logs":return"ourlogs";case"tracemetrics":return"tracemetrics";case"preprod-app-size":return"preprodSize";default:return null}}function Ls(e){if(Nr(e.displayType)==="unsupported")return`"${e.displayType}" widgets are not renderable in the terminal.`;return`"${e.widgetType}" widgets are not read through the events API.`}var x5=5,P5=10,zn=8;async function $O(e,{org:t,widget:r,statsPeriod:H,project:n,environment:o,signal:a}){let s=Nr(r.displayType),i=hs(r.widgetType),l=r.queries[0];if(s==="unsupported"||i===null||!l)return null;let c={org:t,dataset:i,query:l.conditions,statsPeriod:H,project:n,environment:o,referrer:"sentry-tui.dashboards",signal:a};switch(s){case"number":{let A=q5(l),u=await It(e,{...c,fields:[A],limit:1}),d=u.rows[0]?yt(u.rows[0],A):void 0;return{kind:"number",value:d,formatted:bs(d),label:A}}case"series":{let A=qc(H,r.interval,r.displayType==="bar"),u=[];for(let d of r.queries){let p=d.aggregates[0]??"count()",g=await pa(e,{...c,query:d.conditions,yAxis:p,interval:A});u.push({buckets:g,label:d.name||p})}return{kind:"series",series:u}}case"table":{let A=M5(l),u=await It(e,{...c,fields:A,sort:l.orderby||void 0,limit:Is(r)});return{kind:"table",headers:C5(l,A),fields:A,rows:u.rows}}case"bars":{let A=l.columns[0],u=l.aggregates[0]??"count()";return{kind:"bars",entries:(await It(e,{...c,fields:A?[A,u]:[u],sort:l.orderby||`-${u}`,limit:zn})).rows.map((m,O)=>({label:(A?je(m,A):void 0)??`#${O+1}`,value:yt(m,u)??0})),label:u}}}}function q5(e){let t=e.selectedAggregate??0;return e.aggregates[t]??e.aggregates[0]??"count()"}function M5(e){let t=e.fields?.filter((H)=>H.length>0)??[];if(t.length>0)return t;let r=[...e.columns,...e.aggregates].filter((H)=>H.length>0);return r.length>0?r:["count()"]}function C5(e,t){return t.map((r,H)=>e.fieldAliases?.[H]||r)}function Is(e){let t=e.limit??x5;return Math.max(1,Math.min(t,P5))}function bs(e){if(e===void 0||!Number.isFinite(e))return"\u2014";if(!Number.isInteger(e))return Math.abs(e)>=1000?YO(e):e.toFixed(2);return Math.abs(e)>=1e4?YO(e):String(e)}function YO(e){let t=e<0?"-":"",r=Math.abs(e);if(r>=1e9)return`${t}${ks(r/1e9)}b`;if(r>=1e6)return`${t}${ks(r/1e6)}m`;return`${t}${ks(r/1000)}k`}function ks(e){return e.toFixed(1).replace(/\.0$/,"")}var VO=5;var ZO={"0":["\u2588\u2588\u2588","\u2588 \u2588","\u2588 \u2588","\u2588 \u2588","\u2588\u2588\u2588"],"1":[" \u2588\u2588"," \u2588"," \u2588"," \u2588"," \u2588"],"2":["\u2588\u2588\u2588"," \u2588","\u2588\u2588\u2588","\u2588 ","\u2588\u2588\u2588"],"3":["\u2588\u2588\u2588"," \u2588","\u2588\u2588\u2588"," \u2588","\u2588\u2588\u2588"],"4":["\u2588 \u2588","\u2588 \u2588","\u2588\u2588\u2588"," \u2588"," \u2588"],"5":["\u2588\u2588\u2588","\u2588 ","\u2588\u2588\u2588"," \u2588","\u2588\u2588\u2588"],"6":["\u2588\u2588\u2588","\u2588 ","\u2588\u2588\u2588","\u2588 \u2588","\u2588\u2588\u2588"],"7":["\u2588\u2588\u2588"," \u2588"," \u2588"," \u2588"," \u2588"],"8":["\u2588\u2588\u2588","\u2588 \u2588","\u2588\u2588\u2588","\u2588 \u2588","\u2588\u2588\u2588"],"9":["\u2588\u2588\u2588","\u2588 \u2588","\u2588\u2588\u2588"," \u2588","\u2588\u2588\u2588"],"-":[" "," ","\u2588\u2588\u2588"," "," "],".":[" "," "," "," ","\u2588"],",":[" "," "," "," ","\u2588"]," ":[" "," "," "," "," "]};function Q5(e){return e in ZO}function zO(e){let t=0;while(t<e.length&&Q5(e[t]))t++;return{numeric:e.slice(0,t),suffix:e.slice(t)}}function JO(e){let t=[...e].map((r)=>ZO[r]).filter((r)=>r!==void 0);if(t.length===0)return Array.from({length:5},()=>"");return Array.from({length:5},(r,H)=>t.map((n)=>n[H]).join(" "))}var N5=2,j5=1,ws=1,GH=8,D5=1,R5=VO+1,v5=2,G5=1;function E5(e,t){switch(t){case"number":return R5;case"series":return GH+D5;case"table":return G5+Is(e);case"bars":return Ts(e);case"unsupported":return v5}}function ey(e,t){return N5+j5+E5(e,t)+ws}function Ts(e){let t=e.limit??zn;return Math.max(1,Math.min(t,zn))}function ty(e){return[...e].map((t,r)=>({widget:t,index:r})).sort((t,r)=>{let H=t.widget.layout,n=r.widget.layout;if(!H&&!n)return t.index-r.index;if(!H)return 1;if(!n)return-1;return H.y-n.y||H.x-n.x||t.index-r.index}).map(({widget:t})=>t)}function K5(e){let t=[],r=0;for(let H of e)t.push(r),r+=H;return t}function ry({heights:e,index:t,viewportHeight:r,scrollTop:H}){if(e.length===0||r<=0)return 0;let n=Math.max(0,Math.min(t,e.length-1)),o=K5(e),a=o[e.length-1]+e[e.length-1],s=Math.max(0,a-r),i=o[n],l=i+e[n],c=i<H||e[n]>r?i:l>H+r?l-r:H;return Math.min(Math.max(c,0),s)}import{jsxDEV as ce}from"h:6___________________________";var X5=4,Jn=6,W5=8,B5=24,Hy=8,F5=8;function ay({widget:e,kind:t,status:r,width:H,height:n,selected:o,placeholder:a=!1}){let s=_(),i=Math.max(4,H-X5),l=Math.max(0,n-3);return ce("box",{style:{flexDirection:"column",width:H,height:n,flexShrink:0,marginBottom:ws,border:!0,borderColor:o?s.accent:s.border,backgroundColor:o?s.panel:void 0,paddingLeft:1,paddingRight:1},children:[ce(U5,{widget:e,width:i,selected:o,placeholder:a},void 0,!1,void 0,this),ce(Y5,{widget:e,kind:t,status:a?void 0:r,width:i,lines:l},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function U5({widget:e,width:t,selected:r,placeholder:H}){let n=_(),o=e.displayType,a=Math.max(1,t-o.length-1);return ce("box",{style:{flexDirection:"row",width:t,flexShrink:0},children:[ce("text",{fg:H?n.panelAlt:r?n.accent:n.text,attributes:H?0:G,children:k(H?xs(a,3):e.title||"Untitled widget",a)},void 0,!1,void 0,this),ce("text",{fg:n.subText,attributes:Ze,children:k(o,o.length+1,"right")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Y5({widget:e,kind:t,status:r,width:H,lines:n}){if(t==="unsupported")return ce(oy,{reason:Ls(e),width:H,lines:n},void 0,!1,void 0,this);let o=oe(r);if(o)return ce(rq,{message:o.message,width:H,lines:n},void 0,!1,void 0,this);let a=W(r)??null;if(a===null&&r?.state==="ready")return ce(oy,{reason:Ls(e),width:H,lines:n},void 0,!1,void 0,this);let s=a===null||Lg(r)||r===void 0;switch(t){case"number":return ce($5,{data:a?.kind==="number"?a:void 0,pending:s,width:H},void 0,!1,void 0,this);case"series":return ce(V5,{data:a?.kind==="series"?a:void 0,pending:s,width:H},void 0,!1,void 0,this);case"table":return ce(J5,{data:a?.kind==="table"?a:void 0,width:H,lines:n},void 0,!1,void 0,this);case"bars":return ce(tq,{data:a?.kind==="bars"?a:void 0,rows:Ts(e),width:H},void 0,!1,void 0,this)}}function $5({data:e,pending:t,width:r}){let H=_(),{numeric:n,suffix:o}=zO(e?.formatted??""),a=JO(t||n.length===0?"000":n),s=t||n.length===0,i=a.length-1,l=o?` ${o}`:"",c=(a[0]?.length??0)+l.length;return ce("box",{style:{flexDirection:"column",width:r,flexShrink:0},children:[a.map((A,u)=>ce("box",{style:{flexDirection:"row",width:r,flexShrink:0},children:ce("text",{fg:s?H.panelAlt:H.text,children:k(k(u===i?A+l:A,c),r,"center")},void 0,!1,void 0,this)},u,!1,void 0,this)),ce("text",{fg:H.muted,children:k(e?.label??"",r,"center")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function V5({data:e,pending:t,width:r}){let H=_(),n=Math.max(4,r-Jn-1),o=(e?.series??[]).map(({buckets:p,label:g})=>({label:g,points:p.map(([m,O])=>[m,O[0]?.count??0])})),a=t?[{label:"",points:void 0}]:o.slice(0,GH),s=[H.accent,H.success,H.warning,H.highlight],i=Math.floor(GH/Math.max(1,a.length)),l=GH%Math.max(1,a.length),c=a.length>1,A=a.flatMap(({label:p,points:g},m)=>{let O=i+(l-- >0?1:0),y=g?eH(g,n):void 0,L=Nn(y,n,O,{floor:!0}),f=g&&g.length>0?Math.max(...g.map(([,h])=>h)):0;return L.map((h,w)=>({line:h,color:s[m%s.length],gutter:c?w===0?D(p,Jn):"":Z5(w,L.length,f,Boolean(g))}))}),u=o[0]?.points,d=c?`${a.length} series`:o[0]?.label??"";return ce("box",{style:{flexDirection:"column",width:r,flexShrink:0},children:[A.map(({line:p,gutter:g,color:m},O)=>ce("box",{style:{flexDirection:"row",width:r,flexShrink:0},children:[ce("text",{fg:H.muted,attributes:Ze,children:`${k(g,Jn,c?"left":"right")} `},void 0,!1,void 0,this),ce("text",{fg:t?H.panelAlt:m,children:p},void 0,!1,void 0,this)]},O,!0,void 0,this)),ce("box",{style:{flexDirection:"row",width:r,flexShrink:0},children:[ce("text",{fg:H.muted,attributes:Ze,children:" ".repeat(Jn+1)},void 0,!1,void 0,this),ce("text",{fg:H.subText,attributes:Ze,children:z5(u,d,n)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function Z5(e,t,r,H){if(!H)return"";if(e===0)return bs(r);if(e===t-1)return"0";return""}function z5(e,t,r){if(!e||e.length===0||r<12)return" ".repeat(Math.max(0,r));let H=ny(e[0][0]),n=ny(e[e.length-1][0]),o=Math.max(1,r-H.length-n.length);return`${H}${k(D(t,Math.max(0,o-4)),o,"center")}${n}`.slice(0,r)}function ny(e){let t=new Date(e*1000);return`${String(t.getHours()).padStart(2,"0")}:${String(t.getMinutes()).padStart(2,"0")}`}function J5({data:e,width:t,lines:r}){let H=_(),n=e?.headers??[],o=e?.fields??[],a=(n.length>0?n:[""]).map((l,c)=>({key:String(c),width:"flex",priority:n.length-c,header:l,field:o[c]??""})),s=mr(a,t,{gap:1,minFlex:F5}),i=Math.max(0,r-1);return ce("box",{style:{flexDirection:"column",width:t,flexShrink:0},children:[ce("text",{fg:H.muted,children:s.map(({column:l,width:c})=>k(l.header,c)).join(" ")},void 0,!1,void 0,this),Array.from({length:i},(l,c)=>{let A=e?.rows[c];return ce("text",{fg:A?H.text:H.panelAlt,children:s.map(({column:u,width:d})=>k(A?eq(A,u.field):e?"":xs(d,c),d)).join(" ")},c,!1,void 0,this)})]},void 0,!0,void 0,this)}function eq(e,t){let r=e[t];if(r===void 0||r===null||r==="")return"\u2014";if(typeof r==="number")return Number.isInteger(r)?String(r):r.toFixed(2);return String(r)}function xs(e,t){if(e<=0)return"";let r=0.4+t*17%45/100;return"\u2500".repeat(Math.max(1,Math.min(e,Math.floor(e*r))))}function tq({data:e,rows:t,width:r}){let H=_(),n=Math.max(W5,Math.min(B5,Math.floor(r*0.35))),o=Math.max(1,r-n-Hy-2),a=e?.entries??[],s=Math.max(1,...a.map((i)=>i.value));return ce("box",{style:{flexDirection:"column",width:r,flexShrink:0},children:Array.from({length:t},(i,l)=>{let c=a[l],A=c?Math.max(1,Math.round(c.value/s*o)):0,u=c||!e?Math.max(0,o-A):0;return ce("box",{style:{flexDirection:"row",width:r,flexShrink:0},children:[ce("text",{fg:c?H.subText:H.panelAlt,children:`${k(c?.label??(e?"":xs(n,l)),n)} `},void 0,!1,void 0,this),A>0?ce("text",{fg:H.accent,children:"\u2588".repeat(A)},void 0,!1,void 0,this):null,u>0?ce("text",{fg:H.panelAlt,children:"\u2591".repeat(u)},void 0,!1,void 0,this):null,ce("text",{fg:c?H.text:H.panelAlt,children:k(c?we(c.value):"",Hy,"right")},void 0,!1,void 0,this)]},l,!0,void 0,this)})},void 0,!1,void 0,this)}function oy({reason:e,width:t,lines:r}){let H=_();return ce(sy,{width:t,lines:r,children:[ce("text",{fg:H.muted,children:D(e,t)},void 0,!1,void 0,this),ce("text",{fg:H.subText,attributes:Ze,children:D("Open it on sentry.io to see this one.",t)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function rq({message:e,width:t,lines:r}){let H=_();return ce(sy,{width:t,lines:r,children:[ce("text",{fg:H.danger,children:D("Failed to load this widget",t)},void 0,!1,void 0,this),ce("text",{fg:H.muted,children:D(e,t)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function sy({width:e,lines:t,children:r}){return ce("box",{style:{flexDirection:"column",width:e,height:t,flexShrink:0},children:r},void 0,!1,void 0,this)}import{useEffect as Ps,useRef as EH,useState as iy}from"h:0__";function cy(e,{org:t,id:r,reloadToken:H=0}){let[n,o]=iy(de),a=EH(n);return a.current=n,Ps(()=>{if(!e)return;let s=new AbortController,{signal:i}=s,l=!1;return o(Se(a.current,Date.now())),(async()=>{try{let c=await xg(e,{org:t,id:r,signal:i});if(!l)o(pe(Mg(c),Date.now()))}catch(c){if(l||i.aborted)return;o(me(a.current,qe(c)))}})(),()=>{l=!0,s.abort()}},[e,t,r,H]),n}function to(e,t){return e.id??`#${t}`}function ly(e,{org:t,dashboardId:r,widgets:H,upto:n,statsPeriod:o,project:a,environment:s,reloadToken:i=0}){let[l,c]=iy(()=>new Map),A=JSON.stringify([t,r,o,a??null,s??null,i]),u=EH({org:t,statsPeriod:o,project:a,environment:s});u.current={org:t,statsPeriod:o,project:a,environment:s};let d=EH(new Set),p=EH(Promise.resolve()),g=EH(null);return Ps(()=>{d.current=new Set,p.current=Promise.resolve(),c(new Map);let m=new AbortController;return g.current=m,()=>m.abort()},[A]),Ps(()=>{if(!e)return;let m=g.current;if(!m)return;let O=Math.min(H.length,Math.max(0,n));for(let y=0;y<O;y++){let L=H[y],f=to(L,y);if(d.current.has(f))continue;if(d.current.add(f),!Hq(L)){c((h)=>eo(h,f,pe(null,Date.now())));continue}c((h)=>eo(h,f,Se(void 0,Date.now()))),p.current=p.current.then(async()=>{if(m.signal.aborted)return;try{let h=await $O(e,{...u.current,widget:L,signal:m.signal});if(!m.signal.aborted)c((w)=>eo(w,f,pe(h,Date.now())))}catch(h){if(m.signal.aborted)return;c((w)=>eo(w,f,me(void 0,qe(h))))}})}},[e,H,n,A]),l}function Hq(e){return Nr(e.displayType)!=="unsupported"&&hs(e.widgetType)!==null&&e.queries.length>0}function eo(e,t,r){let H=new Map(e);return H.set(t,r),H}import{jsxDEV as At}from"h:6___________________________";var aq=2,sq=2,iq="14d",cq=2,lq=1;function Ms(e){return{id:`dashboard:${e.id}`,label:e.title,stateKey:al,initialState:{statsPeriod:iq,selectedEnvs:e.environment??[],selectedProjects:[]},render:(t)=>t.state?At(Aq,{...t,state:t.state,dashboard:e},void 0,!1,void 0,this):null}}function uy(e){return Ms({id:e,title:`Dashboard ${e}`,widgetDisplay:[]})}function Aq({client:e,org:t,state:r,focused:H,width:n,height:o,reloadToken:a,dashboard:s,updateView:i}){let l=_(),{dispatch:c}=r,A=Ay(null),u=cy(e,{org:t,id:s.id,reloadToken:a}),d=W(u),p=oe(u),g=u.state==="loading";oH(()=>{if(d)i(`dashboard:${s.id}`,{label:d.title})},[d,s.id,i]);let m=qs(()=>ty(d?.widgets??[]),[d]),O=qs(()=>(s.widgetDisplay??[]).map((b,T)=>({id:`placeholder-${T}`,title:"",displayType:b,queries:[]})),[s.widgetDisplay]),y=d?m:O,L=!d,f=Boolean(d?.prebuiltId??s.prebuiltId);oH(()=>{c({type:"setEntries",payload:m})},[m,c]),oH(()=>{c({type:"setStatus",payload:{loading:g,error:p?.message,noun:"dashboard"}})},[g,p,c]);let h=Ay(null);oH(()=>{if(!d?.period||h.current===d.id)return;h.current=d.id,c({type:"setStatsPeriod",payload:d.period})},[d,c]);let[w,S]=oq(aq);oH(()=>{S((b)=>Math.max(b,r.selected+1+sq))},[r.selected]);let I=r.selectedProjects.length>0?r.selectedProjects:void 0,P=r.selectedEnvs.length>0?r.selectedEnvs:void 0,x=ly(e,{org:t,dashboardId:s.id,widgets:m,upto:w,statsPeriod:r.statsPeriod,project:I,environment:P,reloadToken:a}),q=Math.max(20,n-cq),v=qs(()=>y.map((b)=>ey(b,Nr(b.displayType))),[y]);oH(()=>{let b=A.current;if(!b||v.length===0)return;let T=b.viewport.height;if(T<=0)return;let Q=ry({heights:v,index:r.selected,viewportHeight:T,scrollTop:b.scrollTop});if(Q!==b.scrollTop)b.scrollTop=Q},[v,r.selected,o]);let C=nq(()=>c({type:"setOpenDropdown",payload:null}),[c]);return At("box",{style:{flexDirection:"column",width:n,height:o},children:[At("box",{style:{flexDirection:"row",width:n,flexShrink:0,paddingLeft:1},children:[At("text",{fg:l.text,attributes:G,children:D(d?.title??s.title,Math.max(8,n-24))},void 0,!1,void 0,this),At("text",{fg:l.muted,children:d?.period?` saved on ${d.period}`:" read-only"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),At(Be,{client:e,org:t,openDropdown:r.openDropdown,selectedProjects:r.selectedProjects,selectedEnvs:r.selectedEnvs,statsPeriod:r.statsPeriod,width:n,anchorTop:lq,onProjectChange:(b)=>c({type:"setSelectedProjects",payload:b}),onEnvChange:(b)=>c({type:"setSelectedEnvs",payload:b}),onPeriodChange:(b)=>c({type:"setStatsPeriod",payload:b}),onDropdownClose:C,onDropdownOpen:(b)=>c({type:"setOpenDropdown",payload:b})},void 0,!1,void 0,this),p&&!d?At("box",{style:{flexDirection:"column",padding:1},children:[At("text",{fg:l.danger,children:"Failed to load dashboard"},void 0,!1,void 0,this),At("text",{fg:l.muted,children:p.message},void 0,!1,void 0,this),p.retryable?At("text",{fg:l.muted,children:"R to retry"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this):null,d&&y.length===0?At("box",{style:{flexDirection:"column",padding:1},children:[At("text",{fg:l.text,children:f?"This Sentry Built dashboard is not bundled in this version.":"This dashboard has no widgets."},void 0,!1,void 0,this),At("text",{fg:l.muted,children:f?"Its widgets live in Sentry Web rather than the API; open it on sentry.io to view them.":"Add one on sentry.io \u2014 this client is read-only."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,At("scrollbox",{ref:A,focused:H,verticalScrollbarOptions:{showArrows:!1,trackOptions:{backgroundColor:l.panel,foregroundColor:l.muted}},style:{flexGrow:1,flexBasis:0,width:n},children:y.map((b,T)=>At(ay,{widget:b,kind:Nr(b.displayType),status:x.get(to(b,T)),width:q,height:v[T]-1,selected:H&&T===r.selected,placeholder:L},to(b,T),!1,void 0,this))},void 0,!1,void 0,this),y.length>0?At("text",{fg:l.subText,attributes:Ze,children:D(` widget ${Math.min(r.selected+1,y.length)} of ${y.length} \xB7 j/k to move \xB7 esc to go back`,n)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}import{jsxDEV as ut}from"h:6___________________________";var pq=4,mq=28;function gq(e){let t={key:"star",label:"\u2605",width:1,render:(s)=>ut("text",{fg:s.isFavorited?e.warning:e.border,children:s.isFavorited?"\u2605":"\u2606"},void 0,!1,void 0,this)},r={key:"name",label:"Name",width:"flex",render:(s,i,l)=>ut("text",{fg:i?e.text:e.accent,attributes:i?G:0,children:k(s.title,l)},void 0,!1,void 0,this)},H={key:"widgets",label:"Widgets",width:7,align:"right",priority:4,render:(s,i,l)=>ut("text",{fg:e.text,children:k(Oq(s),l,"right")},void 0,!1,void 0,this)},n={key:"lastVisited",label:"Last Visited",width:12,priority:5,render:(s,i,l)=>ut("text",{fg:e.subText,children:k(s.lastVisited?ke(s.lastVisited):"\u2014",l)},void 0,!1,void 0,this)};return{standard:[t,r,H,{key:"owner",label:"Owner",width:18,priority:3,render:(s,i,l)=>ut("text",{fg:e.muted,children:k(yq(s),l)},void 0,!1,void 0,this)},{key:"access",label:"Access",width:10,priority:1,render:(s,i,l)=>ut("text",{fg:e.muted,children:k(fq(s),l)},void 0,!1,void 0,this)},{key:"created",label:"Created",width:10,priority:2,render:(s,i,l)=>ut("text",{fg:e.subText,children:k(s.dateCreated?ke(s.dateCreated):"\u2014",l)},void 0,!1,void 0,this)},n],prebuilt:[t,r,{key:"description",label:"Description",width:"flex",priority:1,render:(s,i,l)=>ut("text",{fg:e.muted,children:k(s.description??"",l)},void 0,!1,void 0,this)},H,n]}}function Cs(e){let t=_(),{client:r,org:H,screen:n,state:o,focused:a,width:s,height:i,reloadToken:l}=e,{dispatch:c,focusSearch:A,handleSearchBlur:u}=o,p=UO(n.id)??{title:n.item,description:"",sort:"recentlyViewed",searchPlaceholder:"Search dashboards\u2026",emptyTitle:"No dashboards found.",emptyLines:[]},g=p.filter==="onlyPrebuilt",m=dq(()=>Hs(g),[g]),O=bg(o.sort,p.sort,g),{dashboards:y,nextCursor:L}=Ng(r,{org:H,filter:p.filter,query:o.committedQuery,sort:O,reloadToken:l}),f=W(y),h=oe(y),w=y.state==="loading";dy(()=>{if(f)c({type:"setEntries",payload:f})},[f,c]),dy(()=>{c({type:"setStatus",payload:{loading:w,error:h?.message,noun:"dashboards"}})},[w,h,c]);let{pushView:S}=e,I=uq((q)=>{let v=f?.[q];if(v)S(Ms(v))},[f,S]);De(e.registerActions,{open:I});let P=gq(t),x=g?P.prebuilt:P.standard;return ut("box",{style:{flexDirection:"column",width:s,height:i},children:[ut(St,{value:o.searchQuery,placeholder:p.searchPlaceholder,focused:o.searchFocused,width:s,onInput:(q)=>c({type:"setSearchQuery",payload:q}),onFocus:A,onBlur:u},void 0,!1,void 0,this),ut("box",{style:{flexDirection:"row",width:s,flexShrink:0,paddingLeft:1},children:[ut("text",{fg:t.text,attributes:G,children:p.title},void 0,!1,void 0,this),ut("text",{fg:t.muted,children:` ${p.description}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this),ut(nH,{value:O,items:m,open:o.openDropdown==="sort",width:s,anchorTop:he+1,onChange:(q)=>c({type:"setSort",payload:q}),onOpen:()=>c({type:"setOpenDropdown",payload:"sort"}),onClose:()=>c({type:"setOpenDropdown",payload:null})},void 0,!1,void 0,this),ut(Je,{rows:f,columns:x,width:s,minFlex:mq,selectedIndex:o.selected,focused:a,rowKey:(q)=>q.id,loading:_e(y),error:h,errorTitle:"Failed to load dashboards",onRowClick:e.activateRow,empty:{title:p.emptyTitle,lines:[o.committedQuery||void 0,...p.emptyLines]},layout:[i,pq]},void 0,!1,void 0,this),ut(Me,{count:f?.length,noun:"dashboard",hasMore:L!==null},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Oq(e){if(e.widgetDisplay.length>0)return String(e.widgetDisplay.length);return e.prebuiltId==null?"0":"\u2014"}function yq(e){let t=e.createdBy;if(!t)return"Sentry";return t.name||t.email||"\u2014"}function fq(e){let t=e.permissions;if(!t||t.isEditableByEveryone)return"All";let r=t.teamsWithEditAccess?.length??0;return r>0?`Creator +${r}`:"Creator"}import{useCallback as Bs,useEffect as po,useMemo as OM,useRef as Fs}from"h:0__";import{RenderableEvents as uo}from"h:3__________";var Sq=new Set(["upload","gravatar"]);function _q(e){if(!e?.avatar||!Sq.has(e.avatar.avatarType))return;return e.avatar.avatarUrl??e.avatarUrl??void 0}function my(e){let t=new Map;for(let r of e){let H=_q(r.user);if(H&&r.user)t.set(r.user.id,H)}return t}function gy(e,t){if(e?.type!=="user")return;return t.get(e.id)}var py="\xB7";function Oy(e){let t=e?.name;if(!t)return py;return t.split(/[\s@._-]+/).filter(Boolean).slice(0,2).map((n)=>n[0].toUpperCase()).join("")||py}import{jsxDEV as yy}from"h:6___________________________";function aH({status:e,noun:t,width:r,height:H}){let n=_(),o=oe(e);return yy("box",{style:{flexDirection:"column",width:r,height:H,paddingLeft:1},children:yy("text",{fg:o?n.danger:n.muted,children:o?`Failed to load ${t}: ${o.message}`:`Loading ${t}\u2026`},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function KH(e){return e.metadata?.type||e.metadata?.function||e.title}function ro(e){let t=e.metadata?.value;if(t)return fy(t);let r=e.culprit??"";return r===KH(e)?"":fy(r)}function fy(e){return e.replace(/\s+/g," ").trim()}import{jsxDEV as kq}from"h:6___________________________";function sH({text:e,fallback:t,width:r,fg:H,attributes:n=$r}){let o=_(),a=!e||e.trim().length===0;return kq("text",{fg:a?o.subText:H??o.text,attributes:a?ir:n,style:{flexShrink:0},children:k(a?t:e,r)},void 0,!1,void 0,this)}import{jsxDEV as J,Fragment as Ly}from"h:6___________________________";var Rt={lastSeen:10,age:6,sparkline:12,events:7,users:7,priority:6,assignee:5},Ns=Rt.sparkline-3,Sy=2,hq=1,_y={lastSeen:"Last Seen",age:"Age",sparkline:"Trend",events:"Events",users:"Users",priority:"Prio",assignee:"Asgn"},Lq=["lastSeen","age","sparkline","events","users","priority","assignee"],Qs=16,js=3,Iq=[{key:"marker",width:js},{key:"title",width:"flex"},{key:"lastSeen",width:Rt.lastSeen,priority:6},{key:"age",width:Rt.age,priority:3},{key:"sparkline",width:Rt.sparkline,priority:5},{key:"events",width:Rt.events},{key:"users",width:Rt.users,priority:4},{key:"priority",width:Rt.priority,priority:2},{key:"assignee",width:Rt.assignee,priority:1}],jr=1,Ds=4;function Rs(e){let t=Math.max(Qs+js,e-jr*2),r=mr(Iq,t,{gap:0,minFlex:Qs}),H=r.find(({column:a})=>a.key==="title")?.width??Qs,n=new Set(r.map(({column:a})=>a.key)),o=Lq.filter((a)=>n.has(a));return{content:t,title:H,columns:o}}var bq={high:"high",medium:"med",low:"low"};function hy({width:e,selectionAbove:t=!1,selectionBelow:r=!1}){let H=_(),n=t?"\u2580":r?"\u2584":"\u2500",o=t||r?H.selected:H.border;return J("text",{fg:o,children:n.repeat(Math.max(0,e))},void 0,!1,void 0,this)}function vs({content:e,fg:t,rules:r=!0}){let H=_(),n=r?"\u2502":" ";return J(Ly,{children:[J("text",{children:" "},void 0,!1,void 0,this),J("text",{fg:H.border,children:n},void 0,!1,void 0,this),J("text",{fg:t,children:e},void 0,!1,void 0,this),J("text",{fg:H.border,children:n},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Ho({width:e,selectionBelow:t=!1}){let r=_(),H=Rs(e);return J("box",{style:{flexDirection:"column",width:e,flexShrink:0},children:[J("box",{style:{flexDirection:"row",paddingLeft:jr,paddingRight:jr},children:[J("text",{fg:r.muted,children:k("Issue",js+H.title)},void 0,!1,void 0,this),H.columns.map((n)=>n==="sparkline"?J(vs,{content:k(_y[n],Ns,"center"),fg:r.muted,rules:!1},n,!1,void 0,this):J("text",{fg:r.muted,children:k(_y[n],Rt[n],"right")},n,!1,void 0,this))]},void 0,!0,void 0,this),J(hy,{width:e,selectionBelow:t},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function no({group:e,selected:t,width:r,pending:H=!1,selectionBelow:n=!1,assigneeAvatarUrl:o,onClick:a}){let s=_(),i=Rs(r),l=t?s.selected:void 0,c=KH(e),A=ro(e),u=On(),d=xq(e,Math.max(0,i.content-5),A,u);return J("box",{style:{flexDirection:"column",width:r,flexShrink:0},onMouseDown:a,children:[J("box",{style:{flexDirection:"column",paddingLeft:jr,paddingRight:jr,backgroundColor:l},children:[J("box",{style:{flexDirection:"row"},children:[J("text",{fg:t?s.accent:s.muted,children:t?"\u25B8":" "},void 0,!1,void 0,this),J("text",{fg:s.accent,children:H?"\u27F3":e.hasSeen?" ":"\u25CF"},void 0,!1,void 0,this),J("text",{children:" "},void 0,!1,void 0,this),J(sH,{text:c,fallback:"(no title)",width:i.title,fg:s.text,attributes:G},void 0,!1,void 0,this),i.columns.map((p)=>J(Tq,{column:p,group:e,avatarUrl:o},p,!1,void 0,this))]},void 0,!0,void 0,this),J("box",{style:{flexDirection:"row"},children:[J("text",{children:" "},void 0,!1,void 0,this),J("text",{fg:s.level[e.level]??s.level.unknown,children:"\u2503"},void 0,!1,void 0,this),J("text",{children:" "},void 0,!1,void 0,this),J(sH,{text:A,fallback:"(no error message)",width:Math.max(0,i.content-5),fg:s.muted},void 0,!1,void 0,this)]},void 0,!0,void 0,this),J("box",{style:{flexDirection:"row"},children:[J("text",{children:" "},void 0,!1,void 0,this),J("text",{fg:s.muted,children:d.lead},void 0,!1,void 0,this),d.showIcon?J(Vr,{platform:e.project?.platform},void 0,!1,void 0,this):null,J("text",{fg:s.muted,children:d.rest},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),J(hy,{width:r,selectionAbove:t,selectionBelow:n},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function wq({group:e,avatarUrl:t}){let r=_(),H=Rt.assignee,{supportsHighRes:n}=Bt();if(!t||!n)return J("text",{fg:r.muted,children:k(Oy(e.assignedTo),H,"right")},void 0,!1,void 0,this);return J(Ly,{children:[J("text",{children:" ".repeat(Math.max(0,H-Sy))},void 0,!1,void 0,this),J("image",{source:t,fit:"fit",style:{width:Sy,height:hq,flexShrink:0}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Tq({column:e,group:t,avatarUrl:r}){let H=_(),n=Rt[e];switch(e){case"sparkline":return J(vs,{content:Qn(t.stats?.["24h"],Ns),fg:H.muted},void 0,!1,void 0,this);case"events":return J("text",{fg:H.text,children:k(we(t.count),n,"right")},void 0,!1,void 0,this);case"users":return J("text",{fg:H.text,children:k(we(t.userCount),n,"right")},void 0,!1,void 0,this);case"lastSeen":return J("text",{fg:H.muted,children:k(ky(t.lastSeen,!0),n,"right")},void 0,!1,void 0,this);case"age":return J("text",{fg:H.muted,children:k(ky(t.firstSeen),n,"right")},void 0,!1,void 0,this);case"priority":return J("text",{fg:H.muted,children:k(t.priority?bq[t.priority]:"",n,"right")},void 0,!1,void 0,this);case"assignee":return J(wq,{group:t,avatarUrl:r},void 0,!1,void 0,this)}}function ky(e,t=!1){if(!e)return"\xB7\xB7";let r=ke(e);return t&&r?`${r} ago`:r}function xq(e,t,r,H){let n=e.project?.slug,o=[e.shortId].filter((A)=>Boolean(A)),a=[n,e.isUnhandled?"Unhandled":null,e.culprit===r?null:e.culprit,e.numComments>0?`\uD83D\uDCAC ${e.numComments}`:null,e.logger].filter((A)=>Boolean(A)),s=Boolean(n)&&H>0,i=Math.max(0,t-(s?H:0)),l=o.length>0?D(`${o.join(" \u2502 ")} \u2502 `,i):"",c=D(a.join(" \u2502 "),Math.max(0,i-Ae(l)));return{lead:l,rest:c,showIcon:s}}function oo({width:e,seed:t}){let r=_(),H=Rs(e),n=Math.floor(H.title*(0.45+t*17%40/100)),o=Math.floor((H.content-4)*(0.5+t*29%35/100)),a=Math.floor((H.content-4)*(0.3+t*23%25/100));return J("box",{style:{flexDirection:"column",width:e,paddingLeft:jr,paddingRight:jr,border:["bottom"],borderColor:r.border,flexShrink:0},children:[J("box",{style:{flexDirection:"row"},children:[J("text",{children:" "},void 0,!1,void 0,this),J("text",{fg:r.panelAlt,children:k("\u2500".repeat(n),H.title)},void 0,!1,void 0,this),H.columns.map((s)=>s==="sparkline"?J(vs,{content:"\u254C".repeat(Ns),fg:r.panelAlt},s,!1,void 0,this):J("text",{fg:r.panelAlt,children:k("\xB7\xB7",Rt[s],"right")},s,!1,void 0,this))]},void 0,!0,void 0,this),J("box",{style:{flexDirection:"row"},children:[J("text",{children:" "},void 0,!1,void 0,this),J("text",{fg:r.border,children:"\u2503"},void 0,!1,void 0,this),J("text",{fg:r.panelAlt,children:` ${"\u2500".repeat(o)}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this),J("box",{style:{flexDirection:"row"},children:[J("text",{children:" "},void 0,!1,void 0,this),J("text",{fg:r.panelAlt,children:"\u2500".repeat(a)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as Hr}from"h:6___________________________";function Iy({width:e,rows:t}){return Hr("box",{style:{flexDirection:"column",width:e},children:Array.from({length:t},(r,H)=>Hr(oo,{width:e,seed:H},H,!1,void 0,this))},void 0,!1,void 0,this)}function by({query:e}){let t=_();return Hr("box",{style:{flexDirection:"column",padding:1},children:[Hr("text",{fg:t.text,children:"No issues match this search."},void 0,!1,void 0,this),Hr("text",{fg:t.muted,children:e},void 0,!1,void 0,this),Hr("text",{fg:t.muted,children:`${Ke(be("sentry.nav.search"))} to edit the query`},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function wy({error:e}){let t=_();return Hr("box",{style:{flexDirection:"column",padding:1},children:[Hr("text",{fg:t.danger,children:"Failed to load issues"},void 0,!1,void 0,this),Hr("text",{fg:t.muted,children:e.message},void 0,!1,void 0,this),e.retryable?Hr("text",{fg:t.muted,children:`${Ke(be("sentry.app.refresh"))} to retry`},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}import{useEffect as Pq,useRef as qq,useState as Mq}from"h:0__";function iH(e,{org:t,id:r,reloadToken:H=0,load:n}){let[o,a]=Mq(de),s=qq(o);return s.current=o,Pq(()=>{if(!e)return;let i=new AbortController,l=!1;return a(Se(s.current,Date.now())),n(e,{org:t,id:r,signal:i.signal}).then((c)=>{if(!l)a(pe(c,Date.now()))}).catch((c)=>{if(!l&&!i.signal.aborted)a(me(s.current,qe(c)))}),()=>{l=!0,i.abort()}},[e,t,r,H,n]),o}import{useCallback as Gs,useEffect as Ty,useRef as cH,useState as XH}from"h:0__";function ao(e,{org:t,query:r,sort:H,statsPeriod:n,limit:o,project:a,environment:s,reloadToken:i=0}){let[l,c]=XH(de),[A,u]=XH(!1),[d,p]=XH(null),[g,m]=XH(null),[O,y]=XH(1),L=cH(l);L.current=l;let f=cH(void 0),h=cH(1),w=cH(null),S=cH(0),I=Gs((v,C)=>{if(!e)return!1;w.current?.abort();let b=new AbortController;w.current=b;let{signal:T}=b,Q=++S.current;return c(Se(L.current,Date.now())),u(!1),(async()=>{try{let B=await ac(e,{org:t,query:r,sort:H,statsPeriod:n,limit:o,project:a,environment:s,cursor:v,signal:T});if(T.aborted||Q!==S.current)return;if(f.current=v,h.current=C,y(C),p(B.nextCursor),m(B.prevCursor),c(pe(B.data,Date.now())),B.data.length===0)return;u(!0);try{let R=await sc(e,{org:t,groups:B.data.map((K)=>K.id),statsPeriod:n,project:a,signal:T});if(T.aborted||Q!==S.current)return;c((K)=>K.state==="ready"?pe(Cq(K.value,R),K.fetchedAt):K)}finally{if(!T.aborted&&Q===S.current)u(!1)}}catch(B){if(T.aborted||Q!==S.current)return;c((R)=>me(R,qe(B)))}})(),!0},[e,t,r,H,n,o,a,s]),P=cH(null),x=Gs(()=>d===null||L.current.state==="loading"?!1:I(d,h.current+1),[d,I]),q=Gs(()=>h.current<=1||g===null||L.current.state==="loading"?!1:I(g,Math.max(1,h.current-1)),[g,I]);return Ty(()=>{if(!e){S.current++,w.current?.abort();return}let v=P.current!==I;if(P.current=I,v)f.current=void 0,h.current=1,y(1),p(null),m(null);I(f.current,h.current)},[e,I,i]),Ty(()=>()=>{S.current++,w.current?.abort()},[]),{issues:l,statsLoading:A,nextCursor:d,prevCursor:g,page:O,nextPage:x,previousPage:q}}function Cq(e,t){return e.map((r)=>{let H=t[r.id];if(!H)return r;return{...r,count:H.count??r.count,userCount:H.userCount??r.userCount,firstSeen:H.firstSeen??r.firstSeen,lastSeen:H.lastSeen??r.lastSeen,isUnhandled:H.isUnhandled??r.isUnhandled,stats:{...r.stats,...H.stats}}})}import{useMemo as Dq}from"h:0__";import{useCallback as Qq,useMemo as Nq}from"h:0__";var xy=new WeakMap;function jq(e,t){let r=xy.get(e);if(!r)r=new Map,xy.set(e,r);let H=r.get(t);if(H)return H;let n=pc(e,{org:t}).then((o)=>new Map(o.flatMap((a)=>a.user?[[a.user.id,a]]:[])));return r.set(t,n),n.catch(()=>{if(r.get(t)===n)r.delete(t)}),n}function so(e,t,r=!0){let H=Qq((o)=>e&&t&&r?jq(e,t):null,[e,t,r]),n=Nq(()=>({client:e,org:t,enabled:r}),[e,t,r]);return Dt(H,{resetKey:n}).status}var Rq=new Map;function Py(e,t,r){let{supportsHighRes:H}=Bt(),o=so(e,t,r&&H),a=W(o);return Dq(()=>a?my([...a.values()]):Rq,[a])}import{useCallback as Xs,useEffect as oM,useLayoutEffect as aM,useRef as Uy,useState as Yy}from"h:0__";import{useKeyboard as sM}from"h:4___________";function vq(e,t,r){return r||e.inApp||(t?.inApp??!1)||!e.inApp&&t===void 0}function Gq(e,t){if(!t)return!1;return e.filename===t.filename&&e.function===t.function&&e.lineNo===t.lineNo&&e.colNo===t.colNo}function io(e,{includeSystemFrames:t=!1,newestFirst:r=!0}={}){let H=e?.frames??[];if(H.length===0)return[];let n=[],o=0;for(let a=0;a<H.length;a++){let s=H[a],i=H[a+1];if(!vq(s,i,t)){o++;continue}let l=n[n.length-1];if(l?.kind==="frame"&&o===0&&Gq(s,l.frame)){l.repeats++;continue}n.push({kind:"frame",frame:s,index:a,repeats:0,hiddenBefore:o}),o=0}if(o>0){let a=n[n.length-1];if(a?.kind==="frame")a.hiddenBefore+=o}if(e?.framesOmitted){let[a,s]=e.framesOmitted;n.push({kind:"omitted",from:a,to:s})}return r?n.reverse():n}function qy(e){let r=[e.filename??e.module??"<unknown>"];if(e.function)r.push(`in ${e.function}`);if(e.lineNo!==null&&e.lineNo>0){let H=e.colNo!==null&&e.colNo>0?`${e.lineNo}:${e.colNo}`:String(e.lineNo);r.push(`at line ${H}`)}return r.join(" ")}function My(e){return e.context.length>0||e.vars!==null&&Object.keys(e.vars).length>0}function Cy(e){let t=e.filename??e.absPath??"";if(t.endsWith(".tsx"))return"tsx";if(t.endsWith(".ts"))return"typescript";if(t.endsWith(".js")||t.endsWith(".jsx"))return"javascript";if(t.endsWith(".md"))return"markdown";if(t.endsWith(".py")||t.endsWith(".pyi"))return"python";if(t.endsWith(".rb"))return"ruby";if(t.endsWith(".php"))return"php";if(t.endsWith(".go"))return"go";return}import{useCallback as Qy,useState as Eq}from"h:0__";import{useKeyboard as Kq}from"h:4___________";import{jsxDEV as nr}from"h:6___________________________";var Ie=" ",WH=18;function kt(){let e=_();return nr("text",{fg:e.subText,children:" \xB7 "},void 0,!1,void 0,this)}function tt({children:e}){let t=_();return nr("text",{fg:t.subText,children:`${Ie}${e}`},void 0,!1,void 0,this)}function Es(e){return k(D(e,WH-1),WH)}function vt({name:e,value:t,width:r}){let H=_();return nr("box",{style:{flexDirection:"row",width:r},children:[nr("text",{fg:H.muted,children:`${Ie}${Es(e)}`},void 0,!1,void 0,this),nr("text",{fg:H.text,children:D(t,Math.max(0,r-WH-Ie.length))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function co({index:e,title:t,count:r,collapsed:H,width:n,onToggle:o,children:a}){let s=_(),i=r===void 0?t:`${t} (${r})`,l=`${H?"\u25B8":"\u25BE"} ${e} `,c=Math.max(0,n-Ae(l)-Ae(i)-1);return nr("box",{style:{flexDirection:"column",width:n,paddingTop:1},children:[nr("box",{style:{flexDirection:"row",width:n},onMouseDown:o,children:[nr("text",{fg:s.accent,children:l},void 0,!1,void 0,this),nr("text",{fg:s.text,attributes:G,children:i},void 0,!1,void 0,this),nr("text",{fg:s.border,children:` ${"\u2500".repeat(c)}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this),H?null:a]},void 0,!0,void 0,this)}function lo(e,t){let[r,H]=Eq(()=>new Set),n=Qy((a)=>{H((s)=>{let i=new Set(s);if(i.has(a))i.delete(a);else i.add(a);return i})},[]),o=Qy(()=>{H((a)=>a.size===e.length?new Set:new Set(e))},[e]);return Kq((a)=>{if(!t)return;tr([()=>{if(j("sentry.view.toggleAllSections",a))return o(),"mine";if(j("sentry.view.toggleSection",a)){let s=e[Number(a.name)-1];if(!s)return"notMine";return n(s),"mine"}return"notMine"}],a,mt)}),{collapsed:r,toggle:n}}import{useEffect as zq,useState as Jq}from"h:0__";import{addDefaultParsers as Zq}from"h:3__________";var Ny="./assets/highlights-9wx8m64k.scm";var jy="./assets/tree-sitter-go-dve313fn.wasm";var Dy="./assets/highlights-bds7v5h1.scm";var Ry="./assets/tree-sitter-php-only-jk6j4gjt.wasm";var vy="./assets/highlights-k2cbtg72.scm";var Gy="./assets/tree-sitter-python-d56ewc8c.wasm";var Ey="./assets/highlights-3ybh5bp2.scm";var Ky="./assets/tree-sitter-ruby-kmdgpnz0.wasm";function Xy(){Zq([{filetype:"python",wasm:Gy,queries:{highlights:[vy]}},{filetype:"ruby",wasm:Ky,queries:{highlights:[Ey]}},{filetype:"php",wasm:Ry,queries:{highlights:[Dy]}},{filetype:"go",wasm:jy,queries:{highlights:[Ny]}}])}Xy();function Ao(){let e=_(),[t,r]=Jq();return zq(()=>{let H=!1;return r(void 0),gl(e).then((n)=>{if(!H)r(n)}).catch(()=>{if(!H)r(void 0)}),()=>{H=!0}},[e]),t}import{jsxDEV as Re}from"h:6___________________________";function Ks(e,t,r){return`${e}:${t}:${r}`}function Wy({value:e,traceId:t,exceptionIndex:r,width:H,expandedFrames:n,selectedFrame:o,selectedFrameId:a,onFrameClick:s,includeSystemFrames:i}){let l=_(),c=io(e.stacktrace,{includeSystemFrames:i});return Re("box",{style:{flexDirection:"column",width:H},children:[Re("text",{fg:l.danger,attributes:1,children:D(e.type??"Error",H)},void 0,!1,void 0,this),e.value?Re("text",{fg:l.text,children:D(e.value,H)},void 0,!1,void 0,this):null,e.mechanism?Re("text",{fg:l.muted,children:`mechanism: ${e.mechanism.type}${e.mechanism.handled?"":" \xB7 unhandled"}`},void 0,!1,void 0,this):null,c.map((A)=>{if(A.kind==="omitted")return Re("text",{fg:l.muted,children:` \u2026 frames ${A.from}\u2013${A.to} omitted`},`omitted-${A.from}`,!1,void 0,this);let u=Ks(t,r,A.index);return Re(eM,{frame:A.frame,width:H,repeats:A.repeats,hiddenBefore:A.hiddenBefore,expanded:n.has(u),selected:o===u,selectedId:a,onClick:()=>s(u)},A.index,!1,void 0,this)}),c.length===0?Re("text",{fg:l.muted,children:"No stack trace available."},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function eM({frame:e,width:t,repeats:r,hiddenBefore:H,expanded:n,selected:o,selectedId:a,onClick:s}){let i=_(),c=My(e)?n?"\u25BE":"\u25B8":" ";return Re("box",{style:{flexDirection:"column",width:t},children:[H>0?Re("text",{fg:i.muted,children:` \u25B8 ${H} more frame${H===1?"":"s"}`},void 0,!1,void 0,this):null,Re("box",{id:o?a:void 0,style:{flexDirection:"row",width:t,backgroundColor:o?i.selected:void 0},onMouseDown:s,children:[Re("text",{fg:o?i.accent:i.muted,children:`${o?"\u276F":" "} ${c} `},void 0,!1,void 0,this),Re("text",{fg:e.inApp?i.text:i.muted,children:D(qy(e),t-15)},void 0,!1,void 0,this),Re("box",{style:{flexGrow:1}},void 0,!1,void 0,this),r>0?Re("text",{fg:i.muted,children:`\xD7${r+1} `},void 0,!1,void 0,this):null,e.inApp?Re("text",{fg:i.accent,children:"In App"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),n?Re(tM,{frame:e,width:t},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function tM({frame:e,width:t}){let r=_(),H=Ao(),n=H?Cy(e):void 0,o=e.vars?Object.entries(e.vars):[];return Re("box",{style:{flexDirection:"column",width:t,paddingLeft:5},children:[e.context.map(([a,s])=>{let i=a===e.lineNo,l=String(a).padStart(5);return Re("box",{style:{flexDirection:"row",width:t-5},children:[Re("text",{fg:i?r.accent:r.muted,children:`${l} ${i?"\u276F":" "} `},void 0,!1,void 0,this),n&&H?Re("code",{content:s??"",filetype:n,syntaxStyle:H,style:{flexGrow:1}},void 0,!1,void 0,this):Re("text",{fg:i?r.text:r.muted,children:D(s??"",t-14)},void 0,!1,void 0,this)]},a,!0,void 0,this)}),o.length>0?Re("box",{style:{flexDirection:"column",paddingTop:1},children:[Re("text",{fg:r.muted,children:"Local variables"},void 0,!1,void 0,this),o.map(([a,s])=>Re("text",{fg:r.muted,children:D(` ${a} = ${rM(s)}`,t-6)},a,!1,void 0,this))]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)}function rM(e){if(typeof e==="string")return e;try{return JSON.stringify(e)??String(e)}catch{return String(e)}}import{useEffect as HM,useRef as By,useState as nM}from"h:0__";function Fy(e,{org:t,issueId:r,eventId:H="latest",reloadToken:n=0}){let[o,a]=nM(de),s=By(o);s.current=o;let i=By(null);return HM(()=>{if(!e||!r){i.current=null,a(de());return}let l=new AbortController,c=!1,A=i.current===r;return i.current=r,a(Se(A?s.current:de(),Date.now())),(async()=>{try{let u=await cc(e,{org:t,issueId:r,eventId:H,signal:l.signal});if(c)return;a(pe(u,Date.now()))}catch(u){if(c||l.signal.aborted)return;a(me(s.current,{message:u instanceof Error?u.message:String(u),retryable:u instanceof sr?u.retryable:!0}))}})(),()=>{c=!0,l.abort()}},[e,t,r,H,n]),o}import{jsxDEV as F}from"h:6___________________________";var $y=["exception","breadcrumbs","request","tags","contexts","sdk"],iM={exception:"Stack Trace",breadcrumbs:"Breadcrumbs",request:"Request",tags:"Tags",contexts:"Contexts",sdk:"SDK"},Vy=24,cM=3,Zy="issue-detail-selected-frame";function Ws({client:e,org:t,group:r,width:H,height:n,focused:o,eventId:a,reloadToken:s}){let i=_(),l=Fy(e,{org:t,issueId:r.id,eventId:a,reloadToken:s}),c=W(l),A=oe(l),u=_e(l),d=Uy(null),{collapsed:p,toggle:g}=lo($y,o),[m,O]=Yy(),y=Uy(m),[L,f]=Yy(()=>new Map),h=c?(Fr(c.entries,"exception")?.data.values??[]).flatMap((C,b)=>io(C.stacktrace).filter((T)=>T.kind==="frame").map((T)=>({key:Ks(c.id,b,T.index),row:T}))):[],w=h.find((C)=>C.key===m)??h[0],S=h[0]?.key,I=new Set(h.filter((C)=>L.get(C.key)??C.key===S).map((C)=>C.key));aM(()=>{if(m===w?.key)return;y.current=w?.key,O(w?.key)},[w?.key,m]);let P=Xs((C)=>{f((b)=>{let T=new Map(b),Q=b.get(C)??C===S;return T.set(C,!Q),T})},[S]),x=Xs((C)=>{let b=h[Math.max(0,Math.min(C,h.length-1))];if(!b)return;y.current=b.key,O(b.key)},[h]),q=Xs((C)=>{let b=h.findIndex((T)=>T.key===C);if(b<0)return;x(b),P(C)},[h,x,P]);sM((C)=>{if(!o||p.has("exception")||!w)return;if(j("sentry.nav.down",C)){let b=Math.max(0,h.findIndex((T)=>T.key===y.current));x(b+1),mt(C);return}if(j("sentry.nav.up",C)){let b=Math.max(0,h.findIndex((T)=>T.key===y.current));x(b-1),mt(C);return}if(j("sentry.nav.open",C)){let b=h.find((T)=>T.key===y.current)??w;P(b.key),mt(C)}}),oM(()=>{d.current?.scrollChildIntoView(Zy)},[w?.key,L,n]);let v=Math.max(20,H-2);return F("scrollbox",{ref:d,focused:o,verticalScrollbarOptions:{showArrows:!1,trackOptions:{backgroundColor:i.panel,foregroundColor:i.muted}},style:{width:H,height:n,paddingLeft:1},children:[F(dM,{group:r,width:v},void 0,!1,void 0,this),u?F("text",{fg:i.muted,children:`${Ie}Loading event\u2026`},void 0,!1,void 0,this):null,A?F("box",{style:{flexDirection:"column",paddingTop:1},children:[F("text",{fg:i.danger,children:`${Ie}Failed to load event`},void 0,!1,void 0,this),F("text",{fg:i.muted,children:D(`${Ie}${A.message}`,v)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,c?$y.map((C,b)=>F(co,{index:b+1,title:iM[C],count:pM(C,c),collapsed:p.has(C),width:v,onToggle:()=>g(C),children:F(mM,{sectionKey:C,event:c,width:v,expandedFrames:I,selectedFrame:w?.key,selectedFrameId:Zy,onFrameClick:q},void 0,!1,void 0,this)},C,!1,void 0,this)):null]},void 0,!0,void 0,this)}function lM(e,t){if(e.status===bt.RESOLVED)return{label:"resolved",color:t.status.resolved};if(e.status===bt.IGNORED)return{label:"archived",color:t.status.archived};switch(e.substatus){case Br.NEW:return{label:"new",color:t.status.new};case Br.REGRESSED:return{label:"regressed",color:t.status.regressed};case Br.ESCALATING:return{label:"escalating",color:t.status.escalating};default:return{label:"unresolved",color:t.status.ongoing}}}function AM(e){let t=[e.status===bt.RESOLVED?{command:"sentry.issue.unresolve",label:"unresolve"}:{command:"sentry.issue.resolve",label:"resolve"},e.status===bt.IGNORED?{command:"sentry.issue.archive",label:"unarchive"}:{command:"sentry.issue.archive",label:"archive"},{command:"sentry.issue.bookmark",label:e.isBookmarked?"unbookmark":"bookmark"}];if(!e.hasSeen)t.push({command:"sentry.issue.markReviewed",label:"review"});return t}function uM(e){let t=e.stats?.["24h"],r=t?.length?Math.min(Vy,t.length):0;return Nn(t,r||Vy,cM,{floor:!0})}function dM({group:e,width:t}){let r=_(),H=r.level[e.level]??r.level.unknown,n=lM(e,r),o=Math.max(12,t-2),a=uM(e),s=Math.max(...a.map(Ae));return F("box",{style:{flexDirection:"column",width:t},children:[F("box",{style:{flexDirection:"row",width:t},children:[F("text",{fg:H,children:"\u2503 "},void 0,!1,void 0,this),F(sH,{text:KH(e),fallback:"(no title)",width:o,fg:r.text,attributes:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this),F("box",{style:{flexDirection:"row",width:t},children:[F("text",{fg:H,children:"\u2503 "},void 0,!1,void 0,this),F(sH,{text:ro(e),fallback:"(no error message)",width:o,fg:r.muted},void 0,!1,void 0,this)]},void 0,!0,void 0,this),F("box",{style:{flexDirection:"row",width:t,paddingTop:1},children:[F("text",{children:Ie},void 0,!1,void 0,this),F("text",{fg:n.color,children:n.label},void 0,!1,void 0,this),F(kt,{},void 0,!1,void 0,this),F(Vr,{platform:e.project.platform},void 0,!1,void 0,this),F("text",{fg:r.muted,children:e.project.slug},void 0,!1,void 0,this),F(kt,{},void 0,!1,void 0,this),F("text",{fg:r.muted,children:e.priority?`${e.priority} priority`:"no priority"},void 0,!1,void 0,this),F(kt,{},void 0,!1,void 0,this),F("text",{fg:r.muted,children:e.assignedTo?.name??"unassigned"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),F("box",{style:{flexDirection:"row",width:t,alignItems:"center",paddingTop:1},children:[F("text",{children:Ie},void 0,!1,void 0,this),F("text",{fg:r.muted,children:"24h "},void 0,!1,void 0,this),F("box",{style:{flexDirection:"column",alignItems:"flex-start",width:s,flexShrink:0},children:a.map((i,l)=>F("text",{fg:r.accent,children:i},l,!1,void 0,this))},void 0,!1,void 0,this),F("text",{children:" "},void 0,!1,void 0,this),F("text",{fg:r.muted,children:tH(e.count,"event")},void 0,!1,void 0,this),F(kt,{},void 0,!1,void 0,this),F("text",{fg:r.muted,children:tH(e.userCount,"user")},void 0,!1,void 0,this),F(kt,{},void 0,!1,void 0,this),F("text",{fg:r.muted,children:`first seen ${ke(e.firstSeen)} ago`},void 0,!1,void 0,this),F(kt,{},void 0,!1,void 0,this),F("text",{fg:r.muted,children:`last seen ${ke(e.lastSeen)} ago`},void 0,!1,void 0,this)]},void 0,!0,void 0,this),F("box",{style:{flexDirection:"row",width:t},children:[F("text",{children:Ie},void 0,!1,void 0,this),F(mn,{chips:AM(e)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),F("text",{fg:r.border,children:"\u2500".repeat(t)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function pM(e,t){switch(e){case"breadcrumbs":return Fr(t.entries,"breadcrumbs")?.data.values?.length;case"tags":return t.tags?.length;case"contexts":return Object.keys(t.contexts??{}).length;default:return}}function mM({sectionKey:e,event:t,width:r,expandedFrames:H,selectedFrame:n,selectedFrameId:o,onFrameClick:a}){let s=_();switch(e){case"exception":{let l=Fr(t.entries,"exception")?.data.values??[];if(l.length===0)return F(tt,{children:"No exception on this event."},void 0,!1,void 0,this);return F("box",{style:{flexDirection:"column",paddingLeft:Ie.length},children:l.map((c,A)=>F(Wy,{value:c,traceId:t.id,exceptionIndex:A,width:r-Ie.length,expandedFrames:H,selectedFrame:n,selectedFrameId:o,onFrameClick:a,includeSystemFrames:!1},A,!1,void 0,this))},void 0,!1,void 0,this)}case"breadcrumbs":{let i=Fr(t.entries,"breadcrumbs")?.data.values??[];if(i.length===0)return F(tt,{children:"No breadcrumbs."},void 0,!1,void 0,this);return F("box",{style:{flexDirection:"column",width:r},children:i.map((l,c)=>F(gM,{crumb:l,width:r},c,!1,void 0,this))},void 0,!1,void 0,this)}case"request":{let i=Fr(t.entries,"request")?.data;if(!i?.url)return F(tt,{children:"No request data."},void 0,!1,void 0,this);return F("box",{style:{flexDirection:"column",width:r},children:[F("text",{fg:s.text,children:D(`${Ie}${i.method??"GET"} ${i.url}`,r)},void 0,!1,void 0,this),(i.headers??[]).map(([l,c])=>F(vt,{name:l,value:c,width:r},l,!1,void 0,this))]},void 0,!0,void 0,this)}case"tags":{let i=t.tags??[];if(i.length===0)return F(tt,{children:"No tags."},void 0,!1,void 0,this);return F("box",{style:{flexDirection:"column",width:r},children:i.map((l)=>F(vt,{name:l.key,value:l.value,width:r},l.key,!1,void 0,this))},void 0,!1,void 0,this)}case"contexts":{let i=Object.entries(t.contexts??{});if(i.length===0)return F(tt,{children:"No contexts."},void 0,!1,void 0,this);return F("box",{style:{flexDirection:"column",width:r},children:i.map(([l,c])=>F(vt,{name:l,value:zy(c),width:r},l,!1,void 0,this))},void 0,!1,void 0,this)}case"sdk":if(!t.sdk)return F(tt,{children:"Unknown SDK."},void 0,!1,void 0,this);return F("box",{style:{flexDirection:"row",width:r},children:[F("text",{fg:s.text,children:`${Ie}${t.sdk.name}`},void 0,!1,void 0,this),F("text",{fg:s.muted,children:` ${t.sdk.version}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}}function gM({crumb:e,width:t}){let r=_(),H=e.timestamp?e.timestamp.slice(11,19):"--:--:--",n=e.category??e.type,o=e.message??zy(e.data??{}),a=Ie.length+H.length+2+WH;return F("box",{style:{flexDirection:"row",width:t},children:[F("text",{fg:r.subText,children:`${Ie}${H} `},void 0,!1,void 0,this),F("text",{fg:r.muted,children:Es(n)},void 0,!1,void 0,this),F("text",{fg:r.text,children:D(o,Math.max(0,t-a))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function zy(e){return Object.entries(e).filter(([t])=>t!=="type").map(([t,r])=>`${t}=${String(r)}`).join(" ")}import{jsxDEV as $e}from"h:6___________________________";var yM=1,fM=1;function Vt(e){let{client:t,org:r,state:H,focused:n,width:o,height:a,reloadToken:s,pendingIds:i,pushView:l,activateRow:c,registerActions:A}=e,u=_(),{dispatch:d}=H,p="screen"in e?Hl(e.screen.item):void 0,g="screen"in e?p?.label:e.title,m="screen"in e?p?.description:e.description,O="screen"in e?e.onProjectSelect:(ne)=>d({type:"setSelectedProjects",payload:ne}),y=Fs(null),L=Fs(null),f=Bs((ne)=>{let N=Ut(H)[ne];if(N)l(SM(N,t,r))},[H,l,t,r]),h=Bs(()=>d({type:"setOpenDropdown",payload:null}),[d]),w=Bs((ne)=>{let N=y.current;if(N)N.removeAllListeners(uo.FOCUSED),N.removeAllListeners(uo.BLURRED);if(y.current=ne,ne)ne.on(uo.FOCUSED,H.focusSearch),ne.on(uo.BLURRED,H.handleSearchBlur)},[H.focusSearch,H.handleSearchBlur]),S=oc(H.sort),{issues:I,statsLoading:P,nextCursor:x,prevCursor:q,page:v,nextPage:C,previousPage:b}=ao(t,{org:r,query:H.committedQuery,sort:S,statsPeriod:H.statsPeriod,project:H.selectedProjects.length>0?H.selectedProjects:void 0,environment:H.selectedEnvs.length>0?H.selectedEnvs:void 0,reloadToken:s});De(A,{open:f,nextPage:C,previousPage:b});let T=Fs(v);po(()=>{if(T.current===v)return;T.current=v,d({type:"setSelected",payload:0})},[v,d]);let Q=I.state==="loading",B=Ye(I),R=W(I),K=Ut(H),ee=K.length>0?K:R,ae=oe(I),He=ee!==void 0&&(Q||ae!==void 0);po(()=>{if(R)d({type:"setEntries",payload:R})},[R,d]),po(()=>{d({type:"setStatus",payload:{loading:Q||P,since:B,error:ae?.message,noun:"issues"}})},[Q,P,B,ae,I,d]),Jr(L,{index:H.selected,rowCount:ee?.length??0,rowHeight:Ds,layout:[a]});let se=OM(()=>(ee??[]).some((ne)=>ne.assignedTo?.type==="user"),[ee]),le=Py(t,r,se),ue=Math.max(20,o-yM);return $e("box",{style:{flexDirection:"column",width:o,height:a},children:[g?$e("box",{style:{flexDirection:"row",width:o,flexShrink:0,paddingLeft:1},children:[$e("text",{fg:u.text,attributes:G,children:g},void 0,!1,void 0,this),m?$e("text",{fg:u.muted,children:` ${D(m,Math.max(0,ue-Ae(g)-3))}`},void 0,!1,void 0,this):null]},void 0,!0,void 0,this):null,$e("box",{style:{flexDirection:"row",width:o,flexShrink:0,height:3,border:!0,borderStyle:"rounded",borderColor:H.searchFocused?u.accent:u.border,backgroundColor:u.panel,paddingLeft:1,paddingRight:1},children:[$e(Nt,{},void 0,!1,void 0,this),$e("input",{ref:w,value:H.searchQuery,placeholder:"Search issues\u2026",focused:H.searchFocused,onInput:(ne)=>d({type:"setSearchQuery",payload:ne}),style:{flexGrow:1,textColor:u.text,backgroundColor:u.panel,focusedTextColor:u.text,focusedBackgroundColor:u.panel,placeholderColor:u.subText}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),$e(Be,{client:t,org:r,openDropdown:H.openDropdown,selectedProjects:H.selectedProjects,selectedEnvs:H.selectedEnvs,statsPeriod:H.statsPeriod,sort:{value:S,items:Aa,onChange:(ne)=>d({type:"setSort",payload:ne})},width:o,anchorTop:he+(g?fM:0),onProjectChange:O,onEnvChange:(ne)=>d({type:"setSelectedEnvs",payload:ne}),onPeriodChange:(ne)=>d({type:"setStatsPeriod",payload:ne}),onDropdownClose:h,onDropdownOpen:(ne)=>d({type:"setOpenDropdown",payload:ne})},void 0,!1,void 0,this),$e(Ho,{width:ue,selectionBelow:n&&H.selected===0&&(ee?.length??0)>0},void 0,!1,void 0,this),$e("scrollbox",{ref:L,focused:n,verticalScrollbarOptions:{showArrows:!1,trackOptions:{backgroundColor:u.panel,foregroundColor:u.muted}},style:{flexGrow:1,flexBasis:0,width:o},children:[ee===void 0&&_e(I)?$e(Iy,{width:ue,rows:la},void 0,!1,void 0,this):null,ee!==void 0&&ee.length===0&&!Q?$e(by,{query:H.committedQuery},void 0,!1,void 0,this):null,ee?.map((ne,N)=>$e(no,{group:ne,selected:n&&N===H.selected,selectionBelow:n&&N+1===H.selected,width:ue,pending:i.has(ne.id),assigneeAvatarUrl:gy(ne.assignedTo,le),onClick:()=>c(N)},ne.id,!1,void 0,this)),ae&&ee===void 0?$e(wy,{error:ae},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),He?$e("text",{fg:u.muted,children:ae?` \u26A0 ${D(ae.message,ue-3)}`:""},void 0,!1,void 0,this):null,$e(Me,{count:ee?.length,noun:"issue",hasMore:x!==null,pagination:x!==null||q!==null||v>1?{page:v,hasPrevious:v>1&&q!==null,hasNext:x!==null,loading:Q,onPrevious:b,onNext:C}:void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function SM(e,t,r){return{id:`issue:${e.id}`,label:e.shortId,issue:e,render:(H)=>$e(Ws,{client:t,org:r,group:H.issue??e,width:H.width,height:H.height,focused:H.focused,reloadToken:H.reloadToken},void 0,!1,void 0,this)}}var _M=(e,{org:t,id:r,signal:H})=>ic(e,{org:t,issueId:r,signal:H});function mo(e,t){return{id:`issue:${e}`,label:`Issue ${e}`,render:(r)=>$e(kM,{...r,issueId:e,eventId:t},void 0,!1,void 0,this)}}function kM({client:e,org:t,issueId:r,eventId:H,reloadToken:n,width:o,height:a,focused:s,updateView:i,issue:l}){let c=iH(e,{org:t,id:r,reloadToken:n,load:_M}),A=W(c);if(po(()=>{if(A)i(`issue:${r}`,{label:A.shortId,issue:A})},[A,r,i]),!A)return $e(aH,{status:c,noun:"issue",width:o,height:a},void 0,!1,void 0,this);return $e(Ws,{client:e,org:t,group:l??A,eventId:H,width:o,height:a,focused:s,reloadToken:n},void 0,!1,void 0,this)}import{useCallback as sf}from"h:0__";import{useEffect as rf,useMemo as wM,useRef as TM}from"h:0__";var Us=[{value:"popularity",label:"Most Starred"},{value:"visited",label:"Recently Viewed"},{value:"name",label:"Name (A-Z)"},{value:"-name",label:"Name (Z-A)"},{value:"-created",label:"Created (Newest)"},{value:"created",label:"Created (Oldest)"}];function Jy(e){return Us.some((t)=>t.value===e)?e:"popularity"}function hM(e){switch(e){case"popularity":return["-popularity","-visited","-created"];case"visited":return["-visited","-popularity","-created"];case"name":return["name","-visited","-created"];case"-name":return["-name","-visited","-created"];case"created":return["created","-popularity","-visited"];case"-created":return["-created","-popularity","-visited"]}}var LM=20;async function Ys(e,{org:t,createdBy:r,sort:H="popularity",limit:n=LM,cursor:o,signal:a}){return e.request(`/organizations/${t}/group-search-views/`,{query:{createdBy:r,sort:hM(H),per_page:n,cursor:o},signal:a})}import{useEffect as IM,useRef as bM,useState as ef}from"h:0__";function tf(e,{org:t,sort:r,reloadToken:H=0}){let[n,o]=ef(de),[a,s]=ef({mine:null,others:null}),i=bM(n);return i.current=n,IM(()=>{if(!e)return;let l=new AbortController,{signal:c}=l,A=!1;return o(Se(i.current,Date.now())),(async()=>{try{let[u,d]=await Promise.all([Ys(e,{org:t,createdBy:"me",sort:r,signal:c}),Ys(e,{org:t,createdBy:"others",sort:r,signal:c})]);if(A)return;s({mine:u.nextCursor,others:d.nextCursor}),o(pe([{title:"Created by Me",views:u.data},{title:"Created by Others",views:d.data}],Date.now()))}catch(u){if(A||c.aborted)return;o(me(i.current,qe(u)))}})(),()=>{A=!0,l.abort()}},[e,t,r,H]),{sections:n,nextCursors:a}}import{jsxDEV as We}from"h:6___________________________";var xM=1,Hf=26,nf=10,of=6,PM=1;function af({client:e,org:t,width:r,height:H,focused:n,selectedIndex:o,sort:a,openDropdown:s,onSortChange:i,onDropdownOpen:l,onDropdownClose:c,onRowsChange:A,onStatusChange:u,reloadToken:d}){let p=_(),g=TM(null),m=Jy(a),{sections:O,nextCursors:y}=tf(e,{org:t,sort:m,reloadToken:d}),L=W(O),f=oe(O),h=O.state==="loading",w=wM(()=>(L??[]).flatMap((P)=>P.views.map((x)=>({view:x,projectIds:x.projects.filter((q)=>q!==-1).map(String),statsPeriod:x.timeFilters?.period??Lt}))),[L]);rf(()=>{A?.(w)},[w,A]),rf(()=>{u?.({loading:h,error:f?.message})},[h,f,u]),Jr(g,{index:o,rowCount:w.length,rowHeight:xM,layout:[H]});let S=Math.max(20,r-PM),I=-1;return We("box",{style:{flexDirection:"column",width:r,height:H},children:[We("box",{style:{flexDirection:"row",width:r,flexShrink:0,paddingLeft:1},children:[We("text",{fg:p.text,attributes:G,children:"All Views"},void 0,!1,void 0,this),We("text",{fg:p.muted,children:" Saved issue searches for this organization."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),We(nH,{value:m,items:Us,open:s==="sort",width:r,anchorTop:1,onChange:i,onOpen:l,onClose:c},void 0,!1,void 0,this),We("scrollbox",{ref:g,focused:n,verticalScrollbarOptions:{showArrows:!1,trackOptions:{backgroundColor:p.panel,foregroundColor:p.muted}},style:{flexGrow:1,flexBasis:0,width:r},children:[L===void 0&&_e(O)?We("text",{fg:p.muted,children:" Loading views\u2026"},void 0,!1,void 0,this):null,f&&L===void 0?We("box",{style:{flexDirection:"column",padding:1},children:[We("text",{fg:p.danger,children:"Failed to load views"},void 0,!1,void 0,this),We("text",{fg:p.muted,children:f.message},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,L?.map((P)=>We("box",{style:{flexDirection:"column",width:S},children:[We("text",{fg:p.muted,attributes:G,children:` ${P.title}`},void 0,!1,void 0,this),P.views.length===0?We("text",{fg:p.subText,children:" No saved views."},void 0,!1,void 0,this):null,P.views.map((x)=>(I+=1,We(qM,{view:x,width:S,selected:n&&I===o},x.id,!1,void 0,this)))]},P.title,!0,void 0,this))]},void 0,!0,void 0,this),We(Me,{count:L===void 0?void 0:w.length,noun:"view",hasMore:y.mine!==null||y.others!==null},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function qM({view:e,width:t,selected:r}){let H=_(),n=r?"\u276F":" ",o=e.starred?"\u2605":" ",a=2+Hf+nf+of+3,s=Math.max(6,t-a);return We("box",{style:{flexDirection:"row",width:t,backgroundColor:r?H.panel:void 0},children:[We("text",{fg:H.accent,children:n},void 0,!1,void 0,this),We("text",{fg:e.starred?H.warning:H.muted,children:o},void 0,!1,void 0,this),We("text",{fg:r?H.text:H.subText,attributes:r?G:0,children:` ${k(e.name,Hf)}`},void 0,!1,void 0,this),We("text",{fg:H.muted,children:` ${k(D(e.query,s),s)}`},void 0,!1,void 0,this),We("text",{fg:H.subText,children:` ${k(e.lastVisited?ke(e.lastVisited):"\u2014",nf,"right")}`},void 0,!1,void 0,this),We("text",{fg:H.subText,children:k(`${e.stars}\u2605`,of,"right")},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{jsxDEV as lf}from"h:6___________________________";function cf(e){let{client:t,org:r,state:H,focused:n,width:o,height:a,reloadToken:s,pushView:i,registerActions:l}=e,{dispatch:c}=H,A=sf((d)=>{let p=Ut(H)[d];if(p)i(MM(p))},[H,i]);De(l,{open:A});let u=sf((d)=>c({type:"setStatus",payload:{...d,noun:"saved views"}}),[c]);return lf(af,{client:t,org:r,width:o,height:a,focused:n,selectedIndex:H.selected,sort:H.sort,openDropdown:H.openDropdown,onSortChange:(d)=>c({type:"setSort",payload:d}),onDropdownOpen:()=>c({type:"setOpenDropdown",payload:"sort"}),onDropdownClose:()=>c({type:"setOpenDropdown",payload:null}),onRowsChange:(d)=>c({type:"setEntries",payload:d}),onStatusChange:u,reloadToken:s},void 0,!1,void 0,this)}function MM(e){return{id:`saved-view:${e.view.id}`,label:e.view.name,stateKey:ol,initialState:{query:e.view.query,sort:e.view.querySort,statsPeriod:e.statsPeriod,selectedProjects:e.projectIds,selectedEnvs:e.view.environments},render:(t)=>t.state?lf(Vt,{...t,state:t.state,title:e.view.name,description:e.view.query},void 0,!1,void 0,this):null}}import{useCallback as oi,useEffect as Mo,useMemo as ai,useRef as _S}from"h:0__";var Te={error:"error",metric:"metric_issue",cron:"monitor_check_in_failure",uptime:"uptime_domain_failure",issueStream:"issue_stream",mobileBuild:"preprod_size_analysis"},CM=50,Vs=[{value:"-latestGroup",label:"Latest Issue (newest)"},{value:"latestGroup",label:"Latest Issue (oldest)"},{value:"name",label:"Name (A-Z)"},{value:"-name",label:"Name (Z-A)"},{value:"type",label:"Type (A-Z)"},{value:"-type",label:"Type (Z-A)"},{value:"-connectedWorkflows",label:"Most Alerts"},{value:"connectedWorkflows",label:"Fewest Alerts"}],Af="-latestGroup";function uf(e){return Vs.some((t)=>t.value===e)?e:Af}var $s=100;async function df(e,{org:t,query:r,sortBy:H=Af,project:n,limit:o=CM,cursor:a,signal:s}){let i=await sa({...e.generatedOptions(s),path:{organization_id_or_slug:t},query:{query:r||void 0,sortBy:H,project:Ee(n),per_page:o}},a);return e.generatedPage({...i,data:Of(i.data)})}async function pf(e,{org:t,detectorId:r,signal:H}){return(await e.request(`/organizations/${t}/detectors/${r}/`,{signal:H})).data}var QM=20;async function mf(e,{org:t,detectorId:r,statsPeriod:H,limit:n=QM,cursor:o,signal:a}){return e.request(`/organizations/${t}/open-periods/`,{query:{detectorId:r,statsPeriod:H,per_page:n,cursor:o},signal:a})}async function gf(e,{org:t,ids:r,signal:H}){let n=[...new Set(r)];if(n.length===0)return[];let o=[];for(let s=0;s<n.length;s+=$s)o.push(n.slice(s,s+$s));return(await Promise.all(o.map((s)=>sa({...e.generatedOptions(H),path:{organization_id_or_slug:t},query:{id:s.map(Number),per_page:$s}}).then((i)=>Of(i.data)).catch(()=>[])))).flat()}function Of(e){return Array.isArray(e)?e:[]}var yf="\u254C",NM={ok:"\u2584",missed:"\u2591",timeout:"\u2592",in_progress:"\u2593",error:"\u2588",unknown:"?"},jM={ok:"Okay",error:"Failed",in_progress:"In Progress",missed:"Missed",timeout:"Timed Out",unknown:"Unknown"},ff={precedence:["unknown","error","timeout","missed","ok","in_progress"],glyphs:NM,labels:jM},DM={success:"\u2584",missed_window:"?",failure:"\u2593",failure_incident:"\u2588"},RM={success:"Uptime",failure:"Failure",failure_incident:"Downtime",missed_window:"Unknown"},Sf={precedence:["failure_incident","failure","success","missed_window"],glyphs:DM,labels:RM};function _f(e,t){if(!Number.isFinite(e)||!Number.isFinite(t))return 60;if(e<=0||t<=0)return 60;return Math.max(60,Math.ceil(e/Math.floor(t)))}function go(e,{width:t,since:r,until:H,config:n}){let o=Math.max(0,Math.floor(t));if(o===0)return[];let a=H>r?H-r:0,s=a/o,i=Array.from({length:o},(l,c)=>({status:null,glyph:"\xB7",total:0,counts:{},start:r+Math.round(c*s),end:r+Math.round((c+1)*s)}));if(a>0)for(let l of e??[]){let c=l?.[0],A=l?.[1];if(typeof c!=="number"||!Number.isFinite(c)||!A)continue;let u=Math.min(o-1,Math.max(0,Math.floor((c-r)/a*o)));vM(i[u],A)}for(let l of i)GM(l,n);return i}function kf(e,t){return t.precedence.map((r)=>({status:r,label:t.labels[r],count:e.reduce((H,n)=>H+(n.counts[r]??0),0)})).filter((r)=>r.count>0)}function vM(e,t){for(let[r,H]of Object.entries(t)){if(typeof H!=="number"||!Number.isFinite(H)||H<=0)continue;e.counts[r]=(e.counts[r]??0)+H,e.total+=H}}function GM(e,t){if(e.total===0)return;let r=t.precedence.find((H)=>(e.counts[H]??0)>0);if(r===void 0){e.glyph="?";return}e.status=r,e.glyph=t.glyphs[r]??"?"}function Zs(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)?Object.entries(e):[]}function Lf(e){let t={};for(let[r,H]of Zs(e))if(typeof H==="number"&&Number.isFinite(H))t[r]=H;return t}function EM(e){if(!Array.isArray(e)||e.length!==2||typeof e[0]!=="number"||!Number.isFinite(e[0]))return;return[e[0],Lf(e[1])]}function KM(e){if(!Array.isArray(e)||e.length!==2||typeof e[0]!=="number"||!Number.isFinite(e[0]))return;let t={};for(let[r,H]of Zs(e[1]))t[r]=Lf(H);return[e[0],t]}function If(e,t){let r={};for(let[H,n]of Zs(e)){let o=[];if(Array.isArray(n))for(let a of n){let s=t(a);if(s!==void 0)o.push(s)}r[H]=o}return r}var XM=100,Oo=86400;function yo(e){let t=Kt(e);if(t===void 0||t<=0)return Oo;return Math.floor(t*60)}function zs(e,{windowSeconds:t=Oo,now:r=Date.now()}={}){let H=Math.floor(r/1000);return{since:H-t,until:H,resolution:_f(t,e)}}var hf=[60,120,300,600,900,1800,3600,7200,10800,14400,21600,43200,86400];function WM(e){if(!Number.isFinite(e))return hf[0];let t=hf,r=t[0];for(let H of t)if(H<=e)r=H;return r}function bf({since:e,until:t,resolution:r}){return{since:e,until:t,resolution:`${r}s`}}async function wf(e,{org:t,monitors:r,project:H,environment:n,signal:o,...a}){if(r.length===0)return{};let s=await e.request(`/organizations/${t}/monitors-stats/`,{query:{monitor:[...r],project:Ee(H),environment:n?[...n]:void 0,...bf(a)},signal:o});return If(s.data,KM)}async function Tf(e,{org:t,detectorIds:r,signal:H,...n}){let o=[...new Set(r)].slice(0,XM);if(o.length===0)return{};let a=await e.request(`/organizations/${t}/uptime-stats/`,{query:{uptimeDetectorId:o,...bf({...n,resolution:WM(n.resolution)})},signal:H});return If(a.data,EM)}function xf(e,t){return(e??[]).map(([r,H])=>{if(t!==void 0)return[r,H[t]??{}];let n={};for(let o of Object.values(H??{}))for(let[a,s]of Object.entries(o??{}))n[a]=(n[a]??0)+s;return[r,n]})}var BM=Te.issueStream,FM={"monitors.all":{title:"All Monitors",description:"Everything watching this organization.",searchPlaceholder:"Search monitors by name, type or assignee\u2026",emptyTitle:"No monitors found.",emptyLines:["This organization may not have monitors (the workflow engine) enabled.","Otherwise nothing is being monitored yet \u2014 create a monitor on sentry.io, as this client is read-only."]},"monitors.mine":{title:"My Monitors",description:"Monitors assigned to you or your teams.",assignee:"[me,my_teams]",searchPlaceholder:"Search your monitors\u2026",emptyTitle:"No monitors assigned to you.",emptyLines:["This organization may not have monitors (the workflow engine) enabled.","Otherwise nothing here is assigned to you or to a team you are on."]},"monitors.error":{title:"Error",description:"The per-project detectors that turn errors into issues.",type:Te.error,searchPlaceholder:"Search error monitors\u2026",emptyTitle:"No error monitors found.",emptyLines:["This organization may not have monitors (the workflow engine) enabled.","Error monitors are created by Sentry, one per project \u2014 an org with projects should have some."]},"monitors.metric":{title:"Metric",description:"Thresholds and anomalies over a metric.",type:Te.metric,searchPlaceholder:"Search metric monitors\u2026",emptyTitle:"No metric monitors found.",emptyLines:["This organization may not have monitors (the workflow engine) enabled.","Otherwise no metric monitor has been created yet."]},"monitors.cron":{title:"Cron",description:"Scheduled jobs that check in when they run.",type:Te.cron,searchPlaceholder:"Search cron monitors\u2026",emptyTitle:"No cron monitors found.",emptyLines:["This organization may not have crons enabled.","Otherwise no job is checking in yet \u2014 a cron monitor is created by its first check-in."]},"monitors.uptime":{title:"Uptime",description:"URLs Sentry checks on a schedule.",type:Te.uptime,searchPlaceholder:"Search uptime monitors\u2026",emptyTitle:"No uptime monitors found.",emptyLines:["This organization may not have uptime monitoring enabled.","Otherwise no URL is being checked yet."]},"monitors.mobile-build":{title:"Mobile Build",description:"Size regressions in mobile builds.",type:Te.mobileBuild,searchPlaceholder:"Search mobile build monitors\u2026",emptyTitle:"No mobile build monitors found.",emptyLines:["This organization may not have build size analysis (preprod) enabled.","Otherwise no build size monitor has been created yet."]}};function Pf(e){return FM[e]}function qf(e,t=""){let r=[`!type:${BM}`];if(e?.type)r.push(`type:${e.type}`);if(e?.assignee)r.push(`assignee:${e.assignee}`);let H=t.trim();if(H)r.push(H);return r.join(" ")}import{useEffect as UM,useMemo as fo,useRef as YM,useState as $M}from"h:0__";function So(e,{org:t,monitorIds:r,uptimeDetectorIds:H,width:n,statsPeriod:o,project:a,environment:s,reloadToken:i=0}){let[l,c]=$M(de),A=YM(l);A.current=l;let u=fo(()=>[...new Set(r)].sort().join(","),[r]),d=fo(()=>[...new Set(H)].sort().join(","),[H]),p=fo(()=>(a??[]).join(","),[a]),g=fo(()=>(s??[]).join(","),[s]),m=yo(o),O=zs(n,{windowSeconds:m}).resolution;return UM(()=>{if(!e)return;let y=u?u.split(","):[],L=d?d.split(","):[],f=zs(n,{windowSeconds:m});if(y.length===0&&L.length===0){c(de);return}let h=new AbortController,{signal:w}=h,S=!1;return c(Se(A.current,Date.now())),(async()=>{try{let[I,P]=await Promise.all([wf(e,{org:t,monitors:y,project:p?p.split(","):void 0,environment:g?g.split(","):void 0,signal:w,...f}),Tf(e,{org:t,detectorIds:L,signal:w,...f})]);if(S)return;c(pe({window:f,monitors:I,uptime:P},Date.now()))}catch(I){if(S||w.aborted)return;c(me(A.current,qe(I)))}})(),()=>{S=!0,h.abort()}},[e,t,u,d,p,g,m,O,i]),l}function BH(e,t,r){if(!e||!t)return;return xf(e.monitors[t],r)}function _o(e,t){if(!e||!t)return;return e.uptime[t]??[]}import{useCallback as VM}from"h:0__";function Mf(e,{org:t,query:r,sortBy:H,project:n,reloadToken:o=0}){let a=VM((i,l)=>{if(!e)return null;return df(e,{org:t,query:r,sortBy:H,project:n,cursor:i,signal:l}).then((c)=>({data:Array.isArray(c.data)?c.data:[],nextCursor:c.nextCursor}))},[e,t,r,H,n]),s=_t(a,o);return{detectors:it(s.status,(i)=>i.data),nextCursor:s.nextCursor,page:s.page,nextPage:s.nextPage,previousPage:s.previousPage}}import{useEffect as QC,useMemo as NC}from"h:0__";var Js=[{value:"-lastTriggered",label:"Last Triggered (newest)"},{value:"lastTriggered",label:"Last Triggered (oldest)"},{value:"name",label:"Name (A-Z)"},{value:"-name",label:"Name (Z-A)"},{value:"-actions",label:"Most Actions"},{value:"actions",label:"Fewest Actions"},{value:"-connectedDetectors",label:"Most Monitors"},{value:"connectedDetectors",label:"Fewest Monitors"}],Cf="-lastTriggered";function Qf(e){return Js.some((t)=>t.value===e)?e:Cf}var ZM=50;async function ko(e,{org:t,detector:r,query:H,project:n,sortBy:o=Cf,limit:a=ZM,cursor:s,signal:i}){let l=await nc({...e.generatedOptions(i),path:{organization_id_or_slug:t},query:{detector:r?.map(Number),query:H||void 0,project:Ee(n),sortBy:o,per_page:a}},s);return e.generatedPage({...l,data:zM(l.data)})}function zM(e){return Array.isArray(e)?e:[]}var JM={vsts:"Azure DevOps",discord:"Discord",email:"Email",github:"GitHub",github_enterprise:"GitHub Enterprise",jira:"JIRA",jira_server:"JIRA Server",msteams:"Teams",opsgenie:"Opsgenie",pagerduty:"Pagerduty",plugin:"Plugin",sentry_app:"Sentry App",slack:"Slack",slack_staging:"Slack (Staging)",webhook:"Webhook"};function ho(e){return JM[e]??e}function Lo(e){let t=new Set;for(let r of e.actionFilters??[])for(let H of r.actions??[])if(H?.type)t.add(H.type);return[...t]}var Nf=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],eC={sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6},tC=["January","February","March","April","May","June","July","August","September","October","November","December"],rC={jan:1,feb:2,mar:3,apr:4,may:5,jun:6,jul:7,aug:8,sep:9,oct:10,nov:11,dec:12},HC={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *"};function Df(e){let r=(HC[e.trim().toLowerCase()]??e).trim().split(/\s+/),[H,n,o,a,s]=r.length===6?r.slice(1):r;if(!H||!n||!o||!a||!s)return;let i=o==="*"&&a==="*",l=i&&s==="*";if(H==="*"&&n==="*"&&l)return"Every minute";let c=jf(H);if(c!==void 0&&n==="*"&&l)return`Every ${ti(c,"minute")}`;let A=FH(H);if(A===void 0)return;let u=jf(n);if(u!==void 0&&l)return`Every ${ti(u,"hour")} at :${Io(A)}`;if(n==="*"&&l)return`Every hour at :${Io(A)}`;let d=FH(n);if(d===void 0)return;let p=`at ${Io(d)}:${Io(A)}`;if(l)return`Every day ${p}`;if(i){let O=oC(s);return O?`Every ${O} ${p}`:void 0}if(s!=="*")return;let g=FH(o);if(g===void 0)return;if(a==="*")return`Day ${g} of every month ${p}`;let m=nC(a);if(m===void 0)return;return`${tC[m-1]} ${g} ${p}`}function Rf(e,t){return`Every ${ti(e,t)}`}function ti(e,t){if(e===1)return t;return`${e} ${t}s`}function Io(e){return String(e).padStart(2,"0")}function jf(e){let t=e.match(/^\*\/(\d+)$/);if(!t)return;let r=Number(t[1]);return r>0?r:void 0}function FH(e){return/^\d+$/.test(e)?Number(e):void 0}function nC(e){let t=FH(e);if(t!==void 0)return t>=1&&t<=12?t:void 0;return rC[e.toLowerCase().slice(0,3)]}function oC(e){let t=e.match(/^([^-]+)-([^-]+)$/);if(t){let H=ei(t[1]),n=ei(t[2]);return H&&n?`${H}\u2013${n}`:void 0}let r=e.split(",").map((H)=>ei(H));if(r.some((H)=>H===void 0))return;if(r.length===1)return r[0];return`${r.slice(0,-1).join(", ")} and ${r.at(-1)}`}function ei(e){let t=e.trim(),r=FH(t);if(r!==void 0)return Nf[r===7?0:r];let H=eC[t.toLowerCase().slice(0,3)];return H===void 0?void 0:Nf[H]}var Gf=40,Ef=" \u2502 ",aC={[Te.error]:"Error",[Te.metric]:"Metric",[Te.cron]:"Cron",[Te.uptime]:"Uptime",[Te.issueStream]:"Project",[Te.mobileBuild]:"Mobile Build"};function bo(e){return aC[e]??"Unknown"}function wo(e){if(!e)return"\u2014";let t=e.name||e.email;if(!t)return"\u2014";return e.type==="team"&&!t.startsWith("#")?`#${t}`:t}function To(e){return e.dataSources?.find((r)=>r.type==="snuba_query_subscription")?.queryObj?.snubaQuery}function Kf(e){return e.dataSources?.find((r)=>r.type==="uptime_subscription")?.queryObj??void 0}function Ar(e){return e.dataSources?.find((r)=>r.type==="cron_monitor")?.queryObj??void 0}function Xf(e,{projectSlug:t}={}){let r=[];if(t)r.push(t);switch(e.type){case Te.metric:r.push(...sC(e));break;case Te.uptime:r.push(...iC(e));break;case Te.cron:{let H=Wf(Ar(e)?.config);if(H)r.push(H);break}case Te.mobileBuild:{let H=cC(e);if(H)r.push(H);break}default:break}return r}function sC(e){let t=[],r=To(e);if(r){if(r.environment)t.push(r.environment);if(r.aggregate)t.push(r.aggregate);if(r.query)t.push(Pa(r.query,Gf))}let H=Bf(e);if(H)t.push(H);return t}function iC(e){let t=Kf(e);if(!t)return[];let r=[];if(t.url)r.push(Pa(t.url,Gf));let H=t.intervalSeconds;if(typeof H==="number"&&H>0)r.push(`Every ${Qr(H)}`);return r}function Wf(e){let t=e?.schedule;if(t===void 0)return;if(Array.isArray(t)){let[r,H]=t;if(typeof r!=="number"||!H)return;return Rf(r,H)}if(typeof t!=="string"||t.trim()==="")return;return Df(t)??t}function cC(e){let{measurement:t,thresholdType:r}=e.config??{};return[t,r].filter(Boolean).join(" ")||void 0}var lC={gt:">",gte:">=",lt:"<",lte:"<=",eq:"=",ne:"!="},AC={25:"low",50:"medium",75:"high"};function Bf(e){let t=e.conditionGroup?.conditions;if(!t?.length)return;let r=e.config?.detectionType??"static";if(r==="dynamic")return"Dynamic";if(r==="percent"){let o=Qr(e.config?.comparisonDelta??3600);return t.map((s)=>dC(s,o)).filter(Boolean).join(", ")||void 0}let H=yC(To(e)?.aggregate??"count()");return t.map((o)=>uC(o,H)).filter(Boolean).join(", ")||void 0}function uC(e,t){let r=Ff(e);if(!r)return;if(typeof e.comparison!=="number"&&typeof e.comparison!=="string")return;return`${lC[e.type]??e.type}${e.comparison}${t} ${r}`}function dC(e,t){if(!Ff(e)||typeof e.comparison!=="number")return;let H=e.comparison,n=H>=100?H-100:100-H,o=H>=100?"higher":"lower";return`${n}% ${o} than previous ${t}`}function Ff(e){let t=e.conditionResult;if(typeof t!=="number"||t===0)return;return AC[t]}var pC=new Set(["any","avg","max","min","p50","p75","p90","p95","p99","p100","percentile","sum"]),mC=new Set(["event.timestamp","function.duration","measurements.app_start_cold","measurements.app_start_warm","measurements.fcp","measurements.fid","measurements.fp","measurements.inp","measurements.lcp","measurements.stall_longest_time","measurements.stall_total_time","measurements.time_to_full_display","measurements.time_to_initial_display","measurements.ttfb","measurements.ttfb.requesttime","span.duration","span.self_time","spans.browser","spans.db","spans.http","spans.resource","spans.ui","timestamp","transaction.duration"]),gC=new Set(["http.decoded_response_content_length","http.response_content_length","http.response_transfer_size","payload_size"]),OC=new Set(["abnormal_rate","anr_rate","crash_free_rate","crash_rate","errored_rate","foreground_anr_rate","unhandled_rate","unhealthy_rate"]);function yC(e){let t=e.trim().toLowerCase().match(/^([a-z_][a-z0-9_]*)\((.*)\)$/);if(!t)return"";let r=t[1];if(OC.has(r))return"%";if(r==="last_seen")return"ms";if(!pC.has(r))return"";let H=t[2].split(",",1)[0].trim();if(mC.has(H))return"ms";if(gC.has(H))return"B";return""}function Uf(e){switch(e.type){case Te.metric:return fC(e);case Te.uptime:return SC(e);case Te.cron:return _C(e);case Te.mobileBuild:return kC(e);default:return[]}}function xo(e){return e.filter((t)=>t!==void 0&&t.value!=="")}function ve(e,t){if(t===null||t===void 0||t==="")return;return{label:e,value:String(t)}}function fC(e){let t=To(e),r=t?.timeWindow;return xo([ve("Aggregate",t?.aggregate),ve("Query",t?.query),ve("Dataset",t?.dataset),ve("Environment",t?.environment),ve("Time window",typeof r==="number"?Qr(r):void 0),ve("Detection",e.config?.detectionType??"static"),ve("Threshold",Bf(e))])}function SC(e){let t=Kf(e),r=t?.intervalSeconds,H=t?.timeoutMs,n=e.config;return xo([ve("URL",t?.url),ve("Method",t?.method),ve("Interval",typeof r==="number"?`Every ${Qr(r)}`:void 0),ve("Timeout",typeof H==="number"?Qr(H/1000):void 0),ve("Environment",n?.environment),ve("Downtime after",Yf(n?.downtimeThreshold)),ve("Recovers after",$f(n?.recoveryThreshold))])}function _C(e){let t=Ar(e),r=t?.config,H=(t?.environments??[]).map((n)=>n.name);return xo([ve("Schedule",Wf(r)),ve("Timezone",r?.timezone),ve("Check-in margin",vf(r?.checkin_margin)),ve("Max runtime",vf(r?.max_runtime)),ve("Fails after",Yf(r?.failure_issue_threshold)),ve("Recovers after",$f(r?.recovery_threshold)),ve("Environments",H.join(", "))])}function kC(e){let t=e.config;return xo([ve("Measurement",t?.measurement),ve("Threshold type",t?.thresholdType),ve("Query",t?.query)])}function vf(e){if(typeof e!=="number")return;return e===1?"1 minute":`${e} minutes`}function Yf(e){if(typeof e!=="number")return;return e===1?"1 failure":`${e} consecutive failures`}function $f(e){if(typeof e!=="number")return;return e===1?"1 success":`${e} consecutive successes`}function Vf(e){switch(e.type){case Te.metric:return To(e)?.environment??void 0;case Te.uptime:return e.config?.environment??void 0;default:return}}import{useEffect as Zf,useRef as zf,useState as Jf}from"h:0__";function eS(e,{org:t,detectorId:r,statsPeriod:H,reloadToken:n=0}){let[o,a]=Jf(de),s=zf(o);return s.current=o,Zf(()=>{if(!e||!r)return;let i=new AbortController,{signal:l}=i,c=!1;return a(Se(s.current,Date.now())),(async()=>{try{let A=await mf(e,{org:t,detectorId:r,statsPeriod:H,signal:l});if(c)return;a(pe({rows:Array.isArray(A.data)?A.data:[],nextCursor:A.nextCursor,...A.totalCount===void 0?{}:{totalCount:A.totalCount}},Date.now()))}catch(A){if(c||l.aborted)return;a(me(s.current,qe(A)))}})(),()=>{c=!0,i.abort()}},[e,t,r,H,n]),o}function tS(e,{org:t,detectorId:r,reloadToken:H=0}){let[n,o]=Jf(de),a=zf(n);return a.current=n,Zf(()=>{if(!e||!r)return;let s=new AbortController,{signal:i}=s,l=!1;return o(Se(a.current,Date.now())),(async()=>{try{let c=await ko(e,{org:t,detector:[r],signal:i});if(l)return;o(pe(Array.isArray(c.data)?c.data:[],Date.now()))}catch(c){if(l||i.aborted)return;o(me(a.current,qe(c)))}})(),()=>{l=!0,s.abort()}},[e,t,r,H]),n}import{useEffect as xC,useMemo as lS,useRef as PC}from"h:0__";function Po(e){let t=e.border;return{cron:{config:ff,colors:{ok:e.success,missed:e.muted,timeout:e.warning,error:e.danger,in_progress:e.accent,unknown:e.subText},trackColor:t},uptime:{config:Sf,colors:{success:e.success,failure:e.danger,failure_incident:e.danger,missed_window:e.subText},trackColor:t}}}function qo(e=Oo){let t=Math.round(e/3600);if(t<=0)return"Last hour";if(t===1)return"Last hour";if(t%24!==0)return`Last ${t} hours`;let r=t/24;return r===1?"Last 24 hours":`Last ${r} days`}import{jsxDEV as ri}from"h:6___________________________";function lH({buckets:e,style:t,width:r,since:H,until:n}){let o=Math.max(0,Math.floor(r));if(o===0)return null;if(e===void 0)return ri("text",{fg:t.trackColor,children:yf.repeat(o)},void 0,!1,void 0,this);let a=go(e,{width:o,since:H,until:n,config:t.config});return ri("text",{children:hC(a,t)},void 0,!1,void 0,this)}function hC(e,t){let r=[],H="",n="",o=()=>{if(!H)return;r.push(ri("span",{fg:n,children:H},r.length,!1,void 0,this)),H=""};for(let a of e){let s=a.status===null?t.trackColor:t.colors[a.status];if(s!==n)o(),n=s;H+=a.glyph}return o(),r}import{jsxDEV as ur,Fragment as TC}from"h:6___________________________";function AH(e){if(e===Te.cron)return"cron";if(e===Te.uptime)return"uptime";return}function Hi(e){return AH(e.type)}var LC=16,IC=72,bC=0.45,wC=16,rS=8;function HS(e){let t=Math.floor(Math.max(0,e)*bC);return Math.max(LC,Math.min(IC,t))}function nS(e,t){return e==="cron"?iS(t).track:t}function oS(e){if(Hi(e)!=="cron")return 1;return Math.max(1,sS(e).length)}function aS({stats:e,failed:t,width:r,windowSeconds:H,theme:n}){let o=Po(n),a=e?e.window.until-e.window.since:H;return{key:"check-ins",label:qo(a),width:r,render:(s,i,l)=>{let c=Hi(s);if(!c)return ur("text",{fg:n.subText,children:k("",l)},void 0,!1,void 0,this);let A=e?.window.since??0,u=e?.window.until??0;if(c==="uptime")return ur(lH,{buckets:t?[]:_o(e,s.id),style:o.uptime,width:l,since:A,until:u},void 0,!1,void 0,this);let p=Ar(s)?.id,g=sS(s);if(g.length===0)return ur(lH,{buckets:t||!p?[]:BH(e,p),style:o.cron,width:l,since:A,until:u},void 0,!1,void 0,this);let m=iS(l);return ur("box",{style:{flexDirection:"column",width:l},children:g.map((O)=>ur("box",{style:{flexDirection:"row",width:l},children:[m.label>0?ur(TC,{children:[ur("text",{fg:n.subText,children:k(O,m.label)},void 0,!1,void 0,this),ur("text",{children:" ".repeat(m.gap)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,ur(lH,{buckets:t||!p?[]:BH(e,p,O),style:o.cron,width:m.track,since:A,until:u},void 0,!1,void 0,this)]},O,!0,void 0,this))},void 0,!1,void 0,this)}}}function sS(e){let t=(Ar(e)?.environments??[]).map((r)=>r.name).filter((r)=>r.length>0);return[...new Set(t)]}function iS(e){let t=Math.max(0,Math.floor(e));if(t<=rS+1)return{label:0,gap:0,track:t};let r=1,H=Math.min(wC,t-rS-r);return{label:H,gap:r,track:t-H-r}}function cS(e){let t=[],r=[];for(let H of e??[]){let n=Hi(H);if(n==="uptime")r.push(H.id);else if(n==="cron"){let o=Ar(H)?.id;if(o)t.push(o)}}return{monitorIds:t,uptimeDetectorIds:r}}import{jsxDEV as gt,Fragment as CC}from"h:6___________________________";function uS(e){return AH(e.type)!==void 0}function dS({detector:e,width:t,client:r,org:H,reloadToken:n,notify:o}){let a=_(),s=Po(a),i=AH(e.type),l=i==="cron"?Ar(e)?.id:void 0,c=lS(()=>l?[l]:[],[l]),A=lS(()=>i==="uptime"?[e.id]:[],[i,e.id]),u=Math.max(0,t-Ie.length),d=So(r,{org:H,monitorIds:c,uptimeDetectorIds:A,width:u,reloadToken:n}),p=W(d),g=d.state==="error"&&p===void 0,m=PC(void 0),O=oe(d)?.message;if(xC(()=>{if(O&&m.current!==O)o({kind:"warning",text:"check-in history unavailable"});m.current=O},[O,o]),!i)return null;if(i==="cron"&&!l)return gt(tt,{children:"This monitor has no check-in source."},void 0,!1,void 0,this);let y=p?.window.since??0,L=p?.window.until??0;return gt("box",{style:{flexDirection:"column",width:t},children:[gt("box",{style:{flexDirection:"row",width:t},children:[gt("text",{fg:a.muted,children:`${Ie}${qo()}`},void 0,!1,void 0,this),MC(e,a)]},void 0,!0,void 0,this),i==="uptime"?gt(AS,{buckets:g?[]:_o(p,e.id),style:s.uptime,width:u,since:y,until:L},void 0,!1,void 0,this):gt(AS,{buckets:g?[]:BH(p,l),style:s.cron,width:u,since:y,until:L},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function AS({buckets:e,style:t,width:r,since:H,until:n}){return gt(CC,{children:[gt("box",{style:{flexDirection:"row",width:r+Ie.length},children:[gt("text",{children:Ie},void 0,!1,void 0,this),gt(lH,{buckets:e,style:t,width:r,since:H,until:n},void 0,!1,void 0,this)]},void 0,!0,void 0,this),gt(qC,{buckets:e,style:t,width:r,since:H,until:n},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function qC({buckets:e,style:t,width:r,since:H,until:n}){if(!e||e.length===0)return null;let o=go(e,{width:r,since:H,until:n,config:t.config}),a=kf(o,t.config);if(a.length===0)return null;return gt("box",{style:{flexDirection:"row",width:r+Ie.length},children:[gt("text",{children:Ie},void 0,!1,void 0,this),a.map((s,i)=>gt("text",{fg:t.colors[s.status],children:`${i>0?" \xB7 ":""}${s.count} ${s.label}`},s.status,!1,void 0,this))]},void 0,!0,void 0,this)}function MC(e,t){let r=Ar(e)?.environments??[];if(r.length<2)return null;return gt("text",{fg:t.subText,children:` (all ${r.length} environments)`},void 0,!1,void 0,this)}import{jsxDEV as E,Fragment as OS}from"h:6___________________________";var jC={config:"Configuration",timeline:"Check-ins",periods:"Open Periods",alerts:"Connected Alerts",details:"Details"};function pS(e,t,r=Lt){return{id:`monitor:${e.id}`,label:e.name,render:(H)=>E(gS,{...H,detector:e,projectSlug:t,statsPeriod:r},void 0,!1,void 0,this)}}var DC=(e,{org:t,id:r,signal:H})=>pf(e,{org:t,detectorId:r,signal:H});function mS(e){return{id:`monitor:${e}`,label:`Monitor ${e}`,render:(t)=>E(RC,{...t,detectorId:e},void 0,!1,void 0,this)}}function RC({client:e,org:t,detectorId:r,reloadToken:H,width:n,height:o,updateView:a,...s}){let i=iH(e,{org:t,id:r,reloadToken:H,load:DC}),l=W(i);if(QC(()=>{if(l)a(`monitor:${r}`,{label:l.name})},[l,r,a]),!l)return E(aH,{status:i,noun:"monitor",width:n,height:o},void 0,!1,void 0,this);return E(gS,{...s,client:e,org:t,detector:l,projectSlug:l.latestGroup?.project?.slug,reloadToken:H,width:n,height:o,updateView:a},void 0,!1,void 0,this)}function gS({client:e,org:t,detector:r,projectSlug:H,statsPeriod:n=Lt,width:o,height:a,focused:s,reloadToken:i,notify:l,pushView:c,registerActions:A}){let u=_(),d=r.latestGroup?.id;De(A,{openDetail:d?()=>c(mo(d)):void 0});let p=eS(e,{org:t,detectorId:r.id,statsPeriod:n,reloadToken:i}),g=tS(e,{org:t,detectorId:r.id,reloadToken:i}),m=Math.max(20,o-2),O=uS(r),y=NC(()=>["config",...O?["timeline"]:[],"periods","alerts","details"],[O]),{collapsed:L,toggle:f}=lo(y,s),h=W(p),w=W(g),S={config:void 0,periods:XC(h),alerts:w?.length};return E("scrollbox",{focused:s,verticalScrollbarOptions:{showArrows:!1,trackOptions:{backgroundColor:u.panel,foregroundColor:u.muted}},style:{width:o,height:a,paddingLeft:1},children:[E(vC,{detector:r,projectSlug:H,width:m},void 0,!1,void 0,this),y.map((I,P)=>E(co,{index:P+1,title:jC[I],count:S[I],collapsed:L.has(I),width:m,onToggle:()=>f(I),children:E(EC,{sectionKey:I,detector:r,width:m,client:e,org:t,reloadToken:i,notify:l,statsPeriod:n,periods:p,workflows:g},void 0,!1,void 0,this)},I,!1,void 0,this))]},void 0,!0,void 0,this)}function vC({detector:e,projectSlug:t,width:r}){let H=_(),n=e.enabled?H.accent:H.muted,o=Math.max(12,r-2);return E("box",{style:{flexDirection:"column",width:r},children:[E("box",{style:{flexDirection:"row",width:r},children:[E("text",{fg:n,children:"\u2503 "},void 0,!1,void 0,this),E("text",{fg:H.text,attributes:G,children:D(e.name,o)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),E("box",{style:{flexDirection:"row",width:r},children:[E("text",{fg:n,children:"\u2503 "},void 0,!1,void 0,this),E("text",{fg:H.muted,children:D(e.description||"(no description)",o)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),E("box",{style:{flexDirection:"row",width:r,paddingTop:1},children:[E("text",{children:Ie},void 0,!1,void 0,this),E("text",{fg:e.enabled?H.success:H.muted,children:e.enabled?"enabled":"disabled"},void 0,!1,void 0,this),E(kt,{},void 0,!1,void 0,this),E("text",{fg:H.muted,children:bo(e.type)},void 0,!1,void 0,this),t?E(OS,{children:[E(kt,{},void 0,!1,void 0,this),E("text",{fg:H.muted,children:t},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,E(kt,{},void 0,!1,void 0,this),E("text",{fg:H.muted,children:e.owner?wo(e.owner):"unassigned"},void 0,!1,void 0,this),E(kt,{},void 0,!1,void 0,this),E("text",{fg:H.muted,children:GC(e)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),E("text",{fg:H.border,children:"\u2500".repeat(r)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function GC(e){let t=e.lastTriggered?ke(e.lastTriggered):"";if(t)return`last triggered ${t} ago`;let r=ke(e.latestGroup?.lastSeen);return r?`last issue ${r} ago`:"never triggered"}function EC({sectionKey:e,detector:t,width:r,client:H,org:n,reloadToken:o,notify:a,statsPeriod:s,periods:i,workflows:l}){switch(e){case"config":{let c=Uf(t);if(c.length===0)return t.type==="error"?E(tt,{children:"An error monitor has no settings \u2014 every error in its project opens an issue."},void 0,!1,void 0,this):E(tt,{children:"No configuration was returned for this monitor."},void 0,!1,void 0,this);return E("box",{style:{flexDirection:"column",width:r},children:c.map((A)=>E(vt,{name:A.label,value:A.value,width:r},A.label,!1,void 0,this))},void 0,!1,void 0,this)}case"timeline":return E(dS,{detector:t,width:r,client:H,org:n,reloadToken:o,notify:a},void 0,!1,void 0,this);case"periods":return E(KC,{status:i,statsPeriod:s,width:r},void 0,!1,void 0,this);case"alerts":return E(FC,{status:l,width:r},void 0,!1,void 0,this);case"details":return E(YC,{detector:t,width:r,client:H,org:n},void 0,!1,void 0,this)}}function KC({status:e,statsPeriod:t,width:r}){let H=W(e),n=oe(e);if(n)return E(tt,{children:`Failed to load open periods: ${n.message}`},void 0,!1,void 0,this);if(!H)return E(tt,{children:"Loading open periods\u2026"},void 0,!1,void 0,this);if(H.rows.length===0)return E(tt,{children:`No open periods in the last ${t}.`},void 0,!1,void 0,this);return E("box",{style:{flexDirection:"column",width:r},children:[E(tt,{children:WC(H,t)},void 0,!1,void 0,this),H.rows.map((o)=>E(BC,{period:o,width:r},o.id,!1,void 0,this))]},void 0,!0,void 0,this)}function XC(e){if(!e)return;if(e.totalCount!==void 0&&e.totalCount>e.rows.length)return`${e.rows.length} of ${e.totalCount}`;return e.nextCursor===null?e.rows.length:`${e.rows.length}+`}function WC(e,t){let r=e.rows.length,H=e.totalCount===void 0?void 0:Math.max(0,e.totalCount-r);if(H&&H>0)return`Newest ${r} in the last ${t}; ${H} older not shown.`;if(e.nextCursor!==null)return`Newest ${r} in the last ${t}; older periods not shown.`;return`All ${r} in the last ${t}, newest first.`}function BC({period:e,width:t}){let r=_(),H=e.isOpen||!e.end;return E("box",{style:{flexDirection:"row",width:t},children:[E("text",{fg:r.subText,children:`${Ie}#${e.id} `},void 0,!1,void 0,this),E("text",{fg:r.text,children:jH(e.start)},void 0,!1,void 0,this),E("text",{fg:r.subText,children:" \u2192 "},void 0,!1,void 0,this),E("text",{fg:H?r.warning:r.text,children:H?"ongoing":jH(e.end)},void 0,!1,void 0,this),E("text",{fg:r.muted,children:` ${IO(e.start,e.end)}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function FC({status:e,width:t}){let r=W(e),H=oe(e);if(H)return E(tt,{children:`Failed to load alerts: ${H.message}`},void 0,!1,void 0,this);if(!r)return E(tt,{children:"Loading alerts\u2026"},void 0,!1,void 0,this);if(r.length===0)return E(tt,{children:"No alerts are connected to this monitor."},void 0,!1,void 0,this);return E("box",{style:{flexDirection:"column",width:t},children:r.map((n)=>E(UC,{workflow:n,width:t},n.id,!1,void 0,this))},void 0,!1,void 0,this)}function UC({workflow:e,width:t}){let r=_(),H=Lo(e).map(ho).join(", "),n=e.lastTriggered?`${ke(e.lastTriggered)} ago`:"never",o=e.enabled!==!1;return E("box",{style:{flexDirection:"column",width:t},children:[E("box",{style:{flexDirection:"row",width:t},children:E("text",{fg:o?r.text:r.muted,children:`${Ie}${D(e.name||`Alert ${e.id}`,Math.max(8,t-4))}`},void 0,!1,void 0,this)},void 0,!1,void 0,this),E("box",{style:{flexDirection:"row",width:t},children:[E("text",{fg:r.subText,children:`${Ie} `},void 0,!1,void 0,this),E("text",{fg:o?r.muted:r.subText,children:o?"enabled":"disabled"},void 0,!1,void 0,this),H?E(OS,{children:[E(kt,{},void 0,!1,void 0,this),E("text",{fg:r.muted,children:H},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,E(kt,{},void 0,!1,void 0,this),E("text",{fg:r.muted,children:`last fired ${n}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function YC({detector:e,width:t,client:r,org:H}){let n=Vf(e),o=e.latestGroup,a=so(r,H,Boolean(e.createdBy)),s=e.createdBy?a.state==="ready"?a.value.get(e.createdBy)?.user?.name??"Deactivated user":a.state==="error"?"Unavailable":"Loading\u2026":"Sentry";return E("box",{style:{flexDirection:"column",width:t},children:[E(vt,{name:"Monitor ID",value:e.id,width:t},void 0,!1,void 0,this),n?E(vt,{name:"Environment",value:n,width:t},void 0,!1,void 0,this):null,o?E(vt,{name:"Last issue",value:$C(o.title,o.shortId,o.lastSeen),width:t},void 0,!1,void 0,this):null,E(vt,{name:"Created",value:jH(e.dateCreated),width:t},void 0,!1,void 0,this),E(vt,{name:"Created by",value:s,width:t},void 0,!1,void 0,this),E(vt,{name:"Last modified",value:jH(e.dateUpdated),width:t},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function $C(e,t,r){let H=ke(r);return[t,e,H?`${H} ago`:void 0].filter(Boolean).join(" \xB7 ")}import{jsxDEV as uH}from"h:6___________________________";var yS=22;function ni(e,t,r){return e.enabled?t:r.muted}function VC(e){return{name:{key:"name",label:"Name",width:"flex",render:(a,s,i)=>uH("text",{fg:ni(a,s?e.text:e.accent,e),attributes:s&&a.enabled?G:0,children:k(a.name,i)},void 0,!1,void 0,this)},type:{key:"type",label:"Type",width:12,priority:4,render:(a,s,i)=>uH("text",{fg:ni(a,e.text,e),children:k(bo(a.type),i)},void 0,!1,void 0,this)},lastIssue:{key:"last-issue",label:"Last Issue",width:26,priority:2,render:(a,s,i)=>uH("text",{fg:e.subText,children:k(ZC(a),i)},void 0,!1,void 0,this)},assignee:{key:"assignee",label:"Assignee",width:16,priority:3,render:(a,s,i)=>uH("text",{fg:e.subText,children:k(wo(a.owner),i)},void 0,!1,void 0,this)},alerts:{key:"alerts",label:"Alerts",width:6,align:"right",priority:1,render:(a,s,i)=>{let l=a.workflowIds?.length??0;return uH("text",{fg:l>0?ni(a,e.text,e):e.subText,children:k(l>0?String(l):"\u2014",i,"right")},void 0,!1,void 0,this)}}}}function fS(e,{visualization:t}={}){let r=VC(e);if(t)return[r.name,r.type,t];return[r.name,r.type,r.lastIssue,r.assignee,r.alerts]}function SS(e,t,{projectSlugs:r,theme:H}){let n=e.projectId?r?.get(e.projectId)??e.latestGroup?.project?.slug:void 0,o=Xf(e,{projectSlug:n});return uH("text",{fg:H.muted,children:k(` ${o.join(Ef)}`,Math.max(0,t))},void 0,!1,void 0,this)}function ZC(e){let t=e.latestGroup;if(!t)return"\u2014";let r=t.title||t.shortId||t.id,H=ke(t.lastSeen);return H?`${r} \xB7 ${H}`:r}import{jsxDEV as gr}from"h:6___________________________";var zC=4,JC=["project"],eQ=["project","date"];function tQ(e){return{title:e,description:"",searchPlaceholder:"Search monitors\u2026",emptyTitle:"No monitors found.",emptyLines:["This organization may not have monitors (the workflow engine) enabled."]}}function rQ(e,t,r){return r.some((H)=>H.key==="check-ins")?oS(e):1}function Or(e){let t=_(),{client:r,org:H,screen:n,state:o,focused:a,width:s,height:i,reloadToken:l,onProjectSelect:c}=e,{dispatch:A,focusSearch:u,handleSearchBlur:d}=o,p=Pf(n.id)??tQ(n.item),g=qf(p,o.committedQuery),m=uf(o.sort),O=o.selectedProjects.length>0?o.selectedProjects:void 0,{detectors:y,nextCursor:L,page:f,nextPage:h,previousPage:w}=Mf(r,{org:H,query:g,sortBy:m,project:O,reloadToken:l}),S=W(y),I=oe(y),P=y.state==="loading",x=Ye(y);Mo(()=>{if(S)A({type:"setEntries",payload:S})},[S,A]);let q=_S(f);Mo(()=>{if(q.current===f)return;q.current=f,A({type:"setSelected",payload:0})},[f,A]),Mo(()=>{A({type:"setStatus",payload:{loading:P,since:x,error:I?.message,noun:"monitors"}})},[P,x,I,A]);let v=ai(()=>S?.flatMap((X)=>X.projectId?[X.projectId]:[])??[],[S]),C=Zr(r,H,v),{pushView:b}=e,T=oi((X)=>{let xe=S?.[X];if(!xe)return;let Qe=xe.projectId?C.get(xe.projectId):void 0;b(pS(xe,Qe??xe.latestGroup?.project?.slug,o.statsPeriod))},[S,b,C,o.statsPeriod]);De(e.registerActions,{open:T,nextPage:h,previousPage:w});let Q=oi(()=>A({type:"setOpenDropdown",payload:null}),[A]),B=AH(p.type),R=HS(s),K=yo(o.statsPeriod),{monitorIds:ee,uptimeDetectorIds:ae}=ai(()=>B?cS(S):{monitorIds:[],uptimeDetectorIds:[]},[B,S]),He=So(r,{org:H,monitorIds:ee,uptimeDetectorIds:ae,width:B?nS(B,R):R,statsPeriod:o.statsPeriod,reloadToken:l}),se=W(He),le=He.state==="error"&&se===void 0,{notify:ue}=e,ne=_S(void 0),N=oe(He)?.message;Mo(()=>{if(!B)return;if(N&&ne.current!==N)ue({kind:"warning",text:"check-in history unavailable"});ne.current=N},[B,N,ue]);let U=ai(()=>fS(t,B?{visualization:aS({stats:se,failed:le,width:R,windowSeconds:K,theme:t})}:void 0),[B,se,le,R,K,t]),z=oi((X,xe,Qe)=>SS(X,Qe,{projectSlugs:C,theme:t}),[C,t]);return gr("box",{style:{flexDirection:"column",width:s,height:i},children:[gr(St,{value:o.searchQuery,placeholder:p.searchPlaceholder,focused:o.searchFocused,width:s,onInput:(X)=>A({type:"setSearchQuery",payload:X}),onFocus:u,onBlur:d},void 0,!1,void 0,this),gr("box",{style:{flexDirection:"row",width:s,flexShrink:0,paddingLeft:1},children:[gr("text",{fg:t.text,attributes:G,children:p.title},void 0,!1,void 0,this),gr("text",{fg:t.muted,children:` ${p.description}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this),gr(Be,{client:r,org:H,openDropdown:o.openDropdown,selectedProjects:o.selectedProjects,selectedEnvs:o.selectedEnvs,statsPeriod:o.statsPeriod,filters:B?eQ:JC,sort:{value:m,items:Vs,onChange:(X)=>A({type:"setSort",payload:X})},width:s,anchorTop:he+1,onProjectChange:c,onEnvChange:()=>{},onPeriodChange:(X)=>A({type:"setStatsPeriod",payload:X}),onDropdownOpen:(X)=>A({type:"setOpenDropdown",payload:X}),onDropdownClose:Q},void 0,!1,void 0,this),gr(Je,{rows:S,columns:U,width:s,minFlex:yS,selectedIndex:o.selected,focused:a,rowKey:(X)=>X.id,loading:_e(y),error:I,errorTitle:"Failed to load monitors",onRowClick:e.activateRow,renderDetail:z,rowContentHeight:B==="cron"?rQ:void 0,empty:{title:p.emptyTitle,lines:[o.committedQuery||void 0,...p.emptyLines]},layout:[i,zC]},void 0,!1,void 0,this),gr(Me,{count:S?.length,noun:"monitor",hasMore:L!==null,pagination:L!==null||f>1?{page:f,hasPrevious:f>1,hasNext:L!==null,loading:P,onPrevious:w,onNext:h}:void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as zt,useContext as vQ,useEffect as di,useMemo as t_,useReducer as GQ}from"h:0__";var Qo=["Which of my open issues are getting worse, not better?","What are my slowest DB queries?","Walk me through what's on my screen and what I can focus on next."],si=["Looking around\u2026","One sec\u2026","Following breadcrumbs\u2026","Hold tight\u2026","Gathering threads\u2026","Tracing the answer\u2026","Stacking ideas\u2026","Profiling your project\u2026","Span by span\u2026","Rolling logs\u2026","Replaying prod\u2026","Scanning the error-waves\u2026"],kS={loading:"\u25D0",content:"\u2022",pending:"?",success:"\u2713",failure:"\u2717",mixed:"!"};function hS(e,{hasRun:t,hasCodeChanges:r=!1}){let H=[{id:"new",title:"/new",description:"Start a new session"},{id:"history",title:"/history",description:"Open recent Seer sessions"}];if(r)H.push({id:"create-pr",title:"/create-pr",description:"Create or update PRs for accepted changes"});if(e.employee&&e.codeMode)H.push({id:"code-mode-off",title:"/code-mode-off",description:"Disable Code Mode tools"},{id:"code-mode-on",title:"/code-mode-on",description:"Use Code Mode alongside standard tools"},{id:"code-mode-only",title:"/code-mode-only",description:"Use only Code Mode tools"});if(e.employee&&e.bashMode)H.push({id:"bash-mode-off",title:"/bash-mode-off",description:"Disable bash tools"},{id:"bash-mode-on",title:"/bash-mode-on",description:"Enable bash tools"});if(e.thinking)H.push({id:"thinking-off",title:"/thinking-off",description:"Hide Seer's reasoning"},{id:"thinking-on",title:"/thinking-on",description:"Show Seer's reasoning"});if(e.employee&&t)H.push({id:"conversations",title:"/conversations",description:"Open the Sentry AI conversations view"});return H}function LS(e){if(e==="only")return"Code Mode only";if(e==="on")return"Code Mode + standard";return"standard tools"}function IS(e){if(e.loading)return"loading";if(!e.message.tool_calls?.length)return"content";let t=(e.tool_links??[]).filter((H)=>H!=null);if(t.some((H)=>H.params?.pending_approval||H.params?.pending_question))return"pending";if(t.length===0)return"success";let r=t.filter((H)=>H.params?.is_error===!0).length;if(r===0)return"success";if(r===t.length)return"failure";return"mixed"}function HQ(e){if(!e.args)return{};try{let t=JSON.parse(e.args);return t&&typeof t==="object"?t:{}}catch{return{}}}function Ce(e,t){let r=e[t];return typeof r==="string"&&r!==""?r:void 0}function yr(e){return e?e.slice(0,8):""}function Co(e){let t=Ce(e,"repo_name")??Ce(e,"repo");if(!t)return"the codebase";let r=t.lastIndexOf("/");return r===-1?t:t.slice(r+1)}function nQ(e,t){let r=HQ(e),[H,n]=oQ(e.function,r);return t?`${H}\u2026`:n}function oQ(e,t){switch(e){case"telemetry_index_list_nodes":{let r=Ce(t,"keyword")??"your services";return[`Scanning for ${r}`,`Scanned for ${r}`]}case"telemetry_index_dependencies":{let r=Ce(t,"title")??"your services";return[`Tracing the flow of ${r}`,`Traced the flow of ${r}`]}case"google_search":{let r=Ce(t,"question")??Ce(t,"query")??"";return[`Googling '${r}'`,`Googled '${r}'`]}case"telemetry_live_search":{let r=Ce(t,"question")??"",H=Ce(t,"dataset"),n=H==="issues"?"issues":H==="errors"?"errors":H==="logs"?"logs":H==="metrics"?"metrics":"spans";return[`Searching ${n}: '${r}'`,`Searched ${n}: '${r}'`]}case"get_trace_waterfall":{let r=Ce(t,"span_id");if(r)return[`Digging into span ${yr(r)}`,`Dug into span ${yr(r)}`];let H=yr(Ce(t,"trace_id"));return[`Viewing waterfall for trace ${H}`,`Viewed waterfall for trace ${H}`]}case"get_issue_details":{let r=Ce(t,"issue_id")??Ce(t,"short_id")??"";return[`Inspecting issue ${r}`,`Inspected issue ${r}`]}case"get_event_details":{let r=yr(Ce(t,"event_id"));return[`Analyzing event ${r}`,`Analyzed event ${r}`]}case"code_search":{let r=Co(t),H=Ce(t,"mode");if(H==="read_file"){let n=Ce(t,"path")??"a file";return[`Reading ${n} from ${r}`,`Read ${n} from ${r}`]}if(H==="find_files"){let n=Ce(t,"pattern")??"";return[`Finding files matching '${n}' in ${r}`,`Found files matching '${n}' in ${r}`]}if(H==="search_content"){let n=Ce(t,"pattern")??"";return[`Searching for '${n}' in ${r}`,`Searched for '${n}' in ${r}`]}return[`Searching code in ${r}`,`Searched code in ${r}`]}case"git_search":{let r=Co(t),H=Ce(t,"sha")??Ce(t,"commit_sha");if(H)return[`Digging up commit ${yr(H)} from ${r}`,`Dug up commit ${yr(H)} from ${r}`];let n=Ce(t,"file_path")??"";return[`Excavating commits affecting '${n}' in ${r}`,`Excavated commits affecting '${n}' in ${r}`]}case"get_replay_details":{let r=yr(Ce(t,"replay_id"));return[`Watching replay ${r}`,`Watched replay ${r}`]}case"get_profile_flamegraph":{let r=yr(Ce(t,"profile_id"));return[`Sampling profile ${r}`,`Sampled profile ${r}`]}case"code_file_edit":{let r=Ce(t,"path")??"a file",H=Co(t);return[`Editing ${r} in ${H}`,`Edited ${r} in ${H}`]}case"code_file_write":{let r=Ce(t,"path")??"a file",H=Co(t);return[`Writing ${r} in ${H}`,`Wrote ${r} in ${H}`]}case"search_sentry_docs":{let r=Ce(t,"question")??"";return[`Scouring Sentry docs: '${r}'`,`Scoured Sentry docs: '${r}'`]}case"todo_write":return["Updating todos","Updated todos"];case"ask_user_question":return["Asking a question","Asked a question"];default:{if(e.startsWith("artifact_write_")){let r=e.replace("artifact_write_","").replace(/_/g," ");return[`Submitting ${r} artifact`,`Submitted ${r} artifact`]}return[`Using ${e} tool`,`Used ${e} tool`]}}}function bS(e){return(e.message.tool_calls??[]).map((r)=>nQ(r,Boolean(e.loading)))}function wS(e,t){if(e.error||e.status!==void 0&&e.status>=400)return"failure";if(e.status!==void 0)return"success";return t?"success":"loading"}function TS(e){let t=e.title?.trim();if(t)return t;if(e.kind!=="lib"||!e.name)return null;let r=e.name.replace(/^sentry_/,"").replace(/_/g," ");return r?r[0].toUpperCase()+r.slice(1):null}function xS(e){if(e.kind!=="api"||!e.method)return[];let t=e.resolved_path??e.path;if(!t)return[];let r=[`${e.method} ${t}`];if(e.body)r.push(e.body,...e.body_truncated?["\u2026"]:[]);return r}function PS(e){let t=new Set(e.flatMap((n)=>n.parent===null||n.parent===void 0?[]:[n.parent])),r=new Set(["get_span_details"]),H=new Set(e.filter((n)=>n.kind==="lib"&&Boolean(n.name&&r.has(n.name))&&t.has(n.id)).map((n)=>n.id));return e.filter((n)=>{if(n.parent!==null&&n.parent!==void 0&&H.has(n.parent))return!1;if(n.kind!=="lib"||!t.has(n.id))return!0;return Boolean(n.name&&r.has(n.name))})}function qS(e){let t=null;for(let r of e){if(r.todos?.length)t={blockId:r.id,todos:r.todos};for(let H of r.tool_results??[]){let n=H?.structuredContent?.todos;if(n?.length)t={blockId:r.id,todos:n}}}return t}function MS(e,t){let r=new Map,H=new Map;for(let o of e){let a=new Set;for(let s of o.merged_file_patches??[])r.set(`${s.repo_name}:${s.patch.path}`,s),a.add(s.repo_name);for(let s of a)H.set(s,o.pr_commit_shas?.[s])}let n=new Map;for(let o of r.values()){let a=n.get(o.repo_name)??{added:0,files:[],prNumber:null,prUrl:null,removed:0,repoName:o.repo_name,status:"needs_push"};a.added+=o.patch.added,a.removed+=o.patch.removed,a.files.push({added:o.patch.added,path:o.patch.path,removed:o.patch.removed}),n.set(o.repo_name,a)}for(let o of n.values()){let a=t[o.repoName];if(o.prNumber=a?.pr_number??null,o.prUrl=a?.pr_url??null,a?.pr_creation_status==="creating")o.status="creating";else if(a?.pr_creation_status==="error")o.status="error";else if(!a?.pr_number||!a.pr_url)o.status="needs_push";else if(a.commit_sha&&H.get(o.repoName)!==a.commit_sha)o.status="needs_push";else o.status="pushed"}return[...n.values()]}import{createContext as iQ,useCallback as Zt,useEffect as US,useMemo as ci,useReducer as cQ,useRef as jo,useState as lQ}from"h:0__";var CS=500,ii=2500;function aQ(e){return e.sentry_run_id??e.run_id}var QS=(e)=>`/organizations/${e}/seer/explorer-chat/`,NS=(e,t)=>`${QS(e)}${encodeURIComponent(String(t))}/`;async function jS(e,{org:t,query:r,insertIndex:H,runId:n,pageName:o,sentAt:a,codeMode:s,bashMode:i,signal:l}){let c=await e.request(n==null?QS(t):NS(t,n),{method:"POST",body:{query:r,insert_index:H,page_name:o,sent_at:a,override_code_mode_enable:s,override_bash_mode_enabled:i},signal:l});return aQ(c.data)}async function DS(e,{org:t,signal:r,limit:H=20}){return(await e.request(`/organizations/${t}/seer/runs/`,{query:{per_page:H,query:"is:mine type:explorer"},signal:r})).data}async function RS(e,{org:t,runId:r,signal:H}){return(await e.request(NS(t,r),{signal:H})).data?.session??null}async function vS(e,{org:t,runId:r,signal:H}){await e.request(`/organizations/${t}/seer/explorer-update/${encodeURIComponent(String(r))}/`,{method:"POST",body:{payload:{type:"interrupt"}},signal:H})}async function GS(e,{org:t,runId:r,inputId:H,responseData:n,signal:o}){await e.request(`/organizations/${t}/seer/explorer-update/${encodeURIComponent(String(r))}/`,{method:"POST",body:{payload:{type:"user_input_response",input_id:H,response_data:n}},signal:o})}async function ES(e,{org:t,runId:r,repoName:H,signal:n}){await e.request(`/organizations/${t}/seer/explorer-update/${encodeURIComponent(String(r))}/`,{method:"POST",body:{payload:{type:"create_pr",repo_name:H}},signal:n})}async function KS(e,{org:t,sessionId:r,scopes:H,signal:n}){return(await e.request(`/organizations/${t}/agent/approve/`,{method:"POST",body:{sessionId:r,scopes:H},signal:n})).data.scopes}function XS(e){if(!e)return!1;if(e.status==="processing")return!1;return!e.blocks.some((t)=>t.loading)}function sQ(e){let t=/(?:Z|[+-]\d{2}:?\d{2})$/.test(e);return Date.parse(t?e:`${e}Z`)}function WS(e,t){if(!e)return!1;let r=sQ(e.updated_at);if(Number.isNaN(r))return!1;return t-r>=120000}function No(){return{session:de(),runId:null,optimistic:null,timedOut:!1,interrupting:!1,pollToken:0}}function BS(e,t){let r=W(e);return r?pe({...r,status:"processing",updated_at:new Date(t).toISOString()},t):e}function FS(e,t){switch(t.type){case"orgChanged":case"reset":return No();case"sendStarted":return{...e,session:Se(e.session,t.now),optimistic:t.optimistic,timedOut:!1,interrupting:!1};case"sendSucceeded":return{...e,runId:t.runId,pollToken:e.pollToken+1};case"sendFailed":return{...e,session:me(e.session,t.error),optimistic:null};case"pollProgressed":return{...e,session:pe(t.session,t.now)};case"pollSettled":return{...e,session:pe(t.session,t.now),optimistic:null,interrupting:!1};case"pollStale":return{...e,session:pe(t.session,t.now),optimistic:null,timedOut:!0};case"pollFailed":return{...e,session:me(e.session,t.error),optimistic:null};case"interruptStarted":return{...e,interrupting:!0};case"interruptFailed":return{...e,interrupting:!1};case"respondStarted":return{...e,session:BS(e.session,t.now),timedOut:!1,interrupting:!1};case"respondSucceeded":return{...e,pollToken:e.pollToken+1};case"respondFailed":case"approveWriteFailed":return{...e,session:me(e.session,t.error)};case"createPRStarted":return{...e,session:BS(e.session,t.now)};case"createPRSucceeded":return{...e,pollToken:e.pollToken+1};case"createPRFailed":return{...e,session:me(e.session,t.error)};case"switchRun":if(t.runId===e.runId)return e;return{...No(),runId:t.runId,pollToken:e.pollToken+1}}}var AQ=Math.ceil(60000/ii);function dH(e){if(e instanceof sr)return{message:e.message,retryable:e.retryable,retryAfterSeconds:e.retryAfterSeconds};return{message:e instanceof Error?e.message:String(e),retryable:!0}}function Dr(e,t){return e?.includes(t)===!0}function YS(e,t,r={}){let[H,n]=cQ(FS,void 0,No),[o,a]=lQ(de),s=jo(H);s.current=H;let i=jo(o);i.current=o;let l=jo(0),c=jo(t);US(()=>{if(c.current===t)return;c.current=t,n({type:"orgChanged"}),a(de)},[t]);let A=ci(()=>({available:r.features===void 0||Dr(r.features,"seer-explorer"),bashMode:Dr(r.features,"seer-explorer-allow-bash-mode"),codeMode:Dr(r.features,"seer-explorer-code-mode-tools"),embeds:Dr(r.features,"seer-explorer-embeds"),employee:r.isEmployee===!0,infraTelemetry:Dr(r.features,"seer-infra-telemetry"),streaming:Dr(r.features,"seer-explorer-stream"),thinking:Dr(r.features,"seer-explorer-thinking-blocks")}),[r.features,r.isEmployee]),u=r.codeMode??"only",d=r.bashMode??!1,p=A.thinking&&(r.showThinking??!1);US(()=>{if(!e||!t||H.runId==null)return;let R=H.runId,K=new AbortController,ee=!1,ae,He=0,se=async()=>{try{let le=await RS(e,{org:t,runId:R,signal:K.signal});if(ee)return;if(He=0,le){let ue=Date.now();if(XS(le)){n({type:"pollSettled",session:le,now:ue});return}if(WS(le,ue)){n({type:"pollStale",session:le,now:ue});return}n({type:"pollProgressed",session:le,now:ue})}ae=setTimeout(()=>void se(),CS)}catch(le){if(ee||K.signal.aborted)return;if(He+=1,He>AQ){n({type:"pollFailed",error:dH(le)});return}ae=setTimeout(()=>void se(),ii)}};return se(),()=>{ee=!0,K.abort(),clearTimeout(ae)}},[e,t,H.runId,H.pollToken]);let g=Zt((R)=>{let K=R.trim();if(!e||!t||K===""||!A.available)return;let ee=W(s.current.session)?.blocks??[],ae=l.current++,He=new Date().toISOString(),se=si[ae%si.length]??"Thinking\u2026",le=[...ee,{id:`optimistic-user-${ae}`,message:{role:"user",content:K},timestamp:He},{id:`optimistic-assistant-${ae}`,message:{role:"assistant",content:se},timestamp:He,loading:!0}];n({type:"sendStarted",optimistic:le,now:Date.now()});let ue=s.current.runId,ne=new Date;jS(e,{org:t,query:K,runId:ue,insertIndex:ee.length,pageName:r.pageName,sentAt:[ne.toString(),ne.toISOString()],codeMode:A.codeMode?u:void 0,bashMode:A.employee&&A.bashMode?d:void 0}).then((N)=>{n({type:"sendSucceeded",runId:N})}).catch((N)=>{n({type:"sendFailed",error:dH(N)})})},[e,t,A.available,A.codeMode,A.employee,A.bashMode,r.pageName,u,d]),m=Zt(()=>{let R=s.current.runId;if(!e||!t||R==null)return;n({type:"interruptStarted"}),vS(e,{org:t,runId:R}).catch(()=>{n({type:"interruptFailed"})})},[e,t]),O=Zt((R,K)=>{let ee=s.current.runId;if(!e||!t||ee==null)return;n({type:"respondStarted",now:Date.now()}),GS(e,{org:t,runId:ee,inputId:R,responseData:K}).then(()=>n({type:"respondSucceeded"})).catch((ae)=>{n({type:"respondFailed",error:dH(ae)})})},[e,t]),y=Zt((R,K,ee)=>{if(!e||!t||ee.length===0)return;KS(e,{org:t,sessionId:K,scopes:ee}).then((ae)=>{let He=ee.every((se)=>ae.includes(se));O(R,{decision:He?"approve":"reject",...He?{}:{reason:"insufficient_scope"}})}).catch((ae)=>{n({type:"approveWriteFailed",error:dH(ae)})})},[e,t,O]),L=Zt((R)=>{let K=s.current.runId;if(!e||!t||K==null||!R)return;n({type:"createPRStarted",now:Date.now()}),ES(e,{org:t,runId:K,repoName:R}).then(()=>n({type:"createPRSucceeded"})).catch((ee)=>{n({type:"createPRFailed",error:dH(ee)})})},[e,t]),f=Zt((R)=>{n({type:"switchRun",runId:R})},[]),h=Zt(()=>{if(!e||!t||!A.available)return;let R=new AbortController;a(Se(i.current,Date.now())),DS(e,{org:t,signal:R.signal}).then((K)=>a(pe(K,Date.now()))).catch((K)=>{if(!R.signal.aborted)a(me(i.current,dH(K)))})},[e,t,A.available]),w=Zt(()=>{n({type:"reset"})},[]),S=W(H.session)?.blocks??[],I=ci(()=>{if(!H.optimistic)return S;return S.length>=H.optimistic.length?S:H.optimistic},[S,H.optimistic]),P=W(H.session)?.status,x=!H.timedOut&&(H.optimistic!==null||P==="processing"||I.some((R)=>R.loading)),q=W(H.session)?.owner_user_id,v=q!==null&&q!==void 0&&String(q)!==r.userId,C=W(H.session)?.repo_pr_states??{},b=ci(()=>MS(I,C),[I,C]),T=Zt((R)=>r.onCodeModeChange?.(R),[r.onCodeModeChange]),Q=Zt((R)=>r.onBashModeChange?.(R),[r.onBashModeChange]),B=Zt((R)=>r.onShowThinkingChange?.(R),[r.onShowThinkingChange]);return{blocks:I,thinking:x,timedOut:H.timedOut,interrupting:H.interrupting,error:oe(H.session),started:H.runId!==null||I.length>0,runId:H.runId,readOnly:v,pendingInput:W(H.session)?.pending_user_input??null,repoPRStates:C,codeChanges:b,capabilities:A,codeMode:u,bashMode:d,showThinking:p,runs:o,send:g,interrupt:m,reset:w,switchRun:f,loadRuns:h,respond:O,approveWrite:y,createPR:L,setCodeMode:T,setBashMode:Q,setShowThinking:B}}var Do=iQ(null);import{useCallback as LQ,useMemo as VS,useRef as IQ}from"h:0__";import{RenderableEvents as vo}from"h:3__________";import{Fragment as uQ}from"h:0__";import{jsxDEV as or}from"h:6___________________________";var li=25;function Ai({client:e,org:t,ids:r,width:H}){let n=_(),o=[...new Set(r.filter(Boolean))].slice(0,li),a=o.length===1?`issue:${o[0]}`:`issue:[${o.join(",")}]`,s=ao(o.length>0?e:null,{org:t,query:a,sort:"date",statsPeriod:Lt,limit:Math.max(1,o.length)}),i=W(s.issues)??[],l=oe(s.issues),c=Math.max(24,H-2),A=o.length>1;if(o.length===0)return or("text",{fg:n.muted,children:"No issues referenced."},void 0,!1,void 0,this);return or("box",{style:{flexDirection:"column",width:H,border:!0,borderColor:l?n.danger:n.border,flexShrink:0},children:[A?or(Ho,{width:c},void 0,!1,void 0,this):null,s.issues.state==="idle"||_e(s.issues)?or(oo,{width:c,seed:0},void 0,!1,void 0,this):null,l&&i.length===0?or("box",{style:{flexDirection:"column",paddingLeft:1,paddingRight:1},children:[or("text",{fg:n.danger,attributes:G,children:["Could not load ",A?"issues":o[0]]},void 0,!0,void 0,this),or("text",{fg:n.muted,children:l.message},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,!l&&s.issues.state==="ready"&&i.length===0?or("text",{fg:n.muted,children:` No matching ${A?"issues":`issue ${o[0]}`} found.`},void 0,!1,void 0,this):null,i.map((u)=>or(no,{group:u,selected:!1,width:c},u.id,!1,void 0,this)),r.length>li?or("text",{fg:n.muted,children:` Showing the first ${li} issues.`},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}import{jsxDEV as Ge}from"h:6___________________________";var dQ=new Set(["dsn","issues","chart","autofix","agentWriteApproval"]),pQ=new Set(["timestamp","docs","dsn","user","issue","issues","chart","autofix","agentWriteApproval"]),mQ=new Set(["agentWriteApproval"]),gQ=/\{%\s*([A-Za-z][\w]*)([^%]*?)\s*(?:\/%\}|%\}([\s\S]*?)\{%\s*\/\1\s*%\})/g;function OQ(e,t,r=null){let H=[],n="",o=0,a=()=>{if(n)H.push({kind:"markdown",content:n});n=""};for(let s of e.matchAll(gQ)){let i=s.index??o;n+=e.slice(o,i);let l=s[0],c=s[1],A=yQ(s[2]),u=fQ(s[3]),d=c?SQ(r?.[c]):null,p=c&&mQ.has(c)?d:u??(Object.keys(A).length>0?A:d);o=i+l.length;let g=e.slice(e.lastIndexOf(`
|
|
15
|
+
`,i-1)+1,i).trim(),m=e.indexOf(`
|
|
16
|
+
`,o),O=e.slice(o,m===-1?e.length:m).trim(),y=c==="issue"&&g===""&&O==="";if(!c||!pQ.has(c)){n+=l;continue}let L=p??{};if(!t||!dQ.has(c)&&!y){n+=$S(c,L);continue}a(),H.push({kind:"embed",name:c,data:L})}return n+=e.slice(o),a(),H}function yQ(e){let t={};if(!e)return t;let r=/([A-Za-z_][\w-]*)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s]+))/g;for(let H of e.matchAll(r)){let n=H[1],o=H[2]??H[3]??H[4];if(n&&o!==void 0)t[n]=o}return t}function fQ(e){if(!e||e.length>1e5)return null;try{let t=JSON.parse(e.trim());return t&&typeof t==="object"&&!Array.isArray(t)?t:null}catch{return null}}function SQ(e){return e&&typeof e==="object"&&!Array.isArray(e)?e:null}function $S(e,t){if(e==="timestamp"){let r=rt(t.value);if(!r)return"";if(t.format==="relative")return _Q(r);let H=Date.parse(r);return Number.isNaN(H)?r:new Date(H).toLocaleString()}if(e==="docs"){let r=rt(t.title),H=rt(t.href);return r&&H?`[${r}](${H})`:r??H??""}if(e==="user")return`@${rt(t.name)??"user"}`;if(e==="issue")return`**${rt(t.id)??"issue"}**`;if(e==="issues"){let r=ui(t.ids);return r.length?r.map((H)=>`**${H}**`).join(", "):"Issues"}if(e==="dsn")return`\`${rt(t.value)??"DSN"}\``;if(e==="autofix")return rt(t.result)??"Autofix result";if(e==="chart")return rt(t.title)??"Chart";if(e==="agentWriteApproval")return"Seer requested permission to make changes.";return""}function _Q(e){let t=Date.parse(e);if(Number.isNaN(t))return e;let r=Math.round((t-Date.now())/1000),H=Math.abs(r),[n,o]=H<60?[H,"second"]:H<3600?[Math.round(H/60),"minute"]:H<86400?[Math.round(H/3600),"hour"]:[Math.round(H/86400),"day"];return`${n} ${o}${n===1?"":"s"} ${r<0?"ago":"from now"}`}function Ro({content:e,width:t,client:r=null,org:H="",streaming:n=!1,embedsEnabled:o=!1,structuredContent:a=null}){let s=_(),i=Ao(),l=OQ(e,o,a);return Ge("box",{style:{flexDirection:"column",width:t},children:l.map((c,A)=>{if(c.kind==="embed"&&c.name&&c.data)return Ge(kQ,{name:c.name,data:c.data,width:t,client:r,org:H},`embed-${A}`,!1,void 0,this);let u=c.content??"";if(!i)return Ge(uQ,{children:wr(u,Math.max(1,t)).map((d,p)=>Ge("text",{fg:s.text,children:d},p,!1,void 0,this))},`markdown-${A}`,!1,void 0,this);return Ge("markdown",{content:u,syntaxStyle:i,streaming:!0,fg:s.text,conceal:!0,internalBlockMode:"top-level",tableOptions:{style:"columns",widthMode:"full",wrapMode:"word",borderColor:s.border},style:{width:t}},`markdown-${A}-${n?"stream":"static"}`,!1,void 0,this)})},void 0,!1,void 0,this)}function kQ({name:e,data:t,width:r,client:H,org:n}){let o=_(),a=Math.max(8,r-2);if(e==="issue"){let s=rt(t.id)??"Unknown issue";return Ge(Ai,{client:H,org:n,ids:[s],width:a},void 0,!1,void 0,this)}if(e==="dsn")return Ge("box",{style:{width:a,border:!0,borderColor:o.border,paddingLeft:1},children:Ge("text",{fg:o.accent,children:rt(t.value)??"DSN unavailable"},void 0,!1,void 0,this)},void 0,!1,void 0,this);if(e==="issues"){let s=ui(t.ids);return Ge(Ai,{client:H,org:n,ids:s,width:a},void 0,!1,void 0,this)}if(e==="chart")return Ge(hQ,{data:t,width:a},void 0,!1,void 0,this);if(e==="autofix"){let s=(rt(t.step)??"result").replace(/_/g," "),i=rt(t.result)??"No result returned.";return Ge("box",{style:{flexDirection:"column",width:a,border:!0,borderColor:o.accent,paddingLeft:1},children:[Ge("text",{fg:o.accent,attributes:G,children:`Autofix \xB7 ${s}`},void 0,!1,void 0,this),Ge("text",{fg:o.muted,children:rt(t.shortId)??""},void 0,!1,void 0,this),wr(i,Math.max(1,a-3)).map((l,c)=>Ge("text",{fg:o.text,children:l},c,!1,void 0,this))]},void 0,!0,void 0,this)}if(e==="agentWriteApproval"){let s=rt(t.status)??"pending",i=ui(t.requiredScopes);return Ge("box",{style:{flexDirection:"column",width:a,border:!0,borderColor:o.warning,paddingLeft:1},children:[Ge("text",{fg:s==="approved"?o.success:s==="rejected"?o.danger:o.warning,attributes:G,children:s==="pending"?"Allow Seer to make changes?":`Access ${s}`},void 0,!1,void 0,this),i.map((l)=>Ge("text",{fg:o.muted,children:` ${l}`},l,!1,void 0,this))]},void 0,!0,void 0,this)}return Ge("text",{fg:o.muted,children:$S(e,t)},void 0,!1,void 0,this)}function hQ({data:e,width:t}){let r=_(),H=Array.isArray(e.series)?e.series.slice(0,5):[],n=Math.max(8,Math.min(50,t-4));return Ge("box",{style:{flexDirection:"column",width:t,border:!0,borderColor:r.border,paddingLeft:1},children:[Ge("text",{fg:r.text,attributes:G,children:rt(e.title)??"Chart"},void 0,!1,void 0,this),rt(e.subtitle)?Ge("text",{fg:r.muted,children:rt(e.subtitle)},void 0,!1,void 0,this):null,H.map((o,a)=>{let s=o&&typeof o==="object"?o:{},i=Array.isArray(s.data)?s.data.flatMap((c,A)=>{if(!c||typeof c!=="object")return[];let u=Number(c.y);return Number.isFinite(u)?[[A,u]]:[]}):[],l=rt(s.label)??rt(s.name)??`Series ${a+1}`;return Ge("box",{style:{flexDirection:"column"},children:[Ge("text",{fg:a===0?r.accent:r.muted,children:Qn(i,n,{floor:!0})},void 0,!1,void 0,this),Ge("text",{fg:r.muted,attributes:Ze,children:l},void 0,!1,void 0,this)]},`${l}-${a}`,!0,void 0,this)})]},void 0,!0,void 0,this)}function rt(e){return typeof e==="string"&&e!==""?e:void 0}function ui(e){return Array.isArray(e)?e.filter((t)=>typeof t==="string"):[]}import{jsxDEV as M}from"h:6___________________________";var ZS=3;function zS({chat:e,client:t,org:r,width:H,height:n,focused:o,value:a,onInput:s,inputFocused:i,onInputFocus:l,onInputBlur:c,slashCommands:A,slashSelected:u,showHistory:d,historySelected:p,pendingState:g,placeholderOverride:m}){let O=_(),y=Math.max(10,H-2),L=A.length>0?A.length+2:0,f=Math.max(1,n-1-ZS-L),h=VS(()=>qS(e.blocks),[e.blocks]),w=VS(()=>e.blocks.some((x)=>(x.tool_results??[]).some((q)=>q?.structuredContent?.agentWriteApproval!==void 0||q?.content.includes("agentWriteApproval"))),[e.blocks]),S=IQ(null),I=LQ((x)=>{let q=S.current;if(q)q.removeAllListeners(vo.FOCUSED),q.removeAllListeners(vo.BLURRED);if(S.current=x,x)x.on(vo.FOCUSED,()=>l?.()),x.on(vo.BLURRED,()=>c?.())},[l,c]),P=m??(e.timedOut?"Response timed out. Please try again.":e.interrupting?"Interrupted. What should Seer do instead?":e.pendingInput?"Respond using the controls above":"Ask Seer a question, or press / for commands.");return M("box",{style:{flexDirection:"column",width:H,height:n},children:[M("box",{style:{flexDirection:"row",width:H,height:1,flexShrink:0,paddingLeft:1,paddingRight:1,backgroundColor:O.panelAlt},children:[M("text",{fg:O.text,attributes:G,children:["Seer Agent"," "]},void 0,!0,void 0,this),M("text",{fg:O.accent,children:"\u03B2"},void 0,!1,void 0,this),M("box",{style:{flexGrow:1}},void 0,!1,void 0,this),e.capabilities.codeMode?M("text",{fg:O.muted,children:`${LS(e.codeMode)} \xB7 `},void 0,!1,void 0,this):null,e.codeChanges.length>0?M("text",{fg:O.muted,children:`+${e.codeChanges.reduce((x,q)=>x+q.added,0)} -${e.codeChanges.reduce((x,q)=>x+q.removed,0)} \xB7 `},void 0,!1,void 0,this):null,M("text",{fg:O.muted,children:`${Ke(be("sentry.seer.history"))} history`},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d?M(TQ,{chat:e,selected:p,width:y,height:f},void 0,!1,void 0,this):M("scrollbox",{focused:o&&!i,stickyScroll:!0,stickyStart:"bottom",style:{flexGrow:1,width:H,height:f},children:[e.blocks.length===0?M(DQ,{width:y},void 0,!1,void 0,this):e.blocks.map((x)=>M(xQ,{block:x,width:y,chat:e,client:t,org:r,showTodos:h?.blockId===x.id?h.todos:[]},x.id,!1,void 0,this)),e.codeChanges.length>0?M(bQ,{chat:e,width:y},void 0,!1,void 0,this):null,e.pendingInput&&(e.pendingInput.input_type!=="reauth_monitoring_provider"||e.capabilities.infraTelemetry)&&(e.pendingInput.input_type!=="agent_write_approval"||!w)?M(NQ,{pending:e.pendingInput,state:g,width:y},void 0,!1,void 0,this):null,e.error?M("box",{style:{flexDirection:"column",paddingLeft:1,paddingTop:1},children:[M("text",{fg:O.danger,children:"Seer request failed"},void 0,!1,void 0,this),M("text",{fg:O.muted,children:e.error.message},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,e.timedOut?M("box",{style:{paddingLeft:1,paddingTop:1},children:M("text",{fg:O.warning,children:"Seer stopped responding. Send another message to retry."},void 0,!1,void 0,this)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),A.length>0?M(wQ,{commands:A,selected:u,width:H},void 0,!1,void 0,this):null,M("box",{style:{flexDirection:"row",width:H,flexShrink:0,height:ZS,border:!0,borderStyle:"rounded",borderColor:i?O.accent:O.border,backgroundColor:O.panel,paddingLeft:1,paddingRight:1},children:[e.thinking?M("text",{fg:O.accent,children:[M(zr,{},void 0,!1,void 0,this)," "]},void 0,!0,void 0,this):M("text",{fg:O.subText,children:"\u203A "},void 0,!1,void 0,this),M("input",{ref:I,value:a,placeholder:P,focused:i,onInput:s,style:{flexGrow:1,textColor:O.text,backgroundColor:O.panel,focusedTextColor:O.text,focusedBackgroundColor:O.panel,placeholderColor:e.timedOut||e.interrupting||e.pendingInput?O.warning:O.subText}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}function bQ({chat:e,width:t}){let r=_(),H=e.codeChanges.some((n)=>n.status==="needs_push"||n.status==="error");return M("box",{style:{flexDirection:"column",width:Math.max(8,t-2),marginTop:1,border:!0,borderColor:r.border,paddingLeft:1},children:[M("text",{fg:r.text,attributes:G,children:"Code changes"},void 0,!1,void 0,this),e.codeChanges.map((n)=>M("box",{style:{flexDirection:"column"},children:[M("text",{fg:r.accent,attributes:G,children:`${n.repoName} +${n.added} -${n.removed}`},void 0,!1,void 0,this),n.files.map((o)=>M("text",{fg:r.muted,children:` +${o.added} -${o.removed} ${o.path}`},o.path,!1,void 0,this)),M("text",{fg:n.status==="pushed"?r.success:n.status==="error"?r.danger:n.status==="creating"?r.warning:r.muted,children:n.status==="creating"?" Creating or updating PR\u2026":n.status==="error"?" PR update failed \u2014 retry available":n.status==="pushed"?` Pushed${n.prNumber?` \xB7 PR #${n.prNumber}`:""}${n.prUrl?` \xB7 ${n.prUrl}`:""}`:` ${n.prNumber?`PR #${n.prNumber} has unpushed changes`:"No PR yet"}`},void 0,!1,void 0,this)]},n.repoName,!0,void 0,this)),H&&!e.readOnly?M("text",{fg:r.accent,children:`[${Ke(be("sentry.seer.pushChanges"))}] create/update PRs \xB7 /create-pr`},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function wQ({commands:e,selected:t,width:r}){let H=_();return M("box",{style:{flexDirection:"column",width:r,flexShrink:0,border:!0,borderColor:H.border,backgroundColor:H.panel,paddingLeft:1},children:e.map((n,o)=>M("box",{style:{flexDirection:"row",width:Math.max(1,r-4),backgroundColor:o===t?H.selected:void 0},children:[M("text",{fg:o===t?H.accent:H.text,attributes:G,children:n.title.padEnd(19)},void 0,!1,void 0,this),M("text",{fg:H.muted,children:D(n.description,Math.max(1,r-25))},void 0,!1,void 0,this)]},n.id,!0,void 0,this))},void 0,!1,void 0,this)}function TQ({chat:e,selected:t,width:r,height:H}){let n=_(),o=W(e.runs)??[],a=oe(e.runs);return M("scrollbox",{focused:!0,style:{flexGrow:1,width:r+2,height:H},children:M("box",{style:{flexDirection:"column",paddingLeft:1,paddingTop:1},children:[M("text",{fg:n.text,attributes:G,children:"Recent conversations"},void 0,!1,void 0,this),M("text",{fg:n.muted,children:"j/k select \xB7 enter open \xB7 esc close"},void 0,!1,void 0,this),_e(e.runs)?M("text",{fg:n.muted,children:"Loading conversations\u2026"},void 0,!1,void 0,this):null,a?M("text",{fg:n.danger,children:a.message},void 0,!1,void 0,this):null,!_e(e.runs)&&!a&&o.length===0?M("text",{fg:n.muted,children:"No recent conversations."},void 0,!1,void 0,this):null,o.map((s,i)=>M("box",{style:{flexDirection:"row",width:r,backgroundColor:i===t?n.selected:void 0},children:[M("text",{fg:i===t?n.accent:n.muted,children:i===t?"\u276F ":" "},void 0,!1,void 0,this),M("text",{fg:n.text,children:D(s.title??"Untitled chat",Math.max(4,r-10))},void 0,!1,void 0,this),M("box",{style:{flexGrow:1}},void 0,!1,void 0,this),M("text",{fg:n.muted,children:ke(s.lastTriggeredAt)},void 0,!1,void 0,this)]},s.id,!0,void 0,this))]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}function xQ({block:e,width:t,chat:r,client:H,org:n,showTodos:o}){if(e.message.role==="user")return M(PQ,{block:e,width:t},void 0,!1,void 0,this);if(e.message.role==="tool_use")return M(MQ,{block:e,width:t,chat:r,client:H,org:n,showTodos:o},void 0,!1,void 0,this);return M(qQ,{block:e,width:t,chat:r,client:H,org:n},void 0,!1,void 0,this)}function PQ({block:e,width:t}){let r=_(),H=wr(e.message.content??"",Math.max(1,t-3));return M("box",{style:{flexDirection:"column",paddingLeft:1,paddingTop:1},children:H.map((n,o)=>M("text",{fg:r.text,attributes:G,children:o===0?`\u203A ${n}`:` ${n}`},o,!1,void 0,this))},void 0,!1,void 0,this)}function qQ({block:e,width:t,chat:r,client:H,org:n}){let o=_(),a=e.message.content??"";if(e.loading&&a.trim()==="")return M("text",{fg:o.muted,children:[" ",M(zr,{},void 0,!1,void 0,this)," Thinking\u2026"]},void 0,!0,void 0,this);if(e.loading&&e.id.startsWith("optimistic-assistant-"))return M("box",{style:{paddingLeft:1,paddingTop:1,flexDirection:"row"},children:M("text",{fg:o.muted,children:[" ",M(zr,{},void 0,!1,void 0,this),` ${a}`]},void 0,!0,void 0,this)},void 0,!1,void 0,this);if(!a.trim())return null;return M("box",{style:{flexDirection:"column",paddingLeft:3,paddingTop:1,width:t},children:M(Ro,{content:a,width:Math.max(1,t-3),streaming:e.loading&&r.capabilities.streaming,embedsEnabled:r.capabilities.embeds,client:H,org:n},void 0,!1,void 0,this)},void 0,!1,void 0,this)}function MQ({block:e,width:t,chat:r,client:H,org:n,showTodos:o}){let a=_(),s=IS(e),i=s==="failure"?a.danger:s==="mixed"||s==="pending"?a.warning:a.muted,l=bS(e),c=e.message.tool_calls??[];return M("box",{style:{flexDirection:"column",paddingLeft:1,width:t},children:[r.showThinking&&e.message.thinking_content?.trim()?M("box",{style:{flexDirection:"column",paddingLeft:2,width:Math.max(1,t-2)},children:[M("text",{fg:a.muted,attributes:G,children:"Thinking"},void 0,!1,void 0,this),M(Ro,{content:e.message.thinking_content,width:Math.max(1,t-4),embedsEnabled:r.capabilities.embeds,client:H,org:n},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,c.flatMap((A,u)=>{let d=e.tool_results?.find((f)=>f?.tool_call_id===A.id),p=A.function==="sentry_api_execute"||A.function==="sentry_api_search",g=d?.structuredContent?.calls?.length?d.structuredContent.calls:c.length===1?e.live_calls??[]:[],m=PS(g).flatMap((f)=>{let h=TS(f);return h?[{record:f,label:h}]:[]}),O=d?.structuredContent?.links??[],y=d?.structuredContent?.artifacts??[],L=d?.structuredContent&&d.content.trimStart().startsWith("{%")?d.content:null;return[...m.length?m.map(({record:f,label:h})=>M(CQ,{record:f,label:h,settled:Boolean(d)},`${A.id??u}-${f.id}`,!1,void 0,this)):!p?[s==="loading"?M("text",{fg:i,attributes:ir,children:[" ",M(zr,{},void 0,!1,void 0,this),` ${l[u]??A.function}`]},`${A.id??u}-classic`,!0,void 0,this):M("text",{fg:i,attributes:ir,children:` ${kS[s]} ${l[u]??A.function}`},`${A.id??u}-classic`,!1,void 0,this)]:[],...O.filter((f)=>f.params?.is_error!==!0).map((f,h)=>M("text",{fg:a.accent,children:` \u2197 ${QQ(f.kind,f.params)}`},`${A.id??u}-link-${h}`,!1,void 0,this)),...y.map((f,h)=>M("text",{fg:a.accent,children:` \u25C7 ${f.reason||f.key}`},`${A.id??u}-artifact-${h}`,!1,void 0,this)),...L?[M(Ro,{content:L,width:Math.max(1,t-3),embedsEnabled:r.capabilities.embeds,structuredContent:d?.structuredContent??null,client:H,org:n},`${A.id??u}-markdown`,!1,void 0,this)]:[]]}),o.map((A,u)=>M("text",{fg:A.status==="completed"?a.success:a.muted,attributes:A.status==="completed"?Ze:$r,children:` ${A.status==="completed"?"[x]":A.status==="in_progress"?"[~]":"[ ]"} ${A.content}`},`todo-${u}`,!1,void 0,this))]},void 0,!0,void 0,this)}function CQ({record:e,label:t,settled:r}){let H=_(),n=wS(e,r),o=n==="failure"?H.danger:H.muted,a=xS(e),s=e.error?` \u2014 ${e.error}`:e.status!==void 0&&e.status>=400?` \u2014 HTTP ${e.status}`:"";return M("box",{style:{flexDirection:"column"},children:[n==="loading"?M("text",{fg:o,attributes:ir,children:[" ",M(zr,{},void 0,!1,void 0,this),` ${t}${s}`]},void 0,!0,void 0,this):M("text",{fg:o,attributes:ir,children:` ${n==="failure"?"\u2717":"\u2713"} ${t}${s}`},void 0,!1,void 0,this),a.map((i,l)=>M("text",{fg:H.subText,children:` ${i}`},l,!1,void 0,this))]},void 0,!0,void 0,this)}function QQ(e,t){let r=t?.summary;if(typeof r==="string"&&r.trim())return r;return`View ${e.replace(/^get_/,"").replace(/_/g," ")}`}function NQ({pending:e,state:t,width:r}){let H=_(),n={flexDirection:"column",width:Math.max(8,r-2),border:!0,borderColor:H.warning,paddingLeft:1,marginTop:1};if(e.input_type==="file_change_approval"){let o=Array.isArray(e.data.patches)?e.data.patches:[],a=o[t.fileApprovalIndex],s=a&&typeof a==="object"?a:{},i=s.patch&&typeof s.patch==="object"?s.patch:s,l=String(i.path??i.file_path??"proposed file change"),c=String(i.diff??s.diff??"");return M("box",{style:n,children:[M("text",{fg:H.warning,attributes:G,children:`Make this change? (${t.fileApprovalIndex+1} of ${o.length})`},void 0,!1,void 0,this),M("text",{fg:H.text,children:l},void 0,!1,void 0,this),wr(c,Math.max(1,r-5)).slice(0,10).map((A,u)=>M("text",{fg:A.startsWith("+")?H.success:A.startsWith("-")?H.danger:H.muted,children:A},u,!1,void 0,this)),M("text",{fg:H.accent,children:"[y] approve \xB7 [x] reject"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(e.input_type==="agent_write_approval"){let o=Array.isArray(e.data.required_scopes)?e.data.required_scopes.filter((a)=>typeof a==="string"):[];return M("box",{style:n,children:[M("text",{fg:H.warning,attributes:G,children:"Allow Seer to make changes?"},void 0,!1,void 0,this),M("text",{fg:H.muted,children:"Requested scopes:"},void 0,!1,void 0,this),o.map((a)=>M("text",{fg:H.text,children:` ${a}`},a,!1,void 0,this)),M("text",{fg:H.accent,children:"[y] approve \xB7 [x] reject"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}if(e.input_type==="ask_user_question"){let a=(Array.isArray(e.data.questions)?e.data.questions:[])[t.questionIndex],s=a&&typeof a==="object"?a:{},i=Array.isArray(s.options)?s.options:[];return M("box",{style:n,children:[M("text",{fg:H.text,attributes:G,children:String(s.question??"Seer has a question")},void 0,!1,void 0,this),i.map((l,c)=>{let A=l&&typeof l==="object"?l:{};return M("box",{style:{flexDirection:"column",backgroundColor:c===t.questionSelected?H.selected:void 0},children:[M("text",{fg:c===t.questionSelected?H.accent:H.text,children:`${c+1}. ${String(A.label??"Option")}`},void 0,!1,void 0,this),A.description?M("text",{fg:H.muted,children:` ${String(A.description)}`},void 0,!1,void 0,this):null]},c,!0,void 0,this)}),M("text",{fg:t.questionSelected===i.length?H.accent:H.muted,children:"o. Other \u2014 type your own answer"},void 0,!1,void 0,this),M("text",{fg:H.muted,children:"j/k select \xB7 enter confirm"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}return M("box",{style:n,children:[M("text",{fg:H.warning,attributes:G,children:"Reconnect your monitoring provider in Sentry"},void 0,!1,void 0,this),M("text",{fg:H.muted,children:"This run will resume after the connection is restored."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}var jQ=[" \u2584\u2584\u2584 "," \u2584\u2588\u2588\u2588\u2588\u2588\u2584 ","\u2588\u2588\u2588 \u25CF \u2588\u2588\u2588"," \u2580\u2588\u2588\u2588\u2588\u2588\u2580 "," \u2580\u2580\u2580\u2580\u2580 "];function DQ({width:e}){let t=_();return M("box",{style:{flexDirection:"column",paddingLeft:1,paddingTop:1},children:[jQ.map((r,H)=>M("text",{fg:t.accent,children:` ${r}`},H,!1,void 0,this)),M("text",{fg:t.text,attributes:G,children:`
|
|
17
|
+
Ask Seer anything about your application.`},void 0,!1,void 0,this),M("text",{fg:t.muted,children:" Try one of these:"},void 0,!1,void 0,this),Qo.map((r,H)=>M("text",{fg:t.accent,children:` ${H+1}. ${wr(r,Math.max(1,e-6))[0]??r}`},r,!1,void 0,this)),M("text",{fg:t.subText,children:`
|
|
18
|
+
${Ke(be("sentry.seer.compose"))} to type, ${Ke(be("sentry.nav.open"))} to send, ${Ke(be("sentry.seer.newChat"))} new, ${Ke(be("sentry.seer.history"))} history`},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function JS(){return{mode:"conversation",inputFocused:!0,slashSelected:0}}function RQ(e){switch(e.input_type){case"file_change_approval":return{mode:"fileApproval",pendingId:e.id,index:0,decisions:[]};case"ask_user_question":return{mode:"question",pendingId:e.id,index:0,answers:[],selected:0,inputFocused:!1};case"agent_write_approval":case"reauth_monitoring_provider":return{mode:"blockingInput",pendingId:e.id}}}function e_(e,t){switch(t.type){case"pendingChanged":if(t.pending)return RQ(t.pending);return"pendingId"in e?{mode:"conversation",inputFocused:!1,slashSelected:0}:e;case"inputChanged":return e.mode==="conversation"&&e.slashSelected!==0?{...e,slashSelected:0}:e;case"focusInput":if(e.mode==="conversation")return{...e,inputFocused:!0};if(e.mode==="question"&&t.allowQuestion)return{...e,inputFocused:!0};return e;case"blurInput":if(e.mode==="conversation"||e.mode==="question")return{...e,inputFocused:!1};return e;case"moveSlashSelection":if(e.mode!=="conversation"||t.count===0)return e;return{...e,slashSelected:(e.slashSelected+t.direction+t.count)%t.count};case"openHistory":return e.mode==="conversation"?{mode:"history",selected:0}:e;case"closeHistory":return e.mode==="history"?{mode:"conversation",inputFocused:!0,slashSelected:0}:e;case"startNewChat":return{mode:"conversation",inputFocused:!0,slashSelected:0};case"moveHistorySelection":{if(e.mode!=="history")return e;let r=Math.max(0,Math.min(e.selected+t.direction,Math.max(0,t.count-1)));return r===e.selected?e:{...e,selected:r}}case"moveQuestionSelection":if(e.mode!=="question")return e;return{...e,selected:(e.selected+t.direction+t.optionCount+1)%(t.optionCount+1),inputFocused:!1};case"selectQuestionOption":return e.mode==="question"?{...e,selected:t.index,inputFocused:!1}:e;case"selectOtherAnswer":return e.mode==="question"?{...e,selected:t.optionCount,inputFocused:!0}:e;case"commitQuestionAnswer":if(e.mode!=="question")return e;return t.final?{...e,inputFocused:!1}:{...e,index:e.index+1,answers:[...e.answers,t.answer],selected:0,inputFocused:!1};case"recordFileDecision":if(e.mode!=="fileApproval"||t.final)return e;return{...e,index:e.index+1,decisions:[...e.decisions,t.approved]}}}import{jsxDEV as pi}from"h:6___________________________";function EQ(e){let t=e?.questions;if(!Array.isArray(t))return[];return t.flatMap((r)=>{if(!r||typeof r!=="object")return[];let H=r;if(typeof H.question!=="string"||!Array.isArray(H.options))return[];let n=H.options.flatMap((o)=>{if(!o||typeof o!=="object")return[];let a=o;return typeof a.label==="string"?[{label:a.label,description:String(a.description??"")}]:[]});return[{question:H.question,options:n}]})}function r_({client:e,org:t,state:r,width:H,height:n,focused:o,registerActions:a,navigateToScreen:s,notify:i}){let l=_(),c=vQ(Do),[A,u]=GQ(e_,void 0,JS),d=r.searchQuery,p=zt((N)=>r.dispatch({type:"setSearchQuery",payload:N}),[r.dispatch]),g=c?.pendingInput?.id,m=c?.pendingInput?.input_type,O=A.mode==="history",y=A.mode==="history"?A.selected:0,L=A.mode==="conversation"?A.slashSelected:0,f=A.mode==="fileApproval"?A.index:0,h=A.mode==="fileApproval"?A.decisions:[],w=A.mode==="question"?A.index:0,S=A.mode==="question"?A.answers:[],I=A.mode==="question"?A.selected:0,P=t_(()=>c?hS(c.capabilities,{hasRun:c.started,hasCodeChanges:c.codeChanges.length>0}):[],[c]),x=t_(()=>{if(!d.startsWith("/")||d.includes(" "))return[];let N=d.toLowerCase();return P.filter((U)=>U.title.startsWith(N))},[P,d]);di(()=>u({type:"inputChanged"}),[d]),di(()=>{u({type:"pendingChanged",pending:g&&m?{id:g,input_type:m}:null})},[g,m]);let q=zt(()=>{if(!c)return;c.loadRuns(),u({type:"openHistory"})},[c]),v=zt(()=>{if(!c||c.readOnly||c.thinking)return;let N=c.codeChanges.filter((U)=>U.status==="needs_push"||U.status==="error");for(let U of N)c.createPR(U.repoName);if(N.length>0)i({kind:"info",text:`${N.some((U)=>U.prNumber)?"Updating":"Creating"} ${N.length===1?"pull request":"pull requests"}\u2026`})},[c,i]),C=zt((N)=>{if(!c)return;switch(p(""),N.id){case"new":c.reset(),u({type:"startNewChat"});return;case"history":q();return;case"create-pr":v();return;case"conversations":if(c.runId!==null)s("explore.conversations",{query:`gen_ai.conversation.id:${JSON.stringify(String(c.runId))}`});return;case"code-mode-off":case"code-mode-on":case"code-mode-only":{let U=N.id.replace("code-mode-","");c.setCodeMode(U),i({kind:"info",text:`Seer ${N.title.slice(1)}`});return}case"bash-mode-off":case"bash-mode-on":{let U=N.id.endsWith("-on");c.setBashMode(U),i({kind:"info",text:`Seer bash mode ${U?"on":"off"}`});return}case"thinking-off":case"thinking-on":c.setShowThinking(N.id.endsWith("-on"));return}},[c,s,i,q,v,p]),b=EQ(c?.pendingInput?.data),T=b[w],Q=Boolean(T&&I===T.options.length),B=zt((N)=>{if(!c?.pendingInput||!T)return;let U=[...S,N],z=w+1>=b.length;if(u({type:"commitQuestionAnswer",answer:N,final:z}),z){c.respond(c.pendingInput.id,{answers:U}),p("");return}p("")},[c,T,S,w,b.length,p]),R=zt(()=>{if(!c)return!1;if(c.pendingInput?.input_type==="ask_user_question"&&Q){let U=d.trim();if(U)B(U);return!0}let N=x[L]??P.find((U)=>U.title===d.trim().toLowerCase());if(N)return C(N),!0;if(c.thinking||c.readOnly||c.pendingInput||d.trim()==="")return!0;return c.send(d),p(""),!0},[c,P,B,C,Q,p,L,d,x]),K=zt((N)=>{if(c?.pendingInput?.input_type!=="file_change_approval")return;let U=Array.isArray(c.pendingInput.data.patches)?c.pendingInput.data.patches:[],z=[...h,N],X=f+1>=U.length;if(u({type:"recordFileDecision",approved:N,final:X}),X)c.respond(c.pendingInput.id,{decisions:z})},[c,h,f]),ee=zt((N)=>{let U=c?.pendingInput;if(!U)return!1;if(U.input_type==="file_change_approval"){if(N.name.toLowerCase()==="y")K(!0);else if(N.name.toLowerCase()==="x")K(!1);else return!1;return!0}if(U.input_type==="agent_write_approval"){if(N.name.toLowerCase()==="x")return c.respond(U.id,{decision:"reject"}),!0;if(N.name.toLowerCase()!=="y")return!1;let X=U.data.session_id,xe=U.data.required_scopes,Qe=Array.isArray(xe)?xe.filter((ie)=>typeof ie==="string"):[];if(typeof X==="string")c.approveWrite(U.id,X,Qe);return!0}if(U.input_type!=="ask_user_question"||!T)return!1;if(j("sentry.nav.up",N)||N.name.toLowerCase()==="up")return u({type:"moveQuestionSelection",direction:-1,optionCount:T.options.length}),!0;if(j("sentry.nav.down",N)||N.name.toLowerCase()==="down")return u({type:"moveQuestionSelection",direction:1,optionCount:T.options.length}),!0;if(N.name.toLowerCase()==="o")return u({type:"selectOtherAnswer",optionCount:T.options.length}),!0;let z=Number(N.name)-1;if(z>=0&&z<T.options.length)return u({type:"selectQuestionOption",index:z}),!0;if(j("sentry.nav.open",N)&&!Q){let X=T.options[I];if(X)B(X.label);return!0}return!1},[c,B,T,Q,I,K]),ae=zt((N)=>{if(x.length===0)return!1;let U=N.name.toLowerCase();if(U==="up")return u({type:"moveSlashSelection",direction:-1,count:x.length}),!0;if(U==="down")return u({type:"moveSlashSelection",direction:1,count:x.length}),!0;return!1},[x.length]),He=zt((N)=>{if(!c)return!1;if(c.pendingInput&&ee(N))return!0;if(O){let U=c.runs.state==="ready"?c.runs.value.length:0;if(j("sentry.nav.down",N))return u({type:"moveHistorySelection",direction:1,count:U}),!0;if(j("sentry.nav.up",N))return u({type:"moveHistorySelection",direction:-1,count:U}),!0;if(j("sentry.nav.open",N)&&c.runs.state==="ready"){let z=c.runs.value[y];if(z)c.switchRun(z.id),u({type:"closeHistory"});return!0}return!1}if(j("sentry.seer.compose",N)||j("sentry.nav.open",N))return u({type:"focusInput",allowQuestion:Q}),!0;if(j("sentry.seer.newChat",N))return c.reset(),p(""),u({type:"startNewChat"}),!0;if(j("sentry.seer.history",N))return q(),!0;if(j("sentry.seer.pushChanges",N)&&c.codeChanges.length>0)return v(),!0;if(j("sentry.seer.interrupt",N)){if(c.thinking)c.interrupt();return!0}if(c.blocks.length===0&&!N.ctrl&&!N.meta){let U=Qo[Number(N.name)-1];if(U!==void 0)return c.send(U),!0}return!1},[c,ee,y,q,v,p,O]),se=zt(()=>{if(!O)return!1;return u({type:"closeHistory"}),!0},[O]),le=A.mode==="conversation"||A.mode==="question"?A.inputFocused:!1,ue=o&&le&&!O&&!c?.readOnly&&(!c?.pendingInput||c.pendingInput.input_type==="ask_user_question"&&Q);if(di(()=>(a({inputFocused:()=>ue,submitInput:R,blurInput:()=>u({type:"blurInput"}),handleInputKey:ae,handleKey:He,back:se}),()=>a(null)),[se,ue,ae,He,a,R]),!c)return pi("text",{fg:l.muted,children:"Seer is unavailable."},void 0,!1,void 0,this);if(!c.capabilities.available)return pi("text",{fg:l.muted,children:"Seer Agent is not enabled for this organization."},void 0,!1,void 0,this);let ne=Q?"Type your own answer\u2026":c.readOnly?"This conversation is owned by another user and is read-only":void 0;return pi(zS,{chat:c,client:e,org:t,width:H,height:n,focused:o,value:d,onInput:p,inputFocused:ue,onInputFocus:()=>u({type:"focusInput",allowQuestion:Q}),onInputBlur:()=>u({type:"blurInput"}),slashCommands:x,slashSelected:L,showHistory:O,historySelected:y,pendingState:{fileApprovalIndex:f,questionIndex:w,questionSelected:I},placeholderOverride:ne},void 0,!1,void 0,this)}import{useCallback as s_,useEffect as gi,useRef as i_}from"h:0__";import{RenderableEvents as Go}from"h:3__________";var KQ=["project","fingerprint","package","function","count()","sum()","avg()","p50()","p75()","p95()","p99()"],mi=[{value:"-sum()",label:"Total self time"},{value:"-avg()",label:"Average self time"},{value:"-p50()",label:"p50 self time"},{value:"-p75()",label:"p75 self time"},{value:"-p95()",label:"p95 self time"},{value:"-p99()",label:"p99 self time"}],H_="-sum()";function n_(e){return mi.some((t)=>t.value===e)?e:H_}var XQ=50;async function o_(e,{org:t,query:r="",statsPeriod:H,project:n,environment:o,sort:a=H_,cursor:s,limit:i=XQ,signal:l}){let c=await It(e,{org:t,dataset:"profileFunctions",fields:KQ,sort:a,query:r,statsPeriod:H,project:n,environment:o,cursor:s,limit:i,referrer:"sentry-tui.profile-functions",signal:l});return{data:c.rows.map(WQ),nextCursor:c.nextCursor}}function WQ(e,t){return{fingerprint:je(e,"fingerprint")??String(t),projectSlug:je(e,"project"),package:je(e,"package")??"",name:je(e,"function")??"",count:yt(e,"count()"),totalSelfTimeNs:yt(e,"sum()"),p75SelfTimeNs:yt(e,"p75()")}}import{useCallback as BQ}from"h:0__";function a_(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,sort:a,reloadToken:s=0}){let i=BQ((c,A)=>e?o_(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,sort:a,cursor:c,signal:A}):null,[e,t,r,H,n,o,a]),l=_t(i,s);return{functions:it(l.status,(c)=>c.data),nextCursor:l.nextCursor,page:l.page,nextPage:l.nextPage,previousPage:l.previousPage}}import{jsxDEV as Xe}from"h:6___________________________";var FQ="Aggregate flamegraph \u2014 open Explore \u203A Profiles on sentry.io",UQ=24,YQ=["A flamegraph needs pixels a terminal does not have; an ASCII","approximation would mislead. Below: the same page's slowest functions."];function $Q(e){return[{key:"function",label:"Function",width:"flex",render:(t,r,H)=>Xe("text",{fg:e.text,children:k(t.name,H)},void 0,!1,void 0,this)},{key:"package",label:"Package",width:18,priority:2,render:(t,r,H)=>Xe("text",{fg:e.muted,children:k(t.package,H)},void 0,!1,void 0,this)},{key:"project",label:"Project",width:12,priority:1,render:(t,r,H)=>Xe("text",{fg:e.subText,children:k(t.projectSlug??"",H)},void 0,!1,void 0,this)},{key:"count",label:"Calls",width:7,align:"right",priority:3,render:(t,r,H)=>Xe("text",{fg:e.muted,children:k(we(t.count),H,"right")},void 0,!1,void 0,this)},{key:"p75",label:"p75",width:9,align:"right",priority:4,render:(t,r,H)=>Xe("text",{fg:e.muted,children:k(Eo(t.p75SelfTimeNs),H,"right")},void 0,!1,void 0,this)},{key:"total",label:"Self Time",width:10,align:"right",render:(t,r,H)=>Xe("text",{fg:e.text,children:k(Eo(t.totalSelfTimeNs),H,"right")},void 0,!1,void 0,this)}]}function c_({client:e,org:t,state:r,focused:H,width:n,height:o,reloadToken:a,onProjectSelect:s,registerActions:i,activateRow:l}){let c=_(),{dispatch:A,focusSearch:u,handleSearchBlur:d}=r,p=i_(null),g=s_((Q)=>{let B=p.current;if(B)B.removeAllListeners(Go.FOCUSED),B.removeAllListeners(Go.BLURRED);if(p.current=Q,Q)Q.on(Go.FOCUSED,()=>u()),Q.on(Go.BLURRED,()=>d())},[u,d]),m=r.committedQuery,O=n_(r.sort),{functions:y,nextCursor:L,page:f,nextPage:h,previousPage:w}=a_(e,{org:t,query:m,statsPeriod:r.statsPeriod,project:r.selectedProjects.length>0?r.selectedProjects:void 0,environment:r.selectedEnvs.length>0?r.selectedEnvs:void 0,sort:O,reloadToken:a}),S=y.state==="loading",I=Ye(y),P=W(y),x=oe(y);gi(()=>{if(P)A({type:"setEntries",payload:P})},[P,A]);let q=i_(f);gi(()=>{if(q.current===f)return;q.current=f,A({type:"setSelected",payload:0})},[f,A]),gi(()=>{A({type:"setStatus",payload:{loading:S,since:I,error:x?.message,noun:"functions"}})},[S,I,x,y,A]);let v=s_(()=>A({type:"setOpenDropdown",payload:null}),[A]);De(i,{open:()=>A({type:"setDetailOpen",payload:(Q)=>!Q}),nextPage:h,previousPage:w,back:()=>{if(!r.detailOpen)return!1;return A({type:"setDetailOpen",payload:!1}),!0}});let C=Math.max(20,n-2),b=P?.[r.selected]??null,T=r.detailOpen&&b!==null;return Xe("box",{style:{flexDirection:"column",width:n,height:o},children:[Xe("box",{style:{flexDirection:"row",width:n,flexShrink:0,height:he,border:!0,borderStyle:"rounded",borderColor:r.searchFocused?c.accent:c.border,backgroundColor:c.panel,paddingLeft:1,paddingRight:1},children:[Xe(Nt,{},void 0,!1,void 0,this),Xe("input",{ref:g,value:r.searchQuery,placeholder:"Search functions\u2026",focused:r.searchFocused,onInput:(Q)=>A({type:"setSearchQuery",payload:Q}),style:{flexGrow:1,textColor:c.text,backgroundColor:c.panel,focusedTextColor:c.text,focusedBackgroundColor:c.panel,placeholderColor:c.subText}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Xe(Be,{client:e,org:t,openDropdown:r.openDropdown,selectedProjects:r.selectedProjects,selectedEnvs:r.selectedEnvs,statsPeriod:r.statsPeriod,sort:{value:O,items:mi,onChange:(Q)=>A({type:"setSort",payload:Q})},width:n,anchorTop:he,onProjectChange:s,onEnvChange:(Q)=>A({type:"setSelectedEnvs",payload:Q}),onPeriodChange:(Q)=>A({type:"setStatsPeriod",payload:Q}),onDropdownClose:v,onDropdownOpen:(Q)=>A({type:"setOpenDropdown",payload:Q})},void 0,!1,void 0,this),Xe(VQ,{width:C},void 0,!1,void 0,this),Xe(Je,{rows:P,columns:$Q(c),width:n,selectedIndex:r.selected,focused:H,rowKey:(Q)=>Q.fingerprint,loading:_e(y),error:x,errorTitle:"Failed to load profiled functions",minFlex:UQ,onRowClick:l,empty:{title:"No profiled functions found.",lines:[m||void 0,"Try widening the time range or selecting a project that sends profiles.","This organization may not have profiling enabled."]},layout:[o,T]},void 0,!1,void 0,this),T&&b?Xe(ZQ,{fn:b,width:C},void 0,!1,void 0,this):null,Xe(Me,{count:P?.length,noun:"function",hasMore:L!==null,pagination:L!==null||f>1?{page:f,hasPrevious:f>1,hasNext:L!==null,loading:S,onPrevious:w,onNext:h}:void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function VQ({width:e}){let t=_();return Xe("box",{style:{flexDirection:"column",width:e,flexShrink:0,border:["bottom"],borderColor:t.border},children:[Xe("text",{fg:t.subText,attributes:G,children:D(FQ,e)},void 0,!1,void 0,this),YQ.map((r)=>Xe("text",{fg:t.muted,children:D(r,e)},r,!1,void 0,this))]},void 0,!0,void 0,this)}function ZQ({fn:e,width:t}){let r=_();return Xe("box",{style:{flexDirection:"column",width:t,border:["top"],borderColor:r.border,paddingTop:1,flexShrink:0},children:[Xe("text",{fg:r.accent,attributes:G,children:"\u25BE Function Details"},void 0,!1,void 0,this),Xe("text",{fg:r.text,children:D(e.name,t)},void 0,!1,void 0,this),Xe("text",{fg:r.muted,children:D(` Package: ${e.package||"\u2014"}`,t)},void 0,!1,void 0,this),Xe("text",{fg:r.muted,children:D(` Project: ${e.projectSlug??"\u2014"} \u2502 Calls: ${we(e.count)}`+` \u2502 Self time: ${Eo(e.totalSelfTimeNs)}`+` \u2502 p75: ${Eo(e.p75SelfTimeNs)}`,t)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function Eo(e){if(e===void 0||!Number.isFinite(e))return"\xB7\xB7";if(e<1000)return`${Math.round(e)}ns`;if(e<1e6)return`${Oi(e/1000)}\xB5s`;if(e<1e9)return`${Oi(e/1e6)}ms`;return`${Oi(e/1e9)}s`}function Oi(e){let t=e<10?2:e<100?1:0,r=e.toFixed(t);return r.includes(".")?r.replace(/\.?0+$/,""):r}import{useCallback as p_,useEffect as yi,useMemo as Ko,useRef as fi}from"h:0__";import{RenderableEvents as Xo}from"h:3__________";import{useEffect as zQ}from"h:0__";function l_(e,{index:t,heights:r,layout:H=[]}){let n=0;for(let s=0;s<t&&s<r.length;s++)n+=r[s]??0;let o=r[t]??0,a=r.reduce((s,i)=>s+i,0);zQ(()=>{let s=e.current;if(!s||a===0)return;let i=s.viewport.height;if(i<=0)return;let l=PH({rowTop:n,rowHeight:o,contentHeight:a,viewportHeight:i,scrollTop:s.scrollTop});if(l!==s.scrollTop)s.scrollTop=l},[e,n,o,a,...H])}import{useCallback as JQ}from"h:0__";function A_(e,{org:t,releases:r,project:H,environment:n}){let o=JQ((a)=>e&&r?Bc(e,{org:t,releases:r,project:H,environment:n,signal:a}):null,[e,t,r,H,n]);return Dt(o,{resetKey:r}).status}import{useCallback as e9,useEffect as t9,useRef as r9,useState as H9}from"h:0__";function u_(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,sort:a,reloadToken:s=0}){let i=e9((c,A)=>e?Xc(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,sort:a,cursor:c,signal:A}):null,[e,t,r,H,n,o,a]),l=_t(i,s);return{releases:it(l.status,(c)=>c.data),nextCursor:l.nextCursor,cursor:l.cursor,page:l.page,nextPage:l.nextPage,previousPage:l.previousPage}}function d_(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,sort:a,cursor:s,reloadToken:i=0}){let[l,c]=H9(de),A=r9(l);return A.current=l,t9(()=>{if(!e)return;let u=new AbortController,{signal:d}=u,p=!1;return c(Se(A.current,Date.now())),(async()=>{try{let g=await Wc(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,sort:a,cursor:s,signal:d});if(p)return;c(pe(g,Date.now()))}catch(g){if(p||d.aborted)return;c(me(A.current,qe(g)))}})(),()=>{p=!0,u.abort()}},[e,t,r,H,n,o,a,s,i]),l}import{jsxDEV as Z,Fragment as _9}from"h:6___________________________";var n9=2,Jt=2,UH=1,o9=3,Si=3,a9=4,s9=2,i9=12,g_=5,Wo=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"],c9=98,l9=99.5;function A9(e){return[{key:"project",label:"Project",width:"flex",render:(t,r,H)=>Z("text",{fg:e.text,children:k(t.project.slug,H)},void 0,!1,void 0,this)},{key:"adoption",label:"Adoption",width:g_+i9,priority:3,render:(t,r,H)=>Z(m9,{row:t,width:H},void 0,!1,void 0,this)},{key:"crashFree",label:"Crash-Free",width:11,align:"right",render:(t,r,H)=>Z(y9,{row:t,width:H},void 0,!1,void 0,this)},{key:"crashes",label:"Crashes",width:8,align:"right",priority:2,render:(t,r,H)=>t.pending?Z(ki,{width:H,align:"right"},void 0,!1,void 0,this):Z("text",{fg:e.muted,children:k(t.health?we(t.health.sessionsCrashed??0):"\u2014",H,"right")},void 0,!1,void 0,this)},{key:"newIssues",label:"New Issues",width:10,align:"right",priority:1,render:(t,r,H)=>Z("text",{fg:e.muted,children:k(we(t.project.newGroups),H,"right")},void 0,!1,void 0,this)}]}function O_({client:e,org:t,state:r,focused:H,width:n,height:o,reloadToken:a,onProjectSelect:s,registerActions:i,activateRow:l}){let c=_(),{dispatch:A,focusSearch:u,handleSearchBlur:d}=r,p=fi(null),g=fi(null),m=p_((ie)=>{let re=g.current;if(re)re.removeAllListeners(Xo.FOCUSED),re.removeAllListeners(Xo.BLURRED);if(g.current=ie,ie)ie.on(Xo.FOCUSED,()=>u()),ie.on(Xo.BLURRED,()=>d())},[u,d]),O=r.committedQuery,y=Ko(()=>Ee(r.selectedProjects),[r.selectedProjects]),L=r.selectedEnvs.length>0?r.selectedEnvs:void 0,f=Ko(()=>ga(r.selectedEnvs),[r.selectedEnvs]),h=Kc(r.sort,r.selectedEnvs),w={org:t,query:O,statsPeriod:r.statsPeriod,project:y,environment:L,sort:h,reloadToken:a},{releases:S,nextCursor:I,cursor:P,page:x,nextPage:q,previousPage:v}=u_(e,w),C=d_(e,{...w,cursor:P}),b=W(S),T=A_(e,{org:t,releases:b,project:y,environment:L}),Q=oe(S),B=W(C),R=oe(C),K=B===void 0&&C.state==="loading",ee=W(T),ae=oe(T),He=b!==void 0&&ee===void 0&&T.state!=="error",se=S.state==="loading",le=Ye(S);yi(()=>{if(b)A({type:"setEntries",payload:b})},[b,A]);let ue=fi(x);yi(()=>{if(ue.current===x)return;ue.current=x,A({type:"setSelected",payload:0})},[x,A]),yi(()=>{A({type:"setStatus",payload:{loading:se,since:le,error:Q?.message??(R?`health: ${R.message}`:void 0)??(ae?`adoption: ${ae.message}`:void 0),noun:"releases"}})},[se,le,Q,R,ae,S,A]);let ne=p_(()=>A({type:"setOpenDropdown",payload:null}),[A]);De(i,{open:()=>A({type:"setDetailOpen",payload:(ie)=>!ie}),nextPage:q,previousPage:v,back:()=>{if(!r.detailOpen)return!1;return A({type:"setDetailOpen",payload:!1}),!0}});let N=Math.max(20,n-n9),U=Math.max(10,N-Jt),z=Ko(()=>mr(A9(c),U,{gap:UH}),[U,c]),X=Ko(()=>(b??[]).map((ie,re)=>u9(ie,r.detailOpen&&re===r.selected)),[b,r.detailOpen,r.selected]);l_(p,{index:r.selected,heights:X,layout:[o]});let xe=b===void 0&&se,Qe=b!==void 0&&b.length===0&&!se;return Z("box",{style:{flexDirection:"column",width:n,height:o},children:[Z("box",{style:{flexDirection:"row",width:n,flexShrink:0,height:he,border:!0,borderStyle:"rounded",borderColor:r.searchFocused?c.accent:c.border,backgroundColor:c.panel,paddingLeft:1,paddingRight:1},children:[Z(Nt,{},void 0,!1,void 0,this),Z("input",{ref:m,value:r.searchQuery,placeholder:"Search releases\u2026",focused:r.searchFocused,onInput:(ie)=>A({type:"setSearchQuery",payload:ie}),style:{flexGrow:1,textColor:c.text,backgroundColor:c.panel,focusedTextColor:c.text,focusedBackgroundColor:c.panel,placeholderColor:c.subText}},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z(Be,{client:e,org:t,openDropdown:r.openDropdown,selectedProjects:r.selectedProjects,selectedEnvs:r.selectedEnvs,statsPeriod:r.statsPeriod,sort:{value:h,items:f,onChange:(ie)=>A({type:"setSort",payload:ie})},width:n,anchorTop:he,onProjectChange:s,onEnvChange:(ie)=>A({type:"setSelectedEnvs",payload:ie}),onPeriodChange:(ie)=>A({type:"setStatsPeriod",payload:ie}),onDropdownClose:ne,onDropdownOpen:(ie)=>A({type:"setOpenDropdown",payload:ie})},void 0,!1,void 0,this),Z("scrollbox",{ref:p,focused:H,verticalScrollbarOptions:{showArrows:!1,trackOptions:{backgroundColor:c.panel,foregroundColor:c.muted}},style:{flexGrow:1,flexBasis:0,width:n},children:[xe?Array.from({length:a9},(ie,re)=>Z(S9,{resolved:z,width:N,seed:re},re,!1,void 0,this)):null,Qe?Z("box",{style:{flexDirection:"column",padding:1},children:[Z("text",{fg:c.text,children:"No releases found."},void 0,!1,void 0,this),O?Z("text",{fg:c.muted,children:O},void 0,!1,void 0,this):null,Z("text",{fg:c.muted,children:"Try widening the time range or clearing the version filter."},void 0,!1,void 0,this),Z("text",{fg:c.muted,children:"This organization may not have release tracking set up."},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null,b?.map((ie,re)=>Z(d9,{release:ie,index:re,health:B,healthPending:K,adoption:ee,adoptionPending:He,resolved:z,width:N,selected:H&&re===r.selected,expanded:r.detailOpen&&re===r.selected,onPress:l},ie.version,!1,void 0,this)),Q&&b===void 0?Z("box",{style:{flexDirection:"column",padding:1},children:[Z("text",{fg:c.danger,children:"Failed to load releases"},void 0,!1,void 0,this),Z("text",{fg:c.muted,children:Q.message},void 0,!1,void 0,this),Q.retryable?Z("text",{fg:c.muted,children:"R to retry"},void 0,!1,void 0,this):null]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this),Z(Me,{count:b?.length,noun:"release",hasMore:I!==null,pagination:I!==null||x>1?{page:x,hasPrevious:x>1,hasNext:I!==null,loading:se,onPrevious:v,onNext:q}:void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function y_(e,t){let r=[...e.projects].sort((H,n)=>H.slug.localeCompare(n.slug));if(t||r.length<=Si)return{shown:r,hidden:0};return{shown:r.slice(0,Si),hidden:r.length-Si}}function u9(e,t){let{shown:r,hidden:H}=y_(e,t);return o9+r.length+(H>0?1:0)+1}function d9({release:e,index:t,health:r,healthPending:H,adoption:n,adoptionPending:o,resolved:a,width:s,selected:i,expanded:l,onPress:c}){let A=_(),{shown:u,hidden:d}=y_(e,l),p=Math.max(10,s-Jt),g=ke(e.lastDeploy?.dateFinished??e.dateCreated),m=e.lastDeploy?` \u2502 ${e.lastDeploy.environment}`:"",O=`${g}${m}`,y=Math.min(O.length+1,Math.max(0,s-Jt-4)),L=Math.max(4,s-Jt-y);return Z("box",{style:{flexDirection:"column",width:s,flexShrink:0},onMouseDown:()=>c(t),children:[Z("box",{style:{flexDirection:"row",width:s,backgroundColor:i?A.selected:void 0},children:[Z("text",{fg:A.accent,children:i?"\u276F ":" "},void 0,!1,void 0,this),Z("text",{fg:A.text,attributes:G,children:k(e.shortVersion||e.version,L)},void 0,!1,void 0,this),Z("text",{fg:A.subText,children:k(O,y,"right")},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z("text",{fg:A.muted,children:k(` ${p9(e)}`,s)},void 0,!1,void 0,this),Z("box",{style:{flexDirection:"row",width:s},children:[Z("text",{children:" ".repeat(Jt)},void 0,!1,void 0,this),a.map(({column:f,width:h},w)=>Z("text",{fg:A.subText,children:(w>0?" ".repeat(UH):"")+k(f.label,h,f.align??"left")},f.key,!1,void 0,this))]},void 0,!0,void 0,this),u.map((f)=>Z("box",{style:{flexDirection:"row",width:s},children:[Z("text",{children:" ".repeat(Jt)},void 0,!1,void 0,this),a.map(({column:h,width:w},S)=>Z("box",{style:{flexDirection:"row",flexShrink:0},children:[S>0?Z("text",{children:" ".repeat(UH)},void 0,!1,void 0,this):null,h.render({project:f,health:r?.get(kr(e.version,f.id)),pending:H,adoption:n?.get(kr(e.version,f.id)),adoptionPending:o},i,w)]},h.key,!0,void 0,this))]},f.id,!0,void 0,this)),d>0?Z("text",{fg:A.subText,attributes:ir,children:k(` +${d} more ${d===1?"project":"projects"} \u2014 enter to expand`,s)},void 0,!1,void 0,this):null,Z("text",{fg:A.border,children:"\u2500".repeat(Math.max(0,p+Jt))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function p9(e){let t=[];if(e.package)t.push(e.package);if(e.commitCount>0){let r=`${e.commitCount} ${e.commitCount===1?"commit":"commits"}`,H=`${e.authorCount} ${e.authorCount===1?"author":"authors"}`;t.push(`${r} by ${H}`)}return t.length>0?t.join(" \xB7 "):"no commits associated"}function m9({row:e,width:t}){let r=_();if(e.pending||e.adoptionPending)return Z(ki,{width:t},void 0,!1,void 0,this);let H=e.health?.adoption;if(H===void 0)return Z("text",{fg:r.subText,children:k("\u2014",t)},void 0,!1,void 0,this);let n=Math.max(0,Math.min(100,H)),o=Math.min(g_,t),a=Math.max(0,t-o),s=e.adoption?g9(e.adoption,a):[];return Z(_9,{children:[Z("text",{fg:r.muted,children:k(`${Math.round(n)}%`,o)},void 0,!1,void 0,this),s.length>0?s.map((i,l)=>Z("text",{fg:i.series==="release"?r.accent:r.subText,children:i.glyph},l,!1,void 0,this)):Z("text",{children:" ".repeat(a)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function g9(e,t){if(t<=0||e.project.length===0&&e.release.length===0)return[];let r=Math.max(1,Math.floor(t/2)),H=Math.max(e.project.length,e.release.length),n=Array.from({length:H},(i,l)=>[e.project[l]??0,e.release[l]??0]),o=n.length>r?O9(n,r):eH(n,r),a=Math.max(1,...o.flatMap(([i,l])=>[i,l])),s=o.flatMap(([i,l])=>[{glyph:m_(i,a),series:"project"},{glyph:m_(l,a),series:"release"}]);while(s.length<t)s.push({glyph:" ",series:"project"});return s.slice(0,t)}function O9(e,t){let r=e.length/t;return Array.from({length:t},(H,n)=>{let o=Math.floor(n*r),a=Math.min(e.length,Math.floor((n+1)*r)),s=0,i=0;for(let l=o;l<a;l++)s+=e[l]?.[0]??0,i+=e[l]?.[1]??0;return[s,i]})}function m_(e,t){if(e<=0)return Wo[0];let r=Math.ceil(e/t*Wo.length)-1;return Wo[Math.max(0,Math.min(Wo.length-1,r))]}function y9({row:e,width:t}){let r=_();if(e.pending)return Z(ki,{width:t,align:"right"},void 0,!1,void 0,this);let H=e.health?.crashFreeSessions;if(H===void 0)return Z("text",{fg:r.subText,children:k("\u2014",t,"right")},void 0,!1,void 0,this);let[n,o]=H<c9?[r.danger,"\u2717"]:H<l9?[r.warning,"!"]:[r.success,"\u2713"];return Z("text",{fg:n,children:k(`${o} ${f9(H)}`,t,"right")},void 0,!1,void 0,this)}function ki({width:e,align:t="left"}){let r=_();return Z("text",{fg:r.panelAlt,children:k("\u2500".repeat(Math.max(1,Math.floor(e*0.6))),e,t)},void 0,!1,void 0,this)}function f9(e){if(Number.isNaN(e))return"\u2014";if(e>0&&e<1)return"<1%";let r=10**(e>90?3:0),H=Math.round(e*r)/r;if(H===100&&e<100)H=Math.floor(e*r)/r;return`${H}%`}function S9({resolved:e,width:t,seed:r}){let H=_(),n=Math.max(10,t-Jt);return Z("box",{style:{flexDirection:"column",width:t,flexShrink:0},children:[Z("text",{fg:H.panelAlt,children:k(` ${_i(24,r)}`,t)},void 0,!1,void 0,this),Z("text",{fg:H.panelAlt,children:k(` ${_i(32,r+3)}`,t)},void 0,!1,void 0,this),Z("box",{style:{flexDirection:"row",width:t},children:[Z("text",{children:" ".repeat(Jt)},void 0,!1,void 0,this),e.map(({column:o,width:a},s)=>Z("text",{fg:H.subText,children:(s>0?" ".repeat(UH):"")+k(o.label,a,o.align??"left")},o.key,!1,void 0,this))]},void 0,!0,void 0,this),Array.from({length:s9},(o,a)=>Z("box",{style:{flexDirection:"row",width:t},children:[Z("text",{children:" ".repeat(Jt)},void 0,!1,void 0,this),e.map(({column:s,width:i},l)=>Z("text",{fg:H.panelAlt,children:(l>0?" ".repeat(UH):"")+k(_i(i,r+a+l),i,s.align??"left")},s.key,!1,void 0,this))]},a,!0,void 0,this)),Z("text",{fg:H.border,children:"\u2500".repeat(Math.max(0,n+Jt))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function _i(e,t){if(e<=0)return"";let r=0.4+t*17%45/100;return"\u2500".repeat(Math.max(1,Math.min(e,Math.floor(e*r))))}import{useCallback as Ii,useEffect as mH,useMemo as k_,useRef as h_}from"h:0__";import{RenderableEvents as Bo}from"h:3__________";import{useCallback as f_}from"h:0__";function S_(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,sort:a,reloadToken:s=0}){let i=f_((c,A)=>e?Zc(e,{org:t,query:r,statsPeriod:H,project:n,environment:o,sort:a,cursor:c,signal:A}):null,[e,t,r,H,n,o,a]),l=_t(i,s);return{replays:it(l.status,(c)=>c.data),nextCursor:l.nextCursor,page:l.page,nextPage:l.nextPage,previousPage:l.previousPage}}function __(e,{org:t,replayId:r,statsPeriod:H,environment:n,count:o,reloadToken:a=0}){let s=f_((l)=>{if(!e)return null;if(o<=0)return Promise.resolve({data:[],nextCursor:null});return Jc(e,{org:t,replayId:r,statsPeriod:H,environment:n,signal:l})},[e,t,r,H,n,o]),{status:i}=Dt(s,{reloadKey:a});return{errors:it(i,(l)=>l.data),nextCursor:W(i)?.nextCursor??null}}import{jsxDEV as te,Fragment as w_}from"h:6___________________________";var Li=10,k9=15;function h9(e){return[{key:"session",label:"Replay",width:"flex",render:(t,r,H)=>{if(t.isArchived)return te("text",{fg:e.subText,children:k("Deleted Replay",H)},void 0,!1,void 0,this);let n=t.hasViewed?" ":"\u25CF ",o=t.user.displayName??"Anonymous User",a=H-n.length;return te(w_,{children:[te("text",{fg:e.accent,children:n},void 0,!1,void 0,this),a>0?te("text",{fg:e.text,attributes:r?G:0,children:k(o,a)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}},{key:"os",label:"OS",width:11,render:(t,r,H)=>te("text",{fg:e.subText,children:k(SH(t.os),H)},void 0,!1,void 0,this)},{key:"browser",label:"Browser",width:11,render:(t,r,H)=>te("text",{fg:e.subText,children:k(SH(t.browser),H)},void 0,!1,void 0,this)},{key:"duration",label:"Duration",width:8,align:"right",render:(t,r,H)=>te("text",{fg:e.text,children:k(fa(t.durationSec),H,"right")},void 0,!1,void 0,this)},{key:"dead",label:"Dead",width:5,align:"right",priority:1,render:(t,r,H)=>te(hi,{value:t.countDeadClicks,width:H,color:e.warning},void 0,!1,void 0,this)},{key:"rage",label:"Rage",width:5,align:"right",priority:1,render:(t,r,H)=>te(hi,{value:t.countRageClicks,width:H,color:e.danger},void 0,!1,void 0,this)},{key:"errors",label:"Errors",width:6,align:"right",render:(t,r,H)=>te(hi,{value:t.countErrors,width:H,color:e.danger},void 0,!1,void 0,this)},{key:"activity",label:"Activity",width:Li,priority:2,render:(t,r,H)=>te(I9,{score:t.activity,width:H},void 0,!1,void 0,this)}]}function L_({client:e,org:t,state:r,focused:H,width:n,height:o,reloadToken:a,onProjectSelect:s,pushView:i,registerActions:l,activateRow:c}){let A=_(),{dispatch:u}=r,d=r.committedQuery,p=r.selectedProjects.length>0?r.selectedProjects:void 0,g=r.selectedEnvs.length>0?r.selectedEnvs:void 0,m=Vc(r.sort),{replays:O,nextCursor:y,page:L,nextPage:f,previousPage:h}=S_(e,{org:t,query:d,statsPeriod:r.statsPeriod,project:p,environment:g,sort:m,reloadToken:a}),w=O.state==="loading",S=Ye(O),I=W(O),P=oe(O),x=k_(()=>I?.flatMap((T)=>T.projectId?[T.projectId]:[])??[],[I]),q=Zr(e,t,x),v=k_(()=>I?.map((T)=>({...T,projectSlug:T.projectId?q.get(T.projectId):void 0})),[I,q]);mH(()=>{if(v)u({type:"setEntries",payload:v})},[v,u]);let C=h_(L);mH(()=>{if(C.current===L)return;C.current=L,u({type:"setSelected",payload:0})},[L,u]),mH(()=>{u({type:"setStatus",payload:{loading:w,since:S,error:P?.message,noun:"replays"}})},[w,S,P,O,u]);let b=Ii(()=>u({type:"setOpenDropdown",payload:null}),[u]);return De(l,{open:(T)=>{let Q=Ut(r)[T];if(Q)i(b9(Q,r.statsPeriod,r.selectedEnvs))},nextPage:f,previousPage:h}),te("box",{style:{flexDirection:"column",width:n,height:o},children:[te(M9,{state:r,width:n,placeholder:"Search replays\u2026"},void 0,!1,void 0,this),te(Be,{client:e,org:t,openDropdown:r.openDropdown,selectedProjects:r.selectedProjects,selectedEnvs:r.selectedEnvs,statsPeriod:r.statsPeriod,sort:{value:m,items:ya,onChange:(T)=>u({type:"setSort",payload:T})},width:n,anchorTop:he,onProjectChange:s,onEnvChange:(T)=>u({type:"setSelectedEnvs",payload:T}),onPeriodChange:(T)=>u({type:"setStatsPeriod",payload:T}),onDropdownClose:b,onDropdownOpen:(T)=>u({type:"setOpenDropdown",payload:T})},void 0,!1,void 0,this),te(Je,{rows:v,columns:h9(A),width:n,selectedIndex:r.selected,focused:H,rowKey:(T)=>T.id,loading:_e(O),error:P,errorTitle:"Failed to load replays",onRowClick:c,renderDetail:(T,Q,B)=>L9(T,Q,B,A),minFlex:k9,empty:{title:"No replays found.",lines:[d||void 0,"Try widening the time range or adjusting the query.","This organization may not have session replay enabled."]},layout:[o]},void 0,!1,void 0,this),te(Me,{count:v?.length,noun:"replay",hasMore:y!==null,pagination:y!==null||L>1?{page:L,hasPrevious:L>1,hasNext:y!==null,loading:w,onPrevious:h,onNext:f}:void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function L9(e,t,r,H){let n=[e.projectSlug,_H(e.id)].filter(Boolean),o=ke(e.startedAt);if(o)n.push(`${o} ago`);return te("text",{fg:H.muted,children:k(` ${n.join(" \xB7 ")}`,r)},void 0,!1,void 0,this)}function hi({value:e,width:t,color:r}){let H=_(),n=e!==void 0;return te("text",{fg:n&&e>0?r:H.subText,children:k(n?String(e):"\u2014",t,"right")},void 0,!1,void 0,this)}function I9({score:e,width:t}){let r=_();if(t<=0)return null;if(e===void 0)return te("text",{fg:r.subText,children:k("\u2014",t)},void 0,!1,void 0,this);let H=Math.max(0,Math.min(Li,Math.round(e))),n=Math.round(H/Li*t),o=Math.max(0,t-n);return te(w_,{children:[n>0?te("text",{fg:r.accent,children:"\u2588".repeat(n)},void 0,!1,void 0,this):null,o>0?te("text",{fg:r.border,children:"\u2591".repeat(o)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function b9(e,t,r){return{id:`replay:${e.id}`,label:_H(e.id),stateKey:_a,initialState:{statsPeriod:t,selectedEnvs:r,selectedProjects:e.projectSlug?[e.projectSlug]:[]},render:(H)=>H.state?te(b_,{...H,state:H.state,replay:e},void 0,!1,void 0,this):null}}var w9=(e,{org:t,id:r,signal:H})=>zc(e,{org:t,replayId:r,signal:H});function I_(e){return{id:`replay:${e}`,label:_H(e),stateKey:_a,initialState:{statsPeriod:Xr,selectedEnvs:[],selectedProjects:[]},render:(t)=>t.state?te(T9,{...t,state:t.state,replayId:e},void 0,!1,void 0,this):null}}function T9({client:e,org:t,state:r,replayId:H,reloadToken:n,width:o,height:a,updateView:s,...i}){let l=iH(e,{org:t,id:H,reloadToken:n,load:w9}),c=W(l);if(mH(()=>{if(c)s(`replay:${H}`,{label:_H(c.id)})},[c,H,s]),!c)return te(aH,{status:l,noun:"replay",width:o,height:a},void 0,!1,void 0,this);return te(b_,{...i,client:e,org:t,state:r,replay:c,reloadToken:n,width:o,height:a,updateView:s},void 0,!1,void 0,this)}function x9(e){return[{key:"time",label:"Time",width:8,render:(t,r,H)=>te("text",{fg:e.muted,children:k(q9(t.timestamp),H)},void 0,!1,void 0,this)},{key:"level",label:"Level",width:5,priority:1,render:(t,r,H)=>te("text",{fg:t.level==="error"||t.level==="fatal"?e.danger:e.muted,children:k(t.level??"",H)},void 0,!1,void 0,this)},{key:"issue",label:"Issue",width:16,priority:2,render:(t,r,H)=>te("text",{fg:e.subText,children:k(t.issue??"",H)},void 0,!1,void 0,this)},{key:"title",label:"Title",width:"flex",render:(t,r,H)=>te("text",{fg:e.text,children:k(t.title,H)},void 0,!1,void 0,this)}]}function b_({client:e,org:t,state:r,replay:H,focused:n,width:o,height:a,reloadToken:s}){let i=_(),{dispatch:l}=r,{errors:c,nextCursor:A}=__(e,{org:t,replayId:H.id,statsPeriod:r.statsPeriod,environment:r.selectedEnvs.length>0?r.selectedEnvs:void 0,count:H.countErrors??0,reloadToken:s}),u=W(c),d=oe(c);mH(()=>{if(u)l({type:"setEntries",payload:u})},[u,l]),mH(()=>{l({type:"setStatus",payload:{loading:c.state==="loading",error:d?.message,noun:"replay errors"}})},[c,d,l]);let p=Ii(()=>l({type:"setOpenDropdown",payload:null}),[l]),g=Math.max(20,o-2),m=H.user.displayName??"Anonymous User";return te("box",{style:{flexDirection:"column",width:o,height:a,paddingLeft:1},children:[te(Be,{client:e,org:t,openDropdown:r.openDropdown,selectedProjects:r.selectedProjects,selectedEnvs:r.selectedEnvs,statsPeriod:r.statsPeriod,width:g,anchorTop:0,onProjectChange:(O)=>l({type:"setSelectedProjects",payload:O}),onEnvChange:(O)=>l({type:"setSelectedEnvs",payload:O}),onPeriodChange:(O)=>l({type:"setStatsPeriod",payload:O}),onDropdownClose:p,onDropdownOpen:(O)=>l({type:"setOpenDropdown",payload:O})},void 0,!1,void 0,this),te("box",{style:{flexDirection:"row",flexShrink:0},children:[te("text",{fg:i.text,attributes:G,children:D(m,Math.max(8,g-24))},void 0,!1,void 0,this),te("text",{fg:i.muted,children:D(` ${H.projectSlug??"\u2014"} \xB7 ${ke(H.startedAt)} ago`,24)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),te(pH,{label:"Duration",value:fa(H.durationSec),width:g},void 0,!1,void 0,this),te(pH,{label:"Platform",value:[SH(H.os),SH(H.browser)].filter((O)=>O!=="\u2014").join(" \xB7 "),width:g},void 0,!1,void 0,this),te(pH,{label:"Clicks",value:`${YH(H.countDeadClicks)} dead \xB7 ${YH(H.countRageClicks)} rage`,width:g},void 0,!1,void 0,this),te(pH,{label:"Session",value:`${YH(H.countUrls)} urls \xB7 ${YH(H.countSegments)} segments \xB7 activity ${YH(H.activity)}`,width:g},void 0,!1,void 0,this),te(pH,{label:"Release",value:H.releases[0]??"\u2014",width:g},void 0,!1,void 0,this),te(pH,{label:"URL",value:H.urls[0]??"\u2014",width:g},void 0,!1,void 0,this),te("box",{style:{flexDirection:"column",flexShrink:0},children:[te("text",{fg:i.muted,children:" "},void 0,!1,void 0,this),te("text",{fg:i.subText,children:k("Playback is not available in a terminal. Open it at:",g)},void 0,!1,void 0,this),P9(el(t,H.id),g).map((O,y)=>te("text",{fg:i.accent,children:k(O,g)},y,!1,void 0,this)),te("text",{fg:i.muted,children:" "},void 0,!1,void 0,this)]},void 0,!0,void 0,this),te(Je,{rows:u,columns:x9(i),width:o-1,selectedIndex:r.selected,focused:n,rowKey:(O)=>O.id,loading:_e(c),error:d,errorTitle:"Failed to load replay errors",empty:{title:"No errors in this replay."},layout:[a]},void 0,!1,void 0,this),te(Me,{count:u?.length,noun:"error",hasMore:A!==null},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function pH({label:e,value:t,width:r}){let H=_(),n=10;return te("box",{style:{flexDirection:"row",flexShrink:0},children:[te("text",{fg:H.muted,children:k(e,10)},void 0,!1,void 0,this),te("text",{fg:H.text,children:D(t||"\u2014",Math.max(0,r-10))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function P9(e,t){if(t<=0)return[e];let r=[];for(let H=0;H<e.length;H+=t)r.push(e.slice(H,H+t));return r.length>0?r:[""]}function YH(e){return e===void 0?"\u2014":String(e)}function q9(e){if(!e)return"--:--:--";return/T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??(e.slice(11,19)||"--:--:--")}function M9({state:e,width:t,placeholder:r}){let H=_(),{focusSearch:n,handleSearchBlur:o}=e,a=h_(null),s=Ii((i)=>{let l=a.current;if(l)l.removeAllListeners(Bo.FOCUSED),l.removeAllListeners(Bo.BLURRED);if(a.current=i,i)i.on(Bo.FOCUSED,()=>n()),i.on(Bo.BLURRED,()=>o())},[n,o]);return te("box",{style:{flexDirection:"row",width:t,flexShrink:0,height:he,border:!0,borderStyle:"rounded",borderColor:e.searchFocused?H.accent:H.border,backgroundColor:H.panel,paddingLeft:1,paddingRight:1},children:[te(Nt,{},void 0,!1,void 0,this),te("input",{ref:s,value:e.searchQuery,placeholder:r,focused:e.searchFocused,onInput:(i)=>e.dispatch({type:"setSearchQuery",payload:i}),style:{flexGrow:1,textColor:H.text,backgroundColor:H.panel,focusedTextColor:H.text,focusedBackgroundColor:H.panel,placeholderColor:H.subText}},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}import{useCallback as C9,useEffect as T_,useMemo as Q9}from"h:0__";import{jsxDEV as ht}from"h:6___________________________";var N9=1,j9=20;function D9(e,t){return[{key:"star",label:" ",width:1,render:(r)=>ht("text",{fg:r.starred?t.warning:t.muted,children:r.starred?"\u2605":" "},void 0,!1,void 0,this)},{key:"name",label:"Name",width:24,render:(r,H,n)=>ht("text",{fg:H?t.text:t.subText,attributes:H?G:0,children:k(D(r.name,n),n)},void 0,!1,void 0,this)},{key:"type",label:"Type",width:12,priority:2,render:(r,H,n)=>ht("text",{fg:t.muted,children:k(D(r.datasetLabel,n),n)},void 0,!1,void 0,this)},{key:"query",label:"Query",width:"flex",render:(r,H,n)=>ht("text",{fg:r.query?t.muted:t.subText,children:k(D(R9(r),n),n)},void 0,!1,void 0,this)},{key:"creator",label:"Creator",width:14,priority:3,render:(r,H,n)=>ht("text",{fg:t.subText,children:k(D(r.createdBy??(r.isPrebuilt?"Sentry":"\u2014"),n),n)},void 0,!1,void 0,this)},{key:"activity",label:e.activityLabel,width:11,align:"right",priority:1,render:(r,H,n)=>ht("text",{fg:t.subText,children:k(v9(r),n,"right")},void 0,!1,void 0,this)}]}function bi(e){let t=_(),{client:r,org:H,screen:n,state:o,focused:a,width:s,height:i,reloadToken:l,pushView:c,registerActions:A,activateRow:u}=e,{dispatch:d,focusSearch:p,handleSearchBlur:g}=o,m=os(n.id)??os("explore.all-queries"),O=rs(m.source),y=Og(o.sort,m.source),{queries:L,nextCursor:f}=Cn(r,{org:H,source:m.source,search:o.committedQuery||void 0,sort:y,reloadToken:l}),h=W(L),w=oe(L),S=L.state==="loading",I=Ye(L);T_(()=>{if(h)d({type:"setEntries",payload:h})},[h,d]),T_(()=>{d({type:"setStatus",payload:{loading:S,since:I,error:w?.message,noun:m.noun}})},[S,I,w,L,m.noun,d]);let P=C9((q)=>{let v=Ut(o)[q];if(v)c(Dn(v))},[o,c]);De(A,{open:P});let x=Q9(()=>D9(m,t),[m,t]);return ht("box",{style:{flexDirection:"column",width:s,height:i},children:[ht(St,{value:o.searchQuery,placeholder:m.searchPlaceholder,focused:o.searchFocused,width:s,onInput:(q)=>d({type:"setSearchQuery",payload:q}),onFocus:p,onBlur:g},void 0,!1,void 0,this),ht("box",{style:{flexDirection:"row",width:s,flexShrink:0,height:N9,paddingLeft:1},children:[ht("text",{fg:t.text,attributes:G,children:m.title},void 0,!1,void 0,this),ht("text",{fg:t.muted,children:` ${m.description}`},void 0,!1,void 0,this)]},void 0,!0,void 0,this),ht(nH,{value:y,items:O,open:o.openDropdown==="sort",width:s,anchorTop:he+1,onChange:(q)=>d({type:"setSort",payload:q}),onOpen:()=>d({type:"setOpenDropdown",payload:"sort"}),onClose:()=>d({type:"setOpenDropdown",payload:null})},void 0,!1,void 0,this),ht(Je,{rows:h,columns:x,width:s,selectedIndex:o.selected,focused:a,rowKey:(q)=>`${q.source}:${q.id}`,loading:_e(L),error:w,errorTitle:`Failed to load ${m.noun}`,minFlex:j9,onRowClick:u,empty:{title:"No saved queries found.",lines:[o.committedQuery?`No query name matches "${o.committedQuery}".`:void 0,m.emptyHint]},layout:[i]},void 0,!1,void 0,this),ht(Me,{count:h?.length,noun:"query",hasMore:f!==null},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function R9(e){return e.query||e.fields.join(", ")}function v9(e){let t=e.lastVisited??e.dateUpdated;return t?ke(t):"\u2014"}import{useCallback as W9,useEffect as Ti,useMemo as q_,useRef as B9}from"h:0__";import{useCallback as G9,useEffect as E9,useMemo as K9,useState as X9}from"h:0__";function x_(e,{org:t,query:r="",project:H,sortBy:n,reloadToken:o=0}){let a=G9((i,l)=>e?ko(e,{org:t,query:r,project:H,sortBy:n,cursor:i,signal:l}).then((c)=>({data:Array.isArray(c.data)?c.data:[],nextCursor:c.nextCursor})):null,[e,t,r,H,n]),s=_t(a,o);return{workflows:it(s.status,(i)=>i.data),nextCursor:s.nextCursor,page:s.page,nextPage:s.nextPage,previousPage:s.previousPage}}var wi={byId:new Map,loading:!1};function P_(e,t,r){let n=K9(()=>{let s=new Set;for(let i of r??[])for(let l of i.detectorIds??[])s.add(l);return[...s].sort()},[r]).join(","),[o,a]=X9(wi);return E9(()=>{if(!e||n===""){a(wi);return}let s=new AbortController,i=!1;return a((l)=>({byId:l.byId,loading:!0})),gf(e,{org:t,ids:n.split(","),signal:s.signal}).then((l)=>{if(i)return;a({byId:new Map(l.map((c)=>[c.id,c])),loading:!1})}).catch(()=>{if(!i)a(wi)}),()=>{i=!0,s.abort()}},[e,t,n]),o}import{jsxDEV as Pt}from"h:6___________________________";var F9=4,U9=24,gH="\u2014",Y9=["project"];function $9(e){return[{key:"name",label:"Name",width:"flex",render:(t,r,H)=>Pt("text",{fg:V9(t,r,e),attributes:r?G:0,children:k(t.name,H)},void 0,!1,void 0,this)},{key:"lastTriggered",label:"Last Triggered",width:14,priority:2,render:(t,r,H)=>Pt("text",{fg:e.subText,children:k(t.lastTriggered,H)},void 0,!1,void 0,this)},{key:"actions",label:"Actions",width:18,priority:3,render:(t,r,H)=>Pt("text",{fg:t.enabled?e.text:e.subText,children:k(t.actions,H)},void 0,!1,void 0,this)},{key:"projects",label:"Projects",width:18,priority:4,render:(t,r,H)=>Pt("text",{fg:t.enabled?e.muted:e.subText,children:k(t.projects,H)},void 0,!1,void 0,this)},{key:"monitors",label:"Monitors",width:11,priority:1,render:(t,r,H)=>Pt("text",{fg:t.enabled?e.muted:e.subText,children:k(t.monitors,H)},void 0,!1,void 0,this)}]}function M_(e){let t=_(),{client:r,org:H,state:n,focused:o,width:a,height:s,reloadToken:i,onProjectSelect:l}=e,{dispatch:c,focusSearch:A,handleSearchBlur:u}=n,d=Qf(n.sort),p=n.selectedProjects.length>0?n.selectedProjects:void 0,{workflows:g,nextCursor:m,page:O,nextPage:y,previousPage:L}=x_(r,{org:H,query:n.committedQuery,project:p,sortBy:d,reloadToken:i}),f=W(g),h=oe(g),w=g.state==="loading",S=Ye(g),I=P_(r,H,f),P=q_(()=>[...I.byId.values()].flatMap((b)=>b.projectId?[b.projectId]:[]),[I.byId]),x=Zr(r,H,P),q=q_(()=>f?.map((b)=>Z9(b,I.byId,I.loading,x)),[f,I,x]);Ti(()=>{if(q)c({type:"setEntries",payload:q})},[q,c]);let v=B9(O);Ti(()=>{if(v.current===O)return;v.current=O,c({type:"setSelected",payload:0})},[O,c]),Ti(()=>{c({type:"setStatus",payload:{loading:w,since:S,error:h?.message,noun:"alerts"}})},[w,S,h,c]);let C=W9(()=>c({type:"setOpenDropdown",payload:null}),[c]);return De(e.registerActions,{nextPage:y,previousPage:L}),Pt("box",{style:{flexDirection:"column",width:a,height:s},children:[Pt(St,{value:n.searchQuery,placeholder:"Search alerts by name\u2026",focused:n.searchFocused,width:a,onInput:(b)=>c({type:"setSearchQuery",payload:b}),onFocus:A,onBlur:u},void 0,!1,void 0,this),Pt("box",{style:{flexDirection:"row",width:a,height:1,flexShrink:0,overflow:"hidden",paddingLeft:1},children:[Pt("text",{fg:t.text,attributes:G,children:"Alerts"},void 0,!1,void 0,this),Pt("text",{fg:t.muted,children:" Automations that run when a monitor fires."},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Pt(Be,{client:r,org:H,openDropdown:n.openDropdown,selectedProjects:n.selectedProjects,selectedEnvs:n.selectedEnvs,statsPeriod:n.statsPeriod,filters:Y9,sort:{value:d,items:Js,onChange:(b)=>c({type:"setSort",payload:b})},width:a,anchorTop:he+1,onProjectChange:l,onEnvChange:()=>{},onPeriodChange:()=>{},onDropdownOpen:(b)=>c({type:"setOpenDropdown",payload:b}),onDropdownClose:C},void 0,!1,void 0,this),Pt(Je,{rows:q,columns:$9(t),width:a,minFlex:U9,selectedIndex:n.selected,focused:o,rowKey:(b)=>b.id,loading:_e(g),error:h,errorTitle:"Failed to load alerts",onRowClick:e.activateRow,empty:{title:"No alerts found.",lines:n.committedQuery?[`No alert name matches "${n.committedQuery}".`]:["Alerts are the automations that run when a monitor fires.","This organization may not have the new alerts and monitors enabled."]},layout:[s,F9]},void 0,!1,void 0,this),Pt(Me,{count:q?.length,noun:"alert",hasMore:m!==null,pagination:m!==null||O>1?{page:O,hasPrevious:O>1,hasNext:m!==null,loading:w,onPrevious:L,onNext:y}:void 0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}function V9(e,t,r){if(!e.enabled)return r.subText;return t?r.text:r.accent}function Z9(e,t,r,H){let n=e.detectorIds??[];return{workflow:e,id:e.id,name:e.name||`Alert ${e.id}`,enabled:e.enabled!==!1,lastTriggered:e.lastTriggered?ke(e.lastTriggered):gH,actions:z9(e),projects:J9(n,t,r,H),monitors:n.length===0?gH:t1(n.length)}}function z9(e){let t=Lo(e);if(t.length===0)return gH;return t.map(ho).join(", ")}function J9(e,t,r,H){if(e.length===0)return gH;let n=e.map((a)=>t.get(a)).filter(e1);if(n.length===0)return r?"\u2026":gH;if(n.some((a)=>a.projectId===null))return"All Projects";let o=[...new Set(n.map((a)=>a.projectId?H.get(a.projectId):void 0).filter((a)=>Boolean(a)))];if(o.length===0)return r?"\u2026":gH;return o.join(", ")}function e1(e){return e!==void 0}function t1(e){return`${e} ${e===1?"monitor":"monitors"}`}var C_={"issues.feed":Vt,"issues.inbox":Vt,"issues.errors-outages":Vt,"issues.breached-metrics":Vt,"issues.warnings":Vt,"issues.configuration":Vt,"issues.user-feedback":Vt,"issues.recently-run":Vt,"issues.all-views":cf,"seer.ask":r_,"explore.profiles":c_,"explore.releases":O_,"explore.replays":L_,"explore.traces":RH,"explore.logs":RH,"explore.metrics":RH,"explore.errors":RH,"explore.conversations":MO,"dashboards.all":Cs,"dashboards.sentry-built":Cs,"monitors.alerts":M_,"explore.all-queries":bi,"explore.discover":bi,"monitors.all":Or,"monitors.mine":Or,"monitors.error":Or,"monitors.metric":Or,"monitors.cron":Or,"monitors.uptime":Or,"monitors.mobile-build":Or};function Fo(e,t){if(!e)return;let r;switch(e.kind){case"issue":r=mo(e.issueId,e.eventId);break;case"dashboard":r=uy(e.dashboardId);break;case"replay":r=I_(e.replayId);break;case"monitor":r=mS(e.detectorId);break}if(!r.stateKey||!t)return r;return{...r,initialState:{...r.initialState,...t}}}var n1=4,Q_=["nav","secondary","content"];function N_({client:e,org:t,reloadToken:r,width:H,initialScreen:n,initialLocation:o,initialSelectedProjects:a=[],availableNavGroups:s,focus:i,canOpen:l}){let c=kH(o?.screen??n),[A]=H1(()=>Fo(o?.detail,o?.state)),[u,d]=r1(Zg,void 0,()=>Vg(c.group,c.item,A)),{railGroup:p,activeGroup:g,activeItem:m,navExpanded:O,showSecondary:y,gotoMode:L,viewStack:f}=u,h=il(g,m),w=h?C_[h.id]:void 0,S=f.at(-1),I=S&&!S.stateKey?S:void 0,P=!I&&(w!==void 0||S!==void 0),x=[...f].reverse().find((Y)=>Y.stateKey),q=x?.stateKey??(h?Ir(h):void 0),v=x?.id??h?.id??q??"__unregistered__",{active:C,resetOrgScoped:b,seed:T}=gg(q,v,a,A?.stateKey?A.initialState:o?.state),Q=$g(e,t,p,r),B=Uo(()=>Ja(p,Q),[p,Q]),R=er((Y)=>{if(Y.stateKey&&Y.initialState)T(Y.stateKey,Y.initialState);d({type:"pushView",view:Y})},[T]),K=er((Y,Pe)=>{d({type:"updateView",id:Y,update:Pe})},[]),ee=er(()=>d({type:"popView"}),[]),ae=er(()=>d({type:"clearViews"}),[]),He=er((Y,Pe)=>{d({type:"navigate",group:Y,item:Pe}),C.dispatch({type:"setDetailOpen",payload:!1}),i.focus("content")},[i,C.dispatch]),se=er((Y,Pe)=>{let ct=kH(Y);if(!s.some((ar)=>ar.id===ct.group))return;if(Pe)T(Ir(ct),Pe);He(ct.group,ct.item)},[s,He,T]),le=er((Y)=>{let Pe=ua(pt(Y));if(Pe!==void 0){He(Y,Pe);return}let ct=Y===g?m:pt(Y).sections[0]?.items[0]??"";d({type:"openGroup",group:Y,item:ct}),i.focus("secondary")},[g,m,i,He]),ue=er(()=>{d({type:"expandNav"}),i.focus("nav")},[i]),ne=er((Y)=>{let Pe=Hg(p,Y);He(Pe.group,Pe.item);let ct=Y.open?.();if(ct)R(ct)},[p,He,R]),N=Uo(()=>L?Ag(p,s):null,[L,p,s]),U=er((Y)=>{let Pe=ua(pt(Y));if(Pe!==void 0){He(Y,Pe);return}let ct=Y===g?m:Ja(Y,Q)[0]?.label??"";d({type:"previewGroup",group:Y,item:ct})},[g,m,Q,He]),z=er((Y)=>{C.dispatch({type:"setEntries",payload:(Pe)=>{let ct=Pe;return ct.some((ar)=>ar?.id===Y.id)?ct.map((ar)=>ar?.id===Y.id?Y:ar):Pe}}),d({type:"replaceIssue",issue:Y})},[C.dispatch]),X=y||L,xe=X?xn:0,ie=Math.max(20,H-(O?$a:Va)-xe-2),re=f.at(-2)?.label??m,Ne=Uo(()=>{if(f.length===0)return;let Y=dg([pt(g).label,m,...f.map((Pe)=>Pe.label)],Math.max(0,ie-n1-Qa(re,ie)));return Y?` ${Y} `:void 0},[f,g,m,ie,re]),ye=Uo(()=>{if(L)return[{command:"sentry.nav.back",label:"cancel"}];if(C.searchFocused)return[{command:"sentry.nav.open",label:"submit"},{command:"sentry.nav.back",label:"cancel"}];let Y=S?[{command:"sentry.nav.back",label:"back"}]:[],Pe=I?l?[{command:"sentry.nav.open",label:"open"}]:[]:[...l?[{command:"sentry.nav.open",label:C.detailOpen?"close":h?.openLabel??"open"}]:[],{command:"sentry.nav.search",label:"search"}];return[...Y,...Pe,{command:"sentry.nav.goto",label:"nav"},{command:"sentry.app.commandPalette",label:"commands"},{command:"sentry.app.help",label:"help"},...S?[]:[{command:"sentry.app.quit",label:"quit"}]]},[L,C.searchFocused,C.detailOpen,S,I,h,l]);return{...u,dispatch:d,showSecondaryPane:X,topView:S,detailView:I,listActive:P,screen:h,ScreenComponent:w,state:C,resetOrgScoped:b,seed:T,navExtras:Q,secondaryItems:B,gotoHotkeys:N,contentWidth:ie,breadcrumb:Ne,backTarget:re,statusHints:ye,navigateTo:He,navigateToScreen:se,openNavGroup:le,expandNav:ue,selectNavItem:ne,previewNavGroup:U,pushView:R,popView:ee,clearViews:ae,updateView:K,replaceIssue:z}}import{useEffect as j_,useMemo as o1}from"h:0__";import{abandonNavigation as a1,beginNavigation as s1,breadcrumb as i1,endNavigation as c1,isTelemetryEnabled as l1}from"h:7___________________________________";var A1=250;function D_(e,t,r){let H=`${pt(e).label} \u203A ${t}`,n=l1();o1(()=>{if(!n)return;s1(H),i1({category:"navigation",message:H})},[H,n]),j_(()=>n?()=>a1(H):void 0,[H,n]),j_(()=>{if(!n||r)return;let o=Date.now(),a=setTimeout(()=>c1(H,o),A1);return()=>clearTimeout(a)},[H,r,n])}import{useEffect as u1,useState as d1}from"h:0__";import{watchForUpdate as p1}from"h:9________________________________";function R_(){let[e,t]=d1(void 0);return u1(()=>p1(t),[]),e}import{useCallback as m1,useRef as g1,useState as O1}from"h:0__";function v_(e,t,{onOptimistic:r,onNotice:H}){let[n,o]=O1(()=>new Set),a=g1(new Map),s=m1((i,l)=>{let c=sn(i);if(!c||!e)return;let A=c.update(l);if(!A){H({kind:"warning",text:Sl(i)});return}let u=l,d=fl(l,A);r(d),a.current.get(l.id)?.abort();let p=new AbortController;a.current.set(l.id,p),o((m)=>new Set(m).add(l.id));let g=()=>o((m)=>{let O=new Set(m);return O.delete(l.id),O});(async()=>{try{let m=await lc(e,{org:t,issueId:l.id,update:A,signal:p.signal});if(p.signal.aborted)return;r({...d,...m}),H({kind:"success",text:`${c.pastTense} ${l.shortId}`})}catch(m){if(p.signal.aborted)return;r(u),H({kind:"error",text:`failed: ${m instanceof sr?m.message:String(m)}`})}finally{if(!p.signal.aborted)a.current.delete(l.id),g()}})()},[e,t,r,H]);return{pending:n,run:s}}var Yo={"sentry.view.filterProject":"project","sentry.view.filterEnv":"env","sentry.view.filterDate":"date"},y1=Object.entries(Yo);function f1({showOpenUrl:e,showPalette:t,showHelp:r,setShowHelp:H}){return(n)=>{if(e||t)return"focused";if(!r)return"notMine";if(j("sentry.nav.back",n)||j("sentry.app.help",n))H(!1);return"mine"}}function S1({state:e,showOrgPicker:t}){return(r)=>{if(!e.openDropdown&&!t&&!Ea())return"notMine";if(e.openDropdown&&!Ea()&&j("sentry.nav.back",r))return e.dispatch({type:"setOpenDropdown",payload:null}),"mine";return"focused"}}function _1({state:e,screenActions:t,setShowPalette:r}){return(H)=>{if(!j("sentry.app.commandPalette",H))return"notMine";if(e.searchFocused)e.cancelSearch();if(t.current?.inputFocused?.())t.current.blurInput?.();return r(!0),"mine"}}function k1({state:e,screenActions:t,setShowOpenUrl:r}){return(H)=>{if(!j("sentry.app.openUrl",H))return"notMine";if(e.searchFocused)e.cancelSearch();if(t.current?.inputFocused?.())t.current.blurInput?.();return r(!0),"mine"}}function h1({screenActions:e}){return(t)=>{let r=e.current;if(!r?.inputFocused?.())return"notMine";if(j("sentry.nav.back",t))return r.blurInput?.(),"mine";if(j("sentry.nav.open",t))return r.submitInput?.()?"mine":"focused";if(r.handleInputKey?.(t))return"mine";if(j("sentry.app.focusNext",t)||j("sentry.app.focusPrev",t))return r.blurInput?.(),"notMine";return"focused"}}function L1({state:e}){return(t)=>{if(!e.searchFocused)return"notMine";if(j("sentry.nav.back",t))return e.cancelSearch(),"mine";if(j("sentry.nav.open",t))return e.submitSearch(),"mine";return"focused"}}function I1({navigation:e,setShowOrgPicker:t}){return(r)=>{if(!e.gotoMode){if(!j("sentry.nav.goto",r))return"notMine";return e.dispatch({type:"openGoto"}),"mine"}if(j("sentry.nav.goto",r)||j("sentry.nav.back",r)||r.ctrl||r.meta||r.shift)return e.dispatch({type:"closeGoto"}),"mine";if(j("sentry.app.switchOrg",r))return e.dispatch({type:"closeGoto"}),t(!0),"mine";let H=e.gotoHotkeys?.byKey.get(r.name.toLowerCase());if(H?.kind==="group")return e.previewNavGroup(H.group),"mine";if(H?.kind==="item")return e.navigateTo(e.railGroup,H.item),"mine";return e.dispatch({type:"closeGoto"}),"mine"}}function b1({navigation:e}){return(t)=>{if(!e.topView||e.showSecondary)return"notMine";if(!j("sentry.nav.back",t))return"notMine";return e.popView(),"mine"}}function w1({navigation:e,focus:t,screenActions:r}){return(H)=>{if(e.topView)return"notMine";if(t.focusedRef.current!=="content")return"notMine";if(!j("sentry.nav.back",H))return"notMine";return r.current?.back?.()?"mine":"notMine"}}function T1({navigation:e,focus:t}){return(r)=>{if(!e.showSecondary||!j("sentry.nav.back",r))return"notMine";return e.dispatch({type:"closeSecondary"}),t.focus("nav"),"mine"}}function x1({navigation:e,state:t,focus:r,setShowHelp:H,setShowOrgPicker:n,refresh:o,runUpdate:a,onQuit:s}){return(i)=>{if(e.listActive&&r.focusedRef.current==="content"){for(let[l,c]of y1){if(!j(l,i))continue;if(In(c))t.dispatch({type:"setOpenDropdown",payload:c});return"mine"}if(j("sentry.view.sort",i)&&um())return t.dispatch({type:"setOpenDropdown",payload:"sort"}),"mine"}if(j("sentry.app.help",i))return H(!0),"mine";if(j("sentry.app.refresh",i))return o(),"mine";if(j("sentry.app.switchOrg",i))return n(!0),"mine";if(j("sentry.app.update",i))return a(),"mine";if(j("sentry.app.quit",i))return s(),"mine";if(j("sentry.app.focusNext",i)){if(!e.navExpanded)return r.focus("content"),"mine";let l=r.focusedRef.current;if(e.showSecondary)r.focus(l==="nav"?"secondary":"nav");else r.focus(l==="nav"?"content":"nav");return"mine"}if(j("sentry.app.focusPrev",i)){if(!e.navExpanded)return r.focus("content"),"mine";let l=r.focusedRef.current;if(e.showSecondary)r.focus(l==="secondary"?"nav":"secondary");else r.focus(l==="content"?"nav":"content");return"mine"}return"notMine"}}function P1({activeIssue:e,focus:t,triage:r}){return(H)=>{if(!e||t.focusedRef.current!=="content")return"notMine";for(let n of Ia){if(!j(n.commandId,H))continue;return r(n.commandId,e),"mine"}return"notMine"}}function q1({navigation:e,focus:t,availableNavGroups:r}){return(H)=>{if(t.focusedRef.current!=="nav")return"notMine";if(j("sentry.nav.open",H))return e.openNavGroup(e.railGroup),"mine";let n=r.findIndex((s)=>s.id===e.railGroup),o=j("sentry.nav.down",H)?1:j("sentry.nav.up",H)?-1:0;if(o===0)return"notMine";let a=r[(n+o+r.length)%r.length];return e.dispatch({type:"selectRailGroup",group:a.id}),"mine"}}function M1({navigation:e,focus:t}){return(r)=>{if(!e.showSecondary||t.focusedRef.current!=="secondary")return"notMine";let H=e.secondaryItems.findIndex((a)=>a.label===e.secondaryItem);if(j("sentry.nav.open",r)){let a=e.secondaryItems[H]??e.secondaryItems[0];if(a)e.selectNavItem(a);return"mine"}let n=j("sentry.nav.down",r)?1:j("sentry.nav.up",r)?-1:0;if(n===0)return"notMine";let o=Math.max(0,Math.min(H+n,e.secondaryItems.length-1));return e.dispatch({type:"selectSecondaryItem",item:e.secondaryItems[o]?.label??e.secondaryItem}),"mine"}}function C1({screenActions:e,focus:t}){return(r)=>{let H=e.current;if(!H||!t.isFocused("content"))return"notMine";if(H.openDetail&&j("sentry.nav.open",r))return H.openDetail(),"mine";return H.handleKey?.(r)?"mine":"notMine"}}function Q1({navigation:e,state:t,focus:r}){return(H)=>{if(!e.listActive||r.focusedRef.current!=="content")return"notMine";if(!j("sentry.nav.search",H))return"notMine";return t.focusSearch(),"mine"}}function N1({navigation:e,state:t,screenActions:r,focus:H}){return(n)=>{if(!e.listActive||H.focusedRef.current!=="content")return"notMine";let o=Math.max(0,t.entries.length-1);if(j("sentry.nav.pageDown",n))return r.current?.nextPage?.()?"mine":"notMine";if(j("sentry.nav.pageUp",n))return r.current?.previousPage?.()?"mine":"notMine";if(j("sentry.nav.open",n)){let a=r.current?.open;if(!a)return"notMine";return a(t.selected),"mine"}if(j("sentry.nav.down",n))return t.dispatch({type:"setSelected",payload:(a)=>Math.min(a+1,o)}),"mine";if(j("sentry.nav.up",n))return t.dispatch({type:"setSelected",payload:(a)=>Math.max(a-1,0)}),"mine";if(j("sentry.nav.top",n))return t.dispatch({type:"setSelected",payload:0}),"mine";if(j("sentry.nav.bottom",n))return t.dispatch({type:"setSelected",payload:o}),"mine";return"notMine"}}function G_(e){return[f1(e),S1(e),_1(e),k1(e),h1(e),L1(e),I1(e),b1(e),w1(e),T1(e),x1(e),P1(e),q1(e),M1(e),C1(e),Q1(e),N1(e)]}import{jsxDEV as dt}from"h:6___________________________";var K_="issues.feed";function X_({onQuit:e,client:t=null,org:r="",initialScreen:H=K_,initialLocation:n,initialProjectsByOrg:o={},user:a,initialSeerCodeModeByOrg:s={},initialSeerBashModeByOrg:i={},initialSeerShowThinkingByOrg:l={},onApplyUpdate:c}){let A=_(),{width:u,height:d}=D1(),[p,g]=Ot(()=>Object.fromEntries(Object.entries(o).map(([V,Oe])=>[V,[...Oe]]))),m=xi(p),[O,y]=Ot(()=>({...s})),[L,f]=Ot(()=>({...i})),[h,w]=Ot(()=>({...l})),[S,I]=Ot(n?.org??r),[P,x]=Ot(!1),[q,v]=Ot(!1),[C,b]=Ot(!1),[T,Q]=Ot(!1),[B,R]=Ot(),[K,ee]=Ot(),[ae,He]=Ot(a),se=K===void 0||K.includes("seer-explorer"),le=E_(()=>Et.filter((V)=>V.id!=="seer"||se),[se]),[ue,ne]=Ot(0),N=qt(()=>ne((V)=>V+1),[]),[U,z]=Ot(!1),X=ig(Q_,"content"),xe=N_({client:t,org:S,reloadToken:ue,width:u,initialScreen:H,initialLocation:n,initialSelectedProjects:p[S]??[],availableNavGroups:le,focus:X,canOpen:U}),{activeGroup:Qe,activeItem:ie,backTarget:re,breadcrumb:Ne,clearViews:ye,contentWidth:Y,detailView:Pe,expandNav:ct,gotoHotkeys:ar,gotoMode:Pi,listActive:qi,navigateTo:VH,navigateToScreen:Vo,navExpanded:B_,navExtras:F_,openNavGroup:U_,pushView:Zo,railGroup:Mi,replaceIssue:Y_,resetOrgScoped:Ci,screen:ZH,ScreenComponent:Qi,secondaryItem:$_,seed:zo,selectNavItem:V_,showSecondaryPane:Z_,state:ot,statusHints:z_,topView:Rr,updateView:J_}=xe;$o(()=>{if(R(void 0),ee(void 0),!t||!S)return;let V=new AbortController;return Ac(t,{org:S,signal:V.signal}).then((Oe)=>{if(Oe.avatar?.avatarUrl)R(Oe.avatar.avatarUrl);if(Array.isArray(Oe.features))ee(Oe.features)}).catch(()=>{}),()=>V.abort()},[t,S]),$o(()=>{if(a?.email||!t){He(a);return}if(Qe!=="seer")return;let V=new AbortController;return uc(t,V.signal).then(He).catch(()=>{}),()=>V.abort()},[Qe,t,a]);let ek=qt((V)=>{y((Oe)=>{let Mt={...Oe,[S]:V};return $H({seerCodeModeByOrg:Mt}).catch(()=>{}),Mt})},[S]),tk=qt((V)=>{f((Oe)=>{let Mt={...Oe,[S]:V};return $H({seerBashModeByOrg:Mt}).catch(()=>{}),Mt})},[S]),rk=qt((V)=>{w((Oe)=>{let Mt={...Oe,[S]:V};return $H({seerShowThinkingByOrg:Mt}).catch(()=>{}),Mt})},[S]),Hk=qt((V)=>{ot.dispatch({type:"setSelectedProjects",payload:V});let Oe={...m.current,[S]:[...V]};m.current=Oe,g(Oe),$H({projectsByOrg:Oe}).catch(()=>{})},[S,ot.dispatch]);D_(Qe,ie,ot.status.loading);let nk=YS(t,S,{features:K,isEmployee:ae?.email?.toLowerCase().endsWith("@sentry.io")===!0,userId:ae?.id,pageName:ZH?.id,codeMode:O[S]??"only",bashMode:L[S]??!1,showThinking:h[S]??!1,onCodeModeChange:ek,onBashModeChange:tk,onShowThinkingChange:rk}),Jo=xi(null),ok=qt((V)=>{Jo.current=V,z(Boolean(V?.open||V?.openDetail))},[]),[ak,Ni]=Ot(null),ea=xi(void 0),fr=qt((V)=>{Ni(V),clearTimeout(ea.current),ea.current=setTimeout(()=>Ni(null),4000)},[]);$o(()=>()=>clearTimeout(ea.current),[]);let ta=qt((V)=>{if(Q(!1),!V||V===S)return;I(V),ye(),Ci(m.current[V]??[]),fr({kind:"info",text:`switched to ${V}`}),v1({org:V}),R1({category:"navigation",message:`switched org to ${V}`}),G1("info","ui.org.switched",{org:V}),$H({org:V}).catch(()=>{})},[ye,S,Ci,fr]),zH=v_(t,S,{onOptimistic:Y_,onNotice:fr}),vr=Rr?.issue??(Qe==="issues"?Ut(ot)[ot.selected]:void 0);$o(()=>{if(Qe==="seer"&&!se)Vo(K_)},[Qe,Vo,se]);let ji=qt((V)=>{let Oe=kH(V.screen);if(V.org!==S)ta(V.org);VH(Oe.group,Oe.item);let Mt=Fo(V.detail,V.state);if(Mt){if(!Mt.stateKey&&V.state)zo(Ir(Oe),V.state);Zo(Mt)}else if(V.state)zo(Ir(Oe),V.state)},[VH,S,Zo,zo,ta]),sk=qt((V)=>{let Oe=ul(V);if(Oe.kind!=="location")return dl(Oe,"command_palette"),Oe;ji(Oe.location),b(!1);return},[ji]),JH=R_(),ra=Boolean(JH&&c),Ha=qt(()=>{if(!JH||!c){fr({kind:"idle",text:"already up to date"});return}Promise.resolve(c(JH)).then((V)=>{if(!V)fr({kind:"error",text:"update could not be applied"})})},[JH,c,fr]),ik=E_(()=>Ic({streamView:qi,hasIssue:Boolean(vr),updateReady:ra},le),[qi,vr,ra,le]),ck=qt((V)=>{if(v(!1),V.target.kind==="nav"){VH(V.target.group,V.target.item);return}let{commandId:Oe}=V.target;switch(Oe){case"sentry.app.quit":e();return;case"sentry.app.help":x(!0);return;case"sentry.app.refresh":N();return;case"sentry.app.switchOrg":Q(!0);return;case"sentry.app.openUrl":b(!0);return;case"sentry.app.update":Ha();return;case"sentry.nav.search":X.focus("content"),ot.focusSearch();return;case"sentry.view.filterProject":case"sentry.view.filterEnv":case"sentry.view.filterDate":{if(!In(Yo[Oe]))return;X.focus("content"),ot.dispatch({type:"setOpenDropdown",payload:Yo[Oe]});return}default:if(sn(Oe)&&vr)zH.run(Oe,vr)}},[vr,X,VH,e,N,ot,zH]),lk=qt((V)=>{let Oe=X.focusedRef.current==="content"&&V===ot.selected;if(ot.dispatch({type:"setSelected",payload:V}),xe.dispatch({type:"closeSecondary"}),X.focus("content"),Oe)Jo.current?.open?.(V)},[X,xe,ot]),Ak=G_({showOpenUrl:C,showPalette:q,showHelp:P,showOrgPicker:T,setShowOpenUrl:b,setShowPalette:v,setShowHelp:x,setShowOrgPicker:Q,navigation:xe,state:ot,screenActions:Jo,focus:X,availableNavGroups:le,activeIssue:vr,triage:zH.run,refresh:N,runUpdate:Ha,onQuit:e});j1((V)=>{tr(Ak,V,mt)});let uk=Math.max(3,d-3),Di=X.isFocused("content")&&!T,Ri={client:t,org:S,focused:Di,width:Y,height:uk,reloadToken:ue,onProjectSelect:Hk,pendingIds:zH.pending,pushView:Zo,notify:fr,activateRow:lk,registerActions:ok,updateView:J_,navigateToScreen:Vo};return dt("box",{style:{width:"100%",height:"100%",flexDirection:"column",backgroundColor:A.bg},children:[dt("box",{style:{flexGrow:1,flexDirection:"row"},children:[dt(tg,{active:Mi,expanded:B_,focused:X.isFocused("nav"),avatarUrl:B,orgSlug:S,groups:le,hotkeys:ar?.groups,onSelect:U_,onExpand:ct,onOrgPress:()=>Q(!0)},void 0,!1,void 0,this),Z_?dt(og,{group:Mi,activeItem:$_,focused:X.isFocused("secondary"),extras:F_,hotkeys:ar?.items,onSelect:V_},void 0,!1,void 0,this):null,dt("box",{title:Ne,titleColor:A.accent,style:{flexGrow:1,flexDirection:"column",overflow:"hidden",border:!0,borderColor:Di&&!ot.searchFocused?A.borderFocused:A.border},children:dt(Do.Provider,{value:nk,children:Rr?Rr.render({...Ri,state:Rr.stateKey?ot:void 0,issue:Rr.issue}):Qi&&ZH?dt(Qi,{...Ri,screen:ZH,state:ot},ZH.id,!1,void 0,this):dt("box",{style:{flexDirection:"column",paddingLeft:1},children:[dt("text",{fg:A.text,attributes:1,children:`${pt(Qe).label} \u203A ${ie}`},void 0,!1,void 0,this),dt("text",{fg:A.muted,children:"Not implemented yet."},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),Rr?dt(Yl,{parent:re,top:0,right:u-1,paneWidth:Y},void 0,!1,void 0,this):null]},void 0,!0,void 0,this),dt(sg,{notice:Pi?{kind:"info",text:"go to\u2026"}:ak??(Pe?{kind:"idle",text:Pe.label??""}:E1(ot.status)),since:Pe||Pi?void 0:ot.status.since,hints:z_,onUpdate:ra?Ha:void 0},void 0,!1,void 0,this),P?dt(ym,{onClose:()=>x(!1)},void 0,!1,void 0,this):null,q?dt(Wl,{actions:ik,onRun:ck,onClose:()=>v(!1)},void 0,!1,void 0,this):null,C?dt(Sm,{onSubmit:sk,onClose:()=>b(!1)},void 0,!1,void 0,this):null,T?dt(rg,{client:t,currentOrg:S,anchorLeft:Jm,anchorTop:eg,onSelect:ta,onClose:()=>Q(!1)},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)}function E1(e){if(e.error)return{kind:"error",text:e.error};if(e.loading)return{kind:"loading",text:e.noun?`loading ${e.noun}\u2026`:"loading\u2026"};return{kind:"idle",text:""}}import{jsxDEV as W_}from"h:6___________________________";var Ore={version:na,hostApiVersion:vi};function yre({theme:e,...t}){return W_(yl,{...e,children:W_(X_,{...t},void 0,!1,void 0,this)},void 0,!1,void 0,this)}export{yre as PayloadApp,Ore as payload};
|
|
19
|
+
|
|
20
|
+
//# debugId=C35D6FEF3E415B0C64756E2164756E21
|
|
21
|
+
//# sourceMappingURL=app.mjs.map
|