diff --git a/dashboard/src/main.test.tsx b/dashboard/src/main.test.tsx index 374f227..7206fdf 100644 --- a/dashboard/src/main.test.tsx +++ b/dashboard/src/main.test.tsx @@ -44,6 +44,8 @@ import { webhookQuerySelection, webhookTimeseriesPath, selectedWebhookHookIdFromPath, + selectedWebhookDeliveryIdFromPath, + WebhookDeliveryDetailPage, } from "./main"; describe("dashboard routing and API query helpers", () => { @@ -115,6 +117,12 @@ describe("dashboard routing and API query helpers", () => { expect(selectedWebhookHookIdFromPath("/webhooks")).toBeNull(); }); + it("recognizes shareable webhook delivery detail routes", () => { + expect(isWebhooksPath("/webhooks/deliveries/abc%2F123")).toBe(true); + expect(selectedWebhookDeliveryIdFromPath("/webhooks/deliveries/abc%2F123")).toBe("abc/123"); + expect(selectedWebhookDeliveryIdFromPath("/webhooks/hooks/42")).toBeNull(); + }); + it("shows a knowledge badge when proposed rules need moderation", () => { const onNavigate = vi.fn(); const { rerender } = render(); @@ -196,6 +204,17 @@ describe("dashboard routing and API query helpers", () => { expect(screen.getAllByText("delivery-1").length).toBeGreaterThan(0); }); + it("shows the full webhook payload and linked job status", async () => { + const onViewJob = vi.fn(); + const user = userEvent.setup(); + render(); + + expect(screen.getByText(/"body": "@giscebot fix it"/)).toBeInTheDocument(); + expect(screen.getByText("Job #91 · running · reply_comment · work_allowed")).toBeInTheDocument(); + await user.click(screen.getByRole("button", { name: "Open job" })); + expect(onViewJob).toHaveBeenCalledWith(91); + }); + it("loads the next hook cursor page when the inventory sentinel enters view", async () => { const onLoadMore = vi.fn(); class ImmediateIntersectionObserver { diff --git a/dashboard/src/main.tsx b/dashboard/src/main.tsx index f4c9f7b..834fe35 100644 --- a/dashboard/src/main.tsx +++ b/dashboard/src/main.tsx @@ -161,6 +161,21 @@ type WebhookHookDetailResponse = { recent_deliveries: WebhookDelivery[]; }; +type WebhookDeliveryDetailResponse = { + delivery: WebhookDelivery; + payload_hash: string; + payload: unknown | null; + job: { + id: number; + work_key: string; + status: string; + action: string; + decision: string; + work_intent: string; + updated_at: string; + } | null; +}; + type WebhookDeliveryFilters = { hook_id: string; event_name: string; @@ -946,8 +961,13 @@ function selectedWebhookHookIdFromPath(pathname = window.location.pathname) { return match ? decodeURIComponent(match[1]) : null; } +function selectedWebhookDeliveryIdFromPath(pathname = window.location.pathname) { + const match = pathname.match(/^\/webhooks\/deliveries\/([^/]+)\/?$/); + return match ? decodeURIComponent(match[1]) : null; +} + function isWebhooksPath(pathname = window.location.pathname) { - return /^\/webhooks(?:\/hooks\/[^/]+)?\/?$/.test(pathname); + return /^\/webhooks(?:\/(?:hooks|deliveries)\/[^/]+)?\/?$/.test(pathname); } function repoFromScope(scope: string) { @@ -992,6 +1012,7 @@ function App() { const isSystemRoute = isSystemPath(pathname); const isWebhooksRoute = isWebhooksPath(pathname); const selectedWebhookHookId = selectedWebhookHookIdFromPath(pathname); + const selectedWebhookDeliveryId = selectedWebhookDeliveryIdFromPath(pathname); const isDashboardRoute = !isJobDetailRoute && !isKnowledgeRoute && !isMcpRoute && !isSystemRoute && !isWebhooksRoute; const selectedJobId = jobRouteId; const metrics = useQuery({ queryKey: ["metrics", dashboardTimeZone], queryFn: () => api<{ metrics: MetricsSummary }>(metricsSummaryPath()), enabled: isDashboardRoute || isSystemRoute }); @@ -1031,20 +1052,25 @@ function App() { queryFn: ({ pageParam }) => api(webhookHooksPath(50, pageParam)), initialPageParam: null as string | null, getNextPageParam: (lastPage) => lastPage.next_cursor ?? undefined, - enabled: webhookEnabled && webhookQuery.hooks && selectedWebhookHookId === null, + enabled: webhookEnabled && webhookQuery.hooks && selectedWebhookHookId === null && selectedWebhookDeliveryId === null, }); const webhookDeliveries = useInfiniteQuery({ queryKey: ["webhook-deliveries", webhookDeliveryFilters], queryFn: ({ pageParam }) => api(webhookDeliveriesPath(50, pageParam, webhookDeliveryFilters)), initialPageParam: null as string | null, getNextPageParam: (lastPage) => lastPage.next_cursor ?? undefined, - enabled: webhookEnabled && webhookQuery.deliveries && selectedWebhookHookId === null, + enabled: webhookEnabled && webhookQuery.deliveries && selectedWebhookHookId === null && selectedWebhookDeliveryId === null, }); const webhookHookDetail = useQuery({ queryKey: ["webhook-hook", selectedWebhookHookId], queryFn: () => api(`/api/webhooks/github/hooks/${encodeURIComponent(selectedWebhookHookId ?? "")}`), enabled: webhookEnabled && selectedWebhookHookId !== null, }); + const webhookDeliveryDetail = useQuery({ + queryKey: ["webhook-delivery", selectedWebhookDeliveryId], + queryFn: () => api(`/api/webhooks/github/deliveries/${encodeURIComponent(selectedWebhookDeliveryId ?? "")}`), + enabled: webhookEnabled && selectedWebhookDeliveryId !== null, + }); const knowledge = useQuery({ queryKey: ["knowledge", knowledgeRepo, knowledgeStatus], queryFn: () => api(buildKnowledgeQuery(knowledgeRepo, knowledgeStatus)), @@ -1366,7 +1392,20 @@ function App() { onRefresh={() => mcpTokens.refetch()} /> ) : isWebhooksRoute ? ( - selectedWebhookHookId ? ( + selectedWebhookDeliveryId ? ( + { + setWebhookSection("deliveries"); + navigateDashboard("/webhooks"); + }} + onRefresh={() => webhookDeliveryDetail.refetch()} + onViewHook={(hookId) => navigateDashboard(`/webhooks/hooks/${encodeURIComponent(hookId)}`)} + onViewJob={viewJob} + /> + ) : selectedWebhookHookId ? ( webhookHookDetail.refetch()} onViewHook={(hookId) => navigateDashboard(`/webhooks/hooks/${encodeURIComponent(hookId)}`)} + onViewDelivery={(deliveryId) => navigateDashboard(`/webhooks/deliveries/${encodeURIComponent(deliveryId)}`)} /> ) : ( webhookSection === "hooks" ? webhookHooks.fetchNextPage() : webhookDeliveries.fetchNextPage()} onDeliveryFiltersChange={setWebhookDeliveryFilters} onViewHook={(hookId) => navigateDashboard(`/webhooks/hooks/${encodeURIComponent(hookId)}`)} + onViewDelivery={(deliveryId) => navigateDashboard(`/webhooks/deliveries/${encodeURIComponent(deliveryId)}`)} onRefresh={refreshWebhooks} /> ) @@ -1763,6 +1804,7 @@ type WebhookPageProps = { onLoadMore: () => void; onDeliveryFiltersChange: (filters: WebhookDeliveryFilters) => void; onViewHook: (hookId: string) => void; + onViewDelivery?: (deliveryId: string) => void; onRefresh: () => void; }; @@ -1787,6 +1829,7 @@ function WebhookPage({ onLoadMore, onDeliveryFiltersChange, onViewHook, + onViewDelivery = () => undefined, onRefresh, }: WebhookPageProps) { const observed = Object.values(summary?.receipts ?? {}).reduce((total, count) => total + count, 0); @@ -1834,7 +1877,7 @@ function WebhookPage({ : null} {section === "deliveries" ? - {sectionLoading ? : deliveries?.length ? : } + {sectionLoading ? : deliveries?.length ? : } : null} ); @@ -1851,8 +1894,8 @@ function WebhookDeliveryFiltersForm({ filters, onChange }: { filters: WebhookDel return
{fields.map((field) => )}
; } -function WebhookDeliveriesTable({ deliveries, onViewHook }: { deliveries: WebhookDelivery[]; onViewHook: (hookId: string) => void }) { - return {deliveries.map((delivery) => )}
ReceivedHookEventRepositoryResultIngestionDelivery
{delivery.created_at}{delivery.hook_id ? : Unknown (legacy)}{delivery.event_name}{delivery.action ? ` · ${delivery.action}` : ""}{delivery.repository ?? "—"}{delivery.status}{delivery.duplicate_count ? {delivery.duplicate_count} retries : null}{delivery.enqueue_status ? <>{delivery.enqueue_status}{delivery.job_id ? Job #{delivery.job_id} : null} : shadow}{delivery.delivery_id}
; +function WebhookDeliveriesTable({ deliveries, onViewHook, onViewDelivery = () => undefined }: { deliveries: WebhookDelivery[]; onViewHook: (hookId: string) => void; onViewDelivery?: (deliveryId: string) => void }) { + return {deliveries.map((delivery) => )}
ReceivedHookEventRepositoryResultIngestionDelivery
{delivery.created_at}{delivery.hook_id ? : Unknown (legacy)}{delivery.event_name}{delivery.action ? ` · ${delivery.action}` : ""}{delivery.repository ?? "—"}{delivery.status}{delivery.duplicate_count ? {delivery.duplicate_count} retries : null}{delivery.enqueue_status ? <>{delivery.enqueue_status}{delivery.job_id ? Job #{delivery.job_id} : null} : shadow}
; } function LazyScrollFrame({ noun, hasMore, loading, onLoadMore, children, className }: { noun: string; hasMore: boolean; loading: boolean; onLoadMore?: () => void; children: React.ReactNode; className?: string }) { @@ -1887,12 +1930,20 @@ function LazyLoadSentinel({ noun, hasMore, loading, onLoadMore }: { noun: string return
{loading ? `Loading more ${noun}...` : `Scroll for more ${noun}`}
; } -function WebhookHookDetailPage({ data, loading, error, onBack, onRefresh, onViewHook }: { data?: WebhookHookDetailResponse; loading: boolean; error: Error | null; onBack: () => void; onRefresh: () => void; onViewHook: (hookId: string) => void }) { +function WebhookHookDetailPage({ data, loading, error, onBack, onRefresh, onViewHook, onViewDelivery = () => undefined }: { data?: WebhookHookDetailResponse; loading: boolean; error: Error | null; onBack: () => void; onRefresh: () => void; onViewHook: (hookId: string) => void; onViewDelivery?: (deliveryId: string) => void }) { if (loading) return ; if (error) return
; if (!data) return ; const hook = data.hook; - return

{hook.target}

{hook.target_type} webhook #{hook.id}

{hook.admin_url ? Open in GitHub : null}
} />} />} />} />
Subscribed events
{hook.events.length ? hook.events.map((event) => {event}) : No event snapshot; redeliver a ping.}
{data.recent_deliveries.length ? : }
; + return

{hook.target}

{hook.target_type} webhook #{hook.id}

{hook.admin_url ? Open in GitHub : null}
} />} />} />} />
Subscribed events
{hook.events.length ? hook.events.map((event) => {event}) : No event snapshot; redeliver a ping.}
{data.recent_deliveries.length ? : }
; +} + +function WebhookDeliveryDetailPage({ data, loading, error, onBack, onRefresh, onViewHook, onViewJob }: { data?: WebhookDeliveryDetailResponse; loading: boolean; error: Error | null; onBack: () => void; onRefresh: () => void; onViewHook: (hookId: string) => void; onViewJob: (jobId: number) => void }) { + if (loading) return ; + if (error) return
; + if (!data) return ; + const delivery = data.delivery; + return

{delivery.event_name}{delivery.action ? ` · ${delivery.action}` : ""}

Delivery {delivery.delivery_id}

{delivery.hook_id ? : null}
{data.job ?
{data.job.work_key}
Job #{data.job.id} · {data.job.status} · {data.job.action} · {data.job.work_intent}
: }
{data.payload === null ? :
{JSON.stringify(data.payload, null, 2)}
}
; } function SystemPage({ @@ -4459,6 +4510,7 @@ export { SystemdUnits, UserMenu, WebPushControl, + WebhookDeliveryDetailPage, KnowledgePage, KnowledgeProposals, KnowledgeRules, @@ -4473,6 +4525,7 @@ export { isSystemPath, isWebhooksPath, selectedWebhookHookIdFromPath, + selectedWebhookDeliveryIdFromPath, isRetryableStatus, groupSessionEvents, groupTranscriptEntries, diff --git a/docs/ingestion.md b/docs/ingestion.md index 92eb3ea..2fa45a1 100644 --- a/docs/ingestion.md +++ b/docs/ingestion.md @@ -82,10 +82,11 @@ Multiple organizations and multiple hooks may use the same endpoint when each owner has its own entry in `GITHUB_AGENT_BRIDGE_WEBHOOK_SECRETS_BY_OWNER`. GitHub's `X-GitHub-Hook-ID` header keeps their inventory and activity separate. -The endpoint stores only routing metadata, a SHA-256 payload hash, and the -canonical event key in `webhook_shadow_receipts`; it deliberately stores no raw -payload and never creates a queue job. The monitoring API is split so opening -the overview does not load hook inventory or delivery history: +The endpoint stores routing metadata, a SHA-256 payload hash, the canonical +event key, and the verified JSON payload in `webhook_shadow_receipts`. The +payload follows the same bounded retention as its receipt and is exposed only +through the administrator-only delivery detail endpoint. The monitoring API is +split so opening the overview does not load hook inventory or delivery history: - `GET /api/webhooks/github/summary` returns mode, receipt counts, retries, and cross-source coverage (`both`, `imap_only`, `webhook_only`) with an explicit @@ -108,10 +109,15 @@ the overview does not load hook inventory or delivery history: cursor-paginated delivery page. Optional `hook_id`, `event_name`, `repository`, and `result` filters are applied server-side; every row includes the known hook identity so operators can navigate directly to its detail. +- `GET /api/webhooks/github/deliveries/{delivery_id}` returns the retained full + JSON payload, its SHA-256 hash, delivery metadata, and the linked job summary + when ingestion created or coalesced into a job. Legacy receipts created before + payload retention return `payload: null`. The dashboard loads these resources lazily per tab, caches them separately, and -appends cursor pages as the inventory or delivery list scrolls. Hook detail URLs -are shareable under `/webhooks/hooks/{hook_id}` and link to GitHub's webhook +appends cursor pages as the inventory or delivery list scrolls. Hook and +delivery detail URLs are shareable under `/webhooks/hooks/{hook_id}` and +`/webhooks/deliveries/{delivery_id}`; hook detail links to GitHub's webhook settings when the target is known. Here “operators” means users authorized as dashboard administrators through `GITHUB_AGENT_BRIDGE_DASHBOARD_ADMIN_USERS` or @@ -119,7 +125,7 @@ Here “operators” means users authorized as dashboard administrators through HTTP 403 to other authenticated users and HTTP 401 to unauthenticated users. Receipt details are retained for 30 days by default and pruned during ingestion; set `GITHUB_AGENT_BRIDGE_WEBHOOK_RETENTION_DAYS` to change that window. Raw -payloads are never retained. +payloads are pruned with their receipts. The maintained event inventory and support levels are in [`webhook-events.md`](webhook-events.md). diff --git a/src/github_agent_bridge/backend.py b/src/github_agent_bridge/backend.py index ada076d..ec78c2a 100644 --- a/src/github_agent_bridge/backend.py +++ b/src/github_agent_bridge/backend.py @@ -1159,6 +1159,43 @@ def github_webhook_shadow_deliveries( "next_cursor": next_cursor, } + @app.get("/api/webhooks/github/deliveries/{delivery_id}") + def github_webhook_delivery_detail( + delivery_id: str, + _: dict[str, Any] = Depends(current_admin_profile), + ) -> dict[str, Any]: + ensure_webhook_schema() + with sqlite3.connect(config.db) as con: + con.row_factory = sqlite3.Row + row = con.execute( + "SELECT r.delivery_id,r.hook_id,r.event_name,r.action,r.event_key,r.repository,r.status," + "r.enqueue_status,r.duplicate_count,r.created_at,r.payload_hash,r.payload_json," + "h.target hook_target,h.target_type hook_target_type," + "j.id job_id,j.work_key job_work_key,j.status job_status,j.action job_action," + "j.decision job_decision,j.work_intent job_work_intent,j.updated_at job_updated_at " + "FROM webhook_shadow_receipts r " + "LEFT JOIN webhook_hooks h ON h.hook_id=r.hook_id " + "LEFT JOIN ingest_receipts i ON i.source='webhook' AND i.source_key=r.delivery_id " + "LEFT JOIN jobs j ON j.id=COALESCE(r.job_id,i.job_id) WHERE r.delivery_id=?", + (delivery_id,), + ).fetchone() + if row is None: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="webhook_delivery_not_found") + payload = json.loads(row["payload_json"]) if row["payload_json"] else None + job = None + if row["job_id"] is not None: + job = { + "id": row["job_id"], "work_key": row["job_work_key"], "status": row["job_status"], + "action": row["job_action"], "decision": row["job_decision"], + "work_intent": row["job_work_intent"], "updated_at": row["job_updated_at"], + } + return { + "delivery": _webhook_delivery_payload(row), + "payload_hash": row["payload_hash"], + "payload": payload, + "job": job, + } + def dashboard_index() -> FileResponse: index = config.static_dir / "index.html" if not index.exists(): diff --git a/src/github_agent_bridge/dashboard_static/assets/index-CHm1EEiu.js b/src/github_agent_bridge/dashboard_static/assets/index-CHm1EEiu.js new file mode 100644 index 0000000..13f5c48 --- /dev/null +++ b/src/github_agent_bridge/dashboard_static/assets/index-CHm1EEiu.js @@ -0,0 +1,187 @@ +var sa=e=>{throw TypeError(e)};var Hr=(e,t,n)=>t.has(e)||sa("Cannot "+n);var g=(e,t,n)=>(Hr(e,t,"read from private field"),n?n.call(e):t.get(e)),U=(e,t,n)=>t.has(e)?sa("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),O=(e,t,n,r)=>(Hr(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Z=(e,t,n)=>(Hr(e,t,"access private method"),n);var wr=(e,t,n,r)=>({set _(s){O(e,t,s,n)},get _(){return g(e,t,r)}});import{f as dc,h as hc,g as qi,r as ke,R as L,d as nr,a as zr,C as rr,X as ir,Y as sr,T as ar,L as Eo,B as Gt,e as pc,c as mc,b as fc}from"./charts-SqBiqy9C.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();var Kr={exports:{}},Rn={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var aa;function xc(){if(aa)return Rn;aa=1;var e=dc(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,s=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function o(l,c,u){var d,h={},m=null,p=null;u!==void 0&&(m=""+u),c.key!==void 0&&(m=""+c.key),c.ref!==void 0&&(p=c.ref);for(d in c)r.call(c,d)&&!a.hasOwnProperty(d)&&(h[d]=c[d]);if(l&&l.defaultProps)for(d in c=l.defaultProps,c)h[d]===void 0&&(h[d]=c[d]);return{$$typeof:t,type:l,key:m,ref:p,props:h,_owner:s.current}}return Rn.Fragment=n,Rn.jsx=o,Rn.jsxs=o,Rn}var oa;function gc(){return oa||(oa=1,Kr.exports=xc()),Kr.exports}var i=gc(),vr={},la;function bc(){if(la)return vr;la=1;var e=hc();return vr.createRoot=e.createRoot,vr.hydrateRoot=e.hydrateRoot,vr}var yc=bc();const wc=qi(yc);var or=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},qt,kt,on,bo,vc=(bo=class extends or{constructor(){super();U(this,qt);U(this,kt);U(this,on);O(this,on,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){g(this,kt)||this.setEventListener(g(this,on))}onUnsubscribe(){var t;this.hasListeners()||((t=g(this,kt))==null||t.call(this),O(this,kt,void 0))}setEventListener(t){var n;O(this,on,t),(n=g(this,kt))==null||n.call(this),O(this,kt,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){g(this,qt)!==t&&(O(this,qt,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof g(this,qt)=="boolean"?g(this,qt):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},qt=new WeakMap,kt=new WeakMap,on=new WeakMap,bo),Bi=new vc,jc={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Nt,zi,yo,kc=(yo=class{constructor(){U(this,Nt,jc);U(this,zi,!1)}setTimeoutProvider(e){O(this,Nt,e)}setTimeout(e,t){return g(this,Nt).setTimeout(e,t)}clearTimeout(e){g(this,Nt).clearTimeout(e)}setInterval(e,t){return g(this,Nt).setInterval(e,t)}clearInterval(e){g(this,Nt).clearInterval(e)}},Nt=new WeakMap,zi=new WeakMap,yo),zt=new kc;function Nc(e){setTimeout(e,0)}var Sc=typeof window>"u"||"Deno"in globalThis;function Le(){}function Cc(e,t){return typeof e=="function"?e(t):e}function ci(e){return typeof e=="number"&&e>=0&&e!==1/0}function Po(e,t){return Math.max(e+(t||0)-Date.now(),0)}function It(e,t){return typeof e=="function"?e(t):e}function $e(e,t){return typeof e=="function"?e(t):e}function ca(e,t){const{type:n="all",exact:r,fetchStatus:s,predicate:a,queryKey:o,stale:l}=e;if(o){if(r){if(t.queryHash!==Ui(o,t.options))return!1}else if(!Kn(t.queryKey,o))return!1}if(n!=="all"){const c=t.isActive();if(n==="active"&&!c||n==="inactive"&&c)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||s&&s!==t.state.fetchStatus||a&&!a(t))}function ua(e,t){const{exact:n,status:r,predicate:s,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(Hn(t.options.mutationKey)!==Hn(a))return!1}else if(!Kn(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||s&&!s(t))}function Ui(e,t){return((t==null?void 0:t.queryKeyHashFn)||Hn)(e)}function Hn(e){return JSON.stringify(e,(t,n)=>di(n)?Object.keys(n).sort().reduce((r,s)=>(r[s]=n[s],r),{}):n)}function Kn(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Kn(e[n],t[n])):!1}var _c=Object.prototype.hasOwnProperty;function Ro(e,t,n=0){if(e===t)return e;if(n>500)return t;const r=da(e)&&da(t);if(!r&&!(di(e)&&di(t)))return t;const a=(r?e:Object.keys(e)).length,o=r?t:Object.keys(t),l=o.length,c=r?new Array(l):{};let u=0;for(let d=0;d{zt.setTimeout(t,e)})}function hi(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?Ro(e,t):t}function Pc(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function Rc(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var $i=Symbol();function Io(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===$i?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function To(e,t){return typeof e=="function"?e(...t):!!e}function Ic(e,t,n){let r=!1,s;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(s??(s=t()),r||(r=!0,s.aborted?n():s.addEventListener("abort",n,{once:!0})),s)}),e}var Qn=(()=>{let e=()=>Sc;return{isServer(){return e()},setIsServer(t){e=t}}})();function pi(){let e,t;const n=new Promise((s,a)=>{e=s,t=a});n.status="pending",n.catch(()=>{});function r(s){Object.assign(n,s),delete n.resolve,delete n.reject}return n.resolve=s=>{r({status:"fulfilled",value:s}),e(s)},n.reject=s=>{r({status:"rejected",reason:s}),t(s)},n}var Tc=Nc;function Ac(){let e=[],t=0,n=l=>{l()},r=l=>{l()},s=Tc;const a=l=>{t?e.push(l):s(()=>{n(l)})},o=()=>{const l=e;e=[],l.length&&s(()=>{r(()=>{l.forEach(c=>{n(c)})})})};return{batch:l=>{let c;t++;try{c=l()}finally{t--,t||o()}return c},batchCalls:l=>(...c)=>{a(()=>{l(...c)})},schedule:a,setNotifyFunction:l=>{n=l},setBatchNotifyFunction:l=>{r=l},setScheduler:l=>{s=l}}}var je=Ac(),ln,St,cn,wo,Lc=(wo=class extends or{constructor(){super();U(this,ln,!0);U(this,St);U(this,cn);O(this,cn,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){g(this,St)||this.setEventListener(g(this,cn))}onUnsubscribe(){var t;this.hasListeners()||((t=g(this,St))==null||t.call(this),O(this,St,void 0))}setEventListener(t){var n;O(this,cn,t),(n=g(this,St))==null||n.call(this),O(this,St,t(this.setOnline.bind(this)))}setOnline(t){g(this,ln)!==t&&(O(this,ln,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return g(this,ln)}},ln=new WeakMap,St=new WeakMap,cn=new WeakMap,wo),Tr=new Lc;function Mc(e){return Math.min(1e3*2**e,3e4)}function Ao(e){return(e??"online")==="online"?Tr.isOnline():!0}var mi=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function Lo(e){let t=!1,n=0,r;const s=pi(),a=()=>s.status!=="pending",o=w=>{var v;if(!a()){const b=new mi(w);m(b),(v=e.onCancel)==null||v.call(e,b)}},l=()=>{t=!0},c=()=>{t=!1},u=()=>Bi.isFocused()&&(e.networkMode==="always"||Tr.isOnline())&&e.canRun(),d=()=>Ao(e.networkMode)&&e.canRun(),h=w=>{a()||(r==null||r(),s.resolve(w))},m=w=>{a()||(r==null||r(),s.reject(w))},p=()=>new Promise(w=>{var v;r=b=>{(a()||u())&&w(b)},(v=e.onPause)==null||v.call(e)}).then(()=>{var w;r=void 0,a()||(w=e.onContinue)==null||w.call(e)}),y=()=>{if(a())return;let w;const v=n===0?e.initialPromise:void 0;try{w=v??e.fn()}catch(b){w=Promise.reject(b)}Promise.resolve(w).then(h).catch(b=>{var j;if(a())return;const C=e.retry??(Qn.isServer()?0:3),_=e.retryDelay??Mc,N=typeof _=="function"?_(n,b):_,F=C===!0||typeof C=="number"&&nu()?void 0:p()).then(()=>{t?m(b):y()})})};return{promise:s,status:()=>s.status,cancel:o,continue:()=>(r==null||r(),s),cancelRetry:l,continueRetry:c,canStart:d,start:()=>(d()?y():p().then(y),s)}}var Bt,vo,Mo=(vo=class{constructor(){U(this,Bt)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),ci(this.gcTime)&&O(this,Bt,zt.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Qn.isServer()?1/0:300*1e3))}clearGcTimeout(){g(this,Bt)!==void 0&&(zt.clearTimeout(g(this,Bt)),O(this,Bt,void 0))}},Bt=new WeakMap,vo);function Oc(e){return{onFetch:(t,n)=>{var d,h,m,p,y;const r=t.options,s=(m=(h=(d=t.fetchOptions)==null?void 0:d.meta)==null?void 0:h.fetchMore)==null?void 0:m.direction,a=((p=t.state.data)==null?void 0:p.pages)||[],o=((y=t.state.data)==null?void 0:y.pageParams)||[];let l={pages:[],pageParams:[]},c=0;const u=async()=>{let w=!1;const v=_=>{Ic(_,()=>t.signal,()=>w=!0)},b=Io(t.options,t.fetchOptions),C=async(_,N,F)=>{if(w)return Promise.reject(t.signal.reason);if(N==null&&_.pages.length)return Promise.resolve(_);const q=(()=>{const k={client:t.client,queryKey:t.queryKey,pageParam:N,direction:F?"backward":"forward",meta:t.options.meta};return v(k),k})(),M=await b(q),{maxPages:R}=t.options,z=F?Rc:Pc;return{pages:z(_.pages,M,R),pageParams:z(_.pageParams,N,R)}};if(s&&a.length){const _=s==="backward",N=_?Oo:fi,F={pages:a,pageParams:o},j=N(r,F);l=await C(F,j,_)}else{const _=e??a.length;do{const N=c===0?o[0]??r.initialPageParam:fi(r,l);if(c>0&&N==null)break;l=await C(l,N),c++}while(c<_)}return l};t.options.persister?t.fetchFn=()=>{var w,v;return(v=(w=t.options).persister)==null?void 0:v.call(w,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=u}}}function fi(e,{pages:t,pageParams:n}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Oo(e,{pages:t,pageParams:n}){var r;return t.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n):void 0}function Dc(e,t){return t?fi(e,t)!=null:!1}function Fc(e,t){return!t||!e.getPreviousPageParam?!1:Oo(e,t)!=null}var un,Ut,dn,Ke,$t,ye,Xn,Ht,Ue,Do,pt,jo,zc=(jo=class extends Mo{constructor(t){super();U(this,Ue);U(this,un);U(this,Ut);U(this,dn);U(this,Ke);U(this,$t);U(this,ye);U(this,Xn);U(this,Ht);O(this,Ht,!1),O(this,Xn,t.defaultOptions),this.setOptions(t.options),this.observers=[],O(this,$t,t.client),O(this,Ke,g(this,$t).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,O(this,Ut,ma(this.options)),this.state=t.state??g(this,Ut),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return g(this,un)}get promise(){var t;return(t=g(this,ye))==null?void 0:t.promise}setOptions(t){if(this.options={...g(this,Xn),...t},t!=null&&t._type&&O(this,un,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=ma(this.options);n.data!==void 0&&(this.setState(pa(n.data,n.dataUpdatedAt)),O(this,Ut,n))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&g(this,Ke).remove(this)}setData(t,n){const r=hi(this.state.data,t,this.options);return Z(this,Ue,pt).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t){Z(this,Ue,pt).call(this,{type:"setState",state:t})}cancel(t){var r,s;const n=(r=g(this,ye))==null?void 0:r.promise;return(s=g(this,ye))==null||s.cancel(t),n?n.then(Le).catch(Le):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return g(this,Ut)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>$e(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===$i||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>It(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!Po(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=g(this,ye))==null||n.continue()}onOnline(){var n;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=g(this,ye))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),g(this,Ke).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(g(this,ye)&&(g(this,Ht)||Z(this,Ue,Do).call(this)?g(this,ye).cancel({revert:!0}):g(this,ye).cancelRetry()),this.scheduleGc()),g(this,Ke).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Z(this,Ue,pt).call(this,{type:"invalidate"})}async fetch(t,n){var u,d,h,m,p,y,w,v,b,C,_;if(this.state.fetchStatus!=="idle"&&((u=g(this,ye))==null?void 0:u.status())!=="rejected"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(g(this,ye))return g(this,ye).continueRetry(),g(this,ye).promise}if(t&&this.setOptions(t),!this.options.queryFn){const N=this.observers.find(F=>F.options.queryFn);N&&this.setOptions(N.options)}const r=new AbortController,s=N=>{Object.defineProperty(N,"signal",{enumerable:!0,get:()=>(O(this,Ht,!0),r.signal)})},a=()=>{const N=Io(this.options,n),j=(()=>{const q={client:g(this,$t),queryKey:this.queryKey,meta:this.meta};return s(q),q})();return O(this,Ht,!1),this.options.persister?this.options.persister(N,j,this):N(j)},l=(()=>{const N={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:g(this,$t),state:this.state,fetchFn:a};return s(N),N})(),c=g(this,un)==="infinite"?Oc(this.options.pages):this.options.behavior;c==null||c.onFetch(l,this),O(this,dn,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=l.fetchOptions)==null?void 0:d.meta))&&Z(this,Ue,pt).call(this,{type:"fetch",meta:(h=l.fetchOptions)==null?void 0:h.meta}),O(this,ye,Lo({initialPromise:n==null?void 0:n.initialPromise,fn:l.fetchFn,onCancel:N=>{N instanceof mi&&N.revert&&this.setState({...g(this,dn),fetchStatus:"idle"}),r.abort()},onFail:(N,F)=>{Z(this,Ue,pt).call(this,{type:"failed",failureCount:N,error:F})},onPause:()=>{Z(this,Ue,pt).call(this,{type:"pause"})},onContinue:()=>{Z(this,Ue,pt).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0}));try{const N=await g(this,ye).start();if(N===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(N),(p=(m=g(this,Ke).config).onSuccess)==null||p.call(m,N,this),(w=(y=g(this,Ke).config).onSettled)==null||w.call(y,N,this.state.error,this),N}catch(N){if(N instanceof mi){if(N.silent)return g(this,ye).promise;if(N.revert){if(this.state.data===void 0)throw N;return this.state.data}}throw Z(this,Ue,pt).call(this,{type:"error",error:N}),(b=(v=g(this,Ke).config).onError)==null||b.call(v,N,this),(_=(C=g(this,Ke).config).onSettled)==null||_.call(C,this.state.data,N,this),N}finally{this.scheduleGc()}}},un=new WeakMap,Ut=new WeakMap,dn=new WeakMap,Ke=new WeakMap,$t=new WeakMap,ye=new WeakMap,Xn=new WeakMap,Ht=new WeakMap,Ue=new WeakSet,Do=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},pt=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...Fo(r.data,this.options),fetchMeta:t.meta??null};case"success":const s={...r,...pa(t.data,t.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return O(this,dn,t.manual?s:void 0),s;case"error":const a=t.error;return{...r,error:a,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),je.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),g(this,Ke).notify({query:this,type:"updated",action:t})})},jo);function Fo(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Ao(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function pa(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function ma(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Ae,te,Yn,Pe,Kt,hn,mt,Ct,Zn,pn,mn,Qt,Vt,_t,fn,re,Fn,xi,gi,bi,yi,wi,vi,ji,qo,ko,zo=(ko=class extends or{constructor(t,n){super();U(this,re);U(this,Ae);U(this,te);U(this,Yn);U(this,Pe);U(this,Kt);U(this,hn);U(this,mt);U(this,Ct);U(this,Zn);U(this,pn);U(this,mn);U(this,Qt);U(this,Vt);U(this,_t);U(this,fn,new Set);this.options=n,O(this,Ae,t),O(this,Ct,null),O(this,mt,pi()),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(g(this,te).addObserver(this),fa(g(this,te),this.options)?Z(this,re,Fn).call(this):this.updateResult(),Z(this,re,yi).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return ki(g(this,te),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return ki(g(this,te),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Z(this,re,wi).call(this),Z(this,re,vi).call(this),g(this,te).removeObserver(this)}setOptions(t){const n=this.options,r=g(this,te);if(this.options=g(this,Ae).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof $e(this.options.enabled,g(this,te))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");Z(this,re,ji).call(this),g(this,te).setOptions(this.options),n._defaulted&&!ui(this.options,n)&&g(this,Ae).getQueryCache().notify({type:"observerOptionsUpdated",query:g(this,te),observer:this});const s=this.hasListeners();s&&xa(g(this,te),r,this.options,n)&&Z(this,re,Fn).call(this),this.updateResult(),s&&(g(this,te)!==r||$e(this.options.enabled,g(this,te))!==$e(n.enabled,g(this,te))||It(this.options.staleTime,g(this,te))!==It(n.staleTime,g(this,te)))&&Z(this,re,xi).call(this);const a=Z(this,re,gi).call(this);s&&(g(this,te)!==r||$e(this.options.enabled,g(this,te))!==$e(n.enabled,g(this,te))||a!==g(this,_t))&&Z(this,re,bi).call(this,a)}getOptimisticResult(t){const n=g(this,Ae).getQueryCache().build(g(this,Ae),t),r=this.createResult(n,t);return Bc(this,r)&&(O(this,Pe,r),O(this,hn,this.options),O(this,Kt,g(this,te).state)),r}getCurrentResult(){return g(this,Pe)}trackResult(t,n){return new Proxy(t,{get:(r,s)=>(this.trackProp(s),n==null||n(s),s==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&g(this,mt).status==="pending"&&g(this,mt).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(r,s))})}trackProp(t){g(this,fn).add(t)}getCurrentQuery(){return g(this,te)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=g(this,Ae).defaultQueryOptions(t),r=g(this,Ae).getQueryCache().build(g(this,Ae),n);return r.fetch().then(()=>this.createResult(r,n))}fetch(t){return Z(this,re,Fn).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),g(this,Pe)))}createResult(t,n){var R;const r=g(this,te),s=this.options,a=g(this,Pe),o=g(this,Kt),l=g(this,hn),u=t!==r?t.state:g(this,Yn),{state:d}=t;let h={...d},m=!1,p;if(n._optimisticResults){const z=this.hasListeners(),k=!z&&fa(t,n),E=z&&xa(t,r,n,s);(k||E)&&(h={...h,...Fo(d.data,t.options)}),n._optimisticResults==="isRestoring"&&(h.fetchStatus="idle")}let{error:y,errorUpdatedAt:w,status:v}=h;p=h.data;let b=!1;if(n.placeholderData!==void 0&&p===void 0&&v==="pending"){let z;a!=null&&a.isPlaceholderData&&n.placeholderData===(l==null?void 0:l.placeholderData)?(z=a.data,b=!0):z=typeof n.placeholderData=="function"?n.placeholderData((R=g(this,mn))==null?void 0:R.state.data,g(this,mn)):n.placeholderData,z!==void 0&&(v="success",p=hi(a==null?void 0:a.data,z,n),m=!0)}if(n.select&&p!==void 0&&!b)if(a&&p===(o==null?void 0:o.data)&&n.select===g(this,Zn))p=g(this,pn);else try{O(this,Zn,n.select),p=n.select(p),p=hi(a==null?void 0:a.data,p,n),O(this,pn,p),O(this,Ct,null)}catch(z){O(this,Ct,z)}g(this,Ct)&&(y=g(this,Ct),p=g(this,pn),w=Date.now(),v="error");const C=h.fetchStatus==="fetching",_=v==="pending",N=v==="error",F=_&&C,j=p!==void 0,M={status:v,fetchStatus:h.fetchStatus,isPending:_,isSuccess:v==="success",isError:N,isInitialLoading:F,isLoading:F,data:p,dataUpdatedAt:h.dataUpdatedAt,error:y,errorUpdatedAt:w,failureCount:h.fetchFailureCount,failureReason:h.fetchFailureReason,errorUpdateCount:h.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:h.dataUpdateCount>u.dataUpdateCount||h.errorUpdateCount>u.errorUpdateCount,isFetching:C,isRefetching:C&&!_,isLoadingError:N&&!j,isPaused:h.fetchStatus==="paused",isPlaceholderData:m,isRefetchError:N&&j,isStale:Hi(t,n),refetch:this.refetch,promise:g(this,mt),isEnabled:$e(n.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const z=M.data!==void 0,k=M.status==="error"&&!z,E=P=>{k?P.reject(M.error):z&&P.resolve(M.data)},J=()=>{const P=O(this,mt,M.promise=pi());E(P)},D=g(this,mt);switch(D.status){case"pending":t.queryHash===r.queryHash&&E(D);break;case"fulfilled":(k||M.data!==D.value)&&J();break;case"rejected":(!k||M.error!==D.reason)&&J();break}}return M}updateResult(){const t=g(this,Pe),n=this.createResult(g(this,te),this.options);if(O(this,Kt,g(this,te).state),O(this,hn,this.options),g(this,Kt).data!==void 0&&O(this,mn,g(this,te)),ui(n,t))return;O(this,Pe,n);const r=()=>{if(!t)return!0;const{notifyOnChangeProps:s}=this.options,a=typeof s=="function"?s():s;if(a==="all"||!a&&!g(this,fn).size)return!0;const o=new Set(a??g(this,fn));return this.options.throwOnError&&o.add("error"),Object.keys(g(this,Pe)).some(l=>{const c=l;return g(this,Pe)[c]!==t[c]&&o.has(c)})};Z(this,re,qo).call(this,{listeners:r()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Z(this,re,yi).call(this)}},Ae=new WeakMap,te=new WeakMap,Yn=new WeakMap,Pe=new WeakMap,Kt=new WeakMap,hn=new WeakMap,mt=new WeakMap,Ct=new WeakMap,Zn=new WeakMap,pn=new WeakMap,mn=new WeakMap,Qt=new WeakMap,Vt=new WeakMap,_t=new WeakMap,fn=new WeakMap,re=new WeakSet,Fn=function(t){Z(this,re,ji).call(this);let n=g(this,te).fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(Le)),n},xi=function(){Z(this,re,wi).call(this);const t=It(this.options.staleTime,g(this,te));if(Qn.isServer()||g(this,Pe).isStale||!ci(t))return;const r=Po(g(this,Pe).dataUpdatedAt,t)+1;O(this,Qt,zt.setTimeout(()=>{g(this,Pe).isStale||this.updateResult()},r))},gi=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(g(this,te)):this.options.refetchInterval)??!1},bi=function(t){Z(this,re,vi).call(this),O(this,_t,t),!(Qn.isServer()||$e(this.options.enabled,g(this,te))===!1||!ci(g(this,_t))||g(this,_t)===0)&&O(this,Vt,zt.setInterval(()=>{(this.options.refetchIntervalInBackground||Bi.isFocused())&&Z(this,re,Fn).call(this)},g(this,_t)))},yi=function(){Z(this,re,xi).call(this),Z(this,re,bi).call(this,Z(this,re,gi).call(this))},wi=function(){g(this,Qt)!==void 0&&(zt.clearTimeout(g(this,Qt)),O(this,Qt,void 0))},vi=function(){g(this,Vt)!==void 0&&(zt.clearInterval(g(this,Vt)),O(this,Vt,void 0))},ji=function(){const t=g(this,Ae).getQueryCache().build(g(this,Ae),this.options);if(t===g(this,te))return;const n=g(this,te);O(this,te,t),O(this,Yn,t.state),this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))},qo=function(t){je.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(g(this,Pe))}),g(this,Ae).getQueryCache().notify({query:g(this,te),type:"observerResultsUpdated"})})},ko);function qc(e,t){return $e(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&$e(t.retryOnMount,e)===!1)}function fa(e,t){return qc(e,t)||e.state.data!==void 0&&ki(e,t,t.refetchOnMount)}function ki(e,t,n){if($e(t.enabled,e)!==!1&&It(t.staleTime,e)!=="static"){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&Hi(e,t)}return!1}function xa(e,t,n,r){return(e!==t||$e(r.enabled,e)===!1)&&(!n.suspense||e.state.status!=="error")&&Hi(e,n)}function Hi(e,t){return $e(t.enabled,e)!==!1&&e.isStaleByTime(It(t.staleTime,e))}function Bc(e,t){return!ui(e.getCurrentResult(),t)}var Uc=class extends zo{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type="infinite",super.setOptions(e)}getOptimisticResult(e){return e._type="infinite",super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){var y,w;const{state:n}=e,r=super.createResult(e,t),{isFetching:s,isRefetching:a,isError:o,isRefetchError:l}=r,c=(w=(y=n.fetchMeta)==null?void 0:y.fetchMore)==null?void 0:w.direction,u=o&&c==="forward",d=s&&c==="forward",h=o&&c==="backward",m=s&&c==="backward";return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:Dc(t,n.data),hasPreviousPage:Fc(t,n.data),isFetchNextPageError:u,isFetchingNextPage:d,isFetchPreviousPageError:h,isFetchingPreviousPage:m,isRefetchError:l&&!u&&!h,isRefetching:a&&!d&&!m}}},er,rt,Ce,Wt,it,jt,No,$c=(No=class extends Mo{constructor(t){super();U(this,it);U(this,er);U(this,rt);U(this,Ce);U(this,Wt);O(this,er,t.client),this.mutationId=t.mutationId,O(this,Ce,t.mutationCache),O(this,rt,[]),this.state=t.state||Hc(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){g(this,rt).includes(t)||(g(this,rt).push(t),this.clearGcTimeout(),g(this,Ce).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){O(this,rt,g(this,rt).filter(n=>n!==t)),this.scheduleGc(),g(this,Ce).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){g(this,rt).length||(this.state.status==="pending"?this.scheduleGc():g(this,Ce).remove(this))}continue(){var t;return((t=g(this,Wt))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var o,l,c,u,d,h,m,p,y,w,v,b,C,_,N,F,j,q;const n=()=>{Z(this,it,jt).call(this,{type:"continue"})},r={client:g(this,er),meta:this.options.meta,mutationKey:this.options.mutationKey};O(this,Wt,Lo({fn:()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(new Error("No mutationFn found")),onFail:(M,R)=>{Z(this,it,jt).call(this,{type:"failed",failureCount:M,error:R})},onPause:()=>{Z(this,it,jt).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>g(this,Ce).canRun(this)}));const s=this.state.status==="pending",a=!g(this,Wt).canStart();try{if(s)n();else{Z(this,it,jt).call(this,{type:"pending",variables:t,isPaused:a}),g(this,Ce).config.onMutate&&await g(this,Ce).config.onMutate(t,this,r);const R=await((l=(o=this.options).onMutate)==null?void 0:l.call(o,t,r));R!==this.state.context&&Z(this,it,jt).call(this,{type:"pending",context:R,variables:t,isPaused:a})}const M=await g(this,Wt).start();return await((u=(c=g(this,Ce).config).onSuccess)==null?void 0:u.call(c,M,t,this.state.context,this,r)),await((h=(d=this.options).onSuccess)==null?void 0:h.call(d,M,t,this.state.context,r)),await((p=(m=g(this,Ce).config).onSettled)==null?void 0:p.call(m,M,null,this.state.variables,this.state.context,this,r)),await((w=(y=this.options).onSettled)==null?void 0:w.call(y,M,null,t,this.state.context,r)),Z(this,it,jt).call(this,{type:"success",data:M}),M}catch(M){try{await((b=(v=g(this,Ce).config).onError)==null?void 0:b.call(v,M,t,this.state.context,this,r))}catch(R){Promise.reject(R)}try{await((_=(C=this.options).onError)==null?void 0:_.call(C,M,t,this.state.context,r))}catch(R){Promise.reject(R)}try{await((F=(N=g(this,Ce).config).onSettled)==null?void 0:F.call(N,void 0,M,this.state.variables,this.state.context,this,r))}catch(R){Promise.reject(R)}try{await((q=(j=this.options).onSettled)==null?void 0:q.call(j,void 0,M,t,this.state.context,r))}catch(R){Promise.reject(R)}throw Z(this,it,jt).call(this,{type:"error",error:M}),M}finally{g(this,Ce).runNext(this)}}},er=new WeakMap,rt=new WeakMap,Ce=new WeakMap,Wt=new WeakMap,it=new WeakSet,jt=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),je.batch(()=>{g(this,rt).forEach(r=>{r.onMutationUpdate(t)}),g(this,Ce).notify({mutation:this,type:"updated",action:t})})},No);function Hc(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ft,Xe,tr,So,Kc=(So=class extends or{constructor(t={}){super();U(this,ft);U(this,Xe);U(this,tr);this.config=t,O(this,ft,new Set),O(this,Xe,new Map),O(this,tr,0)}build(t,n,r){const s=new $c({client:t,mutationCache:this,mutationId:++wr(this,tr)._,options:t.defaultMutationOptions(n),state:r});return this.add(s),s}add(t){g(this,ft).add(t);const n=jr(t);if(typeof n=="string"){const r=g(this,Xe).get(n);r?r.push(t):g(this,Xe).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(g(this,ft).delete(t)){const n=jr(t);if(typeof n=="string"){const r=g(this,Xe).get(n);if(r)if(r.length>1){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}else r[0]===t&&g(this,Xe).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=jr(t);if(typeof n=="string"){const r=g(this,Xe).get(n),s=r==null?void 0:r.find(a=>a.state.status==="pending");return!s||s===t}else return!0}runNext(t){var r;const n=jr(t);if(typeof n=="string"){const s=(r=g(this,Xe).get(n))==null?void 0:r.find(a=>a!==t&&a.state.isPaused);return(s==null?void 0:s.continue())??Promise.resolve()}else return Promise.resolve()}clear(){je.batch(()=>{g(this,ft).forEach(t=>{this.notify({type:"removed",mutation:t})}),g(this,ft).clear(),g(this,Xe).clear()})}getAll(){return Array.from(g(this,ft))}find(t){const n={exact:!0,...t};return this.getAll().find(r=>ua(n,r))}findAll(t={}){return this.getAll().filter(n=>ua(t,n))}notify(t){je.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return je.batch(()=>Promise.all(t.map(n=>n.continue().catch(Le))))}},ft=new WeakMap,Xe=new WeakMap,tr=new WeakMap,So);function jr(e){var t;return(t=e.options.scope)==null?void 0:t.id}var st,Co,Qc=(Co=class extends or{constructor(t={}){super();U(this,st);this.config=t,O(this,st,new Map)}build(t,n,r){const s=n.queryKey,a=n.queryHash??Ui(s,n);let o=this.get(a);return o||(o=new zc({client:t,queryKey:s,queryHash:a,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(s)}),this.add(o)),o}add(t){g(this,st).has(t.queryHash)||(g(this,st).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=g(this,st).get(t.queryHash);n&&(t.destroy(),n===t&&g(this,st).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){je.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return g(this,st).get(t)}getAll(){return[...g(this,st).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>ca(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>ca(t,r)):n}notify(t){je.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){je.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){je.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},st=new WeakMap,Co),ge,Et,Pt,xn,gn,Rt,bn,yn,_o,Vc=(_o=class{constructor(e={}){U(this,ge);U(this,Et);U(this,Pt);U(this,xn);U(this,gn);U(this,Rt);U(this,bn);U(this,yn);O(this,ge,e.queryCache||new Qc),O(this,Et,e.mutationCache||new Kc),O(this,Pt,e.defaultOptions||{}),O(this,xn,new Map),O(this,gn,new Map),O(this,Rt,0)}mount(){wr(this,Rt)._++,g(this,Rt)===1&&(O(this,bn,Bi.subscribe(async e=>{e&&(await this.resumePausedMutations(),g(this,ge).onFocus())})),O(this,yn,Tr.subscribe(async e=>{e&&(await this.resumePausedMutations(),g(this,ge).onOnline())})))}unmount(){var e,t;wr(this,Rt)._--,g(this,Rt)===0&&((e=g(this,bn))==null||e.call(this),O(this,bn,void 0),(t=g(this,yn))==null||t.call(this),O(this,yn,void 0))}isFetching(e){return g(this,ge).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return g(this,Et).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=g(this,ge).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=g(this,ge).build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(It(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return g(this,ge).findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.defaultQueryOptions({queryKey:e}),s=g(this,ge).get(r.queryHash),a=s==null?void 0:s.state.data,o=Cc(t,a);if(o!==void 0)return g(this,ge).build(this,r).setData(o,{...n,manual:!0})}setQueriesData(e,t,n){return je.batch(()=>g(this,ge).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=g(this,ge).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=g(this,ge);je.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=g(this,ge);return je.batch(()=>(n.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=je.batch(()=>g(this,ge).findAll(e).map(s=>s.cancel(n)));return Promise.all(r).then(Le).catch(Le)}invalidateQueries(e,t={}){return je.batch(()=>(g(this,ge).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},r=je.batch(()=>g(this,ge).findAll(e).filter(s=>!s.isDisabled()&&!s.isStatic()).map(s=>{let a=s.fetch(void 0,n);return n.throwOnError||(a=a.catch(Le)),s.state.fetchStatus==="paused"?Promise.resolve():a}));return Promise.all(r).then(Le)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=g(this,ge).build(this,t);return n.isStaleByTime(It(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Le).catch(Le)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Le).catch(Le)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return Tr.isOnline()?g(this,Et).resumePausedMutations():Promise.resolve()}getQueryCache(){return g(this,ge)}getMutationCache(){return g(this,Et)}getDefaultOptions(){return g(this,Pt)}setDefaultOptions(e){O(this,Pt,e)}setQueryDefaults(e,t){g(this,xn).set(Hn(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...g(this,xn).values()],n={};return t.forEach(r=>{Kn(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){g(this,gn).set(Hn(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...g(this,gn).values()],n={};return t.forEach(r=>{Kn(e,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...g(this,Pt).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Ui(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===$i&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...g(this,Pt).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){g(this,ge).clear(),g(this,Et).clear()}},ge=new WeakMap,Et=new WeakMap,Pt=new WeakMap,xn=new WeakMap,gn=new WeakMap,Rt=new WeakMap,bn=new WeakMap,yn=new WeakMap,_o),Bo=ke.createContext(void 0),Uo=e=>{const t=ke.useContext(Bo);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},Wc=({client:e,children:t})=>(ke.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),i.jsx(Bo.Provider,{value:e,children:t})),$o=ke.createContext(!1),Gc=()=>ke.useContext($o);$o.Provider;function Jc(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Xc=ke.createContext(Jc()),Yc=()=>ke.useContext(Xc),Zc=(e,t,n)=>{const r=n!=null&&n.state.error&&typeof e.throwOnError=="function"?To(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},eu=e=>{ke.useEffect(()=>{e.clearReset()},[e])},tu=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:s})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(s&&e.data===void 0||To(n,[e.error,r])),nu=e=>{if(e.suspense){const n=s=>s==="static"?s:Math.max(s??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...s)=>n(r(...s)):n(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},ru=(e,t)=>e.isLoading&&e.isFetching&&!t,iu=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,ga=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function Ho(e,t,n){var m,p,y,w;const r=Gc(),s=Yc(),a=Uo(),o=a.defaultQueryOptions(e);(p=(m=a.getDefaultOptions().queries)==null?void 0:m._experimental_beforeQuery)==null||p.call(m,o);const l=a.getQueryCache().get(o.queryHash);o._optimisticResults=r?"isRestoring":"optimistic",nu(o),Zc(o,s,l),eu(s);const c=!a.getQueryCache().get(o.queryHash),[u]=ke.useState(()=>new t(a,o)),d=u.getOptimisticResult(o),h=!r&&e.subscribed!==!1;if(ke.useSyncExternalStore(ke.useCallback(v=>{const b=h?u.subscribe(je.batchCalls(v)):Le;return u.updateResult(),b},[u,h]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),ke.useEffect(()=>{u.setOptions(o)},[o,u]),iu(o,d))throw ga(o,u,s);if(tu({result:d,errorResetBoundary:s,throwOnError:o.throwOnError,query:l,suspense:o.suspense}))throw d.error;if((w=(y=a.getDefaultOptions().queries)==null?void 0:y._experimental_afterQuery)==null||w.call(y,o,d),o.experimental_prefetchInRender&&!Qn.isServer()&&ru(d,r)){const v=c?ga(o,u,s):l==null?void 0:l.promise;v==null||v.catch(Le).finally(()=>{u.updateResult()})}return o.notifyOnChangeProps?d:u.trackResult(d)}function xe(e,t){return Ho(e,zo)}function ba(e,t){return Ho(e,Uc)}/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const su=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ko=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var au={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ou=ke.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:s="",children:a,iconNode:o,...l},c)=>ke.createElement("svg",{ref:c,...au,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:Ko("lucide",s),...l},[...o.map(([u,d])=>ke.createElement(u,d)),...Array.isArray(a)?a:[a]]));/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ue=(e,t)=>{const n=ke.forwardRef(({className:r,...s},a)=>ke.createElement(ou,{ref:a,iconNode:t,className:Ko(`lucide-${su(e)}`,r),...s}));return n.displayName=`${e}`,n};/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wn=ue("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ki=ue("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qo=ue("Bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qi=ue("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vn=ue("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const jn=ue("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vn=ue("CircleUserRound",[["path",{d:"M18 20a6 6 0 0 0-12 0",key:"1qehca"}],["circle",{cx:"12",cy:"10",r:"4",key:"1h16sb"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Vo=ue("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ya=ue("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Xt=ue("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wo=ue("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const lu=ue("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const cu=ue("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ar=ue("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const kn=ue("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const uu=ue("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const lr=ue("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Wn=ue("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const du=ue("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hu=ue("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Go=ue("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Jo=ue("SquareTerminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pu=ue("TimerReset",[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"M12 14v-4",key:"1evpnu"}],["path",{d:"M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6",key:"1ts96g"}],["path",{d:"M9 17H4v5",key:"8t5av"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ni=ue("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qr=ue("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mu=ue("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** + * @license lucide-react v0.468.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Yt=ue("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function fu(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const xu=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,gu=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,bu={};function wa(e,t){return(bu.jsx?gu:xu).test(e)}const yu=/[ \t\n\f\r]/g;function wu(e){return typeof e=="object"?e.type==="text"?va(e.value):!1:va(e)}function va(e){return e.replace(yu,"")===""}class cr{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}cr.prototype.normal={};cr.prototype.property={};cr.prototype.space=void 0;function Xo(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new cr(n,r,t)}function Si(e){return e.toLowerCase()}class Oe{constructor(t,n){this.attribute=n,this.property=t}}Oe.prototype.attribute="";Oe.prototype.booleanish=!1;Oe.prototype.boolean=!1;Oe.prototype.commaOrSpaceSeparated=!1;Oe.prototype.commaSeparated=!1;Oe.prototype.defined=!1;Oe.prototype.mustUseProperty=!1;Oe.prototype.number=!1;Oe.prototype.overloadedBoolean=!1;Oe.prototype.property="";Oe.prototype.spaceSeparated=!1;Oe.prototype.space=void 0;let vu=0;const Q=Zt(),be=Zt(),Ci=Zt(),I=Zt(),le=Zt(),Jt=Zt(),Be=Zt();function Zt(){return 2**++vu}const _i=Object.freeze(Object.defineProperty({__proto__:null,boolean:Q,booleanish:be,commaOrSpaceSeparated:Be,commaSeparated:Jt,number:I,overloadedBoolean:Ci,spaceSeparated:le},Symbol.toStringTag,{value:"Module"})),Qr=Object.keys(_i);class Vi extends Oe{constructor(t,n,r,s){let a=-1;if(super(t,n),ja(this,"space",s),typeof r=="number")for(;++a4&&n.slice(0,4)==="data"&&Cu.test(t)){if(t.charAt(4)==="-"){const a=t.slice(5).replace(ka,Pu);r="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{const a=t.slice(4);if(!ka.test(a)){let o=a.replace(Su,Eu);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}s=Vi}return new s(r,t)}function Eu(e){return"-"+e.toLowerCase()}function Pu(e){return e.charAt(1).toUpperCase()}const Ru=Xo([Yo,ju,tl,nl,rl],"html"),Wi=Xo([Yo,ku,tl,nl,rl],"svg");function Iu(e){return e.join(" ").trim()}var tn={},Vr,Na;function Tu(){if(Na)return Vr;Na=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,o=/^[;\s]*/,l=/^\s+|\s+$/g,c=` +`,u="/",d="*",h="",m="comment",p="declaration";function y(v,b){if(typeof v!="string")throw new TypeError("First argument must be a string");if(!v)return[];b=b||{};var C=1,_=1;function N(D){var P=D.match(t);P&&(C+=P.length);var $=D.lastIndexOf(c);_=~$?D.length-$:_+D.length}function F(){var D={line:C,column:_};return function(P){return P.position=new j(D),R(),P}}function j(D){this.start=D,this.end={line:C,column:_},this.source=b.source}j.prototype.content=v;function q(D){var P=new Error(b.source+":"+C+":"+_+": "+D);if(P.reason=D,P.filename=b.source,P.line=C,P.column=_,P.source=v,!b.silent)throw P}function M(D){var P=D.exec(v);if(P){var $=P[0];return N($),v=v.slice($.length),P}}function R(){M(n)}function z(D){var P;for(D=D||[];P=k();)P!==!1&&D.push(P);return D}function k(){var D=F();if(!(u!=v.charAt(0)||d!=v.charAt(1))){for(var P=2;h!=v.charAt(P)&&(d!=v.charAt(P)||u!=v.charAt(P+1));)++P;if(P+=2,h===v.charAt(P-1))return q("End of comment missing");var $=v.slice(2,P-2);return _+=2,N($),v=v.slice(P),_+=2,D({type:m,comment:$})}}function E(){var D=F(),P=M(r);if(P){if(k(),!M(s))return q("property missing ':'");var $=M(a),B=D({type:p,property:w(P[0].replace(e,h)),value:$?w($[0].replace(e,h)):h});return M(o),B}}function J(){var D=[];z(D);for(var P;P=E();)P!==!1&&(D.push(P),z(D));return D}return R(),J()}function w(v){return v?v.replace(l,h):h}return Vr=y,Vr}var Sa;function Au(){if(Sa)return tn;Sa=1;var e=tn&&tn.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(tn,"__esModule",{value:!0}),tn.default=n;const t=e(Tu());function n(r,s){let a=null;if(!r||typeof r!="string")return a;const o=(0,t.default)(r),l=typeof s=="function";return o.forEach(c=>{if(c.type!=="declaration")return;const{property:u,value:d}=c;l?s(u,d,c):d&&(a=a||{},a[u]=d)}),a}return tn}var In={},Ca;function Lu(){if(Ca)return In;Ca=1,Object.defineProperty(In,"__esModule",{value:!0}),In.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,a=function(u){return!u||n.test(u)||e.test(u)},o=function(u,d){return d.toUpperCase()},l=function(u,d){return"".concat(d,"-")},c=function(u,d){return d===void 0&&(d={}),a(u)?u:(u=u.toLowerCase(),d.reactCompat?u=u.replace(s,l):u=u.replace(r,l),u.replace(t,o))};return In.camelCase=c,In}var Tn,_a;function Mu(){if(_a)return Tn;_a=1;var e=Tn&&Tn.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},t=e(Au()),n=Lu();function r(s,a){var o={};return!s||typeof s!="string"||(0,t.default)(s,function(l,c){l&&c&&(o[(0,n.camelCase)(l,a)]=c)}),o}return r.default=r,Tn=r,Tn}var Ou=Mu();const Du=qi(Ou),il=sl("end"),Gi=sl("start");function sl(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function Fu(e){const t=Gi(e),n=il(e);if(t&&n)return{start:t,end:n}}function qn(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Ea(e.position):"start"in e||"end"in e?Ea(e):"line"in e||"column"in e?Ei(e):""}function Ei(e){return Pa(e&&e.line)+":"+Pa(e&&e.column)}function Ea(e){return Ei(e&&e.start)+"-"+Ei(e&&e.end)}function Pa(e){return e&&typeof e=="number"?e:1}class Ee extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",a={},o=!1;if(n&&("line"in n&&"column"in n?a={place:n}:"start"in n&&"end"in n?a={place:n}:"type"in n?a={ancestors:[n],place:n.position}:a={...n}),typeof t=="string"?s=t:!a.cause&&t&&(o=!0,s=t.message,a.cause=t),!a.ruleId&&!a.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?a.ruleId=r:(a.source=r.slice(0,c),a.ruleId=r.slice(c+1))}if(!a.place&&a.ancestors&&a.ancestors){const c=a.ancestors[a.ancestors.length-1];c&&(a.place=c.position)}const l=a.place&&"start"in a.place?a.place.start:a.place;this.ancestors=a.ancestors||void 0,this.cause=a.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=qn(a.place)||"1:1",this.place=a.place||void 0,this.reason=this.message,this.ruleId=a.ruleId||void 0,this.source=a.source||void 0,this.stack=o&&a.cause&&typeof a.cause.stack=="string"?a.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Ee.prototype.file="";Ee.prototype.name="";Ee.prototype.reason="";Ee.prototype.message="";Ee.prototype.stack="";Ee.prototype.column=void 0;Ee.prototype.line=void 0;Ee.prototype.ancestors=void 0;Ee.prototype.cause=void 0;Ee.prototype.fatal=void 0;Ee.prototype.place=void 0;Ee.prototype.ruleId=void 0;Ee.prototype.source=void 0;const Ji={}.hasOwnProperty,zu=new Map,qu=/[A-Z]/g,Bu=new Set(["table","tbody","thead","tfoot","tr"]),Uu=new Set(["td","th"]),al="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function $u(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=Xu(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=Ju(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Wi:Ru,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=ol(s,e,void 0);return a&&typeof a!="string"?a:s.create(e,s.Fragment,{children:a||void 0},void 0)}function ol(e,t,n){if(t.type==="element")return Hu(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Ku(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Vu(e,t,n);if(t.type==="mdxjsEsm")return Qu(e,t);if(t.type==="root")return Wu(e,t,n);if(t.type==="text")return Gu(e,t)}function Hu(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Wi,e.schema=s),e.ancestors.push(t);const a=cl(e,t.tagName,!1),o=Yu(e,t);let l=Yi(e,t);return Bu.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!wu(c):!0})),ll(e,o,a,t),Xi(o,l),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Ku(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}Gn(e,t.position)}function Qu(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Gn(e,t.position)}function Vu(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Wi,e.schema=s),e.ancestors.push(t);const a=t.name===null?e.Fragment:cl(e,t.name,!0),o=Zu(e,t),l=Yi(e,t);return ll(e,o,a,t),Xi(o,l),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Wu(e,t,n){const r={};return Xi(r,Yi(e,t)),e.create(t,e.Fragment,r,n)}function Gu(e,t){return t.value}function ll(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Xi(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function Ju(e,t,n){return r;function r(s,a,o,l){const u=Array.isArray(o.children)?n:t;return l?u(a,o,l):u(a,o)}}function Xu(e,t){return n;function n(r,s,a,o){const l=Array.isArray(a.children),c=Gi(r);return t(s,a,o,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function Yu(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Ji.call(t.properties,s)){const a=ed(e,s,t.properties[s]);if(a){const[o,l]=a;e.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&Uu.has(t.tagName)?r=l:n[o]=l}}if(r){const a=n.style||(n.style={});a[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function Zu(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const a=r.data.estree.body[0];a.type;const o=a.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else Gn(e,t.position);else{const s=r.name;let a;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,a=e.evaluater.evaluateExpression(l.expression)}else Gn(e,t.position);else a=r.value===null?!0:r.value;n[s]=a}return n}function Yi(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:zu;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(ot(e,e.length,0,t),e):t}const Ta={}.hasOwnProperty;function ld(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function sn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const at=Tt(/[A-Za-z]/),He=Tt(/[\dA-Za-z]/),dd=Tt(/[#-'*+\--9=?A-Z^-~]/);function Pi(e){return e!==null&&(e<32||e===127)}const Ri=Tt(/\d/),hd=Tt(/[\dA-Fa-f]/),pd=Tt(/[!-/:-@[-`{-~]/);function H(e){return e!==null&&e<-2}function Me(e){return e!==null&&(e<0||e===32)}function ne(e){return e===-2||e===-1||e===32}const md=Tt(new RegExp("\\p{P}|\\p{S}","u")),fd=Tt(/\s/);function Tt(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Sn(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&a<57344){const l=e.charCodeAt(n+1);a<56320&&l>56319&&l<57344?(o=String.fromCharCode(a,l),s=1):o="�"}else o=String.fromCharCode(a);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+s+1,o=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function he(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let a=0;return o;function o(c){return ne(c)?(e.enter(n),l(c)):t(c)}function l(c){return ne(c)&&a++o))return;const q=t.events.length;let M=q,R,z;for(;M--;)if(t.events[M][0]==="exit"&&t.events[M][1].type==="chunkFlow"){if(R){z=t.events[M][1].end;break}R=!0}for(b(r),j=q;j_;){const F=n[N];t.containerState=F[1],F[0].exit.call(t,e)}n.length=_}function C(){s.write([null]),a=void 0,s=void 0,t.containerState._closeFlow=void 0}}function wd(e,t,n){return he(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function La(e){if(e===null||Me(e)||fd(e))return 1;if(md(e))return 2}function es(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const h={...e[r][1].end},m={...e[n][1].start};Ma(h,-c),Ma(m,c),o={type:c>1?"strongSequence":"emphasisSequence",start:h,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:m},a={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...o.start},end:{...l.end}},e[r][1].end={...o.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=Qe(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=Qe(u,[["enter",s,t],["enter",o,t],["exit",o,t],["enter",a,t]]),u=Qe(u,es(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=Qe(u,[["exit",a,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=Qe(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,ot(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&ne(j)?he(e,C,"linePrefix",a+1)(j):C(j)}function C(j){return j===null||H(j)?e.check(Oa,w,N)(j):(e.enter("codeFlowValue"),_(j))}function _(j){return j===null||H(j)?(e.exit("codeFlowValue"),C(j)):(e.consume(j),_)}function N(j){return e.exit("codeFenced"),t(j)}function F(j,q,M){let R=0;return z;function z(P){return j.enter("lineEnding"),j.consume(P),j.exit("lineEnding"),k}function k(P){return j.enter("codeFencedFence"),ne(P)?he(j,E,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(P):E(P)}function E(P){return P===l?(j.enter("codeFencedFenceSequence"),J(P)):M(P)}function J(P){return P===l?(R++,j.consume(P),J):R>=o?(j.exit("codeFencedFenceSequence"),ne(P)?he(j,D,"whitespace")(P):D(P)):M(P)}function D(P){return P===null||H(P)?(j.exit("codeFencedFence"),q(P)):M(P)}}}function Td(e,t,n){const r=this;return s;function s(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),a)}function a(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Gr={name:"codeIndented",tokenize:Ld},Ad={partial:!0,tokenize:Md};function Ld(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),he(e,a,"linePrefix",5)(u)}function a(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(u):n(u)}function o(u){return u===null?c(u):H(u)?e.attempt(Ad,o,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||H(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function Md(e,t,n){const r=this;return s;function s(o){return r.parser.lazy[r.now().line]?n(o):H(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):he(e,a,"linePrefix",5)(o)}function a(o){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(o):H(o)?s(o):n(o)}}const Od={name:"codeText",previous:Fd,resolve:Dd,tokenize:zd};function Dd(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const a=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&An(this.left,r),a.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),An(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),An(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function xl(e,t,n,r,s,a,o,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return h;function h(b){return b===60?(e.enter(r),e.enter(s),e.enter(a),e.consume(b),e.exit(a),m):b===null||b===32||b===41||Pi(b)?n(b):(e.enter(r),e.enter(o),e.enter(l),e.enter("chunkString",{contentType:"string"}),w(b))}function m(b){return b===62?(e.enter(a),e.consume(b),e.exit(a),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),p(b))}function p(b){return b===62?(e.exit("chunkString"),e.exit(l),m(b)):b===null||b===60||H(b)?n(b):(e.consume(b),b===92?y:p)}function y(b){return b===60||b===62||b===92?(e.consume(b),p):p(b)}function w(b){return!d&&(b===null||b===41||Me(b))?(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(b)):d999||p===null||p===91||p===93&&!c||p===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?n(p):p===93?(e.exit(a),e.enter(s),e.consume(p),e.exit(s),e.exit(r),t):H(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),h(p))}function h(p){return p===null||p===91||p===93||H(p)||l++>999?(e.exit("chunkString"),d(p)):(e.consume(p),c||(c=!ne(p)),p===92?m:h)}function m(p){return p===91||p===92||p===93?(e.consume(p),l++,h):h(p)}}function bl(e,t,n,r,s,a){let o;return l;function l(m){return m===34||m===39||m===40?(e.enter(r),e.enter(s),e.consume(m),e.exit(s),o=m===40?41:m,c):n(m)}function c(m){return m===o?(e.enter(s),e.consume(m),e.exit(s),e.exit(r),t):(e.enter(a),u(m))}function u(m){return m===o?(e.exit(a),c(o)):m===null?n(m):H(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),he(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(m))}function d(m){return m===o||m===null||H(m)?(e.exit("chunkString"),u(m)):(e.consume(m),m===92?h:d)}function h(m){return m===o||m===92?(e.consume(m),d):d(m)}}function Bn(e,t){let n;return r;function r(s){return H(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):ne(s)?he(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const Vd={name:"definition",tokenize:Gd},Wd={partial:!0,tokenize:Jd};function Gd(e,t,n){const r=this;let s;return a;function a(p){return e.enter("definition"),o(p)}function o(p){return gl.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function l(p){return s=sn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),c):n(p)}function c(p){return Me(p)?Bn(e,u)(p):u(p)}function u(p){return xl(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function d(p){return e.attempt(Wd,h,h)(p)}function h(p){return ne(p)?he(e,m,"whitespace")(p):m(p)}function m(p){return p===null||H(p)?(e.exit("definition"),r.parser.defined.push(s),t(p)):n(p)}}function Jd(e,t,n){return r;function r(l){return Me(l)?Bn(e,s)(l):n(l)}function s(l){return bl(e,a,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function a(l){return ne(l)?he(e,o,"whitespace")(l):o(l)}function o(l){return l===null||H(l)?t(l):n(l)}}const Xd={name:"hardBreakEscape",tokenize:Yd};function Yd(e,t,n){return r;function r(a){return e.enter("hardBreakEscape"),e.consume(a),s}function s(a){return H(a)?(e.exit("hardBreakEscape"),t(a)):n(a)}}const Zd={name:"headingAtx",resolve:eh,tokenize:th};function eh(e,t){let n=e.length-2,r=3,s,a;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},a={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ot(e,r,n-r+1,[["enter",s,t],["enter",a,t],["exit",a,t],["exit",s,t]])),e}function th(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),a(d)}function a(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||Me(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||H(d)?(e.exit("atxHeading"),t(d)):ne(d)?he(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||Me(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const nh=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Fa=["pre","script","style","textarea"],rh={concrete:!0,name:"htmlFlow",resolveTo:ah,tokenize:oh},ih={partial:!0,tokenize:ch},sh={partial:!0,tokenize:lh};function ah(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function oh(e,t,n){const r=this;let s,a,o,l,c;return u;function u(x){return d(x)}function d(x){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(x),h}function h(x){return x===33?(e.consume(x),m):x===47?(e.consume(x),a=!0,w):x===63?(e.consume(x),s=3,r.interrupt?t:f):at(x)?(e.consume(x),o=String.fromCharCode(x),v):n(x)}function m(x){return x===45?(e.consume(x),s=2,p):x===91?(e.consume(x),s=5,l=0,y):at(x)?(e.consume(x),s=4,r.interrupt?t:f):n(x)}function p(x){return x===45?(e.consume(x),r.interrupt?t:f):n(x)}function y(x){const De="CDATA[";return x===De.charCodeAt(l++)?(e.consume(x),l===De.length?r.interrupt?t:E:y):n(x)}function w(x){return at(x)?(e.consume(x),o=String.fromCharCode(x),v):n(x)}function v(x){if(x===null||x===47||x===62||Me(x)){const De=x===47,lt=o.toLowerCase();return!De&&!a&&Fa.includes(lt)?(s=1,r.interrupt?t(x):E(x)):nh.includes(o.toLowerCase())?(s=6,De?(e.consume(x),b):r.interrupt?t(x):E(x)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(x):a?C(x):_(x))}return x===45||He(x)?(e.consume(x),o+=String.fromCharCode(x),v):n(x)}function b(x){return x===62?(e.consume(x),r.interrupt?t:E):n(x)}function C(x){return ne(x)?(e.consume(x),C):z(x)}function _(x){return x===47?(e.consume(x),z):x===58||x===95||at(x)?(e.consume(x),N):ne(x)?(e.consume(x),_):z(x)}function N(x){return x===45||x===46||x===58||x===95||He(x)?(e.consume(x),N):F(x)}function F(x){return x===61?(e.consume(x),j):ne(x)?(e.consume(x),F):_(x)}function j(x){return x===null||x===60||x===61||x===62||x===96?n(x):x===34||x===39?(e.consume(x),c=x,q):ne(x)?(e.consume(x),j):M(x)}function q(x){return x===c?(e.consume(x),c=null,R):x===null||H(x)?n(x):(e.consume(x),q)}function M(x){return x===null||x===34||x===39||x===47||x===60||x===61||x===62||x===96||Me(x)?F(x):(e.consume(x),M)}function R(x){return x===47||x===62||ne(x)?_(x):n(x)}function z(x){return x===62?(e.consume(x),k):n(x)}function k(x){return x===null||H(x)?E(x):ne(x)?(e.consume(x),k):n(x)}function E(x){return x===45&&s===2?(e.consume(x),$):x===60&&s===1?(e.consume(x),B):x===62&&s===4?(e.consume(x),ie):x===63&&s===3?(e.consume(x),f):x===93&&s===5?(e.consume(x),pe):H(x)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(ih,Ie,J)(x)):x===null||H(x)?(e.exit("htmlFlowData"),J(x)):(e.consume(x),E)}function J(x){return e.check(sh,D,Ie)(x)}function D(x){return e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),P}function P(x){return x===null||H(x)?J(x):(e.enter("htmlFlowData"),E(x))}function $(x){return x===45?(e.consume(x),f):E(x)}function B(x){return x===47?(e.consume(x),o="",de):E(x)}function de(x){if(x===62){const De=o.toLowerCase();return Fa.includes(De)?(e.consume(x),ie):E(x)}return at(x)&&o.length<8?(e.consume(x),o+=String.fromCharCode(x),de):E(x)}function pe(x){return x===93?(e.consume(x),f):E(x)}function f(x){return x===62?(e.consume(x),ie):x===45&&s===2?(e.consume(x),f):E(x)}function ie(x){return x===null||H(x)?(e.exit("htmlFlowData"),Ie(x)):(e.consume(x),ie)}function Ie(x){return e.exit("htmlFlow"),t(x)}}function lh(e,t,n){const r=this;return s;function s(o){return H(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),a):n(o)}function a(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function ch(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(Br,t,n)}}const uh={name:"htmlText",tokenize:dh};function dh(e,t,n){const r=this;let s,a,o;return l;function l(f){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(f),c}function c(f){return f===33?(e.consume(f),u):f===47?(e.consume(f),F):f===63?(e.consume(f),_):at(f)?(e.consume(f),M):n(f)}function u(f){return f===45?(e.consume(f),d):f===91?(e.consume(f),a=0,y):at(f)?(e.consume(f),C):n(f)}function d(f){return f===45?(e.consume(f),p):n(f)}function h(f){return f===null?n(f):f===45?(e.consume(f),m):H(f)?(o=h,B(f)):(e.consume(f),h)}function m(f){return f===45?(e.consume(f),p):h(f)}function p(f){return f===62?$(f):f===45?m(f):h(f)}function y(f){const ie="CDATA[";return f===ie.charCodeAt(a++)?(e.consume(f),a===ie.length?w:y):n(f)}function w(f){return f===null?n(f):f===93?(e.consume(f),v):H(f)?(o=w,B(f)):(e.consume(f),w)}function v(f){return f===93?(e.consume(f),b):w(f)}function b(f){return f===62?$(f):f===93?(e.consume(f),b):w(f)}function C(f){return f===null||f===62?$(f):H(f)?(o=C,B(f)):(e.consume(f),C)}function _(f){return f===null?n(f):f===63?(e.consume(f),N):H(f)?(o=_,B(f)):(e.consume(f),_)}function N(f){return f===62?$(f):_(f)}function F(f){return at(f)?(e.consume(f),j):n(f)}function j(f){return f===45||He(f)?(e.consume(f),j):q(f)}function q(f){return H(f)?(o=q,B(f)):ne(f)?(e.consume(f),q):$(f)}function M(f){return f===45||He(f)?(e.consume(f),M):f===47||f===62||Me(f)?R(f):n(f)}function R(f){return f===47?(e.consume(f),$):f===58||f===95||at(f)?(e.consume(f),z):H(f)?(o=R,B(f)):ne(f)?(e.consume(f),R):$(f)}function z(f){return f===45||f===46||f===58||f===95||He(f)?(e.consume(f),z):k(f)}function k(f){return f===61?(e.consume(f),E):H(f)?(o=k,B(f)):ne(f)?(e.consume(f),k):R(f)}function E(f){return f===null||f===60||f===61||f===62||f===96?n(f):f===34||f===39?(e.consume(f),s=f,J):H(f)?(o=E,B(f)):ne(f)?(e.consume(f),E):(e.consume(f),D)}function J(f){return f===s?(e.consume(f),s=void 0,P):f===null?n(f):H(f)?(o=J,B(f)):(e.consume(f),J)}function D(f){return f===null||f===34||f===39||f===60||f===61||f===96?n(f):f===47||f===62||Me(f)?R(f):(e.consume(f),D)}function P(f){return f===47||f===62||Me(f)?R(f):n(f)}function $(f){return f===62?(e.consume(f),e.exit("htmlTextData"),e.exit("htmlText"),t):n(f)}function B(f){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),de}function de(f){return ne(f)?he(e,pe,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(f):pe(f)}function pe(f){return e.enter("htmlTextData"),o(f)}}const ts={name:"labelEnd",resolveAll:fh,resolveTo:xh,tokenize:gh},hh={tokenize:bh},ph={tokenize:yh},mh={tokenize:wh};function fh(e){let t=-1;const n=[];for(;++t=3&&(u===null||H(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),ne(u)?he(e,l,"whitespace")(u):l(u))}}const Te={continuation:{tokenize:Rh},exit:Th,name:"list",tokenize:Ph},_h={partial:!0,tokenize:Ah},Eh={partial:!0,tokenize:Ih};function Ph(e,t,n){const r=this,s=r.events[r.events.length-1];let a=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,o=0;return l;function l(p){const y=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(y==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Ri(p)){if(r.containerState.type||(r.containerState.type=y,e.enter(y,{_container:!0})),y==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(Rr,n,u)(p):u(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(p)}return n(p)}function c(p){return Ri(p)&&++o<10?(e.consume(p),c):(!r.interrupt||o<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),u(p)):n(p)}function u(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(Br,r.interrupt?n:d,e.attempt(_h,m,h))}function d(p){return r.containerState.initialBlankLine=!0,a++,m(p)}function h(p){return ne(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),m):n(p)}function m(p){return r.containerState.size=a+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function Rh(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Br,s,a);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,he(e,t,"listItemIndent",r.containerState.size+1)(l)}function a(l){return r.containerState.furtherBlankLines||!ne(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Eh,t,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,he(e,e.attempt(Te,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function Ih(e,t,n){const r=this;return he(e,s,"listItemIndent",r.containerState.size+1);function s(a){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(a):n(a)}}function Th(e){e.exit(this.containerState.type)}function Ah(e,t,n){const r=this;return he(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(a){const o=r.events[r.events.length-1];return!ne(a)&&o&&o[1].type==="listItemPrefixWhitespace"?t(a):n(a)}}const za={name:"setextUnderline",resolveTo:Lh,tokenize:Mh};function Lh(e,t){let n=e.length,r,s,a;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!a&&e[n][1].type==="definition"&&(a=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",a?(e.splice(s,0,["enter",o,t]),e.splice(a+1,0,["exit",e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function Mh(e,t,n){const r=this;let s;return a;function a(u){let d=r.events.length,h;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){h=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||h)?(e.enter("setextHeadingLine"),s=u,o(u)):n(u)}function o(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),ne(u)?he(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||H(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const Oh={tokenize:Dh};function Dh(e){const t=this,n=e.attempt(Br,r,e.attempt(this.parser.constructs.flowInitial,s,he(e,e.attempt(this.parser.constructs.flow,s,e.attempt(Ud,s)),"linePrefix")));return n;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEndingBlank"),e.consume(a),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const Fh={resolveAll:wl()},zh=yl("string"),qh=yl("text");function yl(e){return{resolveAll:wl(e==="text"?Bh:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],a=n.attempt(s,o,l);return o;function o(d){return u(d)?a(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),a(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const h=s[d];let m=-1;if(h)for(;++m-1){const l=o[0];typeof l=="string"?o[0]=l.slice(r):o.shift()}a>0&&o.push(e[s].slice(0,a))}return o}function ep(e,t){let n=-1;const r=[];let s;for(;++n0){const ze=K.tokenStack[K.tokenStack.length-1];(ze[1]||Ba).call(K,void 0,ze[0])}for(A.position={start:yt(S.length>0?S[0][1].start:{line:1,column:1,offset:0}),end:yt(S.length>0?S[S.length-2][1].end:{line:1,column:1,offset:0})},se=-1;++se0&&(r.className=["language-"+s[0]]);let a={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:"element",tagName:"pre",properties:{},children:[a]},e.patch(t,a),a}function mp(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function fp(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function xp(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=Sn(r.toLowerCase()),a=e.footnoteOrder.indexOf(r);let o,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function gp(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function bp(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function kl(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),a=s[0];a&&a.type==="text"?a.value="["+a.value:s.unshift({type:"text",value:"["});const o=s[s.length-1];return o&&o.type==="text"?o.value+=r:s.push({type:"text",value:r}),s}function yp(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return kl(e,t);const s={src:Sn(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const a={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,a),e.applyData(t,a)}function wp(e,t){const n={src:Sn(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function vp(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function jp(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return kl(e,t);const s={href:Sn(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const a={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function kp(e,t){const n={href:Sn(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function Np(e,t,n){const r=e.all(t),s=n?Sp(n):Nl(t),a={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let h;d&&d.type==="element"&&d.tagName==="p"?h=d:(h={type:"element",tagName:"p",properties:{},children:[]},r.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),a.className=["task-list-item"]}let l=-1;for(;++l1}function Cp(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Gi(t.children[1]),c=il(t.children[t.children.length-1]);l&&c&&(o.position={start:l,end:c}),s.push(o)}const a={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,a),e.applyData(t,a)}function Ip(e,t,n){const r=n?n.children:void 0,a=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,l=o?o.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return a.push(Ha(t.slice(s),s>0,!1)),a.join("")}function Ha(e,t,n){let r=0,s=e.length;if(t){let a=e.codePointAt(r);for(;a===Ua||a===$a;)r++,a=e.codePointAt(r)}if(n){let a=e.codePointAt(s-1);for(;a===Ua||a===$a;)s--,a=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function Lp(e,t){const n={type:"text",value:Ap(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function Mp(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const Op={blockquote:dp,break:hp,code:pp,delete:mp,emphasis:fp,footnoteReference:xp,heading:gp,html:bp,imageReference:yp,image:wp,inlineCode:vp,linkReference:jp,link:kp,listItem:Np,list:Cp,paragraph:_p,root:Ep,strong:Pp,table:Rp,tableCell:Tp,tableRow:Ip,text:Lp,thematicBreak:Mp,toml:kr,yaml:kr,definition:kr,footnoteDefinition:kr};function kr(){}const Sl=-1,Ur=0,Un=1,Lr=2,ns=3,rs=4,is=5,ss=6,Cl=7,_l=8,Dp=typeof self=="object"?self:globalThis,Ka=(e,t)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new Dp[e](t)},Fp=(e,t)=>{const n=(s,a)=>(e.set(a,s),s),r=s=>{if(e.has(s))return e.get(s);const[a,o]=t[s];switch(a){case Ur:case Sl:return n(o,s);case Un:{const l=n([],s);for(const c of o)l.push(r(c));return l}case Lr:{const l=n({},s);for(const[c,u]of o)l[r(c)]=r(u);return l}case ns:return n(new Date(o),s);case rs:{const{source:l,flags:c}=o;return n(new RegExp(l,c),s)}case is:{const l=n(new Map,s);for(const[c,u]of o)l.set(r(c),r(u));return l}case ss:{const l=n(new Set,s);for(const c of o)l.add(r(c));return l}case Cl:{const{name:l,message:c}=o;return n(Ka(l,c),s)}case _l:return n(BigInt(o),s);case"BigInt":return n(Object(BigInt(o)),s);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:l}=new Uint8Array(o);return n(new DataView(l),o)}}return n(Ka(a,o),s)};return r},Qa=e=>Fp(new Map,e)(0),nn="",{toString:zp}={},{keys:qp}=Object,Ln=e=>{const t=typeof e;if(t!=="object"||!e)return[Ur,t];const n=zp.call(e).slice(8,-1);switch(n){case"Array":return[Un,nn];case"Object":return[Lr,nn];case"Date":return[ns,nn];case"RegExp":return[rs,nn];case"Map":return[is,nn];case"Set":return[ss,nn];case"DataView":return[Un,n]}return n.includes("Array")?[Un,n]:n.includes("Error")?[Cl,n]:[Lr,n]},Nr=([e,t])=>e===Ur&&(t==="function"||t==="symbol"),Bp=(e,t,n,r)=>{const s=(o,l)=>{const c=r.push(o)-1;return n.set(l,c),c},a=o=>{if(n.has(o))return n.get(o);let[l,c]=Ln(o);switch(l){case Ur:{let d=o;switch(c){case"bigint":l=_l,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([Sl],o)}return s([l,d],o)}case Un:{if(c){let m=o;return c==="DataView"?m=new Uint8Array(o.buffer):c==="ArrayBuffer"&&(m=new Uint8Array(o)),s([c,[...m]],o)}const d=[],h=s([l,d],o);for(const m of o)d.push(a(m));return h}case Lr:{if(c)switch(c){case"BigInt":return s([c,o.toString()],o);case"Boolean":case"Number":case"String":return s([c,o.valueOf()],o)}if(t&&"toJSON"in o)return a(o.toJSON());const d=[],h=s([l,d],o);for(const m of qp(o))(e||!Nr(Ln(o[m])))&&d.push([a(m),a(o[m])]);return h}case ns:return s([l,o.toISOString()],o);case rs:{const{source:d,flags:h}=o;return s([l,{source:d,flags:h}],o)}case is:{const d=[],h=s([l,d],o);for(const[m,p]of o)(e||!(Nr(Ln(m))||Nr(Ln(p))))&&d.push([a(m),a(p)]);return h}case ss:{const d=[],h=s([l,d],o);for(const m of o)(e||!Nr(Ln(m)))&&d.push(a(m));return h}}const{message:u}=o;return s([l,{name:c,message:u}],o)};return a},Va=(e,{json:t,lossy:n}={})=>{const r=[];return Bp(!(t||n),!!t,new Map,r)(e),r},Mr=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Qa(Va(e,t)):structuredClone(e):(e,t)=>Qa(Va(e,t));function Up(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function $p(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function Hp(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||Up,r=e.options.footnoteBackLabel||$p,s=e.options.footnoteLabel||"Footnotes",a=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&y.push({type:"text",value:" "});let C=typeof n=="string"?n:n(c,p);typeof C=="string"&&(C={type:"text",value:C}),y.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+m+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,p),className:["data-footnote-backref"]},children:Array.isArray(C)?C:[C]})}const v=d[d.length-1];if(v&&v.type==="element"&&v.tagName==="p"){const C=v.children[v.children.length-1];C&&C.type==="text"?C.value+=" ":v.children.push({type:"text",value:" "}),v.children.push(...y)}else d.push(...y);const b={type:"element",tagName:"li",properties:{id:t+"fn-"+m},children:e.wrap(d,!0)};e.patch(u,b),l.push(b)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:a,properties:{...Mr(o),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const El=(function(e){if(e==null)return Wp;if(typeof e=="function")return $r(e);if(typeof e=="object")return Array.isArray(e)?Kp(e):Qp(e);if(typeof e=="string")return Vp(e);throw new Error("Expected function, string, or object as test")});function Kp(e){const t=[];let n=-1;for(;++n":""))+")"})}return m;function m(){let p=Pl,y,w,v;if((!t||a(c,u,d[d.length-1]||void 0))&&(p=Zp(n(c,d)),p[0]===Wa))return p;if("children"in c&&c.children){const b=c;if(b.children&&p[0]!==Xp)for(w=(r?b.children.length:-1)+o,v=d.concat(b);w>-1&&w0&&n.push({type:"text",value:` +`}),n}function Ga(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Ja(e,t){const n=tm(e,t),r=n.one(e,void 0),s=Hp(n),a=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&a.children.push({type:"text",value:` +`},s),a}function am(e,t){return e&&"run"in e?async function(n,r){const s=Ja(n,{file:r,...t});await e.run(s,r)}:function(n,r){return Ja(n,{file:r,...e||t})}}function Xa(e){if(e)throw e}var Xr,Ya;function om(){if(Ya)return Xr;Ya=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,s=function(u){return typeof Array.isArray=="function"?Array.isArray(u):t.call(u)==="[object Array]"},a=function(u){if(!u||t.call(u)!=="[object Object]")return!1;var d=e.call(u,"constructor"),h=u.constructor&&u.constructor.prototype&&e.call(u.constructor.prototype,"isPrototypeOf");if(u.constructor&&!d&&!h)return!1;var m;for(m in u);return typeof m>"u"||e.call(u,m)},o=function(u,d){n&&d.name==="__proto__"?n(u,d.name,{enumerable:!0,configurable:!0,value:d.newValue,writable:!0}):u[d.name]=d.newValue},l=function(u,d){if(d==="__proto__")if(e.call(u,d)){if(r)return r(u,d).value}else return;return u[d]};return Xr=function c(){var u,d,h,m,p,y,w=arguments[0],v=1,b=arguments.length,C=!1;for(typeof w=="boolean"&&(C=w,w=arguments[1]||{},v=2),(w==null||typeof w!="object"&&typeof w!="function")&&(w={});vo.length;let c;l&&o.push(s);try{c=e.apply(this,o)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(a,s):c instanceof Error?s(c):a(c))}function s(o,...l){n||(n=!0,t(o,...l))}function a(o){s(null,o)}}const nt={basename:dm,dirname:hm,extname:pm,join:mm,sep:"/"};function dm(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');ur(e);let n=0,r=-1,s=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(a){n=s+1;break}}else r<0&&(a=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(a){n=s+1;break}}else o<0&&(a=!0,o=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function hm(e){if(ur(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function pm(e){ur(e);let t=e.length,n=-1,r=0,s=-1,a=0,o;for(;t--;){const l=e.codePointAt(t);if(l===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),l===46?s<0?s=t:a!==1&&(a=1):s>-1&&(a=-1)}return s<0||n<0||a===0||a===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function mm(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function xm(e,t){let n="",r=0,s=-1,a=0,o=-1,l,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=o,a=0;continue}}else if(n.length>0){n="",r=0,s=o,a=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,o):n=e.slice(s+1,o),r=o-s-1;s=o,a=0}else l===46&&a>-1?a++:a=-1}return n}function ur(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const gm={cwd:bm};function bm(){return"/"}function Li(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function ym(e){if(typeof e=="string")e=new URL(e);else if(!Li(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return wm(e)}function wm(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[p,...y]=d;const w=r[m][1];Ai(w)&&Ai(p)&&(p=Yr(!0,w,p)),r[m]=[u,p,...y]}}}}const Nm=new as().freeze();function ni(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function ri(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function ii(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function eo(e){if(!Ai(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function to(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Sr(e){return Sm(e)?e:new Il(e)}function Sm(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Cm(e){return typeof e=="string"||_m(e)}function _m(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Em="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",no=[],ro={allowDangerousHtml:!0},Pm=/^(https?|ircs?|mailto|xmpp)$/i,Rm=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Im(e){const t=Tm(e),n=Am(e);return Lm(t.runSync(t.parse(n),n),e)}function Tm(e){const t=e.rehypePlugins||no,n=e.remarkPlugins||no,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...ro}:ro;return Nm().use(up).use(n).use(am,r).use(t)}function Am(e){const t=e.children||"",n=new Il;return typeof t=="string"&&(n.value=t),n}function Lm(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,a=t.disallowedElements,o=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||Mm;for(const d of Rm)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+Em+d.id,void 0);return Rl(e,u),$u(e,{Fragment:i.Fragment,components:s,ignoreInvalidStyle:!0,jsx:i.jsx,jsxs:i.jsxs,passKeys:!0,passNode:!0});function u(d,h,m){if(d.type==="raw"&&m&&typeof h=="number")return o?m.children.splice(h,1):m.children[h]={type:"text",value:d.value},h;if(d.type==="element"){let p;for(p in Wr)if(Object.hasOwn(Wr,p)&&Object.hasOwn(d.properties,p)){const y=d.properties[p],w=Wr[p];(w===null||w.includes(d.tagName))&&(d.properties[p]=c(String(y||""),p,d))}}if(d.type==="element"){let p=n?!n.includes(d.tagName):a?a.includes(d.tagName):!1;if(!p&&r&&typeof h=="number"&&(p=!r(d,h,m)),p&&m&&typeof h=="number")return l&&d.children?m.children.splice(h,1,...d.children):m.children.splice(h,1),h}}}function Mm(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||Pm.test(e.slice(0,t))?e:""}const os="-",Om=e=>{const t=Fm(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:o=>{const l=o.split(os);return l[0]===""&&l.length!==1&&l.shift(),Tl(l,t)||Dm(o)},getConflictingClassGroupIds:(o,l)=>{const c=n[o]||[];return l&&r[o]?[...c,...r[o]]:c}}},Tl=(e,t)=>{var o;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),s=r?Tl(e.slice(1),r):void 0;if(s)return s;if(t.validators.length===0)return;const a=e.join(os);return(o=t.validators.find(({validator:l})=>l(a)))==null?void 0:o.classGroupId},io=/^\[(.+)\]$/,Dm=e=>{if(io.test(e)){const t=io.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},Fm=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return qm(Object.entries(e.classGroups),n).forEach(([a,o])=>{Mi(o,r,a,t)}),r},Mi=(e,t,n,r)=>{e.forEach(s=>{if(typeof s=="string"){const a=s===""?t:so(t,s);a.classGroupId=n;return}if(typeof s=="function"){if(zm(s)){Mi(s(r),t,n,r);return}t.validators.push({validator:s,classGroupId:n});return}Object.entries(s).forEach(([a,o])=>{Mi(o,so(t,a),n,r)})})},so=(e,t)=>{let n=e;return t.split(os).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},zm=e=>e.isThemeGetter,qm=(e,t)=>t?e.map(([n,r])=>{const s=r.map(a=>typeof a=="string"?t+a:typeof a=="object"?Object.fromEntries(Object.entries(a).map(([o,l])=>[t+o,l])):a);return[n,s]}):e,Bm=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const s=(a,o)=>{n.set(a,o),t++,t>e&&(t=0,r=n,n=new Map)};return{get(a){let o=n.get(a);if(o!==void 0)return o;if((o=r.get(a))!==void 0)return s(a,o),o},set(a,o){n.has(a)?n.set(a,o):s(a,o)}}},Al="!",Um=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,s=t[0],a=t.length,o=l=>{const c=[];let u=0,d=0,h;for(let v=0;vd?h-d:void 0;return{modifiers:c,hasImportantModifier:p,baseClassName:y,maybePostfixModifierPosition:w}};return n?l=>n({className:l,parseClassName:o}):o},$m=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},Hm=e=>({cache:Bm(e.cacheSize),parseClassName:Um(e),...Om(e)}),Km=/\s+/,Qm=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:s}=t,a=[],o=e.trim().split(Km);let l="";for(let c=o.length-1;c>=0;c-=1){const u=o[c],{modifiers:d,hasImportantModifier:h,baseClassName:m,maybePostfixModifierPosition:p}=n(u);let y=!!p,w=r(y?m.substring(0,p):m);if(!w){if(!y){l=u+(l.length>0?" "+l:l);continue}if(w=r(m),!w){l=u+(l.length>0?" "+l:l);continue}y=!1}const v=$m(d).join(":"),b=h?v+Al:v,C=b+w;if(a.includes(C))continue;a.push(C);const _=s(w,y);for(let N=0;N<_.length;++N){const F=_[N];a.push(b+F)}l=u+(l.length>0?" "+l:l)}return l};function Vm(){let e=0,t,n,r="";for(;e{if(typeof e=="string")return e;let t,n="";for(let r=0;rh(d),e());return n=Hm(u),r=n.cache.get,s=n.cache.set,a=l,l(c)}function l(c){const u=r(c);if(u)return u;const d=Qm(c,n);return s(c,d),d}return function(){return a(Vm.apply(null,arguments))}}const me=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},Ml=/^\[(?:([a-z-]+):)?(.+)\]$/i,Gm=/^\d+\/\d+$/,Jm=new Set(["px","full","screen"]),Xm=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ym=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Zm=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,ef=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,tf=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ht=e=>an(e)||Jm.has(e)||Gm.test(e),wt=e=>Cn(e,"length",uf),an=e=>!!e&&!Number.isNaN(Number(e)),si=e=>Cn(e,"number",an),Mn=e=>!!e&&Number.isInteger(Number(e)),nf=e=>e.endsWith("%")&&an(e.slice(0,-1)),G=e=>Ml.test(e),vt=e=>Xm.test(e),rf=new Set(["length","size","percentage"]),sf=e=>Cn(e,rf,Ol),af=e=>Cn(e,"position",Ol),of=new Set(["image","url"]),lf=e=>Cn(e,of,hf),cf=e=>Cn(e,"",df),On=()=>!0,Cn=(e,t,n)=>{const r=Ml.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},uf=e=>Ym.test(e)&&!Zm.test(e),Ol=()=>!1,df=e=>ef.test(e),hf=e=>tf.test(e),pf=()=>{const e=me("colors"),t=me("spacing"),n=me("blur"),r=me("brightness"),s=me("borderColor"),a=me("borderRadius"),o=me("borderSpacing"),l=me("borderWidth"),c=me("contrast"),u=me("grayscale"),d=me("hueRotate"),h=me("invert"),m=me("gap"),p=me("gradientColorStops"),y=me("gradientColorStopPositions"),w=me("inset"),v=me("margin"),b=me("opacity"),C=me("padding"),_=me("saturate"),N=me("scale"),F=me("sepia"),j=me("skew"),q=me("space"),M=me("translate"),R=()=>["auto","contain","none"],z=()=>["auto","hidden","clip","visible","scroll"],k=()=>["auto",G,t],E=()=>[G,t],J=()=>["",ht,wt],D=()=>["auto",an,G],P=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],$=()=>["solid","dashed","dotted","double","none"],B=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],de=()=>["start","end","center","between","around","evenly","stretch"],pe=()=>["","0",G],f=()=>["auto","avoid","all","avoid-page","page","left","right","column"],ie=()=>[an,G];return{cacheSize:500,separator:":",theme:{colors:[On],spacing:[ht,wt],blur:["none","",vt,G],brightness:ie(),borderColor:[e],borderRadius:["none","","full",vt,G],borderSpacing:E(),borderWidth:J(),contrast:ie(),grayscale:pe(),hueRotate:ie(),invert:pe(),gap:E(),gradientColorStops:[e],gradientColorStopPositions:[nf,wt],inset:k(),margin:k(),opacity:ie(),padding:E(),saturate:ie(),scale:ie(),sepia:pe(),skew:ie(),space:E(),translate:E()},classGroups:{aspect:[{aspect:["auto","square","video",G]}],container:["container"],columns:[{columns:[vt]}],"break-after":[{"break-after":f()}],"break-before":[{"break-before":f()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...P(),G]}],overflow:[{overflow:z()}],"overflow-x":[{"overflow-x":z()}],"overflow-y":[{"overflow-y":z()}],overscroll:[{overscroll:R()}],"overscroll-x":[{"overscroll-x":R()}],"overscroll-y":[{"overscroll-y":R()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[w]}],"inset-x":[{"inset-x":[w]}],"inset-y":[{"inset-y":[w]}],start:[{start:[w]}],end:[{end:[w]}],top:[{top:[w]}],right:[{right:[w]}],bottom:[{bottom:[w]}],left:[{left:[w]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Mn,G]}],basis:[{basis:k()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",G]}],grow:[{grow:pe()}],shrink:[{shrink:pe()}],order:[{order:["first","last","none",Mn,G]}],"grid-cols":[{"grid-cols":[On]}],"col-start-end":[{col:["auto",{span:["full",Mn,G]},G]}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":[On]}],"row-start-end":[{row:["auto",{span:[Mn,G]},G]}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",G]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",G]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...de()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...de(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...de(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[C]}],px:[{px:[C]}],py:[{py:[C]}],ps:[{ps:[C]}],pe:[{pe:[C]}],pt:[{pt:[C]}],pr:[{pr:[C]}],pb:[{pb:[C]}],pl:[{pl:[C]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[q]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[q]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",G,t]}],"min-w":[{"min-w":[G,t,"min","max","fit"]}],"max-w":[{"max-w":[G,t,"none","full","min","max","fit","prose",{screen:[vt]},vt]}],h:[{h:[G,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[G,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[G,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[G,t,"auto","min","max","fit"]}],"font-size":[{text:["base",vt,wt]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",si]}],"font-family":[{font:[On]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",G]}],"line-clamp":[{"line-clamp":["none",an,si]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",ht,G]}],"list-image":[{"list-image":["none",G]}],"list-style-type":[{list:["none","disc","decimal",G]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[b]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[b]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...$(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",ht,wt]}],"underline-offset":[{"underline-offset":["auto",ht,G]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:E()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",G]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",G]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[b]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...P(),af]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",sf]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},lf]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[y]}],"gradient-via-pos":[{via:[y]}],"gradient-to-pos":[{to:[y]}],"gradient-from":[{from:[p]}],"gradient-via":[{via:[p]}],"gradient-to":[{to:[p]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[b]}],"border-style":[{border:[...$(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[b]}],"divide-style":[{divide:$()}],"border-color":[{border:[s]}],"border-color-x":[{"border-x":[s]}],"border-color-y":[{"border-y":[s]}],"border-color-s":[{"border-s":[s]}],"border-color-e":[{"border-e":[s]}],"border-color-t":[{"border-t":[s]}],"border-color-r":[{"border-r":[s]}],"border-color-b":[{"border-b":[s]}],"border-color-l":[{"border-l":[s]}],"divide-color":[{divide:[s]}],"outline-style":[{outline:["",...$()]}],"outline-offset":[{"outline-offset":[ht,G]}],"outline-w":[{outline:[ht,wt]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:J()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[b]}],"ring-offset-w":[{"ring-offset":[ht,wt]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",vt,cf]}],"shadow-color":[{shadow:[On]}],opacity:[{opacity:[b]}],"mix-blend":[{"mix-blend":[...B(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":B()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",vt,G]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[h]}],saturate:[{saturate:[_]}],sepia:[{sepia:[F]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[h]}],"backdrop-opacity":[{"backdrop-opacity":[b]}],"backdrop-saturate":[{"backdrop-saturate":[_]}],"backdrop-sepia":[{"backdrop-sepia":[F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",G]}],duration:[{duration:ie()}],ease:[{ease:["linear","in","out","in-out",G]}],delay:[{delay:ie()}],animate:[{animate:["none","spin","ping","pulse","bounce",G]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[N]}],"scale-x":[{"scale-x":[N]}],"scale-y":[{"scale-y":[N]}],rotate:[{rotate:[Mn,G]}],"translate-x":[{"translate-x":[M]}],"translate-y":[{"translate-y":[M]}],"skew-x":[{"skew-x":[j]}],"skew-y":[{"skew-y":[j]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",G]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",G]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":E()}],"scroll-mx":[{"scroll-mx":E()}],"scroll-my":[{"scroll-my":E()}],"scroll-ms":[{"scroll-ms":E()}],"scroll-me":[{"scroll-me":E()}],"scroll-mt":[{"scroll-mt":E()}],"scroll-mr":[{"scroll-mr":E()}],"scroll-mb":[{"scroll-mb":E()}],"scroll-ml":[{"scroll-ml":E()}],"scroll-p":[{"scroll-p":E()}],"scroll-px":[{"scroll-px":E()}],"scroll-py":[{"scroll-py":E()}],"scroll-ps":[{"scroll-ps":E()}],"scroll-pe":[{"scroll-pe":E()}],"scroll-pt":[{"scroll-pt":E()}],"scroll-pr":[{"scroll-pr":E()}],"scroll-pb":[{"scroll-pb":E()}],"scroll-pl":[{"scroll-pl":E()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",G]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[ht,wt,si]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},mf=Wm(pf),Oi={status:"",repo:"",thread:"",action:"",intent:"",actor:""},ff=new Vc({defaultOptions:{queries:{retry:1}}}),ao=12,xf=12,gf=10080*60*1e3,bf=1e3,Dl=Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC";function W(...e){return mf(pc(e))}async function ee(e,t){const n=new Headers(t==null?void 0:t.headers);n.set("Accept","application/json");const r=await fetch(e,{...t,headers:n});if(!r.ok)throw new Error(`${r.status} ${r.statusText}`);return r.json()}function Ve(e){if(e==null)return"n/a";const t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;const n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}const yf=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}),wf=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"});function dr(e){if(!e)return null;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}function vf(e){const t=dr(e);return t?yf.format(t):e??""}function $n(e){const t=dr(e);return t?wf.format(t):e??""}function Fl(e,t){const n=dr(e);if(!n)return e??"";const r=t-n.getTime(),s=Math.abs(r);if(s>gf)return $n(e);const a=r>=0?"ago":"from now",o=Math.round(s/1e3);if(o<45)return r>=0?"just now":"soon";if(o<90)return`1m ${a}`;const l=Math.round(o/60);if(l<60)return`${l}m ${a}`;if(l<90)return`1h ${a}`;const c=Math.round(l/60);return c<24?`${c}h ${a}`:c<36?`1d ${a}`:`${Math.round(c/24)}d ${a}`}function Re({value:e,compact:t=!1,relative:n=!1,now:r=Date.now()}){const s=dr(e);return s?i.jsx("time",{dateTime:s.toISOString(),title:`UTC: ${s.toISOString()}`,children:n?Fl(e,r):t?$n(e):vf(e)}):i.jsx(i.Fragment,{children:e??""})}function zl(e,t){const n=dr(e);return n?Math.max(0,Math.floor((t-n.getTime())/1e3)):null}function ls(e,t){return e.status==="running"?zl(e.started_at,t)??e.runtime_seconds:e.runtime_seconds}function cs(e,t){return e.status==="pending"?zl(e.created_at,t)??e.queue_wait_seconds:e.queue_wait_seconds}function jf(e){const[t,n]=L.useState(()=>Date.now());return L.useEffect(()=>{if(!e)return;n(Date.now());const r=window.setInterval(()=>n(Date.now()),bf);return()=>window.clearInterval(r)},[e]),t}function kf(e){return(e??"").split(/\r?\n/).map(n=>n.trim()).find(Boolean)??""}function Or(e,t,n=1){const r=kf(t),s=n>1?` (${n})`:"";return r?`${e}${s}: ${r}`:`${e}${s}`}function Dr(e){return e==="openclaw_stdout"||e==="openclaw_stderr"}function ql(e){return e.map(t=>t==null?void 0:t.trim()).filter(Boolean).join(` +`)}function Nf(e){const t=[];for(const n of e){const r=t[t.length-1];if(r&&Dr(n.event_type)&&r.eventType===n.event_type){r.count+=1,r.meta=n.ts,r.detail=ql([r.detail,n.detail]),r.summary=Or(n.summary,r.detail,r.count);continue}t.push({id:String(n.id),badge:n.event_type,meta:n.ts,summary:Dr(n.event_type)?Or(n.summary,n.detail):n.summary,detail:n.detail,eventType:n.event_type,count:1})}return t}function Sf(e){const t=[];return e.forEach((n,r)=>{const s=t[t.length-1];if(s&&Dr(n.kind)&&s.kind===n.kind){s.count+=1,s.meta=n.timestamp,s.text=ql([s.text,n.text]),s.summary=Or(`${n.role} · ${n.kind}`,s.text,s.count);return}t.push({id:`${n.timestamp??"entry"}-${r}`,badge:n.title,meta:n.timestamp,summary:Dr(n.kind)?Or(`${n.role} · ${n.kind}`,n.text):`${n.role} · ${n.kind}`,text:n.text,kind:n.kind,count:1})}),t}function oo(e,t,n,r){return e==="openclaw_stdout"?!1:t||n>=r-2}function Cf(e){return{pending:{badge:"border-amber-300 bg-amber-50 text-amber-800",dot:"bg-amber-500"},running:{badge:"border-blue-300 bg-blue-50 text-blue-700",dot:"bg-blue-600"},blocked:{badge:"border-red-300 bg-red-50 text-red-700",dot:"bg-red-600"},denied:{badge:"border-red-300 bg-red-50 text-red-700",dot:"bg-red-600"},done:{badge:"border-emerald-300 bg-emerald-50 text-emerald-700",dot:"bg-emerald-600"},waiting_approval:{badge:"border-slate-300 bg-slate-50 text-slate-700",dot:"bg-slate-500"}}[e]??{badge:"border-slate-300 bg-slate-50 text-slate-700",dot:"bg-slate-500"}}function _f(e,t){const n=new URLSearchParams;for(const[r,s]of Object.entries(e))s.trim()&&n.set(r,s.trim());return n.set("limit",String(t)),`/api/jobs?${n.toString()}`}function Ef(e,t,n=50){const r=new URLSearchParams;return e.trim()&&r.set("repo",e.trim()),t.trim()&&r.set("status",t.trim()),r.set("limit",String(n)),`/api/knowledge?${r.toString()}`}function Pf(e){return{timeseries:e==="overview",hooks:e==="hooks",deliveries:e==="deliveries"}}function Rf(e,t,n="day"){return`/api/webhooks/github/timeseries?${new URLSearchParams({from:e,to:t,bucket:n}).toString()}`}function If(e=50,t){const n=new URLSearchParams({limit:String(e)});return t&&n.set("cursor",t),`/api/webhooks/github/hooks?${n.toString()}`}function Tf(e=50,t,n){const r=new URLSearchParams({limit:String(e)});t&&r.set("cursor",t);for(const[s,a]of Object.entries(n??{}))a!=null&&a.trim()&&r.set(s,a.trim());return`/api/webhooks/github/deliveries?${r.toString()}`}function Cr(e=new Date){return{from:new Date(e.getTime()-720*60*60*1e3).toISOString(),to:e.toISOString()}}function Af(e=Dl){return`/api/metrics/summary?timezone=${encodeURIComponent(e)}`}function et(e){try{const t=new URL(e);return t.protocol==="https:"||t.protocol==="http:"?t.href:"#"}catch{return"#"}}function Ir(){return"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window}function Lf(e){return!!(e&&typeof e=="object"&&"type"in e&&e.type==="github-agent-bridge:push")}function Mf(e){const t="=".repeat((4-e.length%4)%4),n=(e+t).replace(/-/g,"+").replace(/_/g,"/"),r=window.atob(n),s=new Uint8Array(r.length);for(let a=0;an.id===t.id)?e:[...e,t]}function Df(e,t){const n=lo(t);return e.some(r=>lo(r)===n)?e:[...e,t]}function lo(e){return`${e.timestamp??""}:${e.role}:${e.kind}:${e.title}:${e.text}`}function Ff(e){return["claimed","dispatch_started","dispatch_finished","done","blocked","denied","waiting_approval"].includes(e)}function zn(e){return["blocked","denied","waiting_approval"].includes(e)}function Di(e,t){return e.status!=="running"?!1:t!=null&&t.is_admin?!0:!!(t!=null&&t.login&&e.trigger_actor&&t.login.toLowerCase()===e.trigger_actor.toLowerCase())}function zf(e=window.location.pathname){const t=e.match(/^\/jobs\/(\d+)\/?$/);return t?Number(t[1]):null}function qf(e=window.location.pathname){return/^\/knowledge\/?$/.test(e)}function Bf(e=window.location.pathname){return/^\/mcp\/?$/.test(e)}function Uf(e=window.location.pathname){return/^\/system\/?$/.test(e)}function $f(e=window.location.pathname){const t=e.match(/^\/webhooks\/hooks\/([^/]+)\/?$/);return t?decodeURIComponent(t[1]):null}function Hf(e=window.location.pathname){const t=e.match(/^\/webhooks\/deliveries\/([^/]+)\/?$/);return t?decodeURIComponent(t[1]):null}function ai(e=window.location.pathname){return/^\/webhooks(?:\/(?:hooks|deliveries)\/[^/]+)?\/?$/.test(e)}function Bl(e){return e.startsWith("repo:")?e.slice(5):e}function co(e){return Object.values(e).some(t=>t.trim()!=="")}function Kf(e){return[{key:"status",label:"Status",value:e.status},{key:"repo",label:"Repo",value:e.repo},{key:"thread",label:"Thread",value:e.thread},{key:"action",label:"Action",value:e.action},{key:"actor",label:"Actor",value:e.actor.trim()?`@${e.actor.trim().replace(/^@/,"")}`:""},{key:"intent",label:"Intent",value:e.intent}].filter(t=>t.value.trim()!=="")}function Qf(){var hs,ps,ms,fs,xs,gs,bs,ys,ws,vs,js,ks,Ns,Ss,Cs,_s,Es,Ps,Rs,Is,Ts,As,Ls,Ms,Os,Ds,Fs,zs,qs,Bs,Us,$s,Hs,Ks,Qs,Vs,Ws,Gs,Js,Xs,Ys,Zs,ea,ta,na,ra;const e=Uo(),[t,n]=L.useState(Oi),[r,s]=L.useState(ao),a=L.useRef(!1),[o,l]=L.useState(""),[c,u]=L.useState("proposed"),[d,h]=L.useState("overview"),[m,p]=L.useState({hook_id:"",event_name:"",repository:"",result:"",enqueue_status:""}),[y,w]=L.useState(()=>Cr()),[v,b]=L.useState(null),[C,_]=L.useState(""),[N,F]=L.useState(()=>window.location.pathname),[j,q]=L.useState(null),M=zf(N),R=M!==null,z=qf(N),k=Bf(N),E=Uf(N),J=ai(N),D=$f(N),P=Hf(N),$=!R&&!z&&!k&&!E&&!J,B=M,de=xe({queryKey:["metrics",Dl],queryFn:()=>ee(Af()),enabled:$||E}),pe=xe({queryKey:["dashboard-status"],queryFn:()=>ee("/api/status")}),f=xe({queryKey:["me"],queryFn:()=>ee("/api/me"),refetchInterval:!1}),ie=J&&!!((ps=(hs=f.data)==null?void 0:hs.user)!=null&&ps.is_admin&&((ms=pe.data)!=null&&ms.webhook_configured)),Ie=Pf(d),x=xe({queryKey:["web-push-config"],queryFn:()=>ee("/api/web-push/config"),enabled:!!((fs=f.data)!=null&&fs.user)}),De=xe({queryKey:["about"],queryFn:()=>ee("/api/about")}),lt=xe({queryKey:["job-actors"],queryFn:()=>ee("/api/jobs/actors"),enabled:$}),ae=xe({queryKey:["jobs",t,r],queryFn:()=>ee(_f(t,r)),enabled:$,placeholderData:T=>T}),We=xe({queryKey:["processes"],queryFn:()=>ee("/api/processes"),enabled:E}),Fe=xe({queryKey:["systemd"],queryFn:()=>ee("/api/systemd"),enabled:E}),Ge=xe({queryKey:["alerts"],queryFn:()=>ee("/api/alerts"),enabled:E}),Je=xe({queryKey:["webhook-summary"],queryFn:()=>ee("/api/webhooks/github/summary"),enabled:ie}),xt=xe({queryKey:["webhook-timeseries",y.from,y.to,"day"],queryFn:()=>ee(Rf(y.from,y.to)),enabled:ie&&Ie.timeseries}),hr=xe({queryKey:["webhook-exceptions"],queryFn:()=>ee("/api/webhooks/github/exceptions"),enabled:ie&&Ie.timeseries}),ct=ba({queryKey:["webhook-hooks"],queryFn:({pageParam:T})=>ee(If(50,T)),initialPageParam:null,getNextPageParam:T=>T.next_cursor??void 0,enabled:ie&&Ie.hooks&&D===null&&P===null}),ut=ba({queryKey:["webhook-deliveries",m],queryFn:({pageParam:T})=>ee(Tf(50,T,m)),initialPageParam:null,getNextPageParam:T=>T.next_cursor??void 0,enabled:ie&&Ie.deliveries&&D===null&&P===null}),At=xe({queryKey:["webhook-hook",D],queryFn:()=>ee(`/api/webhooks/github/hooks/${encodeURIComponent(D??"")}`),enabled:ie&&D!==null}),Lt=xe({queryKey:["webhook-delivery",P],queryFn:()=>ee(`/api/webhooks/github/deliveries/${encodeURIComponent(P??"")}`),enabled:ie&&P!==null}),Mt=xe({queryKey:["knowledge",o,c],queryFn:()=>ee(Ef(o,c)),enabled:z}),en=xe({queryKey:["mcp-tokens"],queryFn:()=>ee("/api/mcp/tokens"),enabled:k&&!!((xs=f.data)!=null&&xs.user)}),pr=xe({queryKey:["mcp-users"],queryFn:()=>ee("/api/mcp/users"),enabled:k&&!!((gs=f.data)!=null&&gs.user)}),Ot=xe({queryKey:["job",B],queryFn:()=>ee(`/api/jobs/${B}`),enabled:B!==null}),mr=xe({queryKey:["job-session",B],queryFn:()=>ee(`/api/jobs/${B}/session`),enabled:B!==null}),fr=xe({queryKey:["job-session-events",B],queryFn:()=>ee(`/api/jobs/${B}/session/events`),enabled:B!==null}),xr=xe({queryKey:["job-session-transcript",B],queryFn:()=>ee(`/api/jobs/${B}/session/transcript`),enabled:B!==null}),gr=L.useCallback(async T=>{const oe=await ee(`/api/jobs/${T}/retry`,{method:"POST"});e.setQueryData(["job",T],{job:oe.job}),e.invalidateQueries({queryKey:["jobs"]}),e.invalidateQueries({queryKey:["metrics"]})},[e]),br=L.useCallback(async T=>{const oe=await ee(`/api/jobs/${T}/dismiss`,{method:"POST"});e.setQueryData(["job",T],{job:oe.job}),e.invalidateQueries({queryKey:["jobs"]}),e.invalidateQueries({queryKey:["metrics"]})},[e]),S=L.useCallback(async(T,oe)=>{const fe=await ee(`/api/jobs/${T}/cancel`,{method:"POST",body:JSON.stringify({reason:oe||""})});e.setQueryData(["job",T],{job:fe.job}),e.invalidateQueries({queryKey:["jobs"]}),e.invalidateQueries({queryKey:["metrics"]}),e.invalidateQueries({queryKey:["dashboard-status"]})},[e]),A=L.useCallback(async(T,oe)=>{await ee(`/api/knowledge/proposals/${encodeURIComponent(T)}/${oe}`,{method:"POST"}),e.invalidateQueries({queryKey:["knowledge"]}),e.invalidateQueries({queryKey:["dashboard-status"]})},[e]),K=L.useCallback(async T=>{await ee(`/api/knowledge/rules/${encodeURIComponent(T)}`,{method:"DELETE"}),e.invalidateQueries({queryKey:["knowledge"]})},[e]),Y=L.useCallback(async(T,oe)=>{await ee(`/api/knowledge/rules/${encodeURIComponent(T)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:oe})}),e.invalidateQueries({queryKey:["knowledge"]})},[e]),se=L.useCallback(async(T,oe)=>{const fe=await ee("/api/mcp/tokens",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:T,user_login:oe||void 0})});return e.invalidateQueries({queryKey:["mcp-tokens"]}),fe},[e]),ze=L.useCallback(async(T,oe)=>{await ee(`/api/mcp/tokens/${encodeURIComponent(T)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user_login:oe})}),e.invalidateQueries({queryKey:["mcp-tokens"]}),e.invalidateQueries({queryKey:["mcp-users"]})},[e]),dt=L.useCallback(async T=>{await ee(`/api/mcp/tokens/${encodeURIComponent(T)}`,{method:"DELETE"}),e.invalidateQueries({queryKey:["mcp-tokens"]})},[e]),qe=L.useCallback(async T=>{const oe={refresh:"/api/autoupdate/refresh",apply:"/api/autoupdate/apply",complete:"/api/autoupdate/complete-pending"}[T];b(T),_("");try{await ee(oe,{method:"POST"}),e.invalidateQueries({queryKey:["dashboard-status"]})}catch(fe){e.invalidateQueries({queryKey:["dashboard-status"]}),_(fe instanceof Error?fe.message:String(fe))}finally{b(null)}},[e]),Dt=L.useCallback(async()=>{var ia;const T=(ia=x.data)==null?void 0:ia.public_key;if(!T)throw new Error("web_push_not_configured");if(!Ir())throw new Error("web_push_not_supported");if(await window.Notification.requestPermission()!=="granted")throw new Error("notification_permission_denied");const fe=await navigator.serviceWorker.register("/service-worker.js"),uc=await fe.pushManager.getSubscription()??await fe.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Mf(T)});await ee("/api/web-push/subscriptions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(uc.toJSON())}),e.invalidateQueries({queryKey:["web-push-config"]})},[e,(bs=x.data)==null?void 0:bs.public_key]),Ft=L.useCallback(async()=>{if(!Ir())return;const oe=await(await navigator.serviceWorker.ready).pushManager.getSubscription();if(!oe)return;const fe=oe.endpoint;await oe.unsubscribe(),await ee("/api/web-push/subscriptions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:fe})}),e.invalidateQueries({queryKey:["web-push-config"]})},[e]);L.useEffect(()=>{var T;!((T=x.data)!=null&&T.status.enabled)||!Ir()||navigator.serviceWorker.register("/service-worker.js").catch(()=>{})},[(ys=x.data)==null?void 0:ys.status.enabled]),L.useEffect(()=>{if(B===null)return;const T=new EventSource(`/api/jobs/${B}/session/stream`);return T.addEventListener("session_event",oe=>{const fe=Fr(oe);fe&&(e.setQueryData(["job-session-events",B],bt=>({events:Of((bt==null?void 0:bt.events)??[],fe)})),Ff(fe.event_type)&&(e.invalidateQueries({queryKey:["job",B]}),e.invalidateQueries({queryKey:["jobs"]})))}),T.addEventListener("transcript_entry",oe=>{const fe=Fr(oe);!fe||fe.job_id!==B||e.setQueryData(["job-session-transcript",B],bt=>({entries:Df((bt==null?void 0:bt.entries)??[],fe.entry)}))}),T.onerror=()=>{e.invalidateQueries({queryKey:["job",B]}),e.invalidateQueries({queryKey:["job-session-events",B]}),e.invalidateQueries({queryKey:["job-session-transcript",B]})},()=>T.close()},[B,e]),L.useEffect(()=>{const T=()=>{ai(window.location.pathname)&&w(Cr()),F(window.location.pathname)};return window.addEventListener("popstate",T),()=>window.removeEventListener("popstate",T)},[]),L.useEffect(()=>{if(!("serviceWorker"in navigator))return;const T=oe=>{if(!Lf(oe.data))return;const fe={...oe.data.payload,id:Date.now(),receivedAt:Date.now()};q(fe),fe.job_id&&(e.invalidateQueries({queryKey:["jobs"]}),e.invalidateQueries({queryKey:["job",fe.job_id]}),e.invalidateQueries({queryKey:["metrics"]}))};return navigator.serviceWorker.addEventListener("message",T),()=>navigator.serviceWorker.removeEventListener("message",T)},[e]),L.useEffect(()=>{if(!j)return;const T=window.setTimeout(()=>q(null),12e3);return()=>window.clearTimeout(T)},[j]);const Ne=L.useCallback(T=>{window.history.pushState({},"",_n(T)),F(window.location.pathname)},[]),ve=L.useCallback(T=>{window.history.pushState({},"",T),ai(T)&&w(Cr()),F(window.location.pathname)},[]),Se=((ws=de.data)==null?void 0:ws.metrics.status_counts)??{},yr=((vs=ae.data)==null?void 0:vs.jobs)??[],ec=!!((ks=(js=f.data)==null?void 0:js.user)!=null&&ks.is_admin&&Ul((Ns=pe.data)==null?void 0:Ns.autoupdate)),tc=L.useCallback(T=>{n(T),s(ao),a.current=!1},[]);L.useEffect(()=>{ae.isFetching||(a.current=!1)},[ae.isFetching]);const nc=L.useCallback(()=>{a.current||(a.current=!0,s(T=>T+xf))},[]),gt=B?((Ss=Ot.data)==null?void 0:Ss.job)??null:null,rc=yr.some(T=>T.status==="running"||T.status==="pending")||(gt==null?void 0:gt.status)==="running"||(gt==null?void 0:gt.status)==="pending"||!!((Cs=We.data)!=null&&Cs.running_jobs.length),Pn=jf(rc),ic=i.jsx(ox,{selectedJobId:B,selectedJob:gt,loading:Ot.isLoading,error:Ot.error,session:(_s=mr.data)==null?void 0:_s.session,sessionEvents:(Es=fr.data)==null?void 0:Es.events,transcript:(Ps=xr.data)==null?void 0:Ps.entries,now:Pn}),sc=((Rs=ct.data)==null?void 0:Rs.pages.flatMap(T=>T.hooks))??[],ac=((Is=ut.data)==null?void 0:Is.pages.flatMap(T=>T.deliveries))??[],oc=d==="overview"?xt.isLoading:d==="hooks"?ct.isLoading:ut.isLoading,lc=d==="overview"?xt.error:d==="hooks"?ct.error:ut.error,cc=()=>{Je.refetch(),d==="overview"&&hr.refetch(),d==="overview"&&w(Cr()),d==="hooks"&&ct.refetch(),d==="deliveries"&&ut.refetch()};return i.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[i.jsx("header",{className:"border-b border-slate-800 bg-slate-950 text-white",children:i.jsxs("div",{className:"mx-auto flex w-full max-w-[1440px] items-center justify-between gap-3 px-4 py-4 md:px-6",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h1",{className:"truncate text-xl font-semibold",children:"GitHub Agent Bridge"}),i.jsx(Vf,{about:De.data})]}),i.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[i.jsx(yx,{config:x.data,loading:x.isLoading,onEnable:Dt,onDisable:Ft}),i.jsx(bx,{user:(Ts=f.data)==null?void 0:Ts.user,loading:f.isLoading})]})]})}),i.jsxs("main",{className:"mx-auto grid w-full max-w-[1440px] gap-4 px-3 py-4 sm:px-4 md:px-6 md:py-5",children:[i.jsx(Zf,{isDashboardRoute:$,isSystemRoute:E,isKnowledgeRoute:z,isMcpRoute:k,isWebhooksRoute:J,showWebhooks:!!((Ls=(As=f.data)==null?void 0:As.user)!=null&&Ls.is_admin&&((Ms=pe.data)!=null&&Ms.webhook_configured)),knowledgeBadgeCount:((Fs=(Ds=(Os=pe.data)==null?void 0:Os.metrics)==null?void 0:Ds.knowledge)==null?void 0:Fs.proposed)??0,systemUpdateAvailable:ec,onNavigate:ve}),i.jsx(wx,{notification:j,onDismiss:()=>q(null),onNavigate:ve}),M!==null?i.jsx(ax,{jobId:M,detail:ic,selectedJob:gt,user:(zs=f.data)==null?void 0:zs.user,onBackToDashboard:()=>ve("/"),onRetry:gr,onDismiss:br,onCancel:S,onRefresh:()=>{Ot.refetch(),mr.refetch(),fr.refetch(),xr.refetch()}}):z?i.jsx(lx,{data:Mt.data,loading:Mt.isLoading,error:Mt.error,repo:o,status:c,user:(qs=f.data)==null?void 0:qs.user,now:Pn,onRepoChange:l,onStatusChange:u,onApprove:T=>A(T,"approve"),onReject:T=>A(T,"reject"),onUpdateRuleScope:Y,onDeleteRule:K,onRefresh:()=>Mt.refetch()}):k?i.jsx(mx,{tokens:(Bs=en.data)==null?void 0:Bs.tokens,loading:en.isLoading,error:en.error,user:(Us=f.data)==null?void 0:Us.user,ownerOptions:(($s=pr.data)==null?void 0:$s.users)??[],dashboardUrl:(Hs=pe.data)==null?void 0:Hs.dashboard_url,dashboardUrlSource:(Ks=pe.data)==null?void 0:Ks.dashboard_url_source,now:Pn,onCreate:se,onUpdateOwner:ze,onRevoke:dt,onRefresh:()=>en.refetch()}):J?P?i.jsx(ix,{data:Lt.data,loading:Lt.isLoading,error:Lt.error,onBack:()=>{h("deliveries"),ve("/webhooks")},onRefresh:()=>Lt.refetch(),onViewHook:T=>ve(`/webhooks/hooks/${encodeURIComponent(T)}`),onViewJob:Ne}):D?i.jsx(rx,{data:At.data,loading:At.isLoading,error:At.error,onBack:()=>{h("hooks"),ve("/webhooks")},onRefresh:()=>At.refetch(),onViewHook:T=>ve(`/webhooks/hooks/${encodeURIComponent(T)}`),onViewDelivery:T=>ve(`/webhooks/deliveries/${encodeURIComponent(T)}`)}):i.jsx(ex,{summary:Je.data,timeseries:(Qs=xt.data)==null?void 0:Qs.points,exceptions:(Vs=hr.data)==null?void 0:Vs.exceptions,hooks:sc,deliveries:ac,section:d,summaryLoading:Je.isLoading,sectionLoading:oc,loadingMore:d==="hooks"?ct.isFetchingNextPage:ut.isFetchingNextPage,hasMore:d==="hooks"?ct.hasNextPage:ut.hasNextPage,deliveryFilters:m,error:Je.error??lc,onSectionChange:h,onLoadMore:()=>d==="hooks"?ct.fetchNextPage():ut.fetchNextPage(),onDeliveryFiltersChange:p,onViewHook:T=>ve(`/webhooks/hooks/${encodeURIComponent(T)}`),onViewDelivery:T=>ve(`/webhooks/deliveries/${encodeURIComponent(T)}`),onRefresh:cc}):E?i.jsxs(i.Fragment,{children:[i.jsx(Wf,{state:(Ws=pe.data)==null?void 0:Ws.autoupdate,isAdmin:!!((Js=(Gs=f.data)==null?void 0:Gs.user)!=null&&Js.is_admin),runningAction:v,actionError:C,onRefresh:()=>qe("refresh"),onApply:()=>qe("apply"),onCompletePending:()=>qe("complete")}),i.jsx(sx,{processes:We.data,processesLoading:We.isLoading,processesError:We.error,systemd:Fe.data,systemdLoading:Fe.isLoading,systemdError:Fe.error,alerts:(Xs=Ge.data)==null?void 0:Xs.alerts,alertsLoading:Ge.isLoading,alertsError:Ge.error,now:Pn,onRefreshProcesses:()=>We.refetch(),onRefreshSystemd:()=>Fe.refetch(),onRefreshAlerts:()=>Ge.refetch()})]}):i.jsxs(i.Fragment,{children:[de.error?i.jsx(we,{tone:"error",text:de.error.message}):null,pe.error?i.jsx(we,{tone:"error",text:pe.error.message}):null,i.jsxs("section",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4","aria-label":"Summary metrics",children:[i.jsx(_e,{title:"Pending",value:Se.pending??0,icon:i.jsx(Vo,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Running",value:Se.running??0,icon:i.jsx(wn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Blocked",value:Se.blocked??0,icon:i.jsx(qr,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Done",value:Se.done??0,icon:i.jsx(jn,{className:"h-5 w-5"})})]}),i.jsxs("section",{className:"grid gap-3",children:[i.jsx(vx,{count:yr.length,limit:r,loading:ae.isLoading,onRefresh:()=>ae.refetch()}),i.jsxs(ce,{title:"Recent jobs",flushHeader:!0,children:[i.jsx(jx,{filters:t,actorOptions:((Ys=lt.data)==null?void 0:Ys.actors)??[],onChange:tc}),ae.error?i.jsx(we,{tone:"error",text:ae.error.message}):null,i.jsx(Nx,{jobs:yr,loading:ae.isLoading,loadingMore:ae.isFetching&&!ae.isLoading,hasMore:yr.length>=r,onLoadMore:nc,onViewJob:Ne,now:Pn,user:(Zs=f.data)==null?void 0:Zs.user,onRetry:gr,onDismiss:br,onCancel:S})]}),i.jsx(ce,{title:"Runtime usage",action:i.jsx(Ze,{onClick:()=>de.refetch()}),children:i.jsx(Dx,{usage:(ea=de.data)==null?void 0:ea.metrics.runtime_usage,loading:de.isLoading,totalJobs:mo(Se)})})]}),i.jsxs("section",{className:"grid gap-4 xl:grid-cols-3",children:[i.jsx(ce,{title:"Runtime percentiles",children:i.jsx(po,{label:"runtime",values:(ta=de.data)==null?void 0:ta.metrics.runtime_seconds})}),i.jsx(ce,{title:"Jobs per day",children:i.jsx(Ox,{values:(na=de.data)==null?void 0:na.metrics.by_created_day,loading:de.isLoading,totalJobs:mo(Se)})}),i.jsx(ce,{title:"Queue wait percentiles",children:i.jsx(po,{label:"queue wait",values:(ra=de.data)==null?void 0:ra.metrics.queue_wait_seconds})})]})]})]})]})}function Vf({about:e}){const t=e!=null&&e.version?`v${e.version}`:"version loading";return i.jsxs("p",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-sm text-slate-300",children:[i.jsx("span",{children:"Operational dashboard"}),i.jsx("span",{className:"font-mono text-xs text-slate-400",children:t}),e!=null&&e.repository_url?i.jsxs("a",{className:"inline-flex items-center gap-1 text-xs font-semibold text-slate-200 hover:underline",href:et(e.repository_url),rel:"noreferrer",target:"_blank",children:[i.jsx(Xt,{className:"h-3.5 w-3.5","aria-hidden":!0}),"GitHub"]}):null]})}function Ul(e){var t,n;return!!((n=(t=e==null?void 0:e.target)==null?void 0:t.tag_name)!=null&&n.trim()&&e.decision!=="noop")}function Wf({state:e,isAdmin:t,runningAction:n=null,actionError:r="",onRefresh:s,onApply:a,onCompletePending:o}){var v,b,C,_,N,F,j,q,M,R,z;if(!e||!Ul(e))return null;const l=(b=(v=e==null?void 0:e.target)==null?void 0:v.tag_name)==null?void 0:b.trim();if(!t||!l)return null;const c=Gf(e.decision),u=((C=e.queue)==null?void 0:C.active_total)??0,d=Jf((_=e.classification)==null?void 0:_.risk),h=Xf((N=e.target)==null?void 0:N.body),m=((j=(F=e.classification)==null?void 0:F.migration_files)==null?void 0:j.length)??0,p=((M=(q=e.classification)==null?void 0:q.risky_files)==null?void 0:M.length)??0,y=!!(e.executor_reload_pending&&e.dashboard_applied_at&&o),w=!!(a&&m===0);return i.jsxs("section",{className:"rounded-md border border-amber-300 bg-amber-50 p-3 text-amber-950 shadow-sm","aria-label":"Update available",children:[i.jsxs("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(qr,{className:"h-4 w-4 text-amber-700","aria-hidden":!0}),i.jsx("h2",{className:"text-sm font-semibold",children:"Update available"}),i.jsx("span",{className:"rounded-sm border border-amber-300 bg-white px-1.5 py-0.5 font-mono text-[11px] text-amber-800",children:l}),(R=e.target)!=null&&R.url?i.jsxs("a",{className:"inline-flex items-center gap-1 text-xs font-semibold text-amber-800 hover:underline",href:et(e.target.url),rel:"noreferrer",target:"_blank",children:[i.jsx(Xt,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Release"]}):null]}),i.jsxs("p",{className:"mt-1 text-sm text-amber-900",children:[c,e.installed_tag?i.jsxs("span",{className:"font-mono",children:[" from ",e.installed_tag]}):null]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[s?i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-md border border-amber-300 bg-white px-2.5 text-xs font-semibold text-amber-900 hover:bg-amber-100 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:n!==null,onClick:s,children:[i.jsx(lr,{className:W("h-3.5 w-3.5",n==="refresh"&&"animate-spin"),"aria-hidden":!0}),n==="refresh"?"Checking...":"Check now"]}):null,w?i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-md bg-amber-800 px-2.5 text-xs font-semibold text-white hover:bg-amber-900 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:n!==null,onClick:()=>{window.confirm(`Apply ${l}? This can restart bridge services according to the recorded safe plan.`)&&(a==null||a())},children:[i.jsx(jn,{className:"h-3.5 w-3.5","aria-hidden":!0}),n==="apply"?"Applying...":"Apply update"]}):null,y?i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-md border border-amber-300 bg-white px-2.5 text-xs font-semibold text-amber-900 hover:bg-amber-100 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:n!==null,onClick:o,children:[i.jsx(Wn,{className:"h-3.5 w-3.5","aria-hidden":!0}),n==="complete"?"Completing...":"Complete reload"]}):null]})]}),i.jsxs("div",{className:"grid gap-2 text-xs sm:grid-cols-3 lg:min-w-[420px]",children:[i.jsx(oi,{label:"Impact",value:d}),i.jsx(oi,{label:"Active jobs",value:String(u)}),i.jsx(oi,{label:"Admin only",value:"autoupdate"})]})]}),e.blocked_reason||e.executor_reload_pending||m>0||p>0?i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2 text-xs",children:[e.executor_reload_pending?i.jsx("span",{className:"rounded-sm border border-amber-300 bg-white px-2 py-1 font-semibold",children:"executor reload pending"}):null,e.blocked_reason?i.jsx("span",{className:"rounded-sm border border-amber-300 bg-white px-2 py-1 font-mono",children:e.blocked_reason}):null,m>0?i.jsxs("span",{className:"rounded-sm border border-amber-300 bg-white px-2 py-1",children:[m," migration file",m===1?"":"s"]}):null,p>0?i.jsxs("span",{className:"rounded-sm border border-amber-300 bg-white px-2 py-1",children:[p," executor/shared file",p===1?"":"s"]}):null]}):null,h?i.jsxs("div",{className:"mt-3 rounded-md border border-amber-200 bg-white/70 p-2.5",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-amber-800",children:"Changelog preview"}),i.jsx(Yf,{markdown:h})]}):null,(z=e.warnings)!=null&&z.length?i.jsx("div",{className:"mt-2 font-mono text-xs text-amber-800",children:e.warnings[0]}):null,r?i.jsxs("div",{className:"mt-2 rounded-sm border border-amber-300 bg-white px-2 py-1 font-mono text-xs text-amber-900",children:["Action failed: ",r]}):null]})}function oi({label:e,value:t}){return i.jsxs("div",{className:"min-w-0 rounded-md border border-amber-200 bg-white/80 px-2 py-1.5",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-amber-700",children:e}),i.jsx("div",{className:"mt-0.5 truncate font-mono text-xs text-amber-950",children:t})]})}function Gf(e){return{stage_dashboard_reload:"Dashboard reload can be staged now",stage_defer_executor_reload:"Dashboard reload can be staged; executor reload waits for the queue",stage_full_reload:"Full reload can be staged now",defer_migration:"Migration release is waiting for a quiet queue"}[e??""]??"Update plan recorded"}function Jf(e){return{dashboard_only:"dashboard only",executor_or_queue:"executor or queue",executor_or_shared:"executor or shared",migration_required:"migration",none:"none"}[e??""]??"unknown"}function Xf(e){return(e??"").trim()}function Yf({markdown:e}){return i.jsx("div",{className:"mt-1 text-sm leading-relaxed text-amber-950",children:i.jsx(Im,{allowedElements:["a","blockquote","code","em","h1","h2","h3","h4","li","ol","p","strong","ul"],components:{a:({href:t,children:n})=>i.jsx("a",{className:"font-semibold text-amber-800 underline underline-offset-2",href:et(t??""),rel:"noreferrer",target:"_blank",children:n}),blockquote:({children:t})=>i.jsx("blockquote",{className:"mt-2 border-l-2 border-amber-300 pl-2 text-amber-900",children:t}),code:({children:t})=>i.jsx("code",{className:"rounded-sm bg-amber-100 px-1 py-0.5 font-mono text-[0.85em] text-amber-950",children:t}),h1:({children:t})=>i.jsx("h3",{className:"mt-2 text-sm font-semibold text-amber-950 first:mt-0",children:t}),h2:({children:t})=>i.jsx("h3",{className:"mt-2 text-sm font-semibold text-amber-950 first:mt-0",children:t}),h3:({children:t})=>i.jsx("h3",{className:"mt-2 text-sm font-semibold text-amber-950 first:mt-0",children:t}),h4:({children:t})=>i.jsx("h4",{className:"mt-2 text-xs font-semibold uppercase text-amber-800 first:mt-0",children:t}),li:({children:t})=>i.jsx("li",{className:"break-words pl-0.5 [overflow-wrap:anywhere]",children:t}),ol:({children:t})=>i.jsx("ol",{className:"mt-1 list-decimal space-y-1 pl-5 first:mt-0",children:t}),p:({children:t})=>i.jsx("p",{className:"mt-1 break-words [overflow-wrap:anywhere] first:mt-0",children:t}),strong:({children:t})=>i.jsx("strong",{className:"font-semibold",children:t}),em:({children:t})=>i.jsx("em",{className:"italic",children:t}),ul:({children:t})=>i.jsx("ul",{className:"mt-1 list-disc space-y-1 pl-5 first:mt-0",children:t})},children:e})})}function Zf({isDashboardRoute:e,isSystemRoute:t=!1,isKnowledgeRoute:n,isMcpRoute:r=!1,isWebhooksRoute:s=!1,showWebhooks:a=!1,knowledgeBadgeCount:o=0,systemUpdateAvailable:l=!1,onNavigate:c}){return i.jsxs("nav",{className:"flex min-w-0 rounded-lg border border-border bg-panel p-1 shadow-sm","aria-label":"Dashboard sections",children:[i.jsxs(Dn,{href:"/",active:e,onNavigate:c,children:[i.jsx(Jo,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"Jobs"})]}),i.jsxs(Dn,{href:"/system",active:t,onNavigate:c,children:[i.jsx(cu,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"System"}),l?i.jsx("span",{className:W("inline-flex h-5 min-w-5 items-center justify-center rounded-full border px-1 font-mono text-[11px] leading-none",t?"border-white/40 bg-white/15 text-white":"border-amber-200 bg-amber-100 text-amber-800"),"aria-label":"System update available",children:"!"}):null]}),a?i.jsxs(Dn,{href:"/webhooks",active:s,onNavigate:c,children:[i.jsx(wn,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"Webhooks"})]}):null,i.jsxs(Dn,{href:"/knowledge",active:n,onNavigate:c,children:[i.jsx(Qi,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"Knowledge"}),o>0?i.jsx("span",{className:W("inline-flex h-5 min-w-5 items-center justify-center rounded-full border px-1 font-mono text-[11px] leading-none",n?"border-white/40 bg-white/15 text-white":"border-amber-200 bg-amber-100 text-amber-800"),"aria-label":`${o} proposed knowledge ${o===1?"item":"items"}`,children:o}):null]}),i.jsxs(Dn,{href:"/mcp",active:r,onNavigate:c,children:[i.jsx(Ar,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"MCP"})]})]})}function rn({text:e}){return i.jsxs("div",{className:"flex items-center justify-center gap-2 py-10 text-sm text-muted",children:[i.jsx(lr,{className:"h-4 w-4 animate-spin","aria-hidden":!0}),e]})}function ex({summary:e,timeseries:t,exceptions:n,hooks:r,deliveries:s,section:a,summaryLoading:o,sectionLoading:l,loadingMore:c,hasMore:u,deliveryFilters:d,error:h,onSectionChange:m,onLoadMore:p,onDeliveryFiltersChange:y,onViewHook:w,onViewDelivery:v=()=>{},onRefresh:b}){var N,F,j,q,M,R,z;const C=Object.values((e==null?void 0:e.receipts)??{}).reduce((k,E)=>k+E,0),_=[{id:"overview",label:"Overview"},{id:"hooks",label:"Hooks",count:(N=e==null?void 0:e.totals)==null?void 0:N.hooks},{id:"deliveries",label:"Deliveries",count:(F=e==null?void 0:e.totals)==null?void 0:F.deliveries}];return i.jsxs("section",{className:"grid gap-4",children:[i.jsx(Hl,{icon:i.jsx(wn,{className:"h-5 w-5 text-muted","aria-hidden":!0}),title:"GitHub webhooks",subtitle:(e==null?void 0:e.mode)==="primary"?"Primary webhook ingestion. IMAP remains active as an idempotent safety net.":(e==null?void 0:e.mode)==="canary"?"Canary ingestion health. Only the webhook canary allowlist may create jobs.":"Shadow ingestion health. Deliveries are observed but do not create jobs.",action:i.jsx(Ze,{onClick:b})}),h?i.jsx(we,{tone:"error",text:h.message}):null,i.jsx("div",{className:"flex max-w-full flex-wrap rounded-md border border-border bg-white p-1",role:"tablist","aria-label":"Webhook dashboard section",children:_.map(k=>i.jsxs("button",{type:"button",role:"tab","aria-label":k.count===void 0?k.label:`${k.label} (${k.count} total)`,"aria-selected":a===k.id,className:W("inline-flex h-8 items-center gap-2 rounded px-3 text-sm font-semibold",a===k.id?"bg-primary text-white":"text-muted hover:bg-slate-50 hover:text-foreground"),onClick:()=>m(k.id),children:[k.label,k.count!==void 0?i.jsx("span",{className:"rounded border border-current/30 px-1 font-mono text-[10px]",children:k.count}):null]},k.id))}),i.jsxs("div",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4","aria-label":"Webhook status",children:[i.jsx(_e,{title:"Receipts",value:C,icon:i.jsx(wn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Duplicates",value:(e==null?void 0:e.duplicate_deliveries)??0,icon:i.jsx(lr,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Cross-source matches",value:(e==null?void 0:e.cross_source_matches)??0,icon:i.jsx(kn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Mode",value:o?"…":(e==null?void 0:e.mode)??"unknown",icon:i.jsx(Wo,{className:"h-5 w-5"})})]}),a==="overview"?i.jsxs(i.Fragment,{children:[i.jsx(ce,{title:"Delivery activity",children:l?i.jsx(rn,{text:"Loading delivery activity…"}):t!=null&&t.length?i.jsx("div",{className:"h-72","aria-label":"Webhook deliveries over time",children:i.jsx(nr,{width:"100%",height:"100%",children:i.jsxs(zr,{data:t,children:[i.jsx(rr,{strokeDasharray:"3 3"}),i.jsx(ir,{dataKey:"bucket"}),i.jsx(sr,{allowDecimals:!1}),i.jsx(ar,{}),i.jsx(Eo,{}),i.jsx(Gt,{dataKey:"observed",stackId:"deliveries",fill:"#2563eb"}),i.jsx(Gt,{dataKey:"duplicate",stackId:"deliveries",fill:"#f59e0b"}),i.jsx(Gt,{dataKey:"unsupported",stackId:"deliveries",fill:"#94a3b8"})]})})}):i.jsx(X,{text:"No webhook activity in the selected 30-day window."})}),i.jsx(ce,{title:"Receipt states",children:o?i.jsx(rn,{text:"Loading webhook summary…"}):Object.keys((e==null?void 0:e.receipts)??{}).length?i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:Object.entries((e==null?void 0:e.receipts)??{}).sort(([k],[E])=>k.localeCompare(E)).map(([k,E])=>i.jsx(V,{label:k,value:E},k))}):i.jsx(X,{text:"No webhook deliveries observed yet."})}),i.jsxs(ce,{title:"Cross-source coverage",children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(V,{label:"Both sources",value:((j=e==null?void 0:e.coverage)==null?void 0:j.both)??0}),i.jsx(V,{label:"IMAP only",value:((q=e==null?void 0:e.coverage)==null?void 0:q.imap_only)??0}),i.jsx(V,{label:"Webhook only",value:((M=e==null?void 0:e.coverage)==null?void 0:M.webhook_only)??0}),i.jsx(V,{label:"Coverage",value:((R=e==null?void 0:e.coverage)==null?void 0:R.ratio)==null?"not measurable":`${Math.round(e.coverage.ratio*100)}%`})]}),(z=e==null?void 0:e.coverage)!=null&&z.window_start&&e.coverage.window_end?i.jsxs("p",{className:"mt-3 font-mono text-xs text-muted",children:["Comparable canonical events from ",e.coverage.window_start," to ",e.coverage.window_end,"; newest ",e.coverage.grace_seconds??0,"s excluded."]}):null]}),Object.keys((e==null?void 0:e.enqueue)??{}).length?i.jsx(ce,{title:"Canary ingestion decisions",children:i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:Object.entries((e==null?void 0:e.enqueue)??{}).sort(([k],[E])=>k.localeCompare(E)).map(([k,E])=>i.jsx(V,{label:k,value:E},k))})}):null,i.jsx(ce,{title:"Exceptions requiring review",children:n!=null&&n.length?i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{className:"border-b border-border text-xs text-muted",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-3 py-2",children:"Type"}),i.jsx("th",{className:"px-3 py-2",children:"Repository"}),i.jsx("th",{className:"px-3 py-2",children:"Reference"}),i.jsx("th",{className:"px-3 py-2",children:"Observed"})]})}),i.jsx("tbody",{children:n.map(k=>i.jsxs("tr",{className:"border-b border-border/70 last:border-0",children:[i.jsx("td",{className:"px-3 py-2 font-semibold",children:k.kind}),i.jsx("td",{className:"px-3 py-2 font-mono text-xs",children:k.repository??"unknown"}),i.jsx("td",{className:"px-3 py-2 font-mono text-xs",children:k.event_key??k.reference}),i.jsx("td",{className:"px-3 py-2 font-mono text-xs text-muted",children:k.created_at})]},`${k.kind}:${k.reference}`))})]})}):i.jsx(X,{text:"No cross-source exceptions in retained data."})})]}):null,a==="hooks"?i.jsx(ce,{title:"Hook inventory",children:l?i.jsx(rn,{text:"Loading hook inventory…"}):r!=null&&r.length?i.jsx(Fi,{noun:"hooks",hasMore:u,loading:c,onLoadMore:p,children:i.jsxs("table",{className:"w-full min-w-[920px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"sticky top-0 z-10 border-b border-border bg-panel text-left text-xs text-muted",children:[i.jsx("th",{className:"px-3 py-2",children:"Target"}),i.jsx("th",{className:"px-3 py-2",children:"State"}),i.jsx("th",{className:"px-3 py-2",children:"Configuration"}),i.jsx("th",{className:"px-3 py-2",children:"Last delivery"}),i.jsx("th",{className:"px-3 py-2",children:"Last ping"})]})}),i.jsx("tbody",{children:r.map(k=>i.jsxs("tr",{className:"cursor-pointer border-b border-border/70 last:border-0 hover:bg-slate-50",onClick:()=>w(k.id),children:[i.jsxs("td",{className:"px-3 py-3",children:[i.jsx("button",{type:"button",className:"text-left font-semibold text-primary hover:underline",onClick:E=>{E.stopPropagation(),w(k.id)},children:k.target}),i.jsxs("div",{className:"font-mono text-xs text-muted",children:[k.target_type," · #",k.id]})]}),i.jsx("td",{className:"px-3 py-3",children:i.jsx("span",{className:W("rounded border px-2 py-1 text-xs font-semibold",k.status==="receiving"?"border-emerald-200 bg-emerald-50 text-emerald-700":k.status==="inactive"?"border-red-200 bg-red-50 text-red-700":"border-slate-200 bg-slate-50 text-slate-600"),children:k.status})}),i.jsxs("td",{className:"max-w-sm px-3 py-3 text-xs",children:[i.jsx("div",{children:k.events.join(", ")||"No event snapshot"}),i.jsxs("div",{className:"mt-1 font-mono text-muted",children:[k.content_type??"content type unknown"," · SSL ",k.ssl_verify===null||k.ssl_verify===void 0?"unknown":k.ssl_verify?"verified":"disabled"]})]}),i.jsxs("td",{className:"px-3 py-3 text-xs",children:[i.jsxs("div",{className:"font-semibold",children:[k.last_event_name??"Never",k.last_action?` · ${k.last_action}`:""]}),i.jsx("div",{className:"mt-1 font-mono text-muted",children:k.last_repository??k.last_event_at??"No delivery observed"})]}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs text-muted",children:k.last_ping_at??"Never"})]},k.id))})]})}):i.jsx(X,{text:"No hook inventory is available. Redeliver a signed ping from GitHub to create the sanitized configuration snapshot."})}):null,a==="deliveries"?i.jsxs(ce,{title:"Recent deliveries",children:[i.jsx(tx,{filters:d,onChange:y}),l?i.jsx(rn,{text:"Loading deliveries…"}):s!=null&&s.length?i.jsx(Fi,{noun:"deliveries",hasMore:u,loading:c,onLoadMore:p,children:i.jsx($l,{deliveries:s,onViewHook:w,onViewDelivery:v})}):i.jsx(X,{text:"No deliveries match the current filters."})]}):null]})}function tx({filters:e,onChange:t}){const n=[{key:"hook_id",label:"Hook ID",placeholder:"690954530"},{key:"event_name",label:"Event",placeholder:"issue_comment"},{key:"repository",label:"Repository",placeholder:"gisce/repository"},{key:"result",label:"Result",placeholder:"observed"},{key:"enqueue_status",label:"Ingestion",placeholder:"enqueued"}];return i.jsx("div",{className:"grid gap-2 border-b border-border p-3 sm:grid-cols-2 xl:grid-cols-5",children:n.map(r=>i.jsxs("label",{className:"grid gap-1 text-xs font-semibold text-muted",children:[r.label,i.jsx("input",{className:"h-9 rounded-md border border-border bg-white px-2 font-mono text-xs text-foreground",value:e[r.key],placeholder:r.placeholder,onChange:s=>t({...e,[r.key]:s.target.value})})]},r.key))})}function $l({deliveries:e,onViewHook:t,onViewDelivery:n=()=>{}}){return i.jsxs("table",{className:"w-full min-w-[1120px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"sticky top-0 z-10 border-b border-border bg-panel text-left text-xs text-muted",children:[i.jsx("th",{className:"px-3 py-2",children:"Received"}),i.jsx("th",{className:"px-3 py-2",children:"Hook"}),i.jsx("th",{className:"px-3 py-2",children:"Event"}),i.jsx("th",{className:"px-3 py-2",children:"Repository"}),i.jsx("th",{className:"px-3 py-2",children:"Result"}),i.jsx("th",{className:"px-3 py-2",children:"Ingestion"}),i.jsx("th",{className:"px-3 py-2",children:"Delivery"})]})}),i.jsx("tbody",{children:e.map(r=>{var s;return i.jsxs("tr",{className:"border-b border-border/70 last:border-0 hover:bg-slate-50",children:[i.jsx("td",{className:"px-3 py-3 font-mono text-xs text-muted",children:r.created_at}),i.jsx("td",{className:"px-3 py-3",children:r.hook_id?i.jsxs("button",{type:"button",className:"text-left text-primary hover:underline",onClick:()=>t(r.hook_id),children:[i.jsx("span",{className:"block font-semibold",children:((s=r.hook)==null?void 0:s.target)??`Hook #${r.hook_id}`}),i.jsxs("span",{className:"font-mono text-xs",children:["#",r.hook_id]})]}):i.jsx("span",{className:"text-xs text-muted",children:"Unknown (legacy)"})}),i.jsxs("td",{className:"px-3 py-3 font-semibold",children:[r.event_name,r.action?` · ${r.action}`:""]}),i.jsx("td",{className:"px-3 py-3",children:r.repository??"—"}),i.jsxs("td",{className:"px-3 py-3",children:[i.jsx("span",{className:"rounded border border-border bg-slate-50 px-2 py-1 text-xs font-semibold",children:r.status}),r.duplicate_count?i.jsxs("span",{className:"ml-2 font-mono text-xs text-muted",children:[r.duplicate_count," retries"]}):null]}),i.jsx("td",{className:"px-3 py-3",children:r.enqueue_status?i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"rounded border border-border bg-slate-50 px-2 py-1 text-xs font-semibold",children:r.enqueue_status}),r.job_id?i.jsxs("a",{className:"ml-2 font-mono text-xs font-semibold text-primary hover:underline",href:`/jobs/${r.job_id}`,children:["Job #",r.job_id]}):null]}):i.jsx("span",{className:"text-xs text-muted",children:"shadow"})}),i.jsx("td",{className:"max-w-[14rem] px-3 py-3",children:i.jsx("button",{type:"button",className:"block max-w-full truncate font-mono text-xs font-semibold text-primary hover:underline",title:r.delivery_id,onClick:()=>n(r.delivery_id),children:r.delivery_id})})]},r.delivery_id)})})]})}function Fi({noun:e,hasMore:t,loading:n,onLoadMore:r,children:s,className:a}){return i.jsxs("div",{"data-testid":`lazy-scroll-${e}`,className:W("max-h-[640px] overflow-auto rounded-md border border-border",a),children:[s,i.jsx(nx,{noun:e,hasMore:t,loading:n,onLoadMore:r})]})}function nx({noun:e,hasMore:t,loading:n,onLoadMore:r}){const s=L.useRef(null),a=L.useRef(!1);return L.useEffect(()=>{n||(a.current=!1)},[n]),L.useEffect(()=>{const o=s.current;if(!o||!t||n||!r)return;const l=()=>{a.current||(a.current=!0,r())};if(!("IntersectionObserver"in window)){l();return}const c=new IntersectionObserver(u=>{u.some(d=>d.isIntersecting)&&l()},{rootMargin:"240px 0px"});return c.observe(o),()=>c.disconnect()},[t,n,e,r]),!t&&!n?null:i.jsx("div",{ref:s,className:"flex min-h-10 items-center justify-center border-t border-border px-3 py-2 text-xs font-medium text-muted","aria-live":"polite",children:n?`Loading more ${e}...`:`Scroll for more ${e}`})}function rx({data:e,loading:t,error:n,onBack:r,onRefresh:s,onViewHook:a,onViewDelivery:o=()=>{}}){if(t)return i.jsx(rn,{text:"Loading hook detail…"});if(n)return i.jsxs("div",{className:"grid gap-3",children:[i.jsx(we,{tone:"error",text:n.message}),i.jsx("button",{type:"button",className:"w-fit rounded border border-border px-3 py-2 text-sm font-semibold",onClick:r,children:"Back to hooks"})]});if(!e)return i.jsx(X,{text:"Hook detail is not available."});const l=e.hook;return i.jsxs("section",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsxs("button",{type:"button",className:"mb-2 inline-flex items-center gap-2 text-sm font-semibold text-primary hover:underline",onClick:r,children:[i.jsx(Ki,{className:"h-4 w-4","aria-hidden":!0}),"Back to hooks"]}),i.jsx("h2",{className:"text-xl font-semibold",children:l.target}),i.jsxs("p",{className:"font-mono text-xs text-muted",children:[l.target_type," webhook #",l.id]})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ze,{onClick:s}),l.admin_url?i.jsxs("a",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold hover:bg-slate-50",href:et(l.admin_url),target:"_blank",rel:"noreferrer",children:[i.jsx(Xt,{className:"h-4 w-4","aria-hidden":!0}),"Open in GitHub"]}):null]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3 lg:grid-cols-4",children:[i.jsx(_e,{title:"State",value:l.status,icon:i.jsx(wn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Deliveries",value:e.stats.deliveries,icon:i.jsx(kn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Retries",value:e.stats.duplicates,icon:i.jsx(lr,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Unsupported",value:e.stats.unsupported,icon:i.jsx(qr,{className:"h-5 w-5"})})]}),i.jsxs(ce,{title:"Sanitized configuration",children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsx(V,{label:"Active",value:l.active?"yes":"no"}),i.jsx(V,{label:"Content type",value:l.content_type??"unknown"}),i.jsx(V,{label:"SSL verification",value:l.ssl_verify===null||l.ssl_verify===void 0?"unknown":l.ssl_verify?"enabled":"disabled"}),i.jsx(V,{label:"Destination URL",value:l.delivery_url??"unknown"}),i.jsx(V,{label:"GitHub created",value:l.github_created_at??"unknown"}),i.jsx(V,{label:"GitHub updated",value:l.github_updated_at??"unknown"}),i.jsx(V,{label:"Last ping",value:l.last_ping_at??"never"}),i.jsx(V,{label:"Last delivery",value:l.last_event_at??"never"}),i.jsx(V,{label:"Last result",value:l.last_result??"unknown"})]}),i.jsxs("div",{className:"mt-3 rounded-md border border-border p-3",children:[i.jsx("div",{className:"text-xs font-semibold text-muted",children:"Subscribed events"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:l.events.length?l.events.map(c=>i.jsx("span",{className:"rounded border border-border bg-slate-50 px-2 py-1 font-mono text-xs",children:c},c)):i.jsx("span",{className:"text-sm text-muted",children:"No event snapshot; redeliver a ping."})})]})]}),i.jsx(ce,{title:"Latest observed delivery",children:i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsx(V,{label:"Event",value:l.last_event_name?`${l.last_event_name}${l.last_action?` · ${l.last_action}`:""}`:"none"}),i.jsx(V,{label:"Repository",value:l.last_repository??"none"}),i.jsx(V,{label:"Delivery ID",value:l.last_delivery_id??"none"})]})}),i.jsx(ce,{title:"Recent deliveries",children:e.recent_deliveries.length?i.jsx($l,{deliveries:e.recent_deliveries,onViewHook:a,onViewDelivery:o}):i.jsx(X,{text:"This hook has no retained deliveries."})})]})}function ix({data:e,loading:t,error:n,onBack:r,onRefresh:s,onViewHook:a,onViewJob:o}){if(t)return i.jsx(rn,{text:"Loading delivery detail…"});if(n)return i.jsxs("div",{className:"grid gap-3",children:[i.jsx(we,{tone:"error",text:n.message}),i.jsx("button",{type:"button",className:"w-fit rounded border border-border px-3 py-2 text-sm font-semibold",onClick:r,children:"Back to deliveries"})]});if(!e)return i.jsx(X,{text:"Delivery detail is not available."});const l=e.delivery;return i.jsxs("section",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsxs("button",{type:"button",className:"mb-2 inline-flex items-center gap-2 text-sm font-semibold text-primary hover:underline",onClick:r,children:[i.jsx(Ki,{className:"h-4 w-4","aria-hidden":!0}),"Back to deliveries"]}),i.jsxs("h2",{className:"text-xl font-semibold",children:[l.event_name,l.action?` · ${l.action}`:""]}),i.jsxs("p",{className:"font-mono text-xs text-muted",children:["Delivery ",l.delivery_id]})]}),i.jsx(Ze,{onClick:s})]}),i.jsxs(ce,{title:"Delivery",children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsx(V,{label:"Received",value:l.created_at}),i.jsx(V,{label:"Repository",value:l.repository??"unknown"}),i.jsx(V,{label:"Result",value:l.status}),i.jsx(V,{label:"Event key",value:l.event_key??"unmatchable"}),i.jsx(V,{label:"Payload SHA-256",value:e.payload_hash}),i.jsx(V,{label:"Retries",value:l.duplicate_count??0})]}),l.hook_id?i.jsxs("button",{type:"button",className:"mt-3 text-sm font-semibold text-primary hover:underline",onClick:()=>a(l.hook_id),children:["View hook #",l.hook_id]}):null]}),i.jsx(ce,{title:"Generated job",children:e.job?i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("div",{className:"font-semibold",children:e.job.work_key}),i.jsxs("div",{className:"mt-1 font-mono text-xs text-muted",children:["Job #",e.job.id," · ",e.job.status," · ",e.job.action," · ",e.job.work_intent]})]}),i.jsx("button",{type:"button",className:"rounded-md border border-border px-3 py-2 text-sm font-semibold hover:bg-slate-50",onClick:()=>o(e.job.id),children:"Open job"})]}):i.jsx(X,{text:"This delivery did not generate or coalesce into a job."})}),i.jsx(ce,{title:"Full payload",children:e.payload===null?i.jsx(X,{text:"Payload was not retained for this legacy delivery."}):i.jsx("pre",{className:"max-h-[640px] overflow-auto rounded-md border border-border bg-slate-950 p-4 font-mono text-xs leading-relaxed text-slate-100",children:JSON.stringify(e.payload,null,2)})})]})}function sx({processes:e,processesLoading:t,processesError:n,systemd:r,systemdLoading:s,systemdError:a,alerts:o,alertsLoading:l,alertsError:c,now:u,onRefreshProcesses:d,onRefreshSystemd:h,onRefreshAlerts:m}){return i.jsxs("section",{className:"grid gap-4","aria-label":"Bridge system",children:[i.jsxs(ce,{title:"Systemd",action:i.jsx(Ze,{onClick:h}),children:[a?i.jsx(we,{tone:"error",text:a.message}):null,i.jsx(zx,{data:r,loading:s})]}),i.jsxs(ce,{title:"Process activity",action:i.jsx(Ze,{onClick:d}),children:[n?i.jsx(we,{tone:"error",text:n.message}):null,i.jsx(Ux,{data:e,loading:t})]}),i.jsxs(ce,{title:"Monitor alerts",action:i.jsx(Ze,{onClick:m}),children:[c?i.jsx(we,{tone:"error",text:c.message}):null,i.jsx($x,{alerts:o,loading:l,now:u})]})]})}function Dn({href:e,active:t,children:n,onNavigate:r}){return i.jsx("a",{className:W("inline-flex h-8 min-w-0 flex-1 items-center justify-center gap-1 rounded-md px-1.5 text-xs font-semibold sm:flex-none sm:gap-1.5 sm:px-3 sm:text-sm [&>span]:truncate [&>svg]:shrink-0",t?"bg-primary text-white shadow-sm":"text-muted hover:bg-slate-50 hover:text-foreground"),href:e,onClick:s=>{!r||s.defaultPrevented||s.button!==0||s.metaKey||s.ctrlKey||s.altKey||s.shiftKey||(s.preventDefault(),r(e))},children:n})}function ax({jobId:e,detail:t,selectedJob:n,user:r,onBackToDashboard:s,onRetry:a,onDismiss:o,onCancel:l,onRefresh:c}){const[u,d]=L.useState(!1),[h,m]=L.useState(!1),[p,y]=L.useState(!1),w=!!(r!=null&&r.is_admin&&n&&zn(n.status)),v=!!(n&&Di(n,r)),b=u?"Retrying...":"Retry",C=h?"Dismissing...":"Dismiss",_=p?"Cancelling...":"Cancel";return i.jsxs("div",{className:"grid min-w-0 gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("a",{className:"inline-flex h-9 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50",href:"/",onClick:N=>{N.defaultPrevented||N.button!==0||N.metaKey||N.ctrlKey||N.altKey||N.shiftKey||(N.preventDefault(),s())},children:[i.jsx(Ki,{className:"h-4 w-4","aria-hidden":!0}),"Dashboard"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[w?i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md bg-primary px-3 text-sm font-semibold text-white disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:u,onClick:async()=>{if(window.confirm(`Retry job #${e}?`)){d(!0);try{await a(e)}finally{d(!1)}}},children:[i.jsx(Wn,{className:"h-4 w-4","aria-hidden":!0}),b]}):null,w?i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md border border-border bg-white px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:h,onClick:async()=>{if(window.confirm(`Dismiss job #${e}?`)){m(!0);try{await o(e)}finally{m(!1)}}},children:[i.jsx(jn,{className:"h-4 w-4","aria-hidden":!0}),C]}):null,v?i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md border border-red-200 bg-red-50 px-3 text-sm font-semibold text-red-700 hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:p,onClick:async()=>{const N=window.prompt(`Cancel job #${e}? Optional reason:`);if(N!==null){y(!0);try{await l(e,N)}finally{y(!1)}}},children:[i.jsx(Yt,{className:"h-4 w-4","aria-hidden":!0}),_]}):null,i.jsx(Ze,{onClick:c})]})]}),i.jsx(ce,{title:`Job #${e}`,className:"p-3 sm:p-4",children:t})]})}function ox({selectedJobId:e,selectedJob:t,loading:n,error:r,session:s,sessionEvents:a,transcript:o,now:l}){return t?i.jsx(Tx,{job:t,session:s,sessionEvents:a,transcript:o,now:l}):e!==null&&n?i.jsx(X,{text:"Loading selected job..."}):e!==null&&r?i.jsx(we,{tone:"error",text:`Job #${e}: ${r.message}`}):i.jsx(X,{text:"Select a job to inspect its timeline, worklog and GitHub links."})}function lx({data:e,loading:t,error:n,repo:r,status:s,user:a,now:o,onRepoChange:l,onStatusChange:c,onApprove:u,onReject:d,onUpdateRuleScope:h,onDeleteRule:m,onRefresh:p}){const y=(e==null?void 0:e.summary)??{},[w,v]=L.useState("proposals"),b=[{id:"proposals",label:"Proposals",count:(e==null?void 0:e.proposals.length)??0},{id:"rules",label:"Rules",count:(e==null?void 0:e.rules.length)??0},{id:"events",label:"Events",count:(e==null?void 0:e.events.length)??0}];return i.jsxs("div",{className:"grid min-w-0 gap-4",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("h2",{className:"flex items-center gap-2 text-base font-semibold",children:[i.jsx(Qi,{className:"h-5 w-5 text-muted","aria-hidden":!0}),"Acquired knowledge"]}),i.jsx("p",{className:"text-xs text-muted",children:"Captured feedback, proposed rules and curated agent memory."})]}),i.jsx(Ze,{onClick:p})]}),n?i.jsx(we,{tone:"error",text:n.message}):null,i.jsxs("section",{className:"grid grid-cols-2 gap-3 lg:grid-cols-4","aria-label":"Knowledge metrics",children:[i.jsx(_e,{title:"Proposed",value:y.proposed??0,icon:i.jsx(Vo,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Approved",value:y.approved??0,icon:i.jsx(jn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Rules",value:y.rules??0,icon:i.jsx(Go,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Events",value:y.events??0,icon:i.jsx(wn,{className:"h-5 w-5"})})]}),i.jsx(ce,{title:"Filters",className:"p-3",children:i.jsxs("div",{className:W("grid gap-3",w==="proposals"?"md:grid-cols-[minmax(0,1fr)_220px]":"md:grid-cols-[minmax(0,1fr)]"),children:[i.jsx(Ye,{label:"Repository",children:i.jsxs("select",{className:"control",value:r,onChange:C=>l(C.target.value),children:[i.jsx("option",{value:"",children:"All repositories"}),((e==null?void 0:e.repositories)??[]).map(C=>i.jsx("option",{value:C,children:C},C))]})}),w==="proposals"?i.jsx(Ye,{label:"Proposal status",children:i.jsxs("select",{className:"control",value:s,onChange:C=>c(C.target.value),children:[i.jsx("option",{value:"",children:"All statuses"}),i.jsx("option",{value:"proposed",children:"proposed"}),i.jsx("option",{value:"approved",children:"approved"}),i.jsx("option",{value:"rejected",children:"rejected"}),i.jsx("option",{value:"error",children:"error"})]})}):null]})}),i.jsxs(ce,{title:"Knowledge records",action:i.jsx("div",{className:"flex max-w-full flex-wrap rounded-md border border-border bg-white p-0.5",role:"tablist","aria-label":"Knowledge record type",children:b.map(C=>i.jsxs("button",{className:W("inline-flex h-8 items-center gap-1.5 rounded px-2.5 text-xs font-semibold",w===C.id?"bg-primary text-white":"text-muted hover:bg-slate-50 hover:text-foreground"),type:"button",role:"tab","aria-label":`${C.label} (${C.count})`,"aria-selected":w===C.id,onClick:()=>v(C.id),children:[i.jsx("span",{children:C.label}),i.jsx("span",{className:W("rounded-sm border px-1 font-mono text-[10px]",w===C.id?"border-white/40 text-white":"border-border text-muted"),children:C.count})]},C.id))}),children:[w==="proposals"?i.jsx(cx,{proposals:(e==null?void 0:e.proposals)??[],loading:t,isAdmin:!!(a!=null&&a.is_admin),now:o,onApprove:u,onReject:d}):null,w==="rules"?i.jsx(hx,{rules:(e==null?void 0:e.rules)??[],loading:t,now:o,onUpdateRuleScope:h,onDeleteRule:m}):null,w==="events"?i.jsx(px,{events:(e==null?void 0:e.events)??[],loading:t,now:o}):null]})]})}function cx({proposals:e,loading:t,isAdmin:n,now:r,onApprove:s,onReject:a}){const[o,l]=L.useState(null);return t&&e.length===0?i.jsx(X,{text:"Loading proposals..."}):e.length===0?i.jsx(X,{text:"No proposals match the current filters."}):i.jsx("div",{className:"grid gap-2",children:e.map(c=>i.jsxs("article",{className:"grid min-w-0 gap-2 rounded-md border border-border bg-white p-3",children:[i.jsx(Ql,{scope:c.scope,type:c.type,confidence:c.confidence,status:c.status,timestamp:c.updated_at,now:r}),i.jsx("p",{className:"min-w-0 break-words text-sm font-medium [overflow-wrap:anywhere]",children:c.rule||c.reason||"No reusable rule proposed."}),c.reason?i.jsx("p",{className:"min-w-0 break-words text-xs text-muted [overflow-wrap:anywhere]",children:c.reason}):null,c.source_event?i.jsx(ux,{event:c.source_event}):i.jsxs("p",{className:"font-mono text-xs text-muted",children:["Source event ",c.event_id]}),c.error?i.jsx(we,{tone:"error",text:c.error}):null,n&&c.status==="proposed"?i.jsxs("div",{className:"flex flex-wrap gap-2",children:[i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md bg-primary px-3 text-sm font-semibold text-white disabled:opacity-60",type:"button",disabled:o===c.id,onClick:async()=>{l(c.id);try{await s(c.id)}finally{l(null)}},children:[i.jsx(jn,{className:"h-4 w-4","aria-hidden":!0}),"Approve"]}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:opacity-60",type:"button",disabled:o===c.id,onClick:async()=>{l(c.id);try{await a(c.id)}finally{l(null)}},children:[i.jsx(Yt,{className:"h-4 w-4","aria-hidden":!0}),"Reject"]})]}):null]},c.id))})}function ux({event:e}){const t=e.trigger_actor||(e.actor!=="github"?e.actor:null);return i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2 rounded-md border border-border bg-slate-50 px-2 py-1.5",children:[i.jsx(En,{actor:t,avatarUrl:e.trigger_actor_avatar_url,framed:!0}),e.source_job_id?i.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border bg-white px-2 text-xs font-semibold text-foreground hover:bg-slate-50",href:_n(e.source_job_id),children:[i.jsx(kn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",e.source_job_id]}):null,e.github_urls.length>0?i.jsx(Jn,{urls:e.github_urls,compact:!0}):i.jsx("span",{className:"font-mono text-xs text-muted",children:"No GitHub link"})]})}function dx(e){const t=[{value:"global",label:"global"}];if(e.startsWith("repo:")){const n=e.slice(5),[r,s]=n.split("/",2);r&&s&&(t.push({value:`org:${r}`,label:`org:${r}`}),t.push({value:`repo:${r}/${s}`,label:`repo:${r}/${s}`}))}else e.startsWith("org:")&&t.push({value:e,label:e});return t.some(n=>n.value===e)||t.push({value:e,label:e}),t}function hx({rules:e,loading:t,now:n,onUpdateRuleScope:r,onDeleteRule:s}){const[a,o]=L.useState(null),[l,c]=L.useState(null),[u,d]=L.useState("");return t&&e.length===0?i.jsx(X,{text:"Loading curated rules..."}):e.length===0?i.jsx(X,{text:"No curated rules match the current filters."}):i.jsx("div",{className:"grid gap-2",children:e.map(h=>{const m=h.source_event_details??[],p=m[0],y=p?p.trigger_actor||(p.actor!=="github"?p.actor:null):null,w=m.flatMap(N=>N.github_urls??[]),v=dx(h.scope),b=l===h.id,C=a===h.id,_=!!h.can_manage;return i.jsxs("article",{className:"grid min-w-0 gap-2 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsx(Ql,{scope:h.scope,type:h.type,confidence:h.confidence,status:`${h.observations} observation${h.observations===1?"":"s"}`,timestamp:h.last_seen,now:n}),_?i.jsxs("div",{className:"flex flex-wrap items-end gap-2",children:[b?i.jsxs(i.Fragment,{children:[i.jsx(Ye,{label:"Scope",children:i.jsx("select",{className:"control h-8 min-w-[180px] py-1 text-xs",value:u,disabled:C,onChange:N=>d(N.target.value),children:v.map(N=>i.jsx("option",{value:N.value,children:N.label},N.value))})}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:opacity-60",type:"button",disabled:C||u===h.scope,title:"Save scope",onClick:async()=>{if(u!==h.scope){o(h.id);try{await r(h.id,u),c(null)}finally{o(null)}}},children:[i.jsx(du,{className:"h-4 w-4","aria-hidden":!0}),"Save"]}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-muted hover:bg-slate-50 disabled:opacity-60",type:"button",disabled:C,title:"Cancel scope edit",onClick:()=>{c(null),d("")},children:[i.jsx(Yt,{className:"h-4 w-4","aria-hidden":!0}),"Cancel"]})]}):i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:opacity-60",type:"button",disabled:C,title:"Edit scope",onClick:()=>{c(h.id),d(h.scope)},children:[i.jsx(uu,{className:"h-4 w-4","aria-hidden":!0}),"Edit"]}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-red-200 px-3 text-sm font-semibold text-red-700 hover:bg-red-50 disabled:opacity-60",type:"button",disabled:C,onClick:async()=>{if(window.confirm("Delete this curated rule?")){o(h.id);try{await s(h.id)}finally{o(null)}}},children:[i.jsx(Ni,{className:"h-4 w-4","aria-hidden":!0}),"Delete"]})]}):null]}),i.jsx("p",{className:"min-w-0 break-words text-sm font-medium [overflow-wrap:anywhere]",children:h.rule}),i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(En,{actor:y,avatarUrl:p==null?void 0:p.trigger_actor_avatar_url,framed:!0}),p!=null&&p.source_job_id?i.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-foreground hover:bg-white",href:_n(p.source_job_id),children:[i.jsx(kn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",p.source_job_id]}):null,w.length>0?i.jsx(Jn,{urls:w,compact:!0}):i.jsx("span",{className:"font-mono text-xs text-muted",children:"No GitHub link"})]})]},h.id)})})}function px({events:e,loading:t,now:n}){return t&&e.length===0?i.jsx(X,{text:"Loading captured events..."}):e.length===0?i.jsx(X,{text:"No captured feedback events match the current filters."}):i.jsx("div",{className:"grid gap-2",children:e.map(r=>{const s=r.trigger_actor||(r.actor!=="github"?r.actor:null);return i.jsxs("details",{className:"group rounded-md border border-border bg-white",children:[i.jsxs("summary",{className:"grid cursor-pointer list-none gap-2 px-3 py-2 marker:hidden hover:bg-slate-50",children:[i.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-2",children:[i.jsxs("span",{className:"inline-flex min-w-0 items-center gap-2 font-mono text-xs font-semibold text-muted",children:[i.jsx(vn,{className:"h-3.5 w-3.5 shrink-0 transition-transform group-open:rotate-180","aria-hidden":!0}),i.jsx("span",{className:"truncate",children:Bl(r.scope)})]}),i.jsx("span",{className:"shrink-0 font-mono text-xs text-muted",children:i.jsx(Re,{value:r.occurred_at,relative:!0,now:n})})]}),i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(En,{actor:s,avatarUrl:r.trigger_actor_avatar_url,framed:!0}),r.source_job_id?i.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-foreground hover:bg-white",href:_n(r.source_job_id),children:[i.jsx(kn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",r.source_job_id]}):null,r.github_urls.length>0?i.jsx(Jn,{urls:r.github_urls,compact:!0}):i.jsx("span",{className:"font-mono text-xs text-muted",children:"No GitHub link"})]}),i.jsx("p",{className:"line-clamp-2 break-words text-sm [overflow-wrap:anywhere]",children:r.comment})]}),i.jsxs("div",{className:"grid gap-2 border-t border-border px-3 py-2",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"mb-1 text-xs font-semibold text-muted",children:"GitHub links"}),r.github_urls.length>0?i.jsx(Jn,{urls:r.github_urls}):i.jsx("p",{className:"text-xs text-muted",children:"No links recorded."})]}),i.jsx("pre",{className:"max-h-72 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-relaxed text-slate-100",children:JSON.stringify(r.context,null,2)})]})]},r.id)})})}function mx({tokens:e,loading:t,error:n,user:r,ownerOptions:s,dashboardUrl:a,dashboardUrlSource:o,now:l,onCreate:c,onUpdateOwner:u,onRevoke:d,onRefresh:h}){const[m,p]=L.useState(""),[y,w]=L.useState(""),[v,b]=L.useState(!1),[C,_]=L.useState(null),[N,F]=L.useState(null),[j,q]=L.useState(null),[M,R]=L.useState(""),z=e??[],k=s.find(P=>P.login===y);L.useEffect(()=>{var P;r!=null&&r.is_admin&&(y&&s.some($=>$.login===y)||w((r==null?void 0:r.login)||((P=s[0])==null?void 0:P.login)||""))},[s,r==null?void 0:r.is_admin,r==null?void 0:r.login,y]);const E=(a||(typeof window>"u"?"":window.location.origin)).replace(/\/$/,""),J=`${E}/mcp`,D=`${E}/api/mcp`;return i.jsxs("div",{className:"grid min-w-0 gap-4",children:[i.jsx(Hl,{icon:i.jsx(Ar,{className:"h-5 w-5 text-muted","aria-hidden":!0}),title:"MCP access",subtitle:r!=null&&r.is_admin?"Issue and revoke read-only tokens for any dashboard user.":"Issue and revoke read-only tokens linked to your user.",action:i.jsx(Ze,{onClick:h})}),n?i.jsx(we,{tone:"error",text:n.message}):null,M?i.jsx(we,{tone:"error",text:M}):null,i.jsx(fx,{dashboardUrl:J,endpointUrl:D,dashboardUrlSource:o??"request"}),j?i.jsxs("section",{className:"rounded-md border border-emerald-300 bg-emerald-50 p-3 text-emerald-950","aria-label":"Created MCP token",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-sm font-semibold",children:"Token created"}),i.jsx("p",{className:"mt-1 text-xs text-emerald-800",children:"This secret is shown once. Store it in the local agent environment before leaving this page."})]}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-emerald-300 bg-white px-3 text-sm font-semibold text-emerald-900 hover:bg-emerald-100",type:"button",onClick:()=>q(null),children:[i.jsx(Yt,{className:"h-4 w-4","aria-hidden":!0}),"Hide"]})]}),i.jsx("pre",{className:"mt-3 overflow-auto rounded bg-emerald-950 px-3 py-2 font-mono text-xs text-emerald-50",children:j.token})]}):null,i.jsx(ce,{title:"Create token",children:i.jsxs("form",{className:r!=null&&r.is_admin?"grid gap-3 md:grid-cols-[minmax(0,1fr)_minmax(12rem,16rem)_auto]":"grid gap-3 md:grid-cols-[minmax(0,1fr)_auto]",onSubmit:async P=>{P.preventDefault();const $=m.trim();if($){b(!0),R("");try{const B=await c($,r!=null&&r.is_admin?y:void 0);q(B),p("")}catch(B){R(B instanceof Error?B.message:String(B))}finally{b(!1)}}},children:[i.jsx(Ye,{label:"Token name",children:i.jsx("input",{className:"control",value:m,placeholder:"local agent",disabled:v,onChange:P=>p(P.target.value)})}),r!=null&&r.is_admin?i.jsxs(Ye,{label:"Owner",children:[i.jsx(Kl,{ariaLabel:"Owner",value:y,ownerOptions:s,disabled:v||s.length===0,selectedSuffix:P=>P.login===(r==null?void 0:r.login)?" (you)":"",emptyLabel:"No known users",onChange:w}),k?i.jsxs("span",{className:"font-normal text-muted",children:["Token will be linked to @",k.login,"."]}):null]}):null,i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 self-end rounded-md bg-primary px-3 text-sm font-semibold text-white disabled:cursor-not-allowed disabled:opacity-60",type:"submit",disabled:v||!m.trim()||!!(r!=null&&r.is_admin&&!y),children:[i.jsx(Ar,{className:"h-4 w-4","aria-hidden":!0}),v?"Creating...":"Create token"]})]})}),i.jsx(ce,{title:"Active tokens",children:i.jsx(xx,{tokens:z,loading:t,now:l,ownerOptions:s,canManageOwners:!!(r!=null&&r.is_admin),revokingId:C,updatingOwnerId:N,onUpdateOwner:async(P,$)=>{F(P),R("");try{await u(P,$)}catch(B){R(B instanceof Error?B.message:String(B))}finally{F(null)}},onRevoke:async P=>{if(window.confirm("Revoke this MCP token?")){_(P),R("");try{await d(P)}catch($){R($ instanceof Error?$.message:String($))}finally{_(null)}}}})})]})}function fx({dashboardUrl:e,endpointUrl:t,dashboardUrlSource:n}){const r=n==="configured"?"Configured public URL":n==="forwarded"?"Forwarded public URL":"Needs public URL",s=n==="request",a=s?"Set GITHUB_AGENT_BRIDGE_DASHBOARD_PUBLIC_URL or forward X-Forwarded-* headers":e,o=s?"Public dashboard URL required before connecting remote agents":t,c=`{ + "mcpServers": { + "github-agent-bridge": { + "url": "${s?"https://bridge.example.com/api/mcp":t}", + "headers": { + "Authorization": "Bearer \${GITHUB_AGENT_BRIDGE_MCP_TOKEN}" + } + } + } +}`;return i.jsxs(ce,{title:"Connect an agent",children:[s?i.jsx(we,{tone:"warning",text:"Set GITHUB_AGENT_BRIDGE_DASHBOARD_PUBLIC_URL, or forward X-Forwarded-* headers from the proxy, before connecting remote agents."}):null,i.jsxs("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]",children:[i.jsxs("div",{className:"grid min-w-0 gap-3",children:[i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm font-semibold",children:[i.jsx(Xt,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Public dashboard URL",i.jsx("span",{className:"rounded-sm border border-border bg-slate-50 px-1.5 py-0.5 font-mono text-[11px] font-normal text-muted",children:r})]}),i.jsx("p",{className:"mt-1 text-xs text-muted",children:"Share this page URL with bridge admins only after it resolves to the external dashboard origin."}),i.jsx("pre",{className:"mt-3 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs text-slate-100",children:a})]}),i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[i.jsx(Xt,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"HTTP MCP endpoint"]}),i.jsx("p",{className:"mt-1 text-xs text-muted",children:"Remote agents connect directly with a bearer token; no local `gab` binary is required on the agent host."}),i.jsx("pre",{className:"mt-3 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs text-slate-100",children:o})]})]}),i.jsxs("div",{className:"grid min-w-0 gap-3",children:[i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[i.jsx(Ar,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Agent config"]}),i.jsx("p",{className:"mt-1 text-xs text-muted",children:"Create a token below, then store the one-time secret as `GITHUB_AGENT_BRIDGE_MCP_TOKEN` for the agent."}),i.jsx("pre",{className:"mt-3 max-h-64 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-relaxed text-slate-100",children:c})]}),i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[i.jsx(Qi,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Agent prompt"]}),i.jsx("p",{className:"mt-1 text-xs text-muted",children:"Ask the agent to use the read-only bridge knowledge server before acting on repository work."}),i.jsx("pre",{className:"mt-3 max-h-40 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-relaxed text-slate-100",children:"Use the github-agent-bridge MCP server for repository knowledge. Query list_repositories and list_knowledge before making repository decisions."})]})]})]})]})}function Hl({icon:e,title:t,subtitle:n,action:r}){return i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("h2",{className:"flex items-center gap-2 text-base font-semibold",children:[e,t]}),i.jsx("p",{className:"text-xs text-muted",children:n})]}),r]})}function xx({tokens:e,loading:t,now:n,ownerOptions:r,canManageOwners:s,revokingId:a,updatingOwnerId:o,onUpdateOwner:l,onRevoke:c}){return t&&e.length===0?i.jsx(X,{text:"Loading MCP tokens..."}):e.length===0?i.jsx(X,{text:"No active MCP tokens."}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"grid gap-2 md:hidden",children:e.map(u=>i.jsxs("article",{className:"grid min-w-0 gap-3 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"break-words text-sm font-semibold [overflow-wrap:anywhere]",children:u.name}),i.jsx("div",{className:"mt-1 break-all font-mono text-xs text-muted",children:u.id}),s?i.jsx(uo,{token:u,ownerOptions:r,disabled:o===u.id,onUpdateOwner:l}):u.user_login?i.jsxs("div",{className:"mt-1 text-xs text-muted",children:["Owner: @",u.user_login]}):null]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsx(V,{label:"Created",value:i.jsx(Re,{value:u.created_at,relative:!0,now:n})}),i.jsx(V,{label:"Last used",value:u.last_used_at?i.jsx(Re,{value:u.last_used_at,relative:!0,now:n}):"never"})]}),i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-2 rounded-md border border-red-200 px-3 text-sm font-semibold text-red-700 hover:bg-red-50 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:a===u.id,onClick:()=>c(u.id),children:[i.jsx(Ni,{className:"h-4 w-4","aria-hidden":!0}),a===u.id?"Revoking...":"Revoke"]})]},u.id))}),i.jsx("div",{className:"hidden overflow-auto rounded-md border border-border md:block",children:i.jsxs("table",{className:"min-w-full border-collapse text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-border bg-slate-50 text-left text-xs text-muted",children:[i.jsx("th",{className:"px-3 py-2 font-semibold",children:"Name"}),i.jsx("th",{className:"px-3 py-2 font-semibold",children:"Owner"}),i.jsx("th",{className:"px-3 py-2 font-semibold",children:"Created"}),i.jsx("th",{className:"px-3 py-2 font-semibold",children:"Last used"}),i.jsx("th",{className:"px-3 py-2 font-semibold",children:"ID"}),i.jsx("th",{className:"px-3 py-2 text-right font-semibold",children:"Actions"})]})}),i.jsx("tbody",{children:e.map(u=>i.jsxs("tr",{className:"border-b border-border last:border-b-0",children:[i.jsx("td",{className:"px-3 py-3 font-semibold",children:u.name}),i.jsx("td",{className:"px-3 py-3 text-xs text-muted",children:s?i.jsx(uo,{token:u,ownerOptions:r,disabled:o===u.id,onUpdateOwner:l}):u.user_login?`@${u.user_login}`:"unassigned"}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs",children:i.jsx(Re,{value:u.created_at,relative:!0,now:n})}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs",children:u.last_used_at?i.jsx(Re,{value:u.last_used_at,relative:!0,now:n}):"never"}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs text-muted",children:u.id}),i.jsx("td",{className:"px-3 py-3 text-right",children:i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-red-200 px-3 text-sm font-semibold text-red-700 hover:bg-red-50 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:a===u.id,onClick:()=>c(u.id),children:[i.jsx(Ni,{className:"h-4 w-4","aria-hidden":!0}),a===u.id?"Revoking...":"Revoke"]})})]},u.id))})]})})]})}function uo({token:e,ownerOptions:t,disabled:n,onUpdateOwner:r}){const s=e.user_login??"";return i.jsx(Kl,{ariaLabel:`Owner for ${e.name}`,value:s,ownerOptions:t,disabled:n||t.length===0,emptyLabel:"Select owner",size:"compact",onChange:a=>{!a||a===e.user_login||r(e.id,a)}})}function Kl({value:e,ownerOptions:t,disabled:n,onChange:r,ariaLabel:s,selectedSuffix:a,emptyLabel:o,size:l="default"}){const c=t.find(d=>d.login===e),u=c?`@${c.login}${(a==null?void 0:a(c))??""}`:o;return i.jsxs("div",{className:W("relative flex min-w-0 items-center gap-2 rounded-md border border-border bg-panel text-foreground focus-within:border-primary focus-within:ring-1 focus-within:ring-primary",n?"opacity-60":"",l==="compact"?"h-8 w-44 max-w-full px-2":"h-9 w-full px-2.5"),children:[i.jsx("span",{className:W("pointer-events-none flex shrink-0 items-center justify-center",l==="compact"?"h-5 w-5":"h-6 w-6"),children:c!=null&&c.avatar_url?i.jsx("img",{className:"h-full w-full rounded-full bg-slate-100",src:et(c.avatar_url),alt:"",referrerPolicy:"no-referrer"}):i.jsx(Vn,{className:W("text-muted",l==="compact"?"h-4 w-4":"h-5 w-5"),"aria-hidden":!0})}),i.jsx("span",{className:W("pointer-events-none min-w-0 flex-1 truncate font-mono",c?"text-foreground":"text-muted",l==="compact"?"text-xs":"text-sm"),children:u}),i.jsxs("select",{className:"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed","aria-label":s,value:e,disabled:n,onChange:d=>r(d.target.value),children:[t.length===0||!e?i.jsx("option",{value:"",children:o}):null,t.map(d=>i.jsxs("option",{value:d.login,children:["@",d.login,(a==null?void 0:a(d))??""]},d.login))]}),i.jsx(vn,{className:W("pointer-events-none shrink-0 text-muted",l==="compact"?"h-3.5 w-3.5":"h-4 w-4"),"aria-hidden":!0})]})}function Jn({urls:e,compact:t=!1}){const n=t?e.slice(0,2):e,r=e.length-n.length;return i.jsxs("div",{className:"flex min-w-0 max-w-full flex-wrap gap-1.5",children:[n.map(s=>i.jsxs("a",{className:W("inline-flex max-w-full items-center gap-1 rounded-md border border-border font-semibold text-primary hover:bg-white hover:underline",t?"h-7 px-2 text-xs":"min-h-7 px-2 py-1 text-xs"),href:et(s),"aria-label":s,rel:"noreferrer",target:"_blank",children:[i.jsx(Xt,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),i.jsx("span",{className:"truncate",children:t?gx(s):s})]},s)),r>0?i.jsxs("span",{className:"inline-flex h-7 items-center rounded-md border border-border px-2 font-mono text-xs text-muted",children:["+",r]}):null]})}function gx(e){try{const t=new URL(e);return t.pathname.replace(/^\//,"")+t.hash}catch{return e}}function Ql({scope:e,type:t,confidence:n,status:r,timestamp:s,now:a}){return i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2 text-xs text-muted",children:[i.jsx("span",{className:"truncate font-mono font-semibold text-foreground",children:Bl(e)}),i.jsx("span",{className:"rounded-sm border border-border px-1.5 py-0.5 font-mono",children:t}),i.jsxs("span",{className:"rounded-sm border border-border px-1.5 py-0.5 font-mono",children:[Math.round(n*100),"%"]}),i.jsx("span",{className:"rounded-sm border border-border px-1.5 py-0.5 font-mono",children:r}),i.jsx("span",{className:"font-mono",children:i.jsx(Re,{value:s,relative:!0,now:a})})]})}function bx({user:e,loading:t}){const n=e!=null&&e.login?`@${e.login}`:t?"Loading profile...":"GitHub OAuth",r=e!=null&&e.is_admin?"admin":"read-only",s=e!=null&&e.avatar_url?i.jsx("img",{className:"h-10 w-10 rounded-full border border-slate-700 bg-slate-800",src:e.avatar_url,alt:e.login?`${e.login} avatar`:"",referrerPolicy:"no-referrer"}):i.jsx("span",{className:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-slate-700 bg-slate-900",children:i.jsx(Vn,{className:"h-5 w-5","aria-hidden":!0})}),a=e!=null&&e.html_url?i.jsx("a",{className:"truncate font-semibold text-white hover:underline",href:et(e.html_url),rel:"noreferrer",target:"_blank",children:n}):i.jsx("div",{className:"truncate font-semibold text-white",children:n});return i.jsxs("div",{className:"flex max-w-full shrink-0 items-center gap-3 text-sm text-slate-300","aria-label":e!=null&&e.login?`Signed in as ${e.login}`:"Dashboard account",children:[i.jsx(Go,{className:"hidden h-4 w-4 shrink-0 sm:block","aria-hidden":!0}),i.jsxs("div",{className:"hidden min-w-0 text-right sm:block",children:[a,i.jsxs("div",{className:"text-xs text-slate-400",children:["Signed in · ",r]})]}),s]})}function yx({config:e,loading:t,onEnable:n,onDisable:r}){const[s,a]=L.useState(!1),[o,l]=L.useState(""),c=!!(e!=null&&e.status.enabled),u=typeof navigator<"u"&&typeof window<"u"&&Ir(),d=t||s||!(e!=null&&e.configured)||!u,h=u?e!=null&&e.configured?c?"Disable notifications":"Enable notifications":"Notifications not configured":"Notifications unavailable";return i.jsx("div",{className:"relative",children:i.jsx("button",{className:W("inline-flex h-9 w-9 items-center justify-center rounded-md border text-sm font-semibold",c?"border-emerald-400 bg-emerald-50 text-emerald-700":"border-slate-700 bg-slate-900 text-slate-200",d&&"cursor-not-allowed opacity-60"),type:"button","aria-label":h,title:o||h,disabled:d,onClick:async()=>{a(!0),l("");try{c?await r():await n()}catch(m){l(m instanceof Error?m.message:String(m))}finally{a(!1)}},children:i.jsx(Qo,{className:W("h-4 w-4",s&&"animate-live-pulse"),"aria-hidden":!0})})})}function wx({notification:e,onDismiss:t,onNavigate:n}){if(!e)return null;const r=e.title||"GitHub Agent Bridge",s=e.body||e.summary||"Bridge job finished",a=e.url||e.job_url||(e.job_id?_n(e.job_id):"/"),o=a.startsWith("/");return i.jsx("aside",{className:"fixed right-3 top-20 z-50 w-[min(calc(100vw-1.5rem),28rem)] rounded-md border border-emerald-300 bg-white shadow-xl shadow-slate-950/15","aria-live":"assertive","aria-label":"Bridge notification",children:i.jsxs("div",{className:"flex items-start gap-3 p-3",children:[i.jsx("div",{className:"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-emerald-50 text-emerald-700",children:i.jsx(Qo,{className:"h-4 w-4","aria-hidden":!0})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx("h2",{className:"min-w-0 break-words text-sm font-semibold text-foreground",children:r}),i.jsx("button",{className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted hover:bg-slate-100 hover:text-foreground",type:"button","aria-label":"Dismiss notification",onClick:t,children:i.jsx(Yt,{className:"h-4 w-4","aria-hidden":!0})})]}),i.jsx("p",{className:"mt-1 min-w-0 break-words text-sm text-muted",children:s}),e.detail?i.jsx("p",{className:"mt-1 line-clamp-2 min-w-0 break-words text-xs text-muted",children:e.detail}):null,i.jsxs("button",{className:"mt-3 inline-flex h-8 items-center gap-1.5 rounded-md border border-border px-2.5 text-xs font-semibold text-foreground hover:bg-slate-50",type:"button",onClick:()=>{t(),o?n(a):window.open(et(a),"_blank","noopener,noreferrer")},children:[i.jsx(Xt,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Open"]})]})]})})}function vx({count:e,limit:t,loading:n,onRefresh:r}){return i.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 rounded-lg border border-border bg-white px-3 py-3 shadow-sm md:px-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:"text-base font-semibold",children:"Jobs"}),i.jsx("p",{className:"text-xs text-muted",children:n?"Refreshing latest jobs...":`Showing ${e} of the latest ${t} requested jobs`})]}),i.jsx(Ze,{onClick:r,compactOnMobile:!0})]})}function ce({title:e,action:t,children:n,className:r,flushHeader:s=!1}){return i.jsxs("section",{className:W("min-w-0 rounded-lg border border-border bg-panel p-4 shadow-sm",r),children:[i.jsxs("div",{className:W("flex flex-wrap items-center justify-between gap-3",!s&&"mb-4"),children:[i.jsx("h2",{className:"text-sm font-semibold",children:e}),t]}),n]})}function _e({title:e,value:t,icon:n}){return i.jsxs("div",{className:"rounded-lg border border-border bg-panel p-3 shadow-sm md:p-4",children:[i.jsxs("div",{className:"flex items-center justify-between text-muted",children:[i.jsx("span",{className:"text-sm font-medium",children:e}),n]}),i.jsx("strong",{className:"mt-3 block text-2xl leading-none md:mt-4 md:text-3xl",children:t})]})}function jx({filters:e,actorOptions:t,onChange:n}){const[r,s]=L.useState(e);L.useEffect(()=>s(e),[e]);const a=Kf(e),o=co(e)||co(r),l=()=>{s(Oi),n(Oi)};return i.jsxs("details",{className:"my-3 rounded-md border border-border bg-slate-50/70",children:[i.jsxs("summary",{className:"grid cursor-pointer list-none grid-cols-[minmax(0,1fr)_auto] items-center gap-3 px-3 py-2 text-sm font-semibold marker:hidden",children:[i.jsxs("span",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsxs("span",{className:"inline-flex shrink-0 items-center gap-2",children:[i.jsx(lu,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Filters"]}),a.length>0?i.jsx("span",{className:"flex min-w-0 flex-wrap items-center gap-1.5","aria-label":"Applied filters",children:a.map(c=>i.jsxs("span",{className:"inline-flex max-w-full items-center gap-1 rounded-full border border-blue-200 bg-blue-50 px-2 py-0.5 text-xs font-semibold text-blue-700",children:[i.jsx("span",{className:"text-blue-700/70",children:c.label}),i.jsx("span",{className:"max-w-40 truncate font-mono",children:c.value.trim()})]},c.key))}):null]}),i.jsxs("span",{className:"inline-flex shrink-0 items-center gap-2",children:[o?i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-md border border-border bg-white px-2.5 text-xs font-semibold text-foreground hover:bg-slate-50",type:"button",onClick:c=>{c.preventDefault(),c.stopPropagation(),l()},children:[i.jsx(Wn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Clear filters"]}):null,i.jsx(vn,{className:"h-4 w-4 text-muted","aria-hidden":!0})]})]}),i.jsxs("form",{className:"grid gap-3 border-t border-border bg-white p-3 md:grid-cols-3 xl:grid-cols-9",onSubmit:c=>{c.preventDefault(),n(r)},children:[i.jsx(Ye,{label:"Status",children:i.jsxs("select",{className:"control",value:r.status,onChange:c=>s({...r,status:c.target.value}),children:[i.jsx("option",{value:"",children:"All"}),i.jsx("option",{value:"pending",children:"pending"}),i.jsx("option",{value:"running",children:"running"}),i.jsx("option",{value:"blocked",children:"blocked"}),i.jsx("option",{value:"done",children:"done"}),i.jsx("option",{value:"denied",children:"denied"}),i.jsx("option",{value:"waiting_approval",children:"waiting_approval"})]})}),i.jsx(Ye,{label:"Repository",children:i.jsx("input",{className:"control",value:r.repo,placeholder:"owner/repo",onChange:c=>s({...r,repo:c.target.value})})}),i.jsx(Ye,{label:"Thread",children:i.jsx("input",{className:"control",value:r.thread,inputMode:"numeric",placeholder:"issue or PR",onChange:c=>s({...r,thread:c.target.value})})}),i.jsx(Ye,{label:"Action",children:i.jsx("input",{className:"control",value:r.action,placeholder:"reply_comment",onChange:c=>s({...r,action:c.target.value})})}),i.jsx(Ye,{label:"Actor",className:"xl:col-span-2",children:i.jsx(kx,{value:r.actor,options:t,onChange:c=>s({...r,actor:c})})}),i.jsx(Ye,{label:"Intent",children:i.jsxs("select",{className:"control",value:r.intent,onChange:c=>s({...r,intent:c.target.value}),children:[i.jsx("option",{value:"",children:"All"}),i.jsx("option",{value:"review_only",children:"review_only"}),i.jsx("option",{value:"work_allowed",children:"work_allowed"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 self-end xl:col-span-2",children:[i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-white",type:"button",disabled:!o,onClick:l,children:[i.jsx(Wn,{className:"h-4 w-4","aria-hidden":!0}),"Clear"]}),i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md bg-primary px-3 text-sm font-semibold text-white",type:"submit",children:[i.jsx(hu,{className:"h-4 w-4","aria-hidden":!0}),"Apply"]})]})]})]})}function kx({value:e,options:t,onChange:n}){const[r,s]=L.useState(!1),a=e.trim().replace(/^@/,"").toLowerCase(),o=t.filter(c=>!a||c.login.toLowerCase().includes(a)).slice(0,8),l=t.find(c=>c.login.toLowerCase()===a);return i.jsxs("div",{className:"relative min-w-0",children:[i.jsxs("div",{className:"control flex items-center gap-2 px-2",children:[l?i.jsx("img",{className:"h-5 w-5 shrink-0 rounded-full bg-slate-100",src:et(l.avatar_url??""),alt:`${l.login} avatar`,referrerPolicy:"no-referrer"}):i.jsx(Vn,{className:"h-4 w-4 shrink-0 text-muted","aria-hidden":!0}),i.jsx("input",{className:"min-w-0 flex-1 bg-transparent font-mono text-sm outline-none",value:e,placeholder:"@login",onChange:c=>{n(c.target.value),s(!0)},onFocus:()=>s(!0),onBlur:()=>window.setTimeout(()=>s(!1),100)}),e?i.jsx("button",{className:"rounded-sm p-1 text-muted hover:bg-slate-100",type:"button","aria-label":"Clear actor filter",onClick:()=>n(""),children:i.jsx(Yt,{className:"h-3.5 w-3.5","aria-hidden":!0})}):null]}),r&&o.length>0?i.jsx("div",{className:"absolute left-0 right-0 z-20 mt-1 max-h-72 overflow-auto rounded-md border border-border bg-white p-1 shadow-lg",children:o.map(c=>i.jsxs("button",{className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-left hover:bg-slate-50",type:"button",onMouseDown:u=>u.preventDefault(),onClick:()=>{n(c.login),s(!1)},children:[c.avatar_url?i.jsx("img",{className:"h-6 w-6 shrink-0 rounded-full bg-slate-100",src:et(c.avatar_url),alt:`${c.login} avatar`,referrerPolicy:"no-referrer"}):i.jsx(Vn,{className:"h-5 w-5 shrink-0 text-muted","aria-hidden":!0}),i.jsxs("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-foreground",children:["@",c.login]}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-1.5 py-0.5 text-[10px] font-semibold text-muted",children:c.job_count})]},c.login))}):null]})}function Ye({label:e,children:t,className:n}){return i.jsxs("label",{className:W("grid min-w-0 gap-1 text-xs font-semibold text-muted",n),children:[e,t]})}function Nx({jobs:e,loading:t,loadingMore:n=!1,hasMore:r=!1,onLoadMore:s,onViewJob:a,now:o,user:l,onRetry:c,onDismiss:u,onCancel:d}){const[h,m]=L.useState(null),[p,y]=L.useState(null),[w,v]=L.useState(null),b=L.useRef(!1),C=L.useRef(n),_=!!(l!=null&&l.is_admin&&c),N=!!(l!=null&&l.is_admin&&u);L.useEffect(()=>{C.current&&!n&&(b.current=!1),C.current=n},[n]);const F=L.useCallback(()=>{b.current||(b.current=!0,s==null||s())},[s]),j=L.useCallback(async R=>{if(c){m(R);try{await c(R)}finally{m(null)}}},[c]),q=L.useCallback(async R=>{if(u){y(R);try{await u(R)}finally{y(null)}}},[u]),M=L.useCallback(async(R,z)=>{if(d){v(R);try{await d(R,z)}finally{v(null)}}},[d]);return t&&e.length===0?i.jsx(X,{text:"Loading jobs..."}):e.length===0?i.jsx(X,{text:"No jobs match the current filters."}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2 md:hidden",children:[e.map(R=>i.jsx(_x,{job:R,onViewJob:a,now:o,canRetry:_&&zn(R.status),retrying:h===R.id,onRetry:j,canDismiss:N&&zn(R.status),dismissing:p===R.id,onDismiss:q,canCancel:!!(d&&Di(R,l)),cancelling:w===R.id,onCancel:M},R.id)),i.jsx(Cx,{hasMore:r,loading:n,onLoadMore:F})]}),i.jsx(Fi,{noun:"jobs",hasMore:r,loading:n,onLoadMore:F,className:"hidden md:block",children:i.jsxs("table",{className:"min-w-[1080px] table-fixed border-collapse text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"sticky top-0 z-10 border-b border-border bg-panel text-left text-xs text-muted",children:[i.jsx("th",{className:"w-[42%] px-3 py-2 font-semibold",children:"Job"}),i.jsx("th",{className:"w-32 px-3 py-2 font-semibold",children:"Status"}),i.jsx("th",{className:"w-40 px-3 py-2 font-semibold",children:"Action"}),i.jsx("th",{className:"w-36 px-3 py-2 font-semibold",children:"Actor"}),i.jsx("th",{className:"w-36 px-3 py-2 font-semibold",children:"Timing"}),i.jsx("th",{className:"w-28 px-3 py-2 font-semibold",children:"Updated"}),i.jsx("th",{className:"w-24 px-3 py-2 text-right font-semibold",children:"Actions"})]})}),i.jsx("tbody",{children:e.map(R=>i.jsx(Sx,{job:R,now:o,onViewJob:a,canRetry:_&&zn(R.status),retrying:h===R.id,onRetry:j,canDismiss:N&&zn(R.status),dismissing:p===R.id,onDismiss:q,canCancel:!!(d&&Di(R,l)),cancelling:w===R.id,onCancel:M},R.id))})]})})]})}function Sx({job:e,now:t,onViewJob:n,canRetry:r,retrying:s,onRetry:a,canDismiss:o,dismissing:l,onDismiss:c,canCancel:u,cancelling:d,onCancel:h}){return i.jsxs("tr",{className:"cursor-pointer border-b border-border align-top hover:bg-slate-50",onClick:()=>n(e.id),children:[i.jsx("td",{className:"min-w-0 px-3 py-3",children:i.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[i.jsxs("span",{className:"mt-0.5 shrink-0 font-mono text-xs font-semibold text-muted",children:["#",e.id]}),i.jsxs("div",{className:"min-w-0 space-y-1",children:[i.jsx("div",{className:"line-clamp-2 text-sm font-semibold leading-snug text-foreground [overflow-wrap:anywhere]",title:e.subject,children:e.subject}),i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted",children:[i.jsx("span",{className:"min-w-0 max-w-full truncate font-mono",children:e.repo??e.work_key}),i.jsxs("span",{className:"shrink-0",children:["thread ",e.thread??"n/a"]})]})]})]})}),i.jsx("td",{className:"px-3 py-3",children:i.jsx(ds,{status:e.status})}),i.jsxs("td",{className:"px-3 py-3",children:[i.jsx("div",{className:"min-w-0 truncate text-sm text-foreground",title:e.action,children:e.action}),i.jsx("div",{className:"mt-1",children:i.jsx(us,{intent:e.intent,actionMode:e.action_mode,display:"intent",compact:!0})})]}),i.jsx("td",{className:"px-3 py-3",children:i.jsx(En,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url})}),i.jsxs("td",{className:"px-3 py-3 text-xs text-muted",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx("span",{children:"wait"}),i.jsx("span",{className:"font-mono text-foreground",children:Ve(cs(e,t))})]}),i.jsxs("div",{className:"mt-1 flex items-center justify-between gap-2",children:[i.jsx("span",{children:"run"}),i.jsx("span",{className:"font-mono text-foreground",children:Ve(ls(e,t))})]}),i.jsxs("div",{className:"mt-1 flex items-center justify-between gap-2",children:[i.jsx("span",{children:"tries"}),i.jsx("span",{className:"font-mono text-foreground",children:e.attempts})]})]}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs",children:i.jsx(Re,{value:e.updated_at,compact:!0,relative:!0,now:t})}),i.jsx("td",{className:"px-3 py-3 text-right",children:i.jsxs("div",{className:"inline-flex items-center gap-1",children:[i.jsx(Vl,{jobId:e.id,canRetry:r,retrying:s,onRetry:a,compact:!0}),i.jsx(Wl,{jobId:e.id,canDismiss:o,dismissing:l,onDismiss:c,compact:!0}),i.jsx(Gl,{jobId:e.id,canCancel:u,cancelling:d,onCancel:h,compact:!0})]})})]})}function Cx({hasMore:e,loading:t,onLoadMore:n}){return!e&&!t?null:i.jsxs("button",{className:"inline-flex min-h-10 w-full items-center justify-center gap-2 rounded-md border border-border px-3 py-2 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60 md:hidden",type:"button",disabled:t||!e,onClick:()=>n==null?void 0:n(),children:[i.jsx(vn,{className:"h-4 w-4","aria-hidden":!0}),t?"Loading more jobs...":"Load more jobs"]})}function _x({job:e,onViewJob:t,now:n,canRetry:r,retrying:s,onRetry:a,canDismiss:o,dismissing:l,onDismiss:c,canCancel:u,cancelling:d,onCancel:h}){return i.jsxs("article",{className:"rounded-md border border-border bg-white shadow-[0_1px_0_rgba(15,23,42,0.03)]",children:[i.jsxs("button",{className:"grid w-full gap-2 p-3 text-left hover:bg-slate-50",type:"button",onClick:()=>t(e.id),children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"min-w-0 space-y-1",children:[i.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-center gap-2",children:[i.jsxs("span",{className:"shrink-0 font-mono text-xs font-semibold text-muted",children:["#",e.id]}),i.jsx("span",{className:"truncate font-mono text-sm",children:e.repo??e.work_key})]}),i.jsx("div",{className:"line-clamp-2 text-sm leading-snug text-foreground",children:e.subject}),i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted",children:[i.jsxs("span",{children:["thread ",e.thread??"n/a"," · ",e.action]}),i.jsx(us,{intent:e.intent,actionMode:e.action_mode,compact:!0,display:"intent"}),i.jsx(En,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url})]})]}),i.jsx(ds,{status:e.status})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-2 text-xs",children:[i.jsx(V,{label:"Wait",value:Ve(cs(e,n))}),i.jsx(V,{label:"Runtime",value:Ve(ls(e,n))}),i.jsx(V,{label:"Updated",value:i.jsx(Re,{value:e.updated_at,compact:!0,relative:!0,now:n})})]})]}),r||o||u?i.jsxs("div",{className:"flex flex-wrap gap-2 border-t border-border px-3 py-2",children:[i.jsx(Vl,{jobId:e.id,canRetry:r,retrying:s,onRetry:a}),i.jsx(Wl,{jobId:e.id,canDismiss:o,dismissing:l,onDismiss:c}),i.jsx(Gl,{jobId:e.id,canCancel:u,cancelling:d,onCancel:h})]}):null]})}function Vl({jobId:e,canRetry:t,retrying:n,onRetry:r,compact:s=!1}){if(!t)return null;const a=n?"Retrying...":"Retry";return i.jsxs("button",{className:W("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-border text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60",s?"w-8 px-0":"px-3"),type:"button",disabled:n,"aria-label":`Retry job #${e}`,title:`Retry job #${e}`,onClick:async o=>{o.stopPropagation(),window.confirm(`Retry job #${e}?`)&&await r(e)},children:[i.jsx(Wn,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{className:W(s&&"sr-only"),children:a})]})}function Wl({jobId:e,canDismiss:t,dismissing:n,onDismiss:r,compact:s=!1}){if(!t)return null;const a=n?"Dismissing...":"Dismiss";return i.jsxs("button",{className:W("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-border text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60",s?"w-8 px-0":"px-3"),type:"button",disabled:n,"aria-label":`Dismiss job #${e}`,title:`Dismiss job #${e}`,onClick:async o=>{o.stopPropagation(),window.confirm(`Dismiss job #${e}?`)&&await r(e)},children:[i.jsx(jn,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{className:W(s&&"sr-only"),children:a})]})}function Gl({jobId:e,canCancel:t,cancelling:n,onCancel:r,compact:s=!1}){if(!t)return null;const a=n?"Cancelling...":"Cancel";return i.jsxs("button",{className:W("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-red-200 bg-red-50 text-sm font-semibold text-red-700 hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-60",s?"w-8 px-0":"px-3"),type:"button",disabled:n,"aria-label":`Cancel job #${e}`,title:`Cancel job #${e}`,onClick:async o=>{o.stopPropagation();const l=window.prompt(`Cancel job #${e}? Optional reason:`);l!==null&&await r(e,l)},children:[i.jsx(Yt,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{className:W(s&&"sr-only"),children:a})]})}function En({actor:e,avatarUrl:t,framed:n=!1}){const r=t?i.jsx("img",{className:"h-4 w-4 shrink-0 rounded-full bg-slate-100",src:et(t),alt:e?`${e} avatar`:"",referrerPolicy:"no-referrer"}):i.jsx(Vn,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),s=i.jsxs(i.Fragment,{children:[r,i.jsx("span",{className:"min-w-0 truncate",children:e?`@${e}`:"unknown actor"})]});return n?i.jsx("span",{className:"inline-flex h-7 max-w-full items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-muted",children:s}):i.jsx("span",{className:"inline-flex min-w-0 max-w-full items-center gap-1 font-mono text-xs text-muted",children:s})}function Ex(e){return(e==null?void 0:e.model)??"OpenClaw default"}function Px(e){return(e==null?void 0:e.thinking)??"OpenClaw default"}function Rx(e){return e?e.configured?"configured":e.summary:"n/a"}function Ix(e,t){const n=t||(e==="work_allowed"?"fix_allowed":"review_only");return n==="fix_allowed"||!t&&e==="work_allowed"?{mode:n,intentLabel:"work_allowed",title:"Work allowed"}:{mode:n,intentLabel:"review_only",title:"Review only"}}function us({intent:e,actionMode:t,compact:n=!1,display:r="mode"}){const s=Ix(e,t),a=s.intentLabel==="work_allowed"?mu:Wo,o=r==="intent"?s.intentLabel:s.mode;return i.jsxs("span",{className:W("inline-flex min-h-6 max-w-full items-center gap-1.5 rounded-md border px-2 text-xs font-semibold",s.intentLabel==="work_allowed"?"border-blue-200 bg-blue-50 text-blue-700":"border-violet-200 bg-violet-50 text-violet-700",n&&"min-h-5 px-1.5 text-[11px]"),title:`${s.title}: ${s.mode}`,"aria-label":`${s.title}: ${o}`,children:[i.jsx(a,{className:W("h-3.5 w-3.5 shrink-0",n&&"h-3 w-3"),"aria-hidden":!0}),i.jsx("span",{className:"truncate font-mono",children:o})]})}function Tx({job:e,session:t,sessionEvents:n,transcript:r,now:s,compact:a=!1}){var p;const o=_n(e.id),l=n??[],c=r??[],u=Nf(l),d=Sf(c),h=ls(e,s),m=cs(e,s);return i.jsxs("div",{className:"grid min-w-0 gap-4",children:[i.jsxs("div",{className:"sticky top-0 z-20 -mx-3 -mt-3 grid gap-2 border-b border-border bg-panel/95 px-3 py-2 shadow-sm backdrop-blur sm:-mx-4 sm:-mt-4 sm:px-4","aria-label":"Sticky job header",children:[i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(ds,{status:e.status}),i.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border bg-white px-2 text-xs font-semibold text-foreground hover:bg-slate-50",href:o,children:[i.jsx(kn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",e.id]}),i.jsx(En,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url,framed:!0}),i.jsx("span",{className:"min-w-0 break-words font-mono text-xs text-muted [overflow-wrap:anywhere]",children:e.work_key})]}),i.jsxs("div",{className:"grid min-w-0 gap-2 lg:grid-cols-[minmax(0,1fr)_minmax(280px,auto)] lg:items-start",children:[i.jsx("p",{className:"min-w-0 break-words text-sm text-muted [overflow-wrap:anywhere]",children:e.subject}),i.jsxs("div",{className:"grid min-w-0 gap-1",children:[i.jsx("h3",{className:"text-xs font-semibold text-muted",children:"GitHub links"}),e.github_urls.length>0?i.jsx(Jn,{urls:e.github_urls,compact:!0}):i.jsx("p",{className:"text-xs text-muted",children:"No links recorded."})]})]})]}),i.jsxs("div",{className:W("grid gap-2 text-sm sm:gap-3",a?"grid-cols-1":"grid-cols-3"),children:[i.jsx(V,{label:"Queue wait",value:Ve(m)}),i.jsx(V,{label:e.status==="running"?"Running for":"Runtime",value:Ve(h)}),i.jsx(V,{label:"Coalesced",value:String(e.coalesced_count)})]}),e.queue_state==="serialized_by_work_key"?i.jsxs("p",{className:"rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-900",children:["Serialized behind running job #",e.blocked_by_job_id," for this work key."]}):null,i.jsxs("div",{className:W("grid gap-2 text-sm sm:gap-3",a?"grid-cols-1":"grid-cols-3"),children:[i.jsx(V,{label:"Model",value:Ex(e.model_route)}),i.jsx(V,{label:"Reasoning",value:Px(e.model_route)}),i.jsx(V,{label:"Route",value:Rx(e.model_route)})]}),i.jsx(Ax,{job:e,compact:a}),i.jsxs("div",{className:W("grid gap-2 text-sm sm:gap-3",a?"grid-cols-1":"grid-cols-2 xl:grid-cols-4"),children:[i.jsx(V,{label:"Created",value:i.jsx(Re,{value:e.created_at,compact:!0,relative:!0,now:s})}),i.jsx(V,{label:"Started",value:e.started_at?i.jsx(Re,{value:e.started_at,compact:!0,relative:!0,now:s}):"n/a"}),i.jsx(V,{label:"Updated",value:i.jsx(Re,{value:e.updated_at,compact:!0,relative:!0,now:s})}),i.jsx(V,{label:"Finished",value:e.finished_at?i.jsx(Re,{value:e.finished_at,compact:!0,relative:!0,now:s}):"n/a"})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Timeline"}),i.jsx("div",{className:"grid min-w-0 gap-3",children:(e.worklog??[]).length>0?(p=e.worklog)==null?void 0:p.map(y=>i.jsxs("div",{className:"min-w-0 border-l-2 border-primary pl-3",children:[i.jsx("div",{className:"text-sm font-semibold",children:y.phase}),i.jsx("div",{className:"font-mono text-xs text-muted",children:i.jsx(Re,{value:y.ts,relative:!0,now:s})}),i.jsx("div",{className:"break-words text-sm [overflow-wrap:anywhere]",children:y.summary}),y.detail?i.jsx("div",{className:"mt-1 break-words font-mono text-xs text-muted [overflow-wrap:anywhere]",children:y.detail}):null]},y.id)):i.jsx(X,{text:"No worklog entries."})})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"mb-2 flex items-center gap-2 text-sm font-semibold",children:[i.jsx(Jo,{className:"h-4 w-4","aria-hidden":!0}),"OpenClaw session"]}),t?i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[i.jsx(V,{label:"Session ID",value:t.id}),i.jsx(V,{label:"Source",value:t.source})]}),i.jsx("p",{className:"break-words text-xs text-muted [overflow-wrap:anywhere]",children:t.detail})]}):i.jsx(X,{text:"Session correlation is loading."})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Agent activity"}),i.jsx("div",{className:"grid max-h-[460px] min-w-0 gap-2 overflow-auto pr-1",children:u.length>0?u.map((y,w)=>i.jsx(Mx,{event:y,defaultOpen:oo(y.eventType,e.status==="running",w,u.length),now:s},y.id)):i.jsx(X,{text:e.status==="running"?"Waiting for live agent output...":"No agent activity has been recorded for this session."})})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Session transcript"}),i.jsx("div",{className:"grid max-h-[620px] min-w-0 gap-2 overflow-auto pr-1",children:d.length>0?d.map((y,w)=>i.jsx(Lx,{entry:y,defaultOpen:oo(y.kind,e.status==="running",w,d.length),now:s},y.id)):i.jsx(X,{text:e.status==="running"?"Waiting for live transcript entries...":"No OpenClaw transcript entries are available for this session."})})]})]})}function Ax({job:e,compact:t=!1}){const n=e.intent_classifier??null,r=(n==null?void 0:n.llm)??{},s=(n==null?void 0:n.parser)??{},a=typeof r.confidence=="number"?`${Math.round(r.confidence*100)}%`:"n/a";return i.jsxs("div",{className:"grid gap-2",children:[i.jsx("h3",{className:"text-sm font-semibold",children:"Action mode"}),i.jsxs("div",{className:W("grid gap-2 text-sm sm:gap-3",t?"grid-cols-1":"grid-cols-2 xl:grid-cols-4"),children:[i.jsx(V,{label:"Mode",value:i.jsx(us,{intent:e.intent,actionMode:e.action_mode})}),i.jsx(V,{label:"Intent",value:e.intent}),i.jsx(V,{label:"Addressed",value:n?ho(r.addressed_to_agent):"n/a"}),i.jsx(V,{label:"Write",value:n?r.write_permission??"none":e.intent==="work_allowed"?"allowed":"none"})]}),n?i.jsxs("div",{className:"grid gap-2 rounded-md border border-border bg-panel p-3 text-xs",children:[i.jsxs("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(tt,{label:"Classifier",value:n.enabled?"enabled":"disabled"}),i.jsx(tt,{label:"Applied",value:ho(r.applied)}),i.jsx(tt,{label:"Confidence",value:a}),i.jsx(tt,{label:"Parser",value:`${s.action??"n/a"} / ${s.work_intent??"n/a"}`})]}),i.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[i.jsx(tt,{label:"LLM",value:`${r.action??"n/a"} / ${r.work_intent??"n/a"}`}),i.jsx(tt,{label:"Scope",value:r.scope||"n/a"})]}),r.main_request?i.jsx(tt,{label:"Main request",value:r.main_request}):null,r.subordinate_reason?i.jsx(tt,{label:"Subordinate reason",value:r.subordinate_reason}):null,r.reason?i.jsx(tt,{label:"Reason",value:r.reason}):null,n.error?i.jsx(tt,{label:"Error",value:n.error,tone:"danger"}):null]}):i.jsx("p",{className:"text-xs text-muted",children:"No intent classifier metadata recorded for this job."})]})}function ho(e){return e===!0?"yes":e===!1?"no":"n/a"}function tt({label:e,value:t,tone:n="neutral"}){return i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted",children:e}),i.jsx("div",{className:W("mt-0.5 min-w-0 break-words font-mono text-xs [overflow-wrap:anywhere]",n==="danger"?"text-red-700":"text-foreground"),children:t})]})}function Lx({entry:e,defaultOpen:t,now:n}){return i.jsx(Jl,{badge:e.badge,meta:i.jsx(Re,{value:e.meta,relative:!0,now:n}),count:e.count,summary:e.summary,defaultOpen:t,children:i.jsx("pre",{className:"max-h-72 max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-slate-950 px-2 py-1.5 font-mono text-xs leading-relaxed text-slate-100 [overflow-wrap:anywhere]",children:e.text})})}function Mx({event:e,defaultOpen:t,now:n}){return i.jsx(Jl,{badge:e.badge,meta:i.jsx(Re,{value:e.meta,relative:!0,now:n}),count:e.count,summary:e.summary,defaultOpen:t,children:e.detail?i.jsx("pre",{className:"max-h-56 max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-slate-950 px-2 py-1.5 font-mono text-xs leading-relaxed text-slate-100 [overflow-wrap:anywhere]",children:e.detail}):null})}function Jl({badge:e,meta:t,count:n,summary:r,defaultOpen:s,children:a}){const[o,l]=L.useState(!!s);return i.jsxs("details",{className:"group min-w-0 rounded border border-border bg-slate-50/60",open:o,onToggle:c=>l(c.currentTarget.open),children:[i.jsxs("summary",{className:"grid cursor-pointer list-none gap-1 px-2 py-1.5 marker:hidden hover:bg-white",children:[i.jsxs("div",{className:"grid min-w-0 gap-1 sm:flex sm:items-center sm:justify-between sm:gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx(vn,{className:"h-3.5 w-3.5 shrink-0 text-muted transition-transform group-open:rotate-180","aria-hidden":!0}),i.jsx("span",{className:"truncate font-mono text-[11px] font-semibold text-muted",children:e}),n&&n>1?i.jsx("span",{className:"rounded-sm border border-border px-1 font-mono text-[10px] text-muted",children:n}):null]}),i.jsx("span",{className:"min-w-0 truncate pl-5 font-mono text-[11px] text-muted sm:shrink-0 sm:pl-0",children:t})]}),i.jsx("div",{className:"min-w-0 break-words pl-5 text-xs text-foreground [overflow-wrap:anywhere] sm:truncate",children:r})]}),i.jsx("div",{className:"min-w-0 border-t border-border bg-white px-2 py-2",children:a})]})}function po({label:e,values:t}){const n=[{name:"median",seconds:(t==null?void 0:t.median)??0},{name:"p90",seconds:(t==null?void 0:t.p90)??0},{name:"p99",seconds:(t==null?void 0:t.p99)??0}];return i.jsx("div",{className:"h-56",children:i.jsx(nr,{width:"100%",height:"100%",children:i.jsxs(zr,{data:n,children:[i.jsx(rr,{strokeDasharray:"3 3"}),i.jsx(ir,{dataKey:"name"}),i.jsx(sr,{tickFormatter:Ve}),i.jsx(ar,{formatter:r=>[Ve(Number(r)),e]}),i.jsx(Gt,{dataKey:"seconds",fill:"#0969da",radius:[4,4,0,0]})]})})})}function Ox({values:e,loading:t,totalJobs:n}){const r=Object.entries(e??{}).map(([s,a])=>({day:s,count:a}));return t&&r.length===0?i.jsx(X,{text:"Loading job history..."}):r.length===0?i.jsx(X,{text:n>0?"Job history has no valid creation dates.":"No job history available."}):i.jsx("div",{className:"h-56",children:i.jsx(nr,{width:"100%",height:"100%",children:i.jsxs(zr,{data:r,children:[i.jsx(rr,{strokeDasharray:"3 3"}),i.jsx(ir,{dataKey:"day",minTickGap:16}),i.jsx(sr,{allowDecimals:!1}),i.jsx(ar,{formatter:s=>[Number(s),"jobs"]}),i.jsx(Gt,{dataKey:"count",fill:"#16a34a",radius:[4,4,0,0]})]})})})}function Dx({usage:e,loading:t,totalJobs:n}){const[r,s]=L.useState("day"),a=(e==null?void 0:e[r])??[],o=a.map(u=>({...u,label:Fx(u.bucket,r)})),l=a.reduce((u,d)=>u+d.seconds,0),c=a.reduce((u,d)=>u+(d.runs??d.jobs),0);return t&&o.length===0?i.jsx(X,{text:"Loading runtime usage..."}):o.length===0?i.jsx(X,{text:n>0?"No jobs have recorded runtime yet.":"No job history available."}):i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted",children:[i.jsx(pu,{className:"h-4 w-4","aria-hidden":!0}),i.jsxs("span",{children:[_r(l)," consumed across ",c," run",c===1?"":"s"]})]}),i.jsx("div",{className:"inline-flex h-8 rounded-md border border-border bg-white p-0.5","aria-label":"Runtime grouping",children:["day","month"].map(u=>i.jsx("button",{className:W("rounded px-2.5 text-xs font-semibold capitalize",r===u?"bg-primary text-white":"text-muted hover:bg-slate-50"),type:"button",onClick:()=>s(u),children:u},u))})]}),i.jsx("div",{className:"h-64",children:i.jsx(nr,{width:"100%",height:"100%",children:i.jsxs(zr,{data:o,children:[i.jsx(rr,{strokeDasharray:"3 3"}),i.jsx(ir,{dataKey:"label",minTickGap:16,tick:{fontSize:11}}),i.jsx(sr,{tickFormatter:u=>_r(Number(u))}),i.jsx(Eo,{}),i.jsx(ar,{formatter:(u,d)=>d==="Work"?[_r(Number(u)),"work"]:d==="Review"?[_r(Number(u)),"review"]:[Number(u),String(d)],labelFormatter:u=>String(u)}),i.jsx(Gt,{dataKey:"work_seconds",name:"Work",stackId:"runtime",fill:"#0969da",isAnimationActive:!1}),i.jsx(Gt,{dataKey:"review_seconds",name:"Review",stackId:"runtime",fill:"#8250df",radius:[4,4,0,0],isAnimationActive:!1})]})})})]})}function Fx(e,t){if(t==="month"){const[a,o]=e.split("-").map(Number);return!a||!o?e:new Intl.DateTimeFormat(void 0,{month:"short",year:"numeric"}).format(new Date(a,o-1,1))}const[n,r,s]=e.split("-").map(Number);return!n||!r||!s?e:new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric"}).format(new Date(n,r-1,s))}function _r(e){const t=Math.max(0,Math.round(e));if(t<60)return`${t}s`;const n=Math.round(t/60);if(n<60)return`${n}m`;const r=Math.floor(n/60),s=n%60;return s===0?`${r}h`:`${r}h ${s}m`}function mo(e){return Object.values(e).reduce((t,n)=>t+n,0)}function zx({data:e,loading:t}){if(t&&!e)return i.jsx(X,{text:"Loading systemd units..."});if(!e)return i.jsx(X,{text:"No systemd snapshot available."});const n=e.units??[],r=n.filter(o=>o.active_state==="active").length,s=n.filter(o=>o.active_state==="failed"||o.result==="failed").length,a=n.filter(o=>o.kind==="timer").length;return i.jsxs("div",{className:"grid min-w-0 gap-3",children:[e.errors.length>0?i.jsx(we,{tone:"error",text:e.errors[0]}):null,n.length===0?i.jsx(X,{text:"No configured bridge units found."}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4",children:[i.jsx(Er,{label:"Units",value:String(n.length)}),i.jsx(Er,{label:"Active",value:String(r)}),i.jsx(Er,{label:"Failed",value:String(s),tone:s>0?"bad":"neutral"}),i.jsx(Er,{label:"Timers",value:String(a)})]}),i.jsxs("div",{className:"overflow-hidden rounded-md border border-border bg-white",children:[i.jsxs("div",{className:"hidden grid-cols-[minmax(0,1.35fr)_90px_120px_90px_minmax(0,1fr)] gap-3 border-b border-border bg-slate-50 px-3 py-2 text-[11px] font-semibold uppercase text-muted md:grid",children:[i.jsx("span",{children:"Unit"}),i.jsx("span",{children:"Status"}),i.jsx("span",{children:"State"}),i.jsx("span",{children:"PID"}),i.jsx("span",{children:"Schedule"})]}),i.jsx("div",{className:"divide-y divide-border",children:n.map(o=>i.jsx(qx,{unit:o},o.unit))})]})]})]})}function Er({label:e,value:t,tone:n="neutral"}){return i.jsxs("div",{className:W("min-w-0 rounded-md border bg-white px-3 py-2",n==="bad"?"border-red-200":"border-border"),children:[i.jsx("div",{className:W("font-mono text-lg font-semibold",n==="bad"?"text-red-700":"text-foreground"),children:t}),i.jsx("div",{className:"mt-0.5 text-[11px] font-semibold uppercase text-muted",children:e})]})}function qx({unit:e}){const[t,n]=L.useState(!1),r=e.active_state==="active",s=e.active_state==="failed"||e.result==="failed",a=e.next_elapse||e.last_trigger||"n/a";return i.jsxs("details",{className:"group min-w-0",open:t,onToggle:o=>n(o.currentTarget.open),children:[i.jsxs("summary",{className:"grid min-w-0 cursor-pointer list-none grid-cols-2 gap-2 px-3 py-3 text-sm marker:hidden hover:bg-slate-50 md:grid-cols-[minmax(0,1.35fr)_90px_120px_90px_minmax(0,1fr)] md:items-center md:gap-3",children:[i.jsxs("div",{className:"col-span-2 min-w-0 md:col-span-1",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(vn,{className:"h-3.5 w-3.5 shrink-0 text-muted transition-transform group-open:rotate-180","aria-hidden":!0}),i.jsx("span",{className:"truncate font-mono text-xs font-semibold text-foreground",children:e.unit})]}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-1.5 pl-5 text-[11px] font-semibold uppercase text-muted",children:[i.jsx("span",{children:e.role}),i.jsx("span",{children:e.kind}),i.jsx("span",{children:e.load_state}),i.jsx("span",{children:t?"following log":"expand log"})]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2 md:block",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase text-muted md:hidden",children:"Status"}),i.jsx("span",{className:W("inline-flex h-6 items-center rounded-full border px-2 text-xs font-semibold",s?"border-red-300 bg-red-50 text-red-700":r?"border-emerald-300 bg-emerald-50 text-emerald-700":"border-slate-300 bg-slate-50 text-slate-700"),children:e.active_state})]}),i.jsx(fo,{label:"State",value:e.sub_state,detail:e.result||"unknown"}),i.jsx(fo,{label:"PID",value:e.main_pid?String(e.main_pid):"n/a",detail:Ve(e.uptime_seconds)}),i.jsxs("div",{className:"col-span-2 min-w-0 md:col-span-1",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted md:hidden",children:"Schedule"}),i.jsx("div",{className:"truncate font-mono text-[11px] text-foreground",title:a,children:e.next_elapse?`next ${e.next_elapse}`:a})]})]}),i.jsx("div",{className:"border-t border-border bg-slate-50 px-3 pb-3 pt-2",children:i.jsx(Bx,{unit:e.unit,active:t})})]})}function fo({label:e,value:t,detail:n}){return i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted md:hidden",children:e}),i.jsx("div",{className:"truncate font-mono text-[11px] text-foreground",children:t}),n?i.jsx("div",{className:"truncate font-mono text-[11px] text-muted",children:n}):null]})}function Bx({unit:e,active:t}){const[n,r]=L.useState([]),[s,a]=L.useState(""),o=L.useRef(null);return L.useEffect(()=>{if(!t){r([]),a("");return}r([]),a("");const l=new EventSource(`/api/systemd/journal/stream?unit=${encodeURIComponent(e)}`);return l.addEventListener("journal_line",c=>{const u=Fr(c);u&&r(d=>[...d.slice(-199),u])}),l.addEventListener("journal_error",c=>{const u=Fr(c);a((u==null?void 0:u.error)??"journal stream failed")}),l.onerror=()=>{},()=>l.close()},[t,e]),L.useEffect(()=>{const l=o.current;l&&(l.scrollTop=l.scrollHeight)},[n]),i.jsxs("div",{className:"grid min-w-0 gap-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted",children:"Live journal"}),i.jsx("div",{className:"mt-0.5 truncate font-mono text-[11px] text-muted",children:n.length>0?`${n.length} lines streamed`:"waiting for journal output"})]}),i.jsx("div",{className:"font-mono text-[11px] text-muted",children:"journalctl -f"})]}),s?i.jsx(we,{tone:"error",text:s}):null,i.jsx("div",{ref:o,className:"h-72 overflow-auto rounded-md border border-slate-800 bg-slate-950 p-3 font-mono text-xs leading-relaxed text-slate-100",children:n.length>0?n.map((l,c)=>i.jsx("div",{className:"break-words [overflow-wrap:anywhere]",children:l.line},`${l.unit}-${c}`)):i.jsx("div",{className:"text-slate-400",children:"No journal lines received yet."})})]})}function Ux({data:e,loading:t}){var h,m,p,y,w,v;if(t&&!e)return i.jsx(X,{text:"Loading process activity..."});if(!e)return i.jsx(X,{text:"No process snapshot available."});const n=e.executor.children??[],r=n.flatMap(b=>Yl(b)),s=r.reduce((b,C)=>b+C.cpu_ticks,0),a=r.reduce((b,C)=>b+Hx(C),0),o=e.executor.service==="active",l=r.slice(0,8).map(b=>({label:`pid ${b.pid}`,ticks:b.cpu_ticks})),c=(e.samples??[]).map(b=>({label:$n(b.ts),ticks:b.cpu_ticks,io:b.io_bytes,active:b.active_since_last_sample?"active":"quiet"})),u=c.length>0?c:l,d=(h=e.samples)==null?void 0:h[e.samples.length-1];return i.jsxs("div",{className:"grid gap-4",children:[i.jsx("div",{className:"rounded-md border border-slate-200 bg-slate-50 p-3",children:i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:W("inline-flex h-6 items-center rounded-full border px-2 text-xs font-semibold",o?"border-emerald-300 bg-emerald-50 text-emerald-700":"border-slate-300 bg-white text-slate-600"),children:o?"active":"idle"}),i.jsxs("span",{className:"font-mono text-xs text-muted",children:["service ",e.executor.service]})]}),i.jsx("div",{className:"mt-2 text-sm font-semibold text-foreground",children:e.running_jobs.length>0?`${e.running_jobs.length} running job${e.running_jobs.length===1?"":"s"}`:"No running jobs"}),e.running_jobs.length>0?i.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:e.running_jobs.slice(0,4).map(b=>i.jsxs("span",{className:"inline-flex min-h-6 items-center gap-1.5 rounded-full border border-blue-200 bg-white px-2 font-mono text-[11px] font-semibold text-blue-700",children:[i.jsx("span",{className:"h-2 w-2 rounded-full bg-blue-600 animate-live-pulse","aria-hidden":!0}),"#",b.id," ",Ve(b.age_seconds)]},b.id))}):null,d?i.jsxs("p",{className:"mt-1 text-xs text-muted",children:["Last persisted sample ",$n(d.ts)," · ",d.active_since_last_sample?"activity observed":`quiet ${Ve(d.idle_seconds)}`]}):null,i.jsx("p",{className:"mt-1 text-xs text-muted",children:e.detail})]}),i.jsxs("div",{className:"grid min-w-[190px] grid-cols-3 gap-2 text-center text-xs",children:[i.jsx(li,{label:"PID",value:e.executor.pid?String(e.executor.pid):"n/a"}),i.jsx(li,{label:"Children",value:String(r.length)}),i.jsx(li,{label:"CPU ticks",value:String(s)})]})]})}),i.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[i.jsx(Pr,{label:"Live process",value:((m=e.signals)==null?void 0:m.live_process.state)??(r.length>0?"live":"no_child_process"),detail:`${((p=e.signals)==null?void 0:p.live_process.child_count)??r.length} children`}),i.jsx(Pr,{label:"Process activity",value:((y=e.signals)==null?void 0:y.process_activity.state)??(d!=null&&d.active_since_last_sample?"active":"quiet"),detail:d?`sample ${$n(d.ts)}`:"no sample"}),i.jsx(Pr,{label:"Semantic progress",value:(w=e.signals)!=null&&w.semantic_progress.length?"recent":"none",detail:xo(e.running_jobs,"semantic_progress")}),i.jsx(Pr,{label:"Visible progress",value:(v=e.signals)!=null&&v.visible_progress.length?"streaming":"none",detail:xo(e.running_jobs,"visible_progress")})]}),e.alerts.length>0?i.jsx(we,{tone:"error",text:e.alerts[0]}):null,i.jsxs("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,0.9fr)_minmax(0,1.1fr)]",children:[i.jsxs("div",{className:"min-w-0 rounded-md border border-border p-3",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between gap-3",children:[i.jsxs("h3",{className:"flex items-center gap-2 text-sm font-semibold",children:[i.jsx(ya,{className:"h-4 w-4","aria-hidden":!0}),c.length>0?"CPU history":"CPU ticks"]}),i.jsxs("span",{className:"font-mono text-xs text-muted",children:[Zl(a)," I/O"]})]}),u.length>0?i.jsx("div",{className:"h-40",children:i.jsx(nr,{width:"100%",height:"100%",children:i.jsxs(mc,{data:u,children:[i.jsx(rr,{strokeDasharray:"3 3"}),i.jsx(ir,{dataKey:"label",tick:!1}),i.jsx(sr,{allowDecimals:!1,tick:{fontSize:11}}),i.jsx(ar,{formatter:b=>[Number(b),"cpu ticks"]}),i.jsx(fc,{type:"monotone",dataKey:"ticks",stroke:"#0f766e",strokeWidth:2,dot:{r:3},activeDot:{r:5},isAnimationActive:!1})]})})}):i.jsx(X,{text:"No executor CPU samples available."})]}),i.jsxs("div",{className:"min-w-0",children:[i.jsxs("h3",{className:"mb-2 flex items-center gap-2 text-sm font-semibold",children:[i.jsx(ya,{className:"h-4 w-4","aria-hidden":!0}),"Executor children"]}),n.length>0?i.jsx("div",{className:"grid gap-2",children:n.map(b=>i.jsx(Xl,{process:b},b.pid))}):i.jsx(X,{text:"No child process detected for the executor."})]})]})]})}function $x({alerts:e,loading:t,now:n}){if(t&&!e)return i.jsx(X,{text:"Loading monitor alerts..."});const r=e??[];return r.length===0?i.jsx(X,{text:"No active monitor alerts."}):i.jsx("div",{className:"grid gap-2",children:r.slice(0,5).map(s=>i.jsxs("div",{className:"rounded-md border border-red-200 bg-red-50 p-2.5",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs font-semibold text-red-700",children:[i.jsx(qr,{className:"h-3.5 w-3.5","aria-hidden":!0}),i.jsx("span",{children:s.severity}),i.jsx("span",{className:"font-normal text-red-600",children:Fl(s.last_seen,n)}),s.observations>1?i.jsxs("span",{className:"rounded-full border border-red-200 bg-white px-1.5",children:[s.observations,"x"]}):null]}),i.jsx("p",{className:"mt-1 break-words text-sm font-medium text-red-950 [overflow-wrap:anywhere]",children:s.message})]},s.fingerprint))})}function Xl({process:e}){var r,s;const t=((r=e.io_bytes)==null?void 0:r.read_bytes)??0,n=((s=e.io_bytes)==null?void 0:s.write_bytes)??0;return i.jsxs("div",{className:"rounded-md border border-border bg-white p-2.5",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono",children:["pid ",e.pid]}),i.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["state ",e.state]}),i.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["cpu ",e.cpu_ticks]}),i.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["I/O ",Zl(t+n)]})]}),i.jsx("div",{className:"mt-2 break-words font-mono text-xs text-muted",children:e.cmd||"unknown command"}),e.children&&e.children.length>0?i.jsx("div",{className:"mt-3 border-l-2 border-border pl-3",children:e.children.map(a=>i.jsx(Xl,{process:a},a.pid))}):null]})}function li({label:e,value:t}){return i.jsxs("div",{className:"rounded-md border border-border bg-white px-2 py-2",children:[i.jsx("div",{className:"font-mono text-sm font-semibold text-foreground",children:t}),i.jsx("div",{className:"mt-0.5 text-[11px] font-semibold uppercase text-muted",children:e})]})}function Pr({label:e,value:t,detail:n}){return i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-2.5",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted",children:e}),i.jsx("div",{className:"mt-1 truncate text-sm font-semibold text-foreground",children:t}),i.jsx("div",{className:"mt-1 truncate font-mono text-[11px] text-muted",children:n})]})}function xo(e,t){const n=e.find(s=>s[t]),r=n==null?void 0:n[t];return!n||!r?"no running heartbeat":`#${n.id} ${r.phase} ${Ve(r.age_seconds??null)}`}function Yl(e){return[e,...(e.children??[]).flatMap(t=>Yl(t))]}function Hx(e){var t,n;return(((t=e.io_bytes)==null?void 0:t.read_bytes)??0)+(((n=e.io_bytes)==null?void 0:n.write_bytes)??0)}function Zl(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(1)} MiB`}function V({label:e,value:t}){return i.jsxs("div",{className:"min-w-0 rounded-md border border-border p-3",children:[i.jsx("div",{className:"text-xs font-semibold text-muted",children:e}),i.jsx("div",{className:"mt-1 min-w-0 break-words text-sm [overflow-wrap:anywhere]",children:t})]})}function ds({status:e}){const t=Cf(e),n=e==="running"||e==="pending";return i.jsxs("span",{className:W("inline-flex min-h-6 items-center gap-1.5 rounded-full border px-2 text-xs font-semibold",t.badge),children:[i.jsx("span",{className:W("h-2.5 w-2.5 rounded-full",t.dot,n&&"animate-live-pulse"),"aria-hidden":!0}),e]})}function X({text:e}){return i.jsx("div",{className:"rounded-md border border-dashed border-border p-6 text-center text-sm text-muted",children:e})}function we({tone:e,text:t}){return i.jsx("div",{className:W("rounded-md border p-3 text-sm",e==="error"&&"border-red-300 bg-red-50 text-red-700",e==="warning"&&"border-amber-300 bg-amber-50 text-amber-800"),children:t})}function Ze({onClick:e,compactOnMobile:t=!1}){return i.jsxs("button",{className:W("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-border text-sm font-semibold text-foreground hover:bg-slate-50",t?"w-8 px-0 sm:w-auto sm:px-3":"px-3"),onClick:e,type:"button","aria-label":"Refresh",children:[i.jsx(lr,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{className:W(t&&"hidden sm:inline"),children:"Refresh"})]})}const go=document.getElementById("root");go&&wc.createRoot(go).render(i.jsx(L.StrictMode,{children:i.jsx(Wc,{client:ff,children:i.jsx(Qf,{})})})); diff --git a/src/github_agent_bridge/dashboard_static/assets/index-wDewYnHF.js b/src/github_agent_bridge/dashboard_static/assets/index-wDewYnHF.js deleted file mode 100644 index d0c3bcd..0000000 --- a/src/github_agent_bridge/dashboard_static/assets/index-wDewYnHF.js +++ /dev/null @@ -1,187 +0,0 @@ -var ra=e=>{throw TypeError(e)};var $r=(e,t,n)=>t.has(e)||ra("Cannot "+n);var g=(e,t,n)=>($r(e,t,"read from private field"),n?n.call(e):t.get(e)),U=(e,t,n)=>t.has(e)?ra("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),D=(e,t,n,r)=>($r(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),Y=(e,t,n)=>($r(e,t,"access private method"),n);var yr=(e,t,n,r)=>({set _(s){D(e,t,s,n)},get _(){return g(e,t,r)}});import{f as cc,h as uc,g as zi,r as ke,R as L,d as rr,a as Dr,C as ir,X as sr,Y as ar,T as or,L as Co,B as Vt,e as dc,c as hc,b as pc}from"./charts-SqBiqy9C.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=n(s);fetch(s.href,a)}})();var Hr={exports:{}},Rn={};/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ia;function mc(){if(ia)return Rn;ia=1;var e=cc(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,s=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function o(l,c,u){var d,h={},m=null,p=null;u!==void 0&&(m=""+u),c.key!==void 0&&(m=""+c.key),c.ref!==void 0&&(p=c.ref);for(d in c)r.call(c,d)&&!a.hasOwnProperty(d)&&(h[d]=c[d]);if(l&&l.defaultProps)for(d in c=l.defaultProps,c)h[d]===void 0&&(h[d]=c[d]);return{$$typeof:t,type:l,key:m,ref:p,props:h,_owner:s.current}}return Rn.Fragment=n,Rn.jsx=o,Rn.jsxs=o,Rn}var sa;function fc(){return sa||(sa=1,Hr.exports=mc()),Hr.exports}var i=fc(),wr={},aa;function xc(){if(aa)return wr;aa=1;var e=uc();return wr.createRoot=e.createRoot,wr.hydrateRoot=e.hydrateRoot,wr}var gc=xc();const bc=zi(gc);var lr=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Dt,kt,sn,xo,yc=(xo=class extends lr{constructor(){super();U(this,Dt);U(this,kt);U(this,sn);D(this,sn,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){g(this,kt)||this.setEventListener(g(this,sn))}onUnsubscribe(){var t;this.hasListeners()||((t=g(this,kt))==null||t.call(this),D(this,kt,void 0))}setEventListener(t){var n;D(this,sn,t),(n=g(this,kt))==null||n.call(this),D(this,kt,t(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()}))}setFocused(t){g(this,Dt)!==t&&(D(this,Dt,t),this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof g(this,Dt)=="boolean"?g(this,Dt):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Dt=new WeakMap,kt=new WeakMap,sn=new WeakMap,xo),qi=new yc,wc={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Nt,Di,go,vc=(go=class{constructor(){U(this,Nt,wc);U(this,Di,!1)}setTimeoutProvider(e){D(this,Nt,e)}setTimeout(e,t){return g(this,Nt).setTimeout(e,t)}clearTimeout(e){g(this,Nt).clearTimeout(e)}setInterval(e,t){return g(this,Nt).setInterval(e,t)}clearInterval(e){g(this,Nt).clearInterval(e)}},Nt=new WeakMap,Di=new WeakMap,go),Ft=new vc;function jc(e){setTimeout(e,0)}var kc=typeof window>"u"||"Deno"in globalThis;function Le(){}function Nc(e,t){return typeof e=="function"?e(t):e}function li(e){return typeof e=="number"&&e>=0&&e!==1/0}function _o(e,t){return Math.max(e+(t||0)-Date.now(),0)}function It(e,t){return typeof e=="function"?e(t):e}function Be(e,t){return typeof e=="function"?e(t):e}function oa(e,t){const{type:n="all",exact:r,fetchStatus:s,predicate:a,queryKey:o,stale:l}=e;if(o){if(r){if(t.queryHash!==Bi(o,t.options))return!1}else if(!Qn(t.queryKey,o))return!1}if(n!=="all"){const c=t.isActive();if(n==="active"&&!c||n==="inactive"&&c)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||s&&s!==t.state.fetchStatus||a&&!a(t))}function la(e,t){const{exact:n,status:r,predicate:s,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(Kn(t.options.mutationKey)!==Kn(a))return!1}else if(!Qn(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||s&&!s(t))}function Bi(e,t){return((t==null?void 0:t.queryKeyHashFn)||Kn)(e)}function Kn(e){return JSON.stringify(e,(t,n)=>ui(n)?Object.keys(n).sort().reduce((r,s)=>(r[s]=n[s],r),{}):n)}function Qn(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Qn(e[n],t[n])):!1}var Sc=Object.prototype.hasOwnProperty;function Eo(e,t,n=0){if(e===t)return e;if(n>500)return t;const r=ca(e)&&ca(t);if(!r&&!(ui(e)&&ui(t)))return t;const a=(r?e:Object.keys(e)).length,o=r?t:Object.keys(t),l=o.length,c=r?new Array(l):{};let u=0;for(let d=0;d{Ft.setTimeout(t,e)})}function di(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?Eo(e,t):t}function _c(e,t,n=0){const r=[...e,t];return n&&r.length>n?r.slice(1):r}function Ec(e,t,n=0){const r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var Ui=Symbol();function Po(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Ui?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Ro(e,t){return typeof e=="function"?e(...t):!!e}function Pc(e,t,n){let r=!1,s;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(s??(s=t()),r||(r=!0,s.aborted?n():s.addEventListener("abort",n,{once:!0})),s)}),e}var Vn=(()=>{let e=()=>kc;return{isServer(){return e()},setIsServer(t){e=t}}})();function hi(){let e,t;const n=new Promise((s,a)=>{e=s,t=a});n.status="pending",n.catch(()=>{});function r(s){Object.assign(n,s),delete n.resolve,delete n.reject}return n.resolve=s=>{r({status:"fulfilled",value:s}),e(s)},n.reject=s=>{r({status:"rejected",reason:s}),t(s)},n}var Rc=jc;function Ic(){let e=[],t=0,n=l=>{l()},r=l=>{l()},s=Rc;const a=l=>{t?e.push(l):s(()=>{n(l)})},o=()=>{const l=e;e=[],l.length&&s(()=>{r(()=>{l.forEach(c=>{n(c)})})})};return{batch:l=>{let c;t++;try{c=l()}finally{t--,t||o()}return c},batchCalls:l=>(...c)=>{a(()=>{l(...c)})},schedule:a,setNotifyFunction:l=>{n=l},setBatchNotifyFunction:l=>{r=l},setScheduler:l=>{s=l}}}var je=Ic(),an,St,on,bo,Tc=(bo=class extends lr{constructor(){super();U(this,an,!0);U(this,St);U(this,on);D(this,on,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t(!0),r=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",r,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",r)}}})}onSubscribe(){g(this,St)||this.setEventListener(g(this,on))}onUnsubscribe(){var t;this.hasListeners()||((t=g(this,St))==null||t.call(this),D(this,St,void 0))}setEventListener(t){var n;D(this,on,t),(n=g(this,St))==null||n.call(this),D(this,St,t(this.setOnline.bind(this)))}setOnline(t){g(this,an)!==t&&(D(this,an,t),this.listeners.forEach(r=>{r(t)}))}isOnline(){return g(this,an)}},an=new WeakMap,St=new WeakMap,on=new WeakMap,bo),Ir=new Tc;function Ac(e){return Math.min(1e3*2**e,3e4)}function Io(e){return(e??"online")==="online"?Ir.isOnline():!0}var pi=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function To(e){let t=!1,n=0,r;const s=hi(),a=()=>s.status!=="pending",o=w=>{var v;if(!a()){const b=new pi(w);m(b),(v=e.onCancel)==null||v.call(e,b)}},l=()=>{t=!0},c=()=>{t=!1},u=()=>qi.isFocused()&&(e.networkMode==="always"||Ir.isOnline())&&e.canRun(),d=()=>Io(e.networkMode)&&e.canRun(),h=w=>{a()||(r==null||r(),s.resolve(w))},m=w=>{a()||(r==null||r(),s.reject(w))},p=()=>new Promise(w=>{var v;r=b=>{(a()||u())&&w(b)},(v=e.onPause)==null||v.call(e)}).then(()=>{var w;r=void 0,a()||(w=e.onContinue)==null||w.call(e)}),y=()=>{if(a())return;let w;const v=n===0?e.initialPromise:void 0;try{w=v??e.fn()}catch(b){w=Promise.reject(b)}Promise.resolve(w).then(h).catch(b=>{var j;if(a())return;const N=e.retry??(Vn.isServer()?0:3),C=e.retryDelay??Ac,k=typeof C=="function"?C(n,b):C,q=N===!0||typeof N=="number"&&nu()?void 0:p()).then(()=>{t?m(b):y()})})};return{promise:s,status:()=>s.status,cancel:o,continue:()=>(r==null||r(),s),cancelRetry:l,continueRetry:c,canStart:d,start:()=>(d()?y():p().then(y),s)}}var zt,yo,Ao=(yo=class{constructor(){U(this,zt)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),li(this.gcTime)&&D(this,zt,Ft.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Vn.isServer()?1/0:300*1e3))}clearGcTimeout(){g(this,zt)!==void 0&&(Ft.clearTimeout(g(this,zt)),D(this,zt,void 0))}},zt=new WeakMap,yo);function Lc(e){return{onFetch:(t,n)=>{var d,h,m,p,y;const r=t.options,s=(m=(h=(d=t.fetchOptions)==null?void 0:d.meta)==null?void 0:h.fetchMore)==null?void 0:m.direction,a=((p=t.state.data)==null?void 0:p.pages)||[],o=((y=t.state.data)==null?void 0:y.pageParams)||[];let l={pages:[],pageParams:[]},c=0;const u=async()=>{let w=!1;const v=C=>{Pc(C,()=>t.signal,()=>w=!0)},b=Po(t.options,t.fetchOptions),N=async(C,k,q)=>{if(w)return Promise.reject(t.signal.reason);if(k==null&&C.pages.length)return Promise.resolve(C);const B=(()=>{const T={client:t.client,queryKey:t.queryKey,pageParam:k,direction:q?"backward":"forward",meta:t.options.meta};return v(T),T})(),O=await b(B),{maxPages:P}=t.options,_=q?Ec:_c;return{pages:_(C.pages,O,P),pageParams:_(C.pageParams,k,P)}};if(s&&a.length){const C=s==="backward",k=C?Lo:mi,q={pages:a,pageParams:o},j=k(r,q);l=await N(q,j,C)}else{const C=e??a.length;do{const k=c===0?o[0]??r.initialPageParam:mi(r,l);if(c>0&&k==null)break;l=await N(l,k),c++}while(c{var w,v;return(v=(w=t.options).persister)==null?void 0:v.call(w,u,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=u}}}function mi(e,{pages:t,pageParams:n}){const r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Lo(e,{pages:t,pageParams:n}){var r;return t.length>0?(r=e.getPreviousPageParam)==null?void 0:r.call(e,t[0],t,n[0],n):void 0}function Mc(e,t){return t?mi(e,t)!=null:!1}function Oc(e,t){return!t||!e.getPreviousPageParam?!1:Lo(e,t)!=null}var ln,qt,cn,He,Bt,ve,Yn,Ut,qe,Mo,mt,wo,Fc=(wo=class extends Ao{constructor(t){super();U(this,qe);U(this,ln);U(this,qt);U(this,cn);U(this,He);U(this,Bt);U(this,ve);U(this,Yn);U(this,Ut);D(this,Ut,!1),D(this,Yn,t.defaultOptions),this.setOptions(t.options),this.observers=[],D(this,Bt,t.client),D(this,He,g(this,Bt).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,D(this,qt,ha(this.options)),this.state=t.state??g(this,qt),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return g(this,ln)}get promise(){var t;return(t=g(this,ve))==null?void 0:t.promise}setOptions(t){if(this.options={...g(this,Yn),...t},t!=null&&t._type&&D(this,ln,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=ha(this.options);n.data!==void 0&&(this.setState(da(n.data,n.dataUpdatedAt)),D(this,qt,n))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&g(this,He).remove(this)}setData(t,n){const r=di(this.state.data,t,this.options);return Y(this,qe,mt).call(this,{data:r,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),r}setState(t){Y(this,qe,mt).call(this,{type:"setState",state:t})}cancel(t){var r,s;const n=(r=g(this,ve))==null?void 0:r.promise;return(s=g(this,ve))==null||s.cancel(t),n?n.then(Le).catch(Le):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return g(this,qt)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>Be(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Ui||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>It(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!_o(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(r=>r.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=g(this,ve))==null||n.continue()}onOnline(){var n;const t=this.observers.find(r=>r.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=g(this,ve))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),g(this,He).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(g(this,ve)&&(g(this,Ut)||Y(this,qe,Mo).call(this)?g(this,ve).cancel({revert:!0}):g(this,ve).cancelRetry()),this.scheduleGc()),g(this,He).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Y(this,qe,mt).call(this,{type:"invalidate"})}async fetch(t,n){var u,d,h,m,p,y,w,v,b,N,C;if(this.state.fetchStatus!=="idle"&&((u=g(this,ve))==null?void 0:u.status())!=="rejected"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(g(this,ve))return g(this,ve).continueRetry(),g(this,ve).promise}if(t&&this.setOptions(t),!this.options.queryFn){const k=this.observers.find(q=>q.options.queryFn);k&&this.setOptions(k.options)}const r=new AbortController,s=k=>{Object.defineProperty(k,"signal",{enumerable:!0,get:()=>(D(this,Ut,!0),r.signal)})},a=()=>{const k=Po(this.options,n),j=(()=>{const B={client:g(this,Bt),queryKey:this.queryKey,meta:this.meta};return s(B),B})();return D(this,Ut,!1),this.options.persister?this.options.persister(k,j,this):k(j)},l=(()=>{const k={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:g(this,Bt),state:this.state,fetchFn:a};return s(k),k})(),c=g(this,ln)==="infinite"?Lc(this.options.pages):this.options.behavior;c==null||c.onFetch(l,this),D(this,cn,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=l.fetchOptions)==null?void 0:d.meta))&&Y(this,qe,mt).call(this,{type:"fetch",meta:(h=l.fetchOptions)==null?void 0:h.meta}),D(this,ve,To({initialPromise:n==null?void 0:n.initialPromise,fn:l.fetchFn,onCancel:k=>{k instanceof pi&&k.revert&&this.setState({...g(this,cn),fetchStatus:"idle"}),r.abort()},onFail:(k,q)=>{Y(this,qe,mt).call(this,{type:"failed",failureCount:k,error:q})},onPause:()=>{Y(this,qe,mt).call(this,{type:"pause"})},onContinue:()=>{Y(this,qe,mt).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0}));try{const k=await g(this,ve).start();if(k===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(k),(p=(m=g(this,He).config).onSuccess)==null||p.call(m,k,this),(w=(y=g(this,He).config).onSettled)==null||w.call(y,k,this.state.error,this),k}catch(k){if(k instanceof pi){if(k.silent)return g(this,ve).promise;if(k.revert){if(this.state.data===void 0)throw k;return this.state.data}}throw Y(this,qe,mt).call(this,{type:"error",error:k}),(b=(v=g(this,He).config).onError)==null||b.call(v,k,this),(C=(N=g(this,He).config).onSettled)==null||C.call(N,this.state.data,k,this),k}finally{this.scheduleGc()}}},ln=new WeakMap,qt=new WeakMap,cn=new WeakMap,He=new WeakMap,Bt=new WeakMap,ve=new WeakMap,Yn=new WeakMap,Ut=new WeakMap,qe=new WeakSet,Mo=function(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"},mt=function(t){const n=r=>{switch(t.type){case"failed":return{...r,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...r,fetchStatus:"paused"};case"continue":return{...r,fetchStatus:"fetching"};case"fetch":return{...r,...Oo(r.data,this.options),fetchMeta:t.meta??null};case"success":const s={...r,...da(t.data,t.dataUpdatedAt),dataUpdateCount:r.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return D(this,cn,t.manual?s:void 0),s;case"error":const a=t.error;return{...r,error:a,errorUpdateCount:r.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:r.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...r,isInvalidated:!0};case"setState":return{...r,...t.state}}};this.state=n(this.state),je.batch(()=>{this.observers.forEach(r=>{r.onQueryUpdate()}),g(this,He).notify({query:this,type:"updated",action:t})})},wo);function Oo(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Io(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function da(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function ha(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Ae,te,Zn,Re,$t,un,ft,Ct,er,dn,hn,Ht,Kt,_t,pn,re,Dn,fi,xi,gi,bi,yi,wi,vi,Do,vo,Fo=(vo=class extends lr{constructor(t,n){super();U(this,re);U(this,Ae);U(this,te);U(this,Zn);U(this,Re);U(this,$t);U(this,un);U(this,ft);U(this,Ct);U(this,er);U(this,dn);U(this,hn);U(this,Ht);U(this,Kt);U(this,_t);U(this,pn,new Set);this.options=n,D(this,Ae,t),D(this,Ct,null),D(this,ft,hi()),this.bindMethods(),this.setOptions(n)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(g(this,te).addObserver(this),pa(g(this,te),this.options)?Y(this,re,Dn).call(this):this.updateResult(),Y(this,re,bi).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return ji(g(this,te),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return ji(g(this,te),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,Y(this,re,yi).call(this),Y(this,re,wi).call(this),g(this,te).removeObserver(this)}setOptions(t){const n=this.options,r=g(this,te);if(this.options=g(this,Ae).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Be(this.options.enabled,g(this,te))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");Y(this,re,vi).call(this),g(this,te).setOptions(this.options),n._defaulted&&!ci(this.options,n)&&g(this,Ae).getQueryCache().notify({type:"observerOptionsUpdated",query:g(this,te),observer:this});const s=this.hasListeners();s&&ma(g(this,te),r,this.options,n)&&Y(this,re,Dn).call(this),this.updateResult(),s&&(g(this,te)!==r||Be(this.options.enabled,g(this,te))!==Be(n.enabled,g(this,te))||It(this.options.staleTime,g(this,te))!==It(n.staleTime,g(this,te)))&&Y(this,re,fi).call(this);const a=Y(this,re,xi).call(this);s&&(g(this,te)!==r||Be(this.options.enabled,g(this,te))!==Be(n.enabled,g(this,te))||a!==g(this,_t))&&Y(this,re,gi).call(this,a)}getOptimisticResult(t){const n=g(this,Ae).getQueryCache().build(g(this,Ae),t),r=this.createResult(n,t);return zc(this,r)&&(D(this,Re,r),D(this,un,this.options),D(this,$t,g(this,te).state)),r}getCurrentResult(){return g(this,Re)}trackResult(t,n){return new Proxy(t,{get:(r,s)=>(this.trackProp(s),n==null||n(s),s==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&g(this,ft).status==="pending"&&g(this,ft).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(r,s))})}trackProp(t){g(this,pn).add(t)}getCurrentQuery(){return g(this,te)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const n=g(this,Ae).defaultQueryOptions(t),r=g(this,Ae).getQueryCache().build(g(this,Ae),n);return r.fetch().then(()=>this.createResult(r,n))}fetch(t){return Y(this,re,Dn).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),g(this,Re)))}createResult(t,n){var P;const r=g(this,te),s=this.options,a=g(this,Re),o=g(this,$t),l=g(this,un),u=t!==r?t.state:g(this,Zn),{state:d}=t;let h={...d},m=!1,p;if(n._optimisticResults){const _=this.hasListeners(),T=!_&&pa(t,n),R=_&&ma(t,r,n,s);(T||R)&&(h={...h,...Oo(d.data,t.options)}),n._optimisticResults==="isRestoring"&&(h.fetchStatus="idle")}let{error:y,errorUpdatedAt:w,status:v}=h;p=h.data;let b=!1;if(n.placeholderData!==void 0&&p===void 0&&v==="pending"){let _;a!=null&&a.isPlaceholderData&&n.placeholderData===(l==null?void 0:l.placeholderData)?(_=a.data,b=!0):_=typeof n.placeholderData=="function"?n.placeholderData((P=g(this,hn))==null?void 0:P.state.data,g(this,hn)):n.placeholderData,_!==void 0&&(v="success",p=di(a==null?void 0:a.data,_,n),m=!0)}if(n.select&&p!==void 0&&!b)if(a&&p===(o==null?void 0:o.data)&&n.select===g(this,er))p=g(this,dn);else try{D(this,er,n.select),p=n.select(p),p=di(a==null?void 0:a.data,p,n),D(this,dn,p),D(this,Ct,null)}catch(_){D(this,Ct,_)}g(this,Ct)&&(y=g(this,Ct),p=g(this,dn),w=Date.now(),v="error");const N=h.fetchStatus==="fetching",C=v==="pending",k=v==="error",q=C&&N,j=p!==void 0,O={status:v,fetchStatus:h.fetchStatus,isPending:C,isSuccess:v==="success",isError:k,isInitialLoading:q,isLoading:q,data:p,dataUpdatedAt:h.dataUpdatedAt,error:y,errorUpdatedAt:w,failureCount:h.fetchFailureCount,failureReason:h.fetchFailureReason,errorUpdateCount:h.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:h.dataUpdateCount>u.dataUpdateCount||h.errorUpdateCount>u.errorUpdateCount,isFetching:N,isRefetching:N&&!C,isLoadingError:k&&!j,isPaused:h.fetchStatus==="paused",isPlaceholderData:m,isRefetchError:k&&j,isStale:$i(t,n),refetch:this.refetch,promise:g(this,ft),isEnabled:Be(n.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const _=O.data!==void 0,T=O.status==="error"&&!_,R=E=>{T?E.reject(O.error):_&&E.resolve(O.data)},G=()=>{const E=D(this,ft,O.promise=hi());R(E)},z=g(this,ft);switch(z.status){case"pending":t.queryHash===r.queryHash&&R(z);break;case"fulfilled":(T||O.data!==z.value)&&G();break;case"rejected":(!T||O.error!==z.reason)&&G();break}}return O}updateResult(){const t=g(this,Re),n=this.createResult(g(this,te),this.options);if(D(this,$t,g(this,te).state),D(this,un,this.options),g(this,$t).data!==void 0&&D(this,hn,g(this,te)),ci(n,t))return;D(this,Re,n);const r=()=>{if(!t)return!0;const{notifyOnChangeProps:s}=this.options,a=typeof s=="function"?s():s;if(a==="all"||!a&&!g(this,pn).size)return!0;const o=new Set(a??g(this,pn));return this.options.throwOnError&&o.add("error"),Object.keys(g(this,Re)).some(l=>{const c=l;return g(this,Re)[c]!==t[c]&&o.has(c)})};Y(this,re,Do).call(this,{listeners:r()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&Y(this,re,bi).call(this)}},Ae=new WeakMap,te=new WeakMap,Zn=new WeakMap,Re=new WeakMap,$t=new WeakMap,un=new WeakMap,ft=new WeakMap,Ct=new WeakMap,er=new WeakMap,dn=new WeakMap,hn=new WeakMap,Ht=new WeakMap,Kt=new WeakMap,_t=new WeakMap,pn=new WeakMap,re=new WeakSet,Dn=function(t){Y(this,re,vi).call(this);let n=g(this,te).fetch(this.options,t);return t!=null&&t.throwOnError||(n=n.catch(Le)),n},fi=function(){Y(this,re,yi).call(this);const t=It(this.options.staleTime,g(this,te));if(Vn.isServer()||g(this,Re).isStale||!li(t))return;const r=_o(g(this,Re).dataUpdatedAt,t)+1;D(this,Ht,Ft.setTimeout(()=>{g(this,Re).isStale||this.updateResult()},r))},xi=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(g(this,te)):this.options.refetchInterval)??!1},gi=function(t){Y(this,re,wi).call(this),D(this,_t,t),!(Vn.isServer()||Be(this.options.enabled,g(this,te))===!1||!li(g(this,_t))||g(this,_t)===0)&&D(this,Kt,Ft.setInterval(()=>{(this.options.refetchIntervalInBackground||qi.isFocused())&&Y(this,re,Dn).call(this)},g(this,_t)))},bi=function(){Y(this,re,fi).call(this),Y(this,re,gi).call(this,Y(this,re,xi).call(this))},yi=function(){g(this,Ht)!==void 0&&(Ft.clearTimeout(g(this,Ht)),D(this,Ht,void 0))},wi=function(){g(this,Kt)!==void 0&&(Ft.clearInterval(g(this,Kt)),D(this,Kt,void 0))},vi=function(){const t=g(this,Ae).getQueryCache().build(g(this,Ae),this.options);if(t===g(this,te))return;const n=g(this,te);D(this,te,t),D(this,Zn,t.state),this.hasListeners()&&(n==null||n.removeObserver(this),t.addObserver(this))},Do=function(t){je.batch(()=>{t.listeners&&this.listeners.forEach(n=>{n(g(this,Re))}),g(this,Ae).getQueryCache().notify({query:g(this,te),type:"observerResultsUpdated"})})},vo);function Dc(e,t){return Be(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&Be(t.retryOnMount,e)===!1)}function pa(e,t){return Dc(e,t)||e.state.data!==void 0&&ji(e,t,t.refetchOnMount)}function ji(e,t,n){if(Be(t.enabled,e)!==!1&&It(t.staleTime,e)!=="static"){const r=typeof n=="function"?n(e):n;return r==="always"||r!==!1&&$i(e,t)}return!1}function ma(e,t,n,r){return(e!==t||Be(r.enabled,e)===!1)&&(!n.suspense||e.state.status!=="error")&&$i(e,n)}function $i(e,t){return Be(t.enabled,e)!==!1&&e.isStaleByTime(It(t.staleTime,e))}function zc(e,t){return!ci(e.getCurrentResult(),t)}var qc=class extends Fo{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type="infinite",super.setOptions(e)}getOptimisticResult(e){return e._type="infinite",super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){var y,w;const{state:n}=e,r=super.createResult(e,t),{isFetching:s,isRefetching:a,isError:o,isRefetchError:l}=r,c=(w=(y=n.fetchMeta)==null?void 0:y.fetchMore)==null?void 0:w.direction,u=o&&c==="forward",d=s&&c==="forward",h=o&&c==="backward",m=s&&c==="backward";return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:Mc(t,n.data),hasPreviousPage:Oc(t,n.data),isFetchNextPageError:u,isFetchingNextPage:d,isFetchPreviousPageError:h,isFetchingPreviousPage:m,isRefetchError:l&&!u&&!h,isRefetching:a&&!d&&!m}}},tr,it,Ce,Qt,st,jt,jo,Bc=(jo=class extends Ao{constructor(t){super();U(this,st);U(this,tr);U(this,it);U(this,Ce);U(this,Qt);D(this,tr,t.client),this.mutationId=t.mutationId,D(this,Ce,t.mutationCache),D(this,it,[]),this.state=t.state||Uc(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){g(this,it).includes(t)||(g(this,it).push(t),this.clearGcTimeout(),g(this,Ce).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){D(this,it,g(this,it).filter(n=>n!==t)),this.scheduleGc(),g(this,Ce).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){g(this,it).length||(this.state.status==="pending"?this.scheduleGc():g(this,Ce).remove(this))}continue(){var t;return((t=g(this,Qt))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var o,l,c,u,d,h,m,p,y,w,v,b,N,C,k,q,j,B;const n=()=>{Y(this,st,jt).call(this,{type:"continue"})},r={client:g(this,tr),meta:this.options.meta,mutationKey:this.options.mutationKey};D(this,Qt,To({fn:()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(new Error("No mutationFn found")),onFail:(O,P)=>{Y(this,st,jt).call(this,{type:"failed",failureCount:O,error:P})},onPause:()=>{Y(this,st,jt).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>g(this,Ce).canRun(this)}));const s=this.state.status==="pending",a=!g(this,Qt).canStart();try{if(s)n();else{Y(this,st,jt).call(this,{type:"pending",variables:t,isPaused:a}),g(this,Ce).config.onMutate&&await g(this,Ce).config.onMutate(t,this,r);const P=await((l=(o=this.options).onMutate)==null?void 0:l.call(o,t,r));P!==this.state.context&&Y(this,st,jt).call(this,{type:"pending",context:P,variables:t,isPaused:a})}const O=await g(this,Qt).start();return await((u=(c=g(this,Ce).config).onSuccess)==null?void 0:u.call(c,O,t,this.state.context,this,r)),await((h=(d=this.options).onSuccess)==null?void 0:h.call(d,O,t,this.state.context,r)),await((p=(m=g(this,Ce).config).onSettled)==null?void 0:p.call(m,O,null,this.state.variables,this.state.context,this,r)),await((w=(y=this.options).onSettled)==null?void 0:w.call(y,O,null,t,this.state.context,r)),Y(this,st,jt).call(this,{type:"success",data:O}),O}catch(O){try{await((b=(v=g(this,Ce).config).onError)==null?void 0:b.call(v,O,t,this.state.context,this,r))}catch(P){Promise.reject(P)}try{await((C=(N=this.options).onError)==null?void 0:C.call(N,O,t,this.state.context,r))}catch(P){Promise.reject(P)}try{await((q=(k=g(this,Ce).config).onSettled)==null?void 0:q.call(k,void 0,O,this.state.variables,this.state.context,this,r))}catch(P){Promise.reject(P)}try{await((B=(j=this.options).onSettled)==null?void 0:B.call(j,void 0,O,t,this.state.context,r))}catch(P){Promise.reject(P)}throw Y(this,st,jt).call(this,{type:"error",error:O}),O}finally{g(this,Ce).runNext(this)}}},tr=new WeakMap,it=new WeakMap,Ce=new WeakMap,Qt=new WeakMap,st=new WeakSet,jt=function(t){const n=r=>{switch(t.type){case"failed":return{...r,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...r,isPaused:!0};case"continue":return{...r,isPaused:!1};case"pending":return{...r,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...r,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...r,data:void 0,error:t.error,failureCount:r.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),je.batch(()=>{g(this,it).forEach(r=>{r.onMutationUpdate(t)}),g(this,Ce).notify({mutation:this,type:"updated",action:t})})},jo);function Uc(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var xt,Xe,nr,ko,$c=(ko=class extends lr{constructor(t={}){super();U(this,xt);U(this,Xe);U(this,nr);this.config=t,D(this,xt,new Set),D(this,Xe,new Map),D(this,nr,0)}build(t,n,r){const s=new Bc({client:t,mutationCache:this,mutationId:++yr(this,nr)._,options:t.defaultMutationOptions(n),state:r});return this.add(s),s}add(t){g(this,xt).add(t);const n=vr(t);if(typeof n=="string"){const r=g(this,Xe).get(n);r?r.push(t):g(this,Xe).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(g(this,xt).delete(t)){const n=vr(t);if(typeof n=="string"){const r=g(this,Xe).get(n);if(r)if(r.length>1){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}else r[0]===t&&g(this,Xe).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=vr(t);if(typeof n=="string"){const r=g(this,Xe).get(n),s=r==null?void 0:r.find(a=>a.state.status==="pending");return!s||s===t}else return!0}runNext(t){var r;const n=vr(t);if(typeof n=="string"){const s=(r=g(this,Xe).get(n))==null?void 0:r.find(a=>a!==t&&a.state.isPaused);return(s==null?void 0:s.continue())??Promise.resolve()}else return Promise.resolve()}clear(){je.batch(()=>{g(this,xt).forEach(t=>{this.notify({type:"removed",mutation:t})}),g(this,xt).clear(),g(this,Xe).clear()})}getAll(){return Array.from(g(this,xt))}find(t){const n={exact:!0,...t};return this.getAll().find(r=>la(n,r))}findAll(t={}){return this.getAll().filter(n=>la(t,n))}notify(t){je.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return je.batch(()=>Promise.all(t.map(n=>n.continue().catch(Le))))}},xt=new WeakMap,Xe=new WeakMap,nr=new WeakMap,ko);function vr(e){var t;return(t=e.options.scope)==null?void 0:t.id}var at,No,Hc=(No=class extends lr{constructor(t={}){super();U(this,at);this.config=t,D(this,at,new Map)}build(t,n,r){const s=n.queryKey,a=n.queryHash??Bi(s,n);let o=this.get(a);return o||(o=new Fc({client:t,queryKey:s,queryHash:a,options:t.defaultQueryOptions(n),state:r,defaultOptions:t.getQueryDefaults(s)}),this.add(o)),o}add(t){g(this,at).has(t.queryHash)||(g(this,at).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=g(this,at).get(t.queryHash);n&&(t.destroy(),n===t&&g(this,at).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){je.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return g(this,at).get(t)}getAll(){return[...g(this,at).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(r=>oa(n,r))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(r=>oa(t,r)):n}notify(t){je.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){je.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){je.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},at=new WeakMap,No),xe,Et,Pt,mn,fn,Rt,xn,gn,So,Kc=(So=class{constructor(e={}){U(this,xe);U(this,Et);U(this,Pt);U(this,mn);U(this,fn);U(this,Rt);U(this,xn);U(this,gn);D(this,xe,e.queryCache||new Hc),D(this,Et,e.mutationCache||new $c),D(this,Pt,e.defaultOptions||{}),D(this,mn,new Map),D(this,fn,new Map),D(this,Rt,0)}mount(){yr(this,Rt)._++,g(this,Rt)===1&&(D(this,xn,qi.subscribe(async e=>{e&&(await this.resumePausedMutations(),g(this,xe).onFocus())})),D(this,gn,Ir.subscribe(async e=>{e&&(await this.resumePausedMutations(),g(this,xe).onOnline())})))}unmount(){var e,t;yr(this,Rt)._--,g(this,Rt)===0&&((e=g(this,xn))==null||e.call(this),D(this,xn,void 0),(t=g(this,gn))==null||t.call(this),D(this,gn,void 0))}isFetching(e){return g(this,xe).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return g(this,Et).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=g(this,xe).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=g(this,xe).build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(It(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return g(this,xe).findAll(e).map(({queryKey:t,state:n})=>{const r=n.data;return[t,r]})}setQueryData(e,t,n){const r=this.defaultQueryOptions({queryKey:e}),s=g(this,xe).get(r.queryHash),a=s==null?void 0:s.state.data,o=Nc(t,a);if(o!==void 0)return g(this,xe).build(this,r).setData(o,{...n,manual:!0})}setQueriesData(e,t,n){return je.batch(()=>g(this,xe).findAll(e).map(({queryKey:r})=>[r,this.setQueryData(r,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=g(this,xe).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=g(this,xe);je.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=g(this,xe);return je.batch(()=>(n.findAll(e).forEach(r=>{r.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},r=je.batch(()=>g(this,xe).findAll(e).map(s=>s.cancel(n)));return Promise.all(r).then(Le).catch(Le)}invalidateQueries(e,t={}){return je.batch(()=>(g(this,xe).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},r=je.batch(()=>g(this,xe).findAll(e).filter(s=>!s.isDisabled()&&!s.isStatic()).map(s=>{let a=s.fetch(void 0,n);return n.throwOnError||(a=a.catch(Le)),s.state.fetchStatus==="paused"?Promise.resolve():a}));return Promise.all(r).then(Le)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=g(this,xe).build(this,t);return n.isStaleByTime(It(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Le).catch(Le)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Le).catch(Le)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return Ir.isOnline()?g(this,Et).resumePausedMutations():Promise.resolve()}getQueryCache(){return g(this,xe)}getMutationCache(){return g(this,Et)}getDefaultOptions(){return g(this,Pt)}setDefaultOptions(e){D(this,Pt,e)}setQueryDefaults(e,t){g(this,mn).set(Kn(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...g(this,mn).values()],n={};return t.forEach(r=>{Qn(e,r.queryKey)&&Object.assign(n,r.defaultOptions)}),n}setMutationDefaults(e,t){g(this,fn).set(Kn(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...g(this,fn).values()],n={};return t.forEach(r=>{Qn(e,r.mutationKey)&&Object.assign(n,r.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...g(this,Pt).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Bi(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Ui&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...g(this,Pt).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){g(this,xe).clear(),g(this,Et).clear()}},xe=new WeakMap,Et=new WeakMap,Pt=new WeakMap,mn=new WeakMap,fn=new WeakMap,Rt=new WeakMap,xn=new WeakMap,gn=new WeakMap,So),zo=ke.createContext(void 0),qo=e=>{const t=ke.useContext(zo);if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},Qc=({client:e,children:t})=>(ke.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),i.jsx(zo.Provider,{value:e,children:t})),Bo=ke.createContext(!1),Vc=()=>ke.useContext(Bo);Bo.Provider;function Wc(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Gc=ke.createContext(Wc()),Jc=()=>ke.useContext(Gc),Xc=(e,t,n)=>{const r=n!=null&&n.state.error&&typeof e.throwOnError=="function"?Ro(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},Yc=e=>{ke.useEffect(()=>{e.clearReset()},[e])},Zc=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:s})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(s&&e.data===void 0||Ro(n,[e.error,r])),eu=e=>{if(e.suspense){const n=s=>s==="static"?s:Math.max(s??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...s)=>n(r(...s)):n(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},tu=(e,t)=>e.isLoading&&e.isFetching&&!t,nu=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,fa=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function Uo(e,t,n){var m,p,y,w;const r=Vc(),s=Jc(),a=qo(),o=a.defaultQueryOptions(e);(p=(m=a.getDefaultOptions().queries)==null?void 0:m._experimental_beforeQuery)==null||p.call(m,o);const l=a.getQueryCache().get(o.queryHash);o._optimisticResults=r?"isRestoring":"optimistic",eu(o),Xc(o,s,l),Yc(s);const c=!a.getQueryCache().get(o.queryHash),[u]=ke.useState(()=>new t(a,o)),d=u.getOptimisticResult(o),h=!r&&e.subscribed!==!1;if(ke.useSyncExternalStore(ke.useCallback(v=>{const b=h?u.subscribe(je.batchCalls(v)):Le;return u.updateResult(),b},[u,h]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),ke.useEffect(()=>{u.setOptions(o)},[o,u]),nu(o,d))throw fa(o,u,s);if(Zc({result:d,errorResetBoundary:s,throwOnError:o.throwOnError,query:l,suspense:o.suspense}))throw d.error;if((w=(y=a.getDefaultOptions().queries)==null?void 0:y._experimental_afterQuery)==null||w.call(y,o,d),o.experimental_prefetchInRender&&!Vn.isServer()&&tu(d,r)){const v=c?fa(o,u,s):l==null?void 0:l.promise;v==null||v.catch(Le).finally(()=>{u.updateResult()})}return o.notifyOnChangeProps?d:u.trackResult(d)}function ge(e,t){return Uo(e,Fo)}function xa(e,t){return Uo(e,qc)}/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ru=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),$o=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var iu={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const su=ke.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:s="",children:a,iconNode:o,...l},c)=>ke.createElement("svg",{ref:c,...iu,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:$o("lucide",s),...l},[...o.map(([u,d])=>ke.createElement(u,d)),...Array.isArray(a)?a:[a]]));/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const le=(e,t)=>{const n=ke.forwardRef(({className:r,...s},a)=>ke.createElement(su,{ref:a,iconNode:t,className:$o(`lucide-${ru(e)}`,r),...s}));return n.displayName=`${e}`,n};/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const bn=le("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ho=le("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ko=le("Bell",[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Hi=le("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const yn=le("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const wn=le("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wn=le("CircleUserRound",[["path",{d:"M18 20a6 6 0 0 0-12 0",key:"1qehca"}],["circle",{cx:"12",cy:"10",r:"4",key:"1h16sb"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Qo=le("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ga=le("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gt=le("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Vo=le("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const au=le("Filter",[["polygon",{points:"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3",key:"1yg77f"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ou=le("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Tr=le("KeyRound",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vn=le("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lu=le("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const cr=le("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Gn=le("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const cu=le("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const uu=le("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Wo=le("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Go=le("SquareTerminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const du=le("TimerReset",[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"M12 14v-4",key:"1evpnu"}],["path",{d:"M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6",key:"1ts96g"}],["path",{d:"M9 17H4v5",key:"8t5av"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ki=le("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zr=le("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hu=le("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/** - * @license lucide-react v0.468.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Jt=le("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function pu(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const mu=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,fu=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,xu={};function ba(e,t){return(xu.jsx?fu:mu).test(e)}const gu=/[ \t\n\f\r]/g;function bu(e){return typeof e=="object"?e.type==="text"?ya(e.value):!1:ya(e)}function ya(e){return e.replace(gu,"")===""}class ur{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}ur.prototype.normal={};ur.prototype.property={};ur.prototype.space=void 0;function Jo(e,t){const n={},r={};for(const s of e)Object.assign(n,s.property),Object.assign(r,s.normal);return new ur(n,r,t)}function Ni(e){return e.toLowerCase()}class Oe{constructor(t,n){this.attribute=n,this.property=t}}Oe.prototype.attribute="";Oe.prototype.booleanish=!1;Oe.prototype.boolean=!1;Oe.prototype.commaOrSpaceSeparated=!1;Oe.prototype.commaSeparated=!1;Oe.prototype.defined=!1;Oe.prototype.mustUseProperty=!1;Oe.prototype.number=!1;Oe.prototype.overloadedBoolean=!1;Oe.prototype.property="";Oe.prototype.spaceSeparated=!1;Oe.prototype.space=void 0;let yu=0;const K=Xt(),ye=Xt(),Si=Xt(),I=Xt(),oe=Xt(),Wt=Xt(),ze=Xt();function Xt(){return 2**++yu}const Ci=Object.freeze(Object.defineProperty({__proto__:null,boolean:K,booleanish:ye,commaOrSpaceSeparated:ze,commaSeparated:Wt,number:I,overloadedBoolean:Si,spaceSeparated:oe},Symbol.toStringTag,{value:"Module"})),Kr=Object.keys(Ci);class Ki extends Oe{constructor(t,n,r,s){let a=-1;if(super(t,n),wa(this,"space",s),typeof r=="number")for(;++a4&&n.slice(0,4)==="data"&&Nu.test(t)){if(t.charAt(4)==="-"){const a=t.slice(5).replace(va,_u);r="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{const a=t.slice(4);if(!va.test(a)){let o=a.replace(ku,Cu);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}s=Ki}return new s(r,t)}function Cu(e){return"-"+e.toLowerCase()}function _u(e){return e.charAt(1).toUpperCase()}const Eu=Jo([Xo,wu,el,tl,nl],"html"),Qi=Jo([Xo,vu,el,tl,nl],"svg");function Pu(e){return e.join(" ").trim()}var en={},Qr,ja;function Ru(){if(ja)return Qr;ja=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,s=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,o=/^[;\s]*/,l=/^\s+|\s+$/g,c=` -`,u="/",d="*",h="",m="comment",p="declaration";function y(v,b){if(typeof v!="string")throw new TypeError("First argument must be a string");if(!v)return[];b=b||{};var N=1,C=1;function k(z){var E=z.match(t);E&&(N+=E.length);var F=z.lastIndexOf(c);C=~F?z.length-F:C+z.length}function q(){var z={line:N,column:C};return function(E){return E.position=new j(z),P(),E}}function j(z){this.start=z,this.end={line:N,column:C},this.source=b.source}j.prototype.content=v;function B(z){var E=new Error(b.source+":"+N+":"+C+": "+z);if(E.reason=z,E.filename=b.source,E.line=N,E.column=C,E.source=v,!b.silent)throw E}function O(z){var E=z.exec(v);if(E){var F=E[0];return k(F),v=v.slice(F.length),E}}function P(){O(n)}function _(z){var E;for(z=z||[];E=T();)E!==!1&&z.push(E);return z}function T(){var z=q();if(!(u!=v.charAt(0)||d!=v.charAt(1))){for(var E=2;h!=v.charAt(E)&&(d!=v.charAt(E)||u!=v.charAt(E+1));)++E;if(E+=2,h===v.charAt(E-1))return B("End of comment missing");var F=v.slice(2,E-2);return C+=2,k(F),v=v.slice(E),C+=2,z({type:m,comment:F})}}function R(){var z=q(),E=O(r);if(E){if(T(),!O(s))return B("property missing ':'");var F=O(a),V=z({type:p,property:w(E[0].replace(e,h)),value:F?w(F[0].replace(e,h)):h});return O(o),V}}function G(){var z=[];_(z);for(var E;E=R();)E!==!1&&(z.push(E),_(z));return z}return P(),G()}function w(v){return v?v.replace(l,h):h}return Qr=y,Qr}var ka;function Iu(){if(ka)return en;ka=1;var e=en&&en.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(en,"__esModule",{value:!0}),en.default=n;const t=e(Ru());function n(r,s){let a=null;if(!r||typeof r!="string")return a;const o=(0,t.default)(r),l=typeof s=="function";return o.forEach(c=>{if(c.type!=="declaration")return;const{property:u,value:d}=c;l?s(u,d,c):d&&(a=a||{},a[u]=d)}),a}return en}var In={},Na;function Tu(){if(Na)return In;Na=1,Object.defineProperty(In,"__esModule",{value:!0}),In.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,s=/^-(ms)-/,a=function(u){return!u||n.test(u)||e.test(u)},o=function(u,d){return d.toUpperCase()},l=function(u,d){return"".concat(d,"-")},c=function(u,d){return d===void 0&&(d={}),a(u)?u:(u=u.toLowerCase(),d.reactCompat?u=u.replace(s,l):u=u.replace(r,l),u.replace(t,o))};return In.camelCase=c,In}var Tn,Sa;function Au(){if(Sa)return Tn;Sa=1;var e=Tn&&Tn.__importDefault||function(s){return s&&s.__esModule?s:{default:s}},t=e(Iu()),n=Tu();function r(s,a){var o={};return!s||typeof s!="string"||(0,t.default)(s,function(l,c){l&&c&&(o[(0,n.camelCase)(l,a)]=c)}),o}return r.default=r,Tn=r,Tn}var Lu=Au();const Mu=zi(Lu),rl=il("end"),Vi=il("start");function il(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function Ou(e){const t=Vi(e),n=rl(e);if(t&&n)return{start:t,end:n}}function Bn(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Ca(e.position):"start"in e||"end"in e?Ca(e):"line"in e||"column"in e?_i(e):""}function _i(e){return _a(e&&e.line)+":"+_a(e&&e.column)}function Ca(e){return _i(e&&e.start)+"-"+_i(e&&e.end)}function _a(e){return e&&typeof e=="number"?e:1}class Ee extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let s="",a={},o=!1;if(n&&("line"in n&&"column"in n?a={place:n}:"start"in n&&"end"in n?a={place:n}:"type"in n?a={ancestors:[n],place:n.position}:a={...n}),typeof t=="string"?s=t:!a.cause&&t&&(o=!0,s=t.message,a.cause=t),!a.ruleId&&!a.source&&typeof r=="string"){const c=r.indexOf(":");c===-1?a.ruleId=r:(a.source=r.slice(0,c),a.ruleId=r.slice(c+1))}if(!a.place&&a.ancestors&&a.ancestors){const c=a.ancestors[a.ancestors.length-1];c&&(a.place=c.position)}const l=a.place&&"start"in a.place?a.place.start:a.place;this.ancestors=a.ancestors||void 0,this.cause=a.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=s,this.line=l?l.line:void 0,this.name=Bn(a.place)||"1:1",this.place=a.place||void 0,this.reason=this.message,this.ruleId=a.ruleId||void 0,this.source=a.source||void 0,this.stack=o&&a.cause&&typeof a.cause.stack=="string"?a.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Ee.prototype.file="";Ee.prototype.name="";Ee.prototype.reason="";Ee.prototype.message="";Ee.prototype.stack="";Ee.prototype.column=void 0;Ee.prototype.line=void 0;Ee.prototype.ancestors=void 0;Ee.prototype.cause=void 0;Ee.prototype.fatal=void 0;Ee.prototype.place=void 0;Ee.prototype.ruleId=void 0;Ee.prototype.source=void 0;const Wi={}.hasOwnProperty,Fu=new Map,Du=/[A-Z]/g,zu=new Set(["table","tbody","thead","tfoot","tr"]),qu=new Set(["td","th"]),sl="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Bu(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=Gu(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=Wu(n,t.jsx,t.jsxs)}const s={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Qi:Eu,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=al(s,e,void 0);return a&&typeof a!="string"?a:s.create(e,s.Fragment,{children:a||void 0},void 0)}function al(e,t,n){if(t.type==="element")return Uu(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return $u(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Ku(e,t,n);if(t.type==="mdxjsEsm")return Hu(e,t);if(t.type==="root")return Qu(e,t,n);if(t.type==="text")return Vu(e,t)}function Uu(e,t,n){const r=e.schema;let s=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(s=Qi,e.schema=s),e.ancestors.push(t);const a=ll(e,t.tagName,!1),o=Ju(e,t);let l=Ji(e,t);return zu.has(t.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!bu(c):!0})),ol(e,o,a,t),Gi(o,l),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function $u(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}Jn(e,t.position)}function Hu(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Jn(e,t.position)}function Ku(e,t,n){const r=e.schema;let s=r;t.name==="svg"&&r.space==="html"&&(s=Qi,e.schema=s),e.ancestors.push(t);const a=t.name===null?e.Fragment:ll(e,t.name,!0),o=Xu(e,t),l=Ji(e,t);return ol(e,o,a,t),Gi(o,l),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Qu(e,t,n){const r={};return Gi(r,Ji(e,t)),e.create(t,e.Fragment,r,n)}function Vu(e,t){return t.value}function ol(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function Gi(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function Wu(e,t,n){return r;function r(s,a,o,l){const u=Array.isArray(o.children)?n:t;return l?u(a,o,l):u(a,o)}}function Gu(e,t){return n;function n(r,s,a,o){const l=Array.isArray(a.children),c=Vi(r);return t(s,a,o,l,{columnNumber:c?c.column-1:void 0,fileName:e,lineNumber:c?c.line:void 0},void 0)}}function Ju(e,t){const n={};let r,s;for(s in t.properties)if(s!=="children"&&Wi.call(t.properties,s)){const a=Yu(e,s,t.properties[s]);if(a){const[o,l]=a;e.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&qu.has(t.tagName)?r=l:n[o]=l}}if(r){const a=n.style||(n.style={});a[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function Xu(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const a=r.data.estree.body[0];a.type;const o=a.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else Jn(e,t.position);else{const s=r.name;let a;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,a=e.evaluater.evaluateExpression(l.expression)}else Jn(e,t.position);else a=r.value===null?!0:r.value;n[s]=a}return n}function Ji(e,t){const n=[];let r=-1;const s=e.passKeys?new Map:Fu;for(;++rs?0:s+t:t=t>s?s:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(ct(e,e.length,0,t),e):t}const Ra={}.hasOwnProperty;function ad(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function nn(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const ot=Tt(/[A-Za-z]/),Ue=Tt(/[\dA-Za-z]/),cd=Tt(/[#-'*+\--9=?A-Z^-~]/);function Ei(e){return e!==null&&(e<32||e===127)}const Pi=Tt(/\d/),ud=Tt(/[\dA-Fa-f]/),dd=Tt(/[!-/:-@[-`{-~]/);function $(e){return e!==null&&e<-2}function Me(e){return e!==null&&(e<0||e===32)}function ne(e){return e===-2||e===-1||e===32}const hd=Tt(new RegExp("\\p{P}|\\p{S}","u")),pd=Tt(/\s/);function Tt(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function kn(e){const t=[];let n=-1,r=0,s=0;for(;++n55295&&a<57344){const l=e.charCodeAt(n+1);a<56320&&l>56319&&l<57344?(o=String.fromCharCode(a,l),s=1):o="�"}else o=String.fromCharCode(a);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+s+1,o=""),s&&(n+=s,s=0)}return t.join("")+e.slice(r)}function ue(e,t,n,r){const s=r?r-1:Number.POSITIVE_INFINITY;let a=0;return o;function o(c){return ne(c)?(e.enter(n),l(c)):t(c)}function l(c){return ne(c)&&a++o))return;const B=t.events.length;let O=B,P,_;for(;O--;)if(t.events[O][0]==="exit"&&t.events[O][1].type==="chunkFlow"){if(P){_=t.events[O][1].end;break}P=!0}for(b(r),j=B;jC;){const q=n[k];t.containerState=q[1],q[0].exit.call(t,e)}n.length=C}function N(){s.write([null]),a=void 0,s=void 0,t.containerState._closeFlow=void 0}}function bd(e,t,n){return ue(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Ta(e){if(e===null||Me(e)||pd(e))return 1;if(hd(e))return 2}function Yi(e,t,n){const r=[];let s=-1;for(;++s1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const h={...e[r][1].end},m={...e[n][1].start};Aa(h,-c),Aa(m,c),o={type:c>1?"strongSequence":"emphasisSequence",start:h,end:{...e[r][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:m},a={type:c>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},s={type:c>1?"strong":"emphasis",start:{...o.start},end:{...l.end}},e[r][1].end={...o.start},e[n][1].start={...l.end},u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=Ke(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=Ke(u,[["enter",s,t],["enter",o,t],["exit",o,t],["enter",a,t]]),u=Ke(u,Yi(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=Ke(u,[["exit",a,t],["enter",l,t],["exit",l,t],["exit",s,t]]),e[n][1].end.offset-e[n][1].start.offset?(d=2,u=Ke(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):d=0,ct(e,r-1,n-r+3,u),n=r+u.length-d-2;break}}for(n=-1;++n0&&ne(j)?ue(e,N,"linePrefix",a+1)(j):N(j)}function N(j){return j===null||$(j)?e.check(La,w,k)(j):(e.enter("codeFlowValue"),C(j))}function C(j){return j===null||$(j)?(e.exit("codeFlowValue"),N(j)):(e.consume(j),C)}function k(j){return e.exit("codeFenced"),t(j)}function q(j,B,O){let P=0;return _;function _(E){return j.enter("lineEnding"),j.consume(E),j.exit("lineEnding"),T}function T(E){return j.enter("codeFencedFence"),ne(E)?ue(j,R,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(E):R(E)}function R(E){return E===l?(j.enter("codeFencedFenceSequence"),G(E)):O(E)}function G(E){return E===l?(P++,j.consume(E),G):P>=o?(j.exit("codeFencedFenceSequence"),ne(E)?ue(j,z,"whitespace")(E):z(E)):O(E)}function z(E){return E===null||$(E)?(j.exit("codeFencedFence"),B(E)):O(E)}}}function Rd(e,t,n){const r=this;return s;function s(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),a)}function a(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Wr={name:"codeIndented",tokenize:Td},Id={partial:!0,tokenize:Ad};function Td(e,t,n){const r=this;return s;function s(u){return e.enter("codeIndented"),ue(e,a,"linePrefix",5)(u)}function a(u){const d=r.events[r.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?o(u):n(u)}function o(u){return u===null?c(u):$(u)?e.attempt(Id,o,c)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||$(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),l)}function c(u){return e.exit("codeIndented"),t(u)}}function Ad(e,t,n){const r=this;return s;function s(o){return r.parser.lazy[r.now().line]?n(o):$(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),s):ue(e,a,"linePrefix",5)(o)}function a(o){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(o):$(o)?s(o):n(o)}}const Ld={name:"codeText",previous:Od,resolve:Md,tokenize:Fd};function Md(e){let t=e.length-4,n=3,r,s;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const s=n||0;this.setCursor(Math.trunc(t));const a=this.right.splice(this.right.length-s,Number.POSITIVE_INFINITY);return r&&An(this.left,r),a.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),An(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),An(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function fl(e,t,n,r,s,a,o,l,c){const u=c||Number.POSITIVE_INFINITY;let d=0;return h;function h(b){return b===60?(e.enter(r),e.enter(s),e.enter(a),e.consume(b),e.exit(a),m):b===null||b===32||b===41||Ei(b)?n(b):(e.enter(r),e.enter(o),e.enter(l),e.enter("chunkString",{contentType:"string"}),w(b))}function m(b){return b===62?(e.enter(a),e.consume(b),e.exit(a),e.exit(s),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),p(b))}function p(b){return b===62?(e.exit("chunkString"),e.exit(l),m(b)):b===null||b===60||$(b)?n(b):(e.consume(b),b===92?y:p)}function y(b){return b===60||b===62||b===92?(e.consume(b),p):p(b)}function w(b){return!d&&(b===null||b===41||Me(b))?(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(b)):d999||p===null||p===91||p===93&&!c||p===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?n(p):p===93?(e.exit(a),e.enter(s),e.consume(p),e.exit(s),e.exit(r),t):$(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),d):(e.enter("chunkString",{contentType:"string"}),h(p))}function h(p){return p===null||p===91||p===93||$(p)||l++>999?(e.exit("chunkString"),d(p)):(e.consume(p),c||(c=!ne(p)),p===92?m:h)}function m(p){return p===91||p===92||p===93?(e.consume(p),l++,h):h(p)}}function gl(e,t,n,r,s,a){let o;return l;function l(m){return m===34||m===39||m===40?(e.enter(r),e.enter(s),e.consume(m),e.exit(s),o=m===40?41:m,c):n(m)}function c(m){return m===o?(e.enter(s),e.consume(m),e.exit(s),e.exit(r),t):(e.enter(a),u(m))}function u(m){return m===o?(e.exit(a),c(o)):m===null?n(m):$(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),ue(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),d(m))}function d(m){return m===o||m===null||$(m)?(e.exit("chunkString"),u(m)):(e.consume(m),m===92?h:d)}function h(m){return m===o||m===92?(e.consume(m),d):d(m)}}function Un(e,t){let n;return r;function r(s){return $(s)?(e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),n=!0,r):ne(s)?ue(e,r,n?"linePrefix":"lineSuffix")(s):t(s)}}const Kd={name:"definition",tokenize:Vd},Qd={partial:!0,tokenize:Wd};function Vd(e,t,n){const r=this;let s;return a;function a(p){return e.enter("definition"),o(p)}function o(p){return xl.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(p)}function l(p){return s=nn(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),p===58?(e.enter("definitionMarker"),e.consume(p),e.exit("definitionMarker"),c):n(p)}function c(p){return Me(p)?Un(e,u)(p):u(p)}function u(p){return fl(e,d,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(p)}function d(p){return e.attempt(Qd,h,h)(p)}function h(p){return ne(p)?ue(e,m,"whitespace")(p):m(p)}function m(p){return p===null||$(p)?(e.exit("definition"),r.parser.defined.push(s),t(p)):n(p)}}function Wd(e,t,n){return r;function r(l){return Me(l)?Un(e,s)(l):n(l)}function s(l){return gl(e,a,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function a(l){return ne(l)?ue(e,o,"whitespace")(l):o(l)}function o(l){return l===null||$(l)?t(l):n(l)}}const Gd={name:"hardBreakEscape",tokenize:Jd};function Jd(e,t,n){return r;function r(a){return e.enter("hardBreakEscape"),e.consume(a),s}function s(a){return $(a)?(e.exit("hardBreakEscape"),t(a)):n(a)}}const Xd={name:"headingAtx",resolve:Yd,tokenize:Zd};function Yd(e,t){let n=e.length-2,r=3,s,a;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(s={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},a={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ct(e,r,n-r+1,[["enter",s,t],["enter",a,t],["exit",a,t],["exit",s,t]])),e}function Zd(e,t,n){let r=0;return s;function s(d){return e.enter("atxHeading"),a(d)}function a(d){return e.enter("atxHeadingSequence"),o(d)}function o(d){return d===35&&r++<6?(e.consume(d),o):d===null||Me(d)?(e.exit("atxHeadingSequence"),l(d)):n(d)}function l(d){return d===35?(e.enter("atxHeadingSequence"),c(d)):d===null||$(d)?(e.exit("atxHeading"),t(d)):ne(d)?ue(e,l,"whitespace")(d):(e.enter("atxHeadingText"),u(d))}function c(d){return d===35?(e.consume(d),c):(e.exit("atxHeadingSequence"),l(d))}function u(d){return d===null||d===35||Me(d)?(e.exit("atxHeadingText"),l(d)):(e.consume(d),u)}}const eh=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Oa=["pre","script","style","textarea"],th={concrete:!0,name:"htmlFlow",resolveTo:ih,tokenize:sh},nh={partial:!0,tokenize:oh},rh={partial:!0,tokenize:ah};function ih(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function sh(e,t,n){const r=this;let s,a,o,l,c;return u;function u(x){return d(x)}function d(x){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(x),h}function h(x){return x===33?(e.consume(x),m):x===47?(e.consume(x),a=!0,w):x===63?(e.consume(x),s=3,r.interrupt?t:f):ot(x)?(e.consume(x),o=String.fromCharCode(x),v):n(x)}function m(x){return x===45?(e.consume(x),s=2,p):x===91?(e.consume(x),s=5,l=0,y):ot(x)?(e.consume(x),s=4,r.interrupt?t:f):n(x)}function p(x){return x===45?(e.consume(x),r.interrupt?t:f):n(x)}function y(x){const Fe="CDATA[";return x===Fe.charCodeAt(l++)?(e.consume(x),l===Fe.length?r.interrupt?t:R:y):n(x)}function w(x){return ot(x)?(e.consume(x),o=String.fromCharCode(x),v):n(x)}function v(x){if(x===null||x===47||x===62||Me(x)){const Fe=x===47,we=o.toLowerCase();return!Fe&&!a&&Oa.includes(we)?(s=1,r.interrupt?t(x):R(x)):eh.includes(o.toLowerCase())?(s=6,Fe?(e.consume(x),b):r.interrupt?t(x):R(x)):(s=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(x):a?N(x):C(x))}return x===45||Ue(x)?(e.consume(x),o+=String.fromCharCode(x),v):n(x)}function b(x){return x===62?(e.consume(x),r.interrupt?t:R):n(x)}function N(x){return ne(x)?(e.consume(x),N):_(x)}function C(x){return x===47?(e.consume(x),_):x===58||x===95||ot(x)?(e.consume(x),k):ne(x)?(e.consume(x),C):_(x)}function k(x){return x===45||x===46||x===58||x===95||Ue(x)?(e.consume(x),k):q(x)}function q(x){return x===61?(e.consume(x),j):ne(x)?(e.consume(x),q):C(x)}function j(x){return x===null||x===60||x===61||x===62||x===96?n(x):x===34||x===39?(e.consume(x),c=x,B):ne(x)?(e.consume(x),j):O(x)}function B(x){return x===c?(e.consume(x),c=null,P):x===null||$(x)?n(x):(e.consume(x),B)}function O(x){return x===null||x===34||x===39||x===47||x===60||x===61||x===62||x===96||Me(x)?q(x):(e.consume(x),O)}function P(x){return x===47||x===62||ne(x)?C(x):n(x)}function _(x){return x===62?(e.consume(x),T):n(x)}function T(x){return x===null||$(x)?R(x):ne(x)?(e.consume(x),T):n(x)}function R(x){return x===45&&s===2?(e.consume(x),F):x===60&&s===1?(e.consume(x),V):x===62&&s===4?(e.consume(x),ce):x===63&&s===3?(e.consume(x),f):x===93&&s===5?(e.consume(x),ie):$(x)&&(s===6||s===7)?(e.exit("htmlFlowData"),e.check(nh,Se,G)(x)):x===null||$(x)?(e.exit("htmlFlowData"),G(x)):(e.consume(x),R)}function G(x){return e.check(rh,z,Se)(x)}function z(x){return e.enter("lineEnding"),e.consume(x),e.exit("lineEnding"),E}function E(x){return x===null||$(x)?G(x):(e.enter("htmlFlowData"),R(x))}function F(x){return x===45?(e.consume(x),f):R(x)}function V(x){return x===47?(e.consume(x),o="",de):R(x)}function de(x){if(x===62){const Fe=o.toLowerCase();return Oa.includes(Fe)?(e.consume(x),ce):R(x)}return ot(x)&&o.length<8?(e.consume(x),o+=String.fromCharCode(x),de):R(x)}function ie(x){return x===93?(e.consume(x),f):R(x)}function f(x){return x===62?(e.consume(x),ce):x===45&&s===2?(e.consume(x),f):R(x)}function ce(x){return x===null||$(x)?(e.exit("htmlFlowData"),Se(x)):(e.consume(x),ce)}function Se(x){return e.exit("htmlFlow"),t(x)}}function ah(e,t,n){const r=this;return s;function s(o){return $(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),a):n(o)}function a(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function oh(e,t,n){return r;function r(s){return e.enter("lineEnding"),e.consume(s),e.exit("lineEnding"),e.attempt(qr,t,n)}}const lh={name:"htmlText",tokenize:ch};function ch(e,t,n){const r=this;let s,a,o;return l;function l(f){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(f),c}function c(f){return f===33?(e.consume(f),u):f===47?(e.consume(f),q):f===63?(e.consume(f),C):ot(f)?(e.consume(f),O):n(f)}function u(f){return f===45?(e.consume(f),d):f===91?(e.consume(f),a=0,y):ot(f)?(e.consume(f),N):n(f)}function d(f){return f===45?(e.consume(f),p):n(f)}function h(f){return f===null?n(f):f===45?(e.consume(f),m):$(f)?(o=h,V(f)):(e.consume(f),h)}function m(f){return f===45?(e.consume(f),p):h(f)}function p(f){return f===62?F(f):f===45?m(f):h(f)}function y(f){const ce="CDATA[";return f===ce.charCodeAt(a++)?(e.consume(f),a===ce.length?w:y):n(f)}function w(f){return f===null?n(f):f===93?(e.consume(f),v):$(f)?(o=w,V(f)):(e.consume(f),w)}function v(f){return f===93?(e.consume(f),b):w(f)}function b(f){return f===62?F(f):f===93?(e.consume(f),b):w(f)}function N(f){return f===null||f===62?F(f):$(f)?(o=N,V(f)):(e.consume(f),N)}function C(f){return f===null?n(f):f===63?(e.consume(f),k):$(f)?(o=C,V(f)):(e.consume(f),C)}function k(f){return f===62?F(f):C(f)}function q(f){return ot(f)?(e.consume(f),j):n(f)}function j(f){return f===45||Ue(f)?(e.consume(f),j):B(f)}function B(f){return $(f)?(o=B,V(f)):ne(f)?(e.consume(f),B):F(f)}function O(f){return f===45||Ue(f)?(e.consume(f),O):f===47||f===62||Me(f)?P(f):n(f)}function P(f){return f===47?(e.consume(f),F):f===58||f===95||ot(f)?(e.consume(f),_):$(f)?(o=P,V(f)):ne(f)?(e.consume(f),P):F(f)}function _(f){return f===45||f===46||f===58||f===95||Ue(f)?(e.consume(f),_):T(f)}function T(f){return f===61?(e.consume(f),R):$(f)?(o=T,V(f)):ne(f)?(e.consume(f),T):P(f)}function R(f){return f===null||f===60||f===61||f===62||f===96?n(f):f===34||f===39?(e.consume(f),s=f,G):$(f)?(o=R,V(f)):ne(f)?(e.consume(f),R):(e.consume(f),z)}function G(f){return f===s?(e.consume(f),s=void 0,E):f===null?n(f):$(f)?(o=G,V(f)):(e.consume(f),G)}function z(f){return f===null||f===34||f===39||f===60||f===61||f===96?n(f):f===47||f===62||Me(f)?P(f):(e.consume(f),z)}function E(f){return f===47||f===62||Me(f)?P(f):n(f)}function F(f){return f===62?(e.consume(f),e.exit("htmlTextData"),e.exit("htmlText"),t):n(f)}function V(f){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(f),e.exit("lineEnding"),de}function de(f){return ne(f)?ue(e,ie,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(f):ie(f)}function ie(f){return e.enter("htmlTextData"),o(f)}}const Zi={name:"labelEnd",resolveAll:ph,resolveTo:mh,tokenize:fh},uh={tokenize:xh},dh={tokenize:gh},hh={tokenize:bh};function ph(e){let t=-1;const n=[];for(;++t=3&&(u===null||$(u))?(e.exit("thematicBreak"),t(u)):n(u)}function c(u){return u===s?(e.consume(u),r++,c):(e.exit("thematicBreakSequence"),ne(u)?ue(e,l,"whitespace")(u):l(u))}}const Te={continuation:{tokenize:Eh},exit:Rh,name:"list",tokenize:_h},Sh={partial:!0,tokenize:Ih},Ch={partial:!0,tokenize:Ph};function _h(e,t,n){const r=this,s=r.events[r.events.length-1];let a=s&&s[1].type==="linePrefix"?s[2].sliceSerialize(s[1],!0).length:0,o=0;return l;function l(p){const y=r.containerState.type||(p===42||p===43||p===45?"listUnordered":"listOrdered");if(y==="listUnordered"?!r.containerState.marker||p===r.containerState.marker:Pi(p)){if(r.containerState.type||(r.containerState.type=y,e.enter(y,{_container:!0})),y==="listUnordered")return e.enter("listItemPrefix"),p===42||p===45?e.check(Pr,n,u)(p):u(p);if(!r.interrupt||p===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),c(p)}return n(p)}function c(p){return Pi(p)&&++o<10?(e.consume(p),c):(!r.interrupt||o<2)&&(r.containerState.marker?p===r.containerState.marker:p===41||p===46)?(e.exit("listItemValue"),u(p)):n(p)}function u(p){return e.enter("listItemMarker"),e.consume(p),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||p,e.check(qr,r.interrupt?n:d,e.attempt(Sh,m,h))}function d(p){return r.containerState.initialBlankLine=!0,a++,m(p)}function h(p){return ne(p)?(e.enter("listItemPrefixWhitespace"),e.consume(p),e.exit("listItemPrefixWhitespace"),m):n(p)}function m(p){return r.containerState.size=a+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(p)}}function Eh(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(qr,s,a);function s(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,ue(e,t,"listItemIndent",r.containerState.size+1)(l)}function a(l){return r.containerState.furtherBlankLines||!ne(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Ch,t,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,ue(e,e.attempt(Te,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function Ph(e,t,n){const r=this;return ue(e,s,"listItemIndent",r.containerState.size+1);function s(a){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(a):n(a)}}function Rh(e){e.exit(this.containerState.type)}function Ih(e,t,n){const r=this;return ue(e,s,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function s(a){const o=r.events[r.events.length-1];return!ne(a)&&o&&o[1].type==="listItemPrefixWhitespace"?t(a):n(a)}}const Fa={name:"setextUnderline",resolveTo:Th,tokenize:Ah};function Th(e,t){let n=e.length,r,s,a;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(s=n)}else e[n][1].type==="content"&&e.splice(n,1),!a&&e[n][1].type==="definition"&&(a=n);const o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[s][1].type="setextHeadingText",a?(e.splice(s,0,["enter",o,t]),e.splice(a+1,0,["exit",e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push(["exit",o,t]),e}function Ah(e,t,n){const r=this;let s;return a;function a(u){let d=r.events.length,h;for(;d--;)if(r.events[d][1].type!=="lineEnding"&&r.events[d][1].type!=="linePrefix"&&r.events[d][1].type!=="content"){h=r.events[d][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||h)?(e.enter("setextHeadingLine"),s=u,o(u)):n(u)}function o(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===s?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),ne(u)?ue(e,c,"lineSuffix")(u):c(u))}function c(u){return u===null||$(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const Lh={tokenize:Mh};function Mh(e){const t=this,n=e.attempt(qr,r,e.attempt(this.parser.constructs.flowInitial,s,ue(e,e.attempt(this.parser.constructs.flow,s,e.attempt(qd,s)),"linePrefix")));return n;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEndingBlank"),e.consume(a),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function s(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const Oh={resolveAll:yl()},Fh=bl("string"),Dh=bl("text");function bl(e){return{resolveAll:yl(e==="text"?zh:void 0),tokenize:t};function t(n){const r=this,s=this.parser.constructs[e],a=n.attempt(s,o,l);return o;function o(d){return u(d)?a(d):l(d)}function l(d){if(d===null){n.consume(d);return}return n.enter("data"),n.consume(d),c}function c(d){return u(d)?(n.exit("data"),a(d)):(n.consume(d),c)}function u(d){if(d===null)return!0;const h=s[d];let m=-1;if(h)for(;++m-1){const l=o[0];typeof l=="string"?o[0]=l.slice(r):o.shift()}a>0&&o.push(e[s].slice(0,a))}return o}function Yh(e,t){let n=-1;const r=[];let s;for(;++n0){const Pe=H.tokenStack[H.tokenStack.length-1];(Pe[1]||za).call(H,void 0,Pe[0])}for(A.position={start:yt(S.length>0?S[0][1].start:{line:1,column:1,offset:0}),end:yt(S.length>0?S[S.length-2][1].end:{line:1,column:1,offset:0})},se=-1;++se0&&(r.className=["language-"+s[0]]);let a={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:"element",tagName:"pre",properties:{},children:[a]},e.patch(t,a),a}function hp(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function pp(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function mp(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),s=kn(r.toLowerCase()),a=e.footnoteOrder.indexOf(r);let o,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,l+=1,e.footnoteCounts.set(r,l);const c={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+s,id:n+"fnref-"+s+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,c);const u={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(t,u),e.applyData(t,u)}function fp(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function xp(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function jl(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const s=e.all(t),a=s[0];a&&a.type==="text"?a.value="["+a.value:s.unshift({type:"text",value:"["});const o=s[s.length-1];return o&&o.type==="text"?o.value+=r:s.push({type:"text",value:r}),s}function gp(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return jl(e,t);const s={src:kn(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(s.title=r.title);const a={type:"element",tagName:"img",properties:s,children:[]};return e.patch(t,a),e.applyData(t,a)}function bp(e,t){const n={src:kn(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function yp(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function wp(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return jl(e,t);const s={href:kn(r.url||"")};r.title!==null&&r.title!==void 0&&(s.title=r.title);const a={type:"element",tagName:"a",properties:s,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function vp(e,t){const n={href:kn(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function jp(e,t,n){const r=e.all(t),s=n?kp(n):kl(t),a={},o=[];if(typeof t.checked=="boolean"){const d=r[0];let h;d&&d.type==="element"&&d.tagName==="p"?h=d:(h={type:"element",tagName:"p",properties:{},children:[]},r.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),a.className=["task-list-item"]}let l=-1;for(;++l1}function Np(e,t){const n={},r=e.all(t);let s=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++s0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=Vi(t.children[1]),c=rl(t.children[t.children.length-1]);l&&c&&(o.position={start:l,end:c}),s.push(o)}const a={type:"element",tagName:"table",properties:{},children:e.wrap(s,!0)};return e.patch(t,a),e.applyData(t,a)}function Pp(e,t,n){const r=n?n.children:void 0,a=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,l=o?o.length:t.children.length;let c=-1;const u=[];for(;++c0,!0),r[0]),s=r.index+r[0].length,r=n.exec(t);return a.push(Ua(t.slice(s),s>0,!1)),a.join("")}function Ua(e,t,n){let r=0,s=e.length;if(t){let a=e.codePointAt(r);for(;a===qa||a===Ba;)r++,a=e.codePointAt(r)}if(n){let a=e.codePointAt(s-1);for(;a===qa||a===Ba;)s--,a=e.codePointAt(s-1)}return s>r?e.slice(r,s):""}function Tp(e,t){const n={type:"text",value:Ip(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function Ap(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const Lp={blockquote:cp,break:up,code:dp,delete:hp,emphasis:pp,footnoteReference:mp,heading:fp,html:xp,imageReference:gp,image:bp,inlineCode:yp,linkReference:wp,link:vp,listItem:jp,list:Np,paragraph:Sp,root:Cp,strong:_p,table:Ep,tableCell:Rp,tableRow:Pp,text:Tp,thematicBreak:Ap,toml:jr,yaml:jr,definition:jr,footnoteDefinition:jr};function jr(){}const Nl=-1,Br=0,$n=1,Ar=2,es=3,ts=4,ns=5,rs=6,Sl=7,Cl=8,Mp=typeof self=="object"?self:globalThis,$a=(e,t)=>{switch(e){case"Function":case"SharedWorker":case"Worker":case"eval":case"setInterval":case"setTimeout":throw new TypeError("unable to deserialize "+e)}return new Mp[e](t)},Op=(e,t)=>{const n=(s,a)=>(e.set(a,s),s),r=s=>{if(e.has(s))return e.get(s);const[a,o]=t[s];switch(a){case Br:case Nl:return n(o,s);case $n:{const l=n([],s);for(const c of o)l.push(r(c));return l}case Ar:{const l=n({},s);for(const[c,u]of o)l[r(c)]=r(u);return l}case es:return n(new Date(o),s);case ts:{const{source:l,flags:c}=o;return n(new RegExp(l,c),s)}case ns:{const l=n(new Map,s);for(const[c,u]of o)l.set(r(c),r(u));return l}case rs:{const l=n(new Set,s);for(const c of o)l.add(r(c));return l}case Sl:{const{name:l,message:c}=o;return n($a(l,c),s)}case Cl:return n(BigInt(o),s);case"BigInt":return n(Object(BigInt(o)),s);case"ArrayBuffer":return n(new Uint8Array(o).buffer,o);case"DataView":{const{buffer:l}=new Uint8Array(o);return n(new DataView(l),o)}}return n($a(a,o),s)};return r},Ha=e=>Op(new Map,e)(0),tn="",{toString:Fp}={},{keys:Dp}=Object,Ln=e=>{const t=typeof e;if(t!=="object"||!e)return[Br,t];const n=Fp.call(e).slice(8,-1);switch(n){case"Array":return[$n,tn];case"Object":return[Ar,tn];case"Date":return[es,tn];case"RegExp":return[ts,tn];case"Map":return[ns,tn];case"Set":return[rs,tn];case"DataView":return[$n,n]}return n.includes("Array")?[$n,n]:n.includes("Error")?[Sl,n]:[Ar,n]},kr=([e,t])=>e===Br&&(t==="function"||t==="symbol"),zp=(e,t,n,r)=>{const s=(o,l)=>{const c=r.push(o)-1;return n.set(l,c),c},a=o=>{if(n.has(o))return n.get(o);let[l,c]=Ln(o);switch(l){case Br:{let d=o;switch(c){case"bigint":l=Cl,d=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+c);d=null;break;case"undefined":return s([Nl],o)}return s([l,d],o)}case $n:{if(c){let m=o;return c==="DataView"?m=new Uint8Array(o.buffer):c==="ArrayBuffer"&&(m=new Uint8Array(o)),s([c,[...m]],o)}const d=[],h=s([l,d],o);for(const m of o)d.push(a(m));return h}case Ar:{if(c)switch(c){case"BigInt":return s([c,o.toString()],o);case"Boolean":case"Number":case"String":return s([c,o.valueOf()],o)}if(t&&"toJSON"in o)return a(o.toJSON());const d=[],h=s([l,d],o);for(const m of Dp(o))(e||!kr(Ln(o[m])))&&d.push([a(m),a(o[m])]);return h}case es:return s([l,o.toISOString()],o);case ts:{const{source:d,flags:h}=o;return s([l,{source:d,flags:h}],o)}case ns:{const d=[],h=s([l,d],o);for(const[m,p]of o)(e||!(kr(Ln(m))||kr(Ln(p))))&&d.push([a(m),a(p)]);return h}case rs:{const d=[],h=s([l,d],o);for(const m of o)(e||!kr(Ln(m)))&&d.push(a(m));return h}}const{message:u}=o;return s([l,{name:c,message:u}],o)};return a},Ka=(e,{json:t,lossy:n}={})=>{const r=[];return zp(!(t||n),!!t,new Map,r)(e),r},Lr=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Ha(Ka(e,t)):structuredClone(e):(e,t)=>Ha(Ka(e,t));function qp(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function Bp(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function Up(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||qp,r=e.options.footnoteBackLabel||Bp,s=e.options.footnoteLabel||"Footnotes",a=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let c=-1;for(;++c0&&y.push({type:"text",value:" "});let N=typeof n=="string"?n:n(c,p);typeof N=="string"&&(N={type:"text",value:N}),y.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+m+(p>1?"-"+p:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(c,p),className:["data-footnote-backref"]},children:Array.isArray(N)?N:[N]})}const v=d[d.length-1];if(v&&v.type==="element"&&v.tagName==="p"){const N=v.children[v.children.length-1];N&&N.type==="text"?N.value+=" ":v.children.push({type:"text",value:" "}),v.children.push(...y)}else d.push(...y);const b={type:"element",tagName:"li",properties:{id:t+"fn-"+m},children:e.wrap(d,!0)};e.patch(u,b),l.push(b)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:a,properties:{...Lr(o),id:"footnote-label"},children:[{type:"text",value:s}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` -`}]}}const _l=(function(e){if(e==null)return Qp;if(typeof e=="function")return Ur(e);if(typeof e=="object")return Array.isArray(e)?$p(e):Hp(e);if(typeof e=="string")return Kp(e);throw new Error("Expected function, string, or object as test")});function $p(e){const t=[];let n=-1;for(;++n":""))+")"})}return m;function m(){let p=El,y,w,v;if((!t||a(c,u,d[d.length-1]||void 0))&&(p=Xp(n(c,d)),p[0]===Qa))return p;if("children"in c&&c.children){const b=c;if(b.children&&p[0]!==Gp)for(w=(r?b.children.length:-1)+o,v=d.concat(b);w>-1&&w0&&n.push({type:"text",value:` -`}),n}function Va(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Wa(e,t){const n=Zp(e,t),r=n.one(e,void 0),s=Up(n),a=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return s&&a.children.push({type:"text",value:` -`},s),a}function im(e,t){return e&&"run"in e?async function(n,r){const s=Wa(n,{file:r,...t});await e.run(s,r)}:function(n,r){return Wa(n,{file:r,...e||t})}}function Ga(e){if(e)throw e}var Jr,Ja;function sm(){if(Ja)return Jr;Ja=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,s=function(u){return typeof Array.isArray=="function"?Array.isArray(u):t.call(u)==="[object Array]"},a=function(u){if(!u||t.call(u)!=="[object Object]")return!1;var d=e.call(u,"constructor"),h=u.constructor&&u.constructor.prototype&&e.call(u.constructor.prototype,"isPrototypeOf");if(u.constructor&&!d&&!h)return!1;var m;for(m in u);return typeof m>"u"||e.call(u,m)},o=function(u,d){n&&d.name==="__proto__"?n(u,d.name,{enumerable:!0,configurable:!0,value:d.newValue,writable:!0}):u[d.name]=d.newValue},l=function(u,d){if(d==="__proto__")if(e.call(u,d)){if(r)return r(u,d).value}else return;return u[d]};return Jr=function c(){var u,d,h,m,p,y,w=arguments[0],v=1,b=arguments.length,N=!1;for(typeof w=="boolean"&&(N=w,w=arguments[1]||{},v=2),(w==null||typeof w!="object"&&typeof w!="function")&&(w={});vo.length;let c;l&&o.push(s);try{c=e.apply(this,o)}catch(u){const d=u;if(l&&n)throw d;return s(d)}l||(c&&c.then&&typeof c.then=="function"?c.then(a,s):c instanceof Error?s(c):a(c))}function s(o,...l){n||(n=!0,t(o,...l))}function a(o){s(null,o)}}const rt={basename:cm,dirname:um,extname:dm,join:hm,sep:"/"};function cm(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');dr(e);let n=0,r=-1,s=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;s--;)if(e.codePointAt(s)===47){if(a){n=s+1;break}}else r<0&&(a=!0,r=s+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,l=t.length-1;for(;s--;)if(e.codePointAt(s)===47){if(a){n=s+1;break}}else o<0&&(a=!0,o=s+1),l>-1&&(e.codePointAt(s)===t.codePointAt(l--)?l<0&&(r=s):(l=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function um(e){if(dr(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function dm(e){dr(e);let t=e.length,n=-1,r=0,s=-1,a=0,o;for(;t--;){const l=e.codePointAt(t);if(l===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),l===46?s<0?s=t:a!==1&&(a=1):s>-1&&(a=-1)}return s<0||n<0||a===0||a===1&&s===n-1&&s===r+1?"":e.slice(s,n)}function hm(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function mm(e,t){let n="",r=0,s=-1,a=0,o=-1,l,c;for(;++o<=e.length;){if(o2){if(c=n.lastIndexOf("/"),c!==n.length-1){c<0?(n="",r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf("/")),s=o,a=0;continue}}else if(n.length>0){n="",r=0,s=o,a=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(s+1,o):n=e.slice(s+1,o),r=o-s-1;s=o,a=0}else l===46&&a>-1?a++:a=-1}return n}function dr(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const fm={cwd:xm};function xm(){return"/"}function Ai(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function gm(e){if(typeof e=="string")e=new URL(e);else if(!Ai(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return bm(e)}function bm(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[p,...y]=d;const w=r[m][1];Ti(w)&&Ti(p)&&(p=Xr(!0,w,p)),r[m]=[u,p,...y]}}}}const jm=new is().freeze();function ti(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function ni(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function ri(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Ya(e){if(!Ti(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function Za(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Nr(e){return km(e)?e:new Rl(e)}function km(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function Nm(e){return typeof e=="string"||Sm(e)}function Sm(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const Cm="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",eo=[],to={allowDangerousHtml:!0},_m=/^(https?|ircs?|mailto|xmpp)$/i,Em=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Pm(e){const t=Rm(e),n=Im(e);return Tm(t.runSync(t.parse(n),n),e)}function Rm(e){const t=e.rehypePlugins||eo,n=e.remarkPlugins||eo,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...to}:to;return jm().use(lp).use(n).use(im,r).use(t)}function Im(e){const t=e.children||"",n=new Rl;return typeof t=="string"&&(n.value=t),n}function Tm(e,t){const n=t.allowedElements,r=t.allowElement,s=t.components,a=t.disallowedElements,o=t.skipHtml,l=t.unwrapDisallowed,c=t.urlTransform||Am;for(const d of Em)Object.hasOwn(t,d.from)&&(""+d.from+(d.to?"use `"+d.to+"` instead":"remove it")+Cm+d.id,void 0);return Pl(e,u),Bu(e,{Fragment:i.Fragment,components:s,ignoreInvalidStyle:!0,jsx:i.jsx,jsxs:i.jsxs,passKeys:!0,passNode:!0});function u(d,h,m){if(d.type==="raw"&&m&&typeof h=="number")return o?m.children.splice(h,1):m.children[h]={type:"text",value:d.value},h;if(d.type==="element"){let p;for(p in Vr)if(Object.hasOwn(Vr,p)&&Object.hasOwn(d.properties,p)){const y=d.properties[p],w=Vr[p];(w===null||w.includes(d.tagName))&&(d.properties[p]=c(String(y||""),p,d))}}if(d.type==="element"){let p=n?!n.includes(d.tagName):a?a.includes(d.tagName):!1;if(!p&&r&&typeof h=="number"&&(p=!r(d,h,m)),p&&m&&typeof h=="number")return l&&d.children?m.children.splice(h,1,...d.children):m.children.splice(h,1),h}}}function Am(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),s=e.indexOf("/");return t===-1||s!==-1&&t>s||n!==-1&&t>n||r!==-1&&t>r||_m.test(e.slice(0,t))?e:""}const ss="-",Lm=e=>{const t=Om(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:o=>{const l=o.split(ss);return l[0]===""&&l.length!==1&&l.shift(),Il(l,t)||Mm(o)},getConflictingClassGroupIds:(o,l)=>{const c=n[o]||[];return l&&r[o]?[...c,...r[o]]:c}}},Il=(e,t)=>{var o;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),s=r?Il(e.slice(1),r):void 0;if(s)return s;if(t.validators.length===0)return;const a=e.join(ss);return(o=t.validators.find(({validator:l})=>l(a)))==null?void 0:o.classGroupId},no=/^\[(.+)\]$/,Mm=e=>{if(no.test(e)){const t=no.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},Om=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return Dm(Object.entries(e.classGroups),n).forEach(([a,o])=>{Li(o,r,a,t)}),r},Li=(e,t,n,r)=>{e.forEach(s=>{if(typeof s=="string"){const a=s===""?t:ro(t,s);a.classGroupId=n;return}if(typeof s=="function"){if(Fm(s)){Li(s(r),t,n,r);return}t.validators.push({validator:s,classGroupId:n});return}Object.entries(s).forEach(([a,o])=>{Li(o,ro(t,a),n,r)})})},ro=(e,t)=>{let n=e;return t.split(ss).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},Fm=e=>e.isThemeGetter,Dm=(e,t)=>t?e.map(([n,r])=>{const s=r.map(a=>typeof a=="string"?t+a:typeof a=="object"?Object.fromEntries(Object.entries(a).map(([o,l])=>[t+o,l])):a);return[n,s]}):e,zm=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const s=(a,o)=>{n.set(a,o),t++,t>e&&(t=0,r=n,n=new Map)};return{get(a){let o=n.get(a);if(o!==void 0)return o;if((o=r.get(a))!==void 0)return s(a,o),o},set(a,o){n.has(a)?n.set(a,o):s(a,o)}}},Tl="!",qm=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,s=t[0],a=t.length,o=l=>{const c=[];let u=0,d=0,h;for(let v=0;vd?h-d:void 0;return{modifiers:c,hasImportantModifier:p,baseClassName:y,maybePostfixModifierPosition:w}};return n?l=>n({className:l,parseClassName:o}):o},Bm=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},Um=e=>({cache:zm(e.cacheSize),parseClassName:qm(e),...Lm(e)}),$m=/\s+/,Hm=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:s}=t,a=[],o=e.trim().split($m);let l="";for(let c=o.length-1;c>=0;c-=1){const u=o[c],{modifiers:d,hasImportantModifier:h,baseClassName:m,maybePostfixModifierPosition:p}=n(u);let y=!!p,w=r(y?m.substring(0,p):m);if(!w){if(!y){l=u+(l.length>0?" "+l:l);continue}if(w=r(m),!w){l=u+(l.length>0?" "+l:l);continue}y=!1}const v=Bm(d).join(":"),b=h?v+Tl:v,N=b+w;if(a.includes(N))continue;a.push(N);const C=s(w,y);for(let k=0;k0?" "+l:l)}return l};function Km(){let e=0,t,n,r="";for(;e{if(typeof e=="string")return e;let t,n="";for(let r=0;rh(d),e());return n=Um(u),r=n.cache.get,s=n.cache.set,a=l,l(c)}function l(c){const u=r(c);if(u)return u;const d=Hm(c,n);return s(c,d),d}return function(){return a(Km.apply(null,arguments))}}const he=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},Ll=/^\[(?:([a-z-]+):)?(.+)\]$/i,Vm=/^\d+\/\d+$/,Wm=new Set(["px","full","screen"]),Gm=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Jm=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Xm=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ym=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Zm=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,pt=e=>rn(e)||Wm.has(e)||Vm.test(e),wt=e=>Nn(e,"length",lf),rn=e=>!!e&&!Number.isNaN(Number(e)),ii=e=>Nn(e,"number",rn),Mn=e=>!!e&&Number.isInteger(Number(e)),ef=e=>e.endsWith("%")&&rn(e.slice(0,-1)),W=e=>Ll.test(e),vt=e=>Gm.test(e),tf=new Set(["length","size","percentage"]),nf=e=>Nn(e,tf,Ml),rf=e=>Nn(e,"position",Ml),sf=new Set(["image","url"]),af=e=>Nn(e,sf,uf),of=e=>Nn(e,"",cf),On=()=>!0,Nn=(e,t,n)=>{const r=Ll.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},lf=e=>Jm.test(e)&&!Xm.test(e),Ml=()=>!1,cf=e=>Ym.test(e),uf=e=>Zm.test(e),df=()=>{const e=he("colors"),t=he("spacing"),n=he("blur"),r=he("brightness"),s=he("borderColor"),a=he("borderRadius"),o=he("borderSpacing"),l=he("borderWidth"),c=he("contrast"),u=he("grayscale"),d=he("hueRotate"),h=he("invert"),m=he("gap"),p=he("gradientColorStops"),y=he("gradientColorStopPositions"),w=he("inset"),v=he("margin"),b=he("opacity"),N=he("padding"),C=he("saturate"),k=he("scale"),q=he("sepia"),j=he("skew"),B=he("space"),O=he("translate"),P=()=>["auto","contain","none"],_=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto",W,t],R=()=>[W,t],G=()=>["",pt,wt],z=()=>["auto",rn,W],E=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],F=()=>["solid","dashed","dotted","double","none"],V=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],de=()=>["start","end","center","between","around","evenly","stretch"],ie=()=>["","0",W],f=()=>["auto","avoid","all","avoid-page","page","left","right","column"],ce=()=>[rn,W];return{cacheSize:500,separator:":",theme:{colors:[On],spacing:[pt,wt],blur:["none","",vt,W],brightness:ce(),borderColor:[e],borderRadius:["none","","full",vt,W],borderSpacing:R(),borderWidth:G(),contrast:ce(),grayscale:ie(),hueRotate:ce(),invert:ie(),gap:R(),gradientColorStops:[e],gradientColorStopPositions:[ef,wt],inset:T(),margin:T(),opacity:ce(),padding:R(),saturate:ce(),scale:ce(),sepia:ie(),skew:ce(),space:R(),translate:R()},classGroups:{aspect:[{aspect:["auto","square","video",W]}],container:["container"],columns:[{columns:[vt]}],"break-after":[{"break-after":f()}],"break-before":[{"break-before":f()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...E(),W]}],overflow:[{overflow:_()}],"overflow-x":[{"overflow-x":_()}],"overflow-y":[{"overflow-y":_()}],overscroll:[{overscroll:P()}],"overscroll-x":[{"overscroll-x":P()}],"overscroll-y":[{"overscroll-y":P()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[w]}],"inset-x":[{"inset-x":[w]}],"inset-y":[{"inset-y":[w]}],start:[{start:[w]}],end:[{end:[w]}],top:[{top:[w]}],right:[{right:[w]}],bottom:[{bottom:[w]}],left:[{left:[w]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Mn,W]}],basis:[{basis:T()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",W]}],grow:[{grow:ie()}],shrink:[{shrink:ie()}],order:[{order:["first","last","none",Mn,W]}],"grid-cols":[{"grid-cols":[On]}],"col-start-end":[{col:["auto",{span:["full",Mn,W]},W]}],"col-start":[{"col-start":z()}],"col-end":[{"col-end":z()}],"grid-rows":[{"grid-rows":[On]}],"row-start-end":[{row:["auto",{span:[Mn,W]},W]}],"row-start":[{"row-start":z()}],"row-end":[{"row-end":z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",W]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",W]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...de()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...de(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...de(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[N]}],px:[{px:[N]}],py:[{py:[N]}],ps:[{ps:[N]}],pe:[{pe:[N]}],pt:[{pt:[N]}],pr:[{pr:[N]}],pb:[{pb:[N]}],pl:[{pl:[N]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[B]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[B]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",W,t]}],"min-w":[{"min-w":[W,t,"min","max","fit"]}],"max-w":[{"max-w":[W,t,"none","full","min","max","fit","prose",{screen:[vt]},vt]}],h:[{h:[W,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[W,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[W,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[W,t,"auto","min","max","fit"]}],"font-size":[{text:["base",vt,wt]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",ii]}],"font-family":[{font:[On]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",W]}],"line-clamp":[{"line-clamp":["none",rn,ii]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",pt,W]}],"list-image":[{"list-image":["none",W]}],"list-style-type":[{list:["none","disc","decimal",W]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[b]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[b]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...F(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",pt,wt]}],"underline-offset":[{"underline-offset":["auto",pt,W]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:R()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",W]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",W]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[b]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...E(),rf]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",nf]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},af]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[y]}],"gradient-via-pos":[{via:[y]}],"gradient-to-pos":[{to:[y]}],"gradient-from":[{from:[p]}],"gradient-via":[{via:[p]}],"gradient-to":[{to:[p]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[b]}],"border-style":[{border:[...F(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[b]}],"divide-style":[{divide:F()}],"border-color":[{border:[s]}],"border-color-x":[{"border-x":[s]}],"border-color-y":[{"border-y":[s]}],"border-color-s":[{"border-s":[s]}],"border-color-e":[{"border-e":[s]}],"border-color-t":[{"border-t":[s]}],"border-color-r":[{"border-r":[s]}],"border-color-b":[{"border-b":[s]}],"border-color-l":[{"border-l":[s]}],"divide-color":[{divide:[s]}],"outline-style":[{outline:["",...F()]}],"outline-offset":[{"outline-offset":[pt,W]}],"outline-w":[{outline:[pt,wt]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:G()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[b]}],"ring-offset-w":[{"ring-offset":[pt,wt]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",vt,of]}],"shadow-color":[{shadow:[On]}],opacity:[{opacity:[b]}],"mix-blend":[{"mix-blend":[...V(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":V()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",vt,W]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[h]}],saturate:[{saturate:[C]}],sepia:[{sepia:[q]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[h]}],"backdrop-opacity":[{"backdrop-opacity":[b]}],"backdrop-saturate":[{"backdrop-saturate":[C]}],"backdrop-sepia":[{"backdrop-sepia":[q]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",W]}],duration:[{duration:ce()}],ease:[{ease:["linear","in","out","in-out",W]}],delay:[{delay:ce()}],animate:[{animate:["none","spin","ping","pulse","bounce",W]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[k]}],"scale-x":[{"scale-x":[k]}],"scale-y":[{"scale-y":[k]}],rotate:[{rotate:[Mn,W]}],"translate-x":[{"translate-x":[O]}],"translate-y":[{"translate-y":[O]}],"skew-x":[{"skew-x":[j]}],"skew-y":[{"skew-y":[j]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",W]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",W]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":R()}],"scroll-mx":[{"scroll-mx":R()}],"scroll-my":[{"scroll-my":R()}],"scroll-ms":[{"scroll-ms":R()}],"scroll-me":[{"scroll-me":R()}],"scroll-mt":[{"scroll-mt":R()}],"scroll-mr":[{"scroll-mr":R()}],"scroll-mb":[{"scroll-mb":R()}],"scroll-ml":[{"scroll-ml":R()}],"scroll-p":[{"scroll-p":R()}],"scroll-px":[{"scroll-px":R()}],"scroll-py":[{"scroll-py":R()}],"scroll-ps":[{"scroll-ps":R()}],"scroll-pe":[{"scroll-pe":R()}],"scroll-pt":[{"scroll-pt":R()}],"scroll-pr":[{"scroll-pr":R()}],"scroll-pb":[{"scroll-pb":R()}],"scroll-pl":[{"scroll-pl":R()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",W]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[pt,wt,ii]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},hf=Qm(df),Mi={status:"",repo:"",thread:"",action:"",intent:"",actor:""},pf=new Kc({defaultOptions:{queries:{retry:1}}}),io=12,mf=12,ff=10080*60*1e3,xf=1e3,Ol=Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC";function Q(...e){return hf(dc(e))}async function ee(e,t){const n=new Headers(t==null?void 0:t.headers);n.set("Accept","application/json");const r=await fetch(e,{...t,headers:n});if(!r.ok)throw new Error(`${r.status} ${r.statusText}`);return r.json()}function Qe(e){if(e==null)return"n/a";const t=Math.max(0,Math.floor(e));if(t<60)return`${t}s`;const n=Math.floor(t/60);return n<60?`${n}m ${t%60}s`:`${Math.floor(n/60)}h ${n%60}m`}const gf=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}),bf=new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"});function hr(e){if(!e)return null;const t=new Date(e);return Number.isNaN(t.getTime())?null:t}function yf(e){const t=hr(e);return t?gf.format(t):e??""}function Hn(e){const t=hr(e);return t?bf.format(t):e??""}function Fl(e,t){const n=hr(e);if(!n)return e??"";const r=t-n.getTime(),s=Math.abs(r);if(s>ff)return Hn(e);const a=r>=0?"ago":"from now",o=Math.round(s/1e3);if(o<45)return r>=0?"just now":"soon";if(o<90)return`1m ${a}`;const l=Math.round(o/60);if(l<60)return`${l}m ${a}`;if(l<90)return`1h ${a}`;const c=Math.round(l/60);return c<24?`${c}h ${a}`:c<36?`1d ${a}`:`${Math.round(c/24)}d ${a}`}function Ie({value:e,compact:t=!1,relative:n=!1,now:r=Date.now()}){const s=hr(e);return s?i.jsx("time",{dateTime:s.toISOString(),title:`UTC: ${s.toISOString()}`,children:n?Fl(e,r):t?Hn(e):yf(e)}):i.jsx(i.Fragment,{children:e??""})}function Dl(e,t){const n=hr(e);return n?Math.max(0,Math.floor((t-n.getTime())/1e3)):null}function as(e,t){return e.status==="running"?Dl(e.started_at,t)??e.runtime_seconds:e.runtime_seconds}function os(e,t){return e.status==="pending"?Dl(e.created_at,t)??e.queue_wait_seconds:e.queue_wait_seconds}function wf(e){const[t,n]=L.useState(()=>Date.now());return L.useEffect(()=>{if(!e)return;n(Date.now());const r=window.setInterval(()=>n(Date.now()),xf);return()=>window.clearInterval(r)},[e]),t}function vf(e){return(e??"").split(/\r?\n/).map(n=>n.trim()).find(Boolean)??""}function Mr(e,t,n=1){const r=vf(t),s=n>1?` (${n})`:"";return r?`${e}${s}: ${r}`:`${e}${s}`}function Or(e){return e==="openclaw_stdout"||e==="openclaw_stderr"}function zl(e){return e.map(t=>t==null?void 0:t.trim()).filter(Boolean).join(` -`)}function jf(e){const t=[];for(const n of e){const r=t[t.length-1];if(r&&Or(n.event_type)&&r.eventType===n.event_type){r.count+=1,r.meta=n.ts,r.detail=zl([r.detail,n.detail]),r.summary=Mr(n.summary,r.detail,r.count);continue}t.push({id:String(n.id),badge:n.event_type,meta:n.ts,summary:Or(n.event_type)?Mr(n.summary,n.detail):n.summary,detail:n.detail,eventType:n.event_type,count:1})}return t}function kf(e){const t=[];return e.forEach((n,r)=>{const s=t[t.length-1];if(s&&Or(n.kind)&&s.kind===n.kind){s.count+=1,s.meta=n.timestamp,s.text=zl([s.text,n.text]),s.summary=Mr(`${n.role} · ${n.kind}`,s.text,s.count);return}t.push({id:`${n.timestamp??"entry"}-${r}`,badge:n.title,meta:n.timestamp,summary:Or(n.kind)?Mr(`${n.role} · ${n.kind}`,n.text):`${n.role} · ${n.kind}`,text:n.text,kind:n.kind,count:1})}),t}function so(e,t,n,r){return e==="openclaw_stdout"?!1:t||n>=r-2}function Nf(e){return{pending:{badge:"border-amber-300 bg-amber-50 text-amber-800",dot:"bg-amber-500"},running:{badge:"border-blue-300 bg-blue-50 text-blue-700",dot:"bg-blue-600"},blocked:{badge:"border-red-300 bg-red-50 text-red-700",dot:"bg-red-600"},denied:{badge:"border-red-300 bg-red-50 text-red-700",dot:"bg-red-600"},done:{badge:"border-emerald-300 bg-emerald-50 text-emerald-700",dot:"bg-emerald-600"},waiting_approval:{badge:"border-slate-300 bg-slate-50 text-slate-700",dot:"bg-slate-500"}}[e]??{badge:"border-slate-300 bg-slate-50 text-slate-700",dot:"bg-slate-500"}}function Sf(e,t){const n=new URLSearchParams;for(const[r,s]of Object.entries(e))s.trim()&&n.set(r,s.trim());return n.set("limit",String(t)),`/api/jobs?${n.toString()}`}function Cf(e,t,n=50){const r=new URLSearchParams;return e.trim()&&r.set("repo",e.trim()),t.trim()&&r.set("status",t.trim()),r.set("limit",String(n)),`/api/knowledge?${r.toString()}`}function _f(e){return{timeseries:e==="overview",hooks:e==="hooks",deliveries:e==="deliveries"}}function Ef(e,t,n="day"){return`/api/webhooks/github/timeseries?${new URLSearchParams({from:e,to:t,bucket:n}).toString()}`}function Pf(e=50,t){const n=new URLSearchParams({limit:String(e)});return t&&n.set("cursor",t),`/api/webhooks/github/hooks?${n.toString()}`}function Rf(e=50,t,n){const r=new URLSearchParams({limit:String(e)});t&&r.set("cursor",t);for(const[s,a]of Object.entries(n??{}))a!=null&&a.trim()&&r.set(s,a.trim());return`/api/webhooks/github/deliveries?${r.toString()}`}function Sr(e=new Date){return{from:new Date(e.getTime()-720*60*60*1e3).toISOString(),to:e.toISOString()}}function If(e=Ol){return`/api/metrics/summary?timezone=${encodeURIComponent(e)}`}function Ze(e){try{const t=new URL(e);return t.protocol==="https:"||t.protocol==="http:"?t.href:"#"}catch{return"#"}}function Rr(){return"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window}function Tf(e){return!!(e&&typeof e=="object"&&"type"in e&&e.type==="github-agent-bridge:push")}function Af(e){const t="=".repeat((4-e.length%4)%4),n=(e+t).replace(/-/g,"+").replace(/_/g,"/"),r=window.atob(n),s=new Uint8Array(r.length);for(let a=0;an.id===t.id)?e:[...e,t]}function Mf(e,t){const n=ao(t);return e.some(r=>ao(r)===n)?e:[...e,t]}function ao(e){return`${e.timestamp??""}:${e.role}:${e.kind}:${e.title}:${e.text}`}function Of(e){return["claimed","dispatch_started","dispatch_finished","done","blocked","denied","waiting_approval"].includes(e)}function zn(e){return["blocked","denied","waiting_approval"].includes(e)}function Oi(e,t){return e.status!=="running"?!1:t!=null&&t.is_admin?!0:!!(t!=null&&t.login&&e.trigger_actor&&t.login.toLowerCase()===e.trigger_actor.toLowerCase())}function Ff(e=window.location.pathname){const t=e.match(/^\/jobs\/(\d+)\/?$/);return t?Number(t[1]):null}function Df(e=window.location.pathname){return/^\/knowledge\/?$/.test(e)}function zf(e=window.location.pathname){return/^\/mcp\/?$/.test(e)}function qf(e=window.location.pathname){return/^\/system\/?$/.test(e)}function Bf(e=window.location.pathname){const t=e.match(/^\/webhooks\/hooks\/([^/]+)\/?$/);return t?decodeURIComponent(t[1]):null}function si(e=window.location.pathname){return/^\/webhooks(?:\/hooks\/[^/]+)?\/?$/.test(e)}function ql(e){return e.startsWith("repo:")?e.slice(5):e}function oo(e){return Object.values(e).some(t=>t.trim()!=="")}function Uf(e){return[{key:"status",label:"Status",value:e.status},{key:"repo",label:"Repo",value:e.repo},{key:"thread",label:"Thread",value:e.thread},{key:"action",label:"Action",value:e.action},{key:"actor",label:"Actor",value:e.actor.trim()?`@${e.actor.trim().replace(/^@/,"")}`:""},{key:"intent",label:"Intent",value:e.intent}].filter(t=>t.value.trim()!=="")}function $f(){var us,ds,hs,ps,ms,fs,xs,gs,bs,ys,ws,vs,js,ks,Ns,Ss,Cs,_s,Es,Ps,Rs,Is,Ts,As,Ls,Ms,Os,Fs,Ds,zs,qs,Bs,Us,$s,Hs,Ks,Qs,Vs,Ws,Gs,Js,Xs,Ys,Zs,ea,ta;const e=qo(),[t,n]=L.useState(Mi),[r,s]=L.useState(io),a=L.useRef(!1),[o,l]=L.useState(""),[c,u]=L.useState("proposed"),[d,h]=L.useState("overview"),[m,p]=L.useState({hook_id:"",event_name:"",repository:"",result:"",enqueue_status:""}),[y,w]=L.useState(()=>Sr()),[v,b]=L.useState(null),[N,C]=L.useState(""),[k,q]=L.useState(()=>window.location.pathname),[j,B]=L.useState(null),O=Ff(k),P=O!==null,_=Df(k),T=zf(k),R=qf(k),G=si(k),z=Bf(k),E=!P&&!_&&!T&&!R&&!G,F=O,V=ge({queryKey:["metrics",Ol],queryFn:()=>ee(If()),enabled:E||R}),de=ge({queryKey:["dashboard-status"],queryFn:()=>ee("/api/status")}),ie=ge({queryKey:["me"],queryFn:()=>ee("/api/me"),refetchInterval:!1}),f=G&&!!((ds=(us=ie.data)==null?void 0:us.user)!=null&&ds.is_admin&&((hs=de.data)!=null&&hs.webhook_configured)),ce=_f(d),Se=ge({queryKey:["web-push-config"],queryFn:()=>ee("/api/web-push/config"),enabled:!!((ps=ie.data)!=null&&ps.user)}),x=ge({queryKey:["about"],queryFn:()=>ee("/api/about")}),Fe=ge({queryKey:["job-actors"],queryFn:()=>ee("/api/jobs/actors"),enabled:E}),we=ge({queryKey:["jobs",t,r],queryFn:()=>ee(Sf(t,r)),enabled:E,placeholderData:M=>M}),fe=ge({queryKey:["processes"],queryFn:()=>ee("/api/processes"),enabled:R}),et=ge({queryKey:["systemd"],queryFn:()=>ee("/api/systemd"),enabled:R}),De=ge({queryKey:["alerts"],queryFn:()=>ee("/api/alerts"),enabled:R}),Ve=ge({queryKey:["webhook-summary"],queryFn:()=>ee("/api/webhooks/github/summary"),enabled:f}),tt=ge({queryKey:["webhook-timeseries",y.from,y.to,"day"],queryFn:()=>ee(Ef(y.from,y.to)),enabled:f&&ce.timeseries}),At=ge({queryKey:["webhook-exceptions"],queryFn:()=>ee("/api/webhooks/github/exceptions"),enabled:f&&ce.timeseries}),ut=xa({queryKey:["webhook-hooks"],queryFn:({pageParam:M})=>ee(Pf(50,M)),initialPageParam:null,getNextPageParam:M=>M.next_cursor??void 0,enabled:f&&ce.hooks&&z===null}),dt=xa({queryKey:["webhook-deliveries",m],queryFn:({pageParam:M})=>ee(Rf(50,M,m)),initialPageParam:null,getNextPageParam:M=>M.next_cursor??void 0,enabled:f&&ce.deliveries&&z===null}),Yt=ge({queryKey:["webhook-hook",z],queryFn:()=>ee(`/api/webhooks/github/hooks/${encodeURIComponent(z??"")}`),enabled:f&&z!==null}),Lt=ge({queryKey:["knowledge",o,c],queryFn:()=>ee(Cf(o,c)),enabled:_}),Mt=ge({queryKey:["mcp-tokens"],queryFn:()=>ee("/api/mcp/tokens"),enabled:T&&!!((ms=ie.data)!=null&&ms.user)}),pr=ge({queryKey:["mcp-users"],queryFn:()=>ee("/api/mcp/users"),enabled:T&&!!((fs=ie.data)!=null&&fs.user)}),Zt=ge({queryKey:["job",F],queryFn:()=>ee(`/api/jobs/${F}`),enabled:F!==null}),_n=ge({queryKey:["job-session",F],queryFn:()=>ee(`/api/jobs/${F}/session`),enabled:F!==null}),En=ge({queryKey:["job-session-events",F],queryFn:()=>ee(`/api/jobs/${F}/session/events`),enabled:F!==null}),mr=ge({queryKey:["job-session-transcript",F],queryFn:()=>ee(`/api/jobs/${F}/session/transcript`),enabled:F!==null}),fr=L.useCallback(async M=>{const ae=await ee(`/api/jobs/${M}/retry`,{method:"POST"});e.setQueryData(["job",M],{job:ae.job}),e.invalidateQueries({queryKey:["jobs"]}),e.invalidateQueries({queryKey:["metrics"]})},[e]),xr=L.useCallback(async M=>{const ae=await ee(`/api/jobs/${M}/dismiss`,{method:"POST"});e.setQueryData(["job",M],{job:ae.job}),e.invalidateQueries({queryKey:["jobs"]}),e.invalidateQueries({queryKey:["metrics"]})},[e]),gr=L.useCallback(async(M,ae)=>{const pe=await ee(`/api/jobs/${M}/cancel`,{method:"POST",body:JSON.stringify({reason:ae||""})});e.setQueryData(["job",M],{job:pe.job}),e.invalidateQueries({queryKey:["jobs"]}),e.invalidateQueries({queryKey:["metrics"]}),e.invalidateQueries({queryKey:["dashboard-status"]})},[e]),br=L.useCallback(async(M,ae)=>{await ee(`/api/knowledge/proposals/${encodeURIComponent(M)}/${ae}`,{method:"POST"}),e.invalidateQueries({queryKey:["knowledge"]}),e.invalidateQueries({queryKey:["dashboard-status"]})},[e]),S=L.useCallback(async M=>{await ee(`/api/knowledge/rules/${encodeURIComponent(M)}`,{method:"DELETE"}),e.invalidateQueries({queryKey:["knowledge"]})},[e]),A=L.useCallback(async(M,ae)=>{await ee(`/api/knowledge/rules/${encodeURIComponent(M)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({scope:ae})}),e.invalidateQueries({queryKey:["knowledge"]})},[e]),H=L.useCallback(async(M,ae)=>{const pe=await ee("/api/mcp/tokens",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:M,user_login:ae||void 0})});return e.invalidateQueries({queryKey:["mcp-tokens"]}),pe},[e]),X=L.useCallback(async(M,ae)=>{await ee(`/api/mcp/tokens/${encodeURIComponent(M)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({user_login:ae})}),e.invalidateQueries({queryKey:["mcp-tokens"]}),e.invalidateQueries({queryKey:["mcp-users"]})},[e]),se=L.useCallback(async M=>{await ee(`/api/mcp/tokens/${encodeURIComponent(M)}`,{method:"DELETE"}),e.invalidateQueries({queryKey:["mcp-tokens"]})},[e]),Pe=L.useCallback(async M=>{const ae={refresh:"/api/autoupdate/refresh",apply:"/api/autoupdate/apply",complete:"/api/autoupdate/complete-pending"}[M];b(M),C("");try{await ee(ae,{method:"POST"}),e.invalidateQueries({queryKey:["dashboard-status"]})}catch(pe){e.invalidateQueries({queryKey:["dashboard-status"]}),C(pe instanceof Error?pe.message:String(pe))}finally{b(null)}},[e]),ht=L.useCallback(async()=>{var na;const M=(na=Se.data)==null?void 0:na.public_key;if(!M)throw new Error("web_push_not_configured");if(!Rr())throw new Error("web_push_not_supported");if(await window.Notification.requestPermission()!=="granted")throw new Error("notification_permission_denied");const pe=await navigator.serviceWorker.register("/service-worker.js"),lc=await pe.pushManager.getSubscription()??await pe.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Af(M)});await ee("/api/web-push/subscriptions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(lc.toJSON())}),e.invalidateQueries({queryKey:["web-push-config"]})},[e,(xs=Se.data)==null?void 0:xs.public_key]),We=L.useCallback(async()=>{if(!Rr())return;const ae=await(await navigator.serviceWorker.ready).pushManager.getSubscription();if(!ae)return;const pe=ae.endpoint;await ae.unsubscribe(),await ee("/api/web-push/subscriptions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:pe})}),e.invalidateQueries({queryKey:["web-push-config"]})},[e]);L.useEffect(()=>{var M;!((M=Se.data)!=null&&M.status.enabled)||!Rr()||navigator.serviceWorker.register("/service-worker.js").catch(()=>{})},[(gs=Se.data)==null?void 0:gs.status.enabled]),L.useEffect(()=>{if(F===null)return;const M=new EventSource(`/api/jobs/${F}/session/stream`);return M.addEventListener("session_event",ae=>{const pe=Fr(ae);pe&&(e.setQueryData(["job-session-events",F],bt=>({events:Lf((bt==null?void 0:bt.events)??[],pe)})),Of(pe.event_type)&&(e.invalidateQueries({queryKey:["job",F]}),e.invalidateQueries({queryKey:["jobs"]})))}),M.addEventListener("transcript_entry",ae=>{const pe=Fr(ae);!pe||pe.job_id!==F||e.setQueryData(["job-session-transcript",F],bt=>({entries:Mf((bt==null?void 0:bt.entries)??[],pe.entry)}))}),M.onerror=()=>{e.invalidateQueries({queryKey:["job",F]}),e.invalidateQueries({queryKey:["job-session-events",F]}),e.invalidateQueries({queryKey:["job-session-transcript",F]})},()=>M.close()},[F,e]),L.useEffect(()=>{const M=()=>{si(window.location.pathname)&&w(Sr()),q(window.location.pathname)};return window.addEventListener("popstate",M),()=>window.removeEventListener("popstate",M)},[]),L.useEffect(()=>{if(!("serviceWorker"in navigator))return;const M=ae=>{if(!Tf(ae.data))return;const pe={...ae.data.payload,id:Date.now(),receivedAt:Date.now()};B(pe),pe.job_id&&(e.invalidateQueries({queryKey:["jobs"]}),e.invalidateQueries({queryKey:["job",pe.job_id]}),e.invalidateQueries({queryKey:["metrics"]}))};return navigator.serviceWorker.addEventListener("message",M),()=>navigator.serviceWorker.removeEventListener("message",M)},[e]),L.useEffect(()=>{if(!j)return;const M=window.setTimeout(()=>B(null),12e3);return()=>window.clearTimeout(M)},[j]);const Ot=L.useCallback(M=>{window.history.pushState({},"",Sn(M)),q(window.location.pathname)},[]),$e=L.useCallback(M=>{window.history.pushState({},"",M),si(M)&&w(Sr()),q(window.location.pathname)},[]),be=((bs=V.data)==null?void 0:bs.metrics.status_counts)??{},Ge=((ys=we.data)==null?void 0:ys.jobs)??[],Je=!!((vs=(ws=ie.data)==null?void 0:ws.user)!=null&&vs.is_admin&&Bl((js=de.data)==null?void 0:js.autoupdate)),Zl=L.useCallback(M=>{n(M),s(io),a.current=!1},[]);L.useEffect(()=>{we.isFetching||(a.current=!1)},[we.isFetching]);const ec=L.useCallback(()=>{a.current||(a.current=!0,s(M=>M+mf))},[]),gt=F?((ks=Zt.data)==null?void 0:ks.job)??null:null,tc=Ge.some(M=>M.status==="running"||M.status==="pending")||(gt==null?void 0:gt.status)==="running"||(gt==null?void 0:gt.status)==="pending"||!!((Ns=fe.data)!=null&&Ns.running_jobs.length),Pn=wf(tc),nc=i.jsx(rx,{selectedJobId:F,selectedJob:gt,loading:Zt.isLoading,error:Zt.error,session:(Ss=_n.data)==null?void 0:Ss.session,sessionEvents:(Cs=En.data)==null?void 0:Cs.events,transcript:(_s=mr.data)==null?void 0:_s.entries,now:Pn}),rc=((Es=ut.data)==null?void 0:Es.pages.flatMap(M=>M.hooks))??[],ic=((Ps=dt.data)==null?void 0:Ps.pages.flatMap(M=>M.deliveries))??[],sc=d==="overview"?tt.isLoading:d==="hooks"?ut.isLoading:dt.isLoading,ac=d==="overview"?tt.error:d==="hooks"?ut.error:dt.error,oc=()=>{Ve.refetch(),d==="overview"&&At.refetch(),d==="overview"&&w(Sr()),d==="hooks"&&ut.refetch(),d==="deliveries"&&dt.refetch()};return i.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[i.jsx("header",{className:"border-b border-slate-800 bg-slate-950 text-white",children:i.jsxs("div",{className:"mx-auto flex w-full max-w-[1440px] items-center justify-between gap-3 px-4 py-4 md:px-6",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h1",{className:"truncate text-xl font-semibold",children:"GitHub Agent Bridge"}),i.jsx(Hf,{about:x.data})]}),i.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[i.jsx(fx,{config:Se.data,loading:Se.isLoading,onEnable:ht,onDisable:We}),i.jsx(mx,{user:(Rs=ie.data)==null?void 0:Rs.user,loading:ie.isLoading})]})]})}),i.jsxs("main",{className:"mx-auto grid w-full max-w-[1440px] gap-4 px-3 py-4 sm:px-4 md:px-6 md:py-5",children:[i.jsx(Jf,{isDashboardRoute:E,isSystemRoute:R,isKnowledgeRoute:_,isMcpRoute:T,isWebhooksRoute:G,showWebhooks:!!((Ts=(Is=ie.data)==null?void 0:Is.user)!=null&&Ts.is_admin&&((As=de.data)!=null&&As.webhook_configured)),knowledgeBadgeCount:((Os=(Ms=(Ls=de.data)==null?void 0:Ls.metrics)==null?void 0:Ms.knowledge)==null?void 0:Os.proposed)??0,systemUpdateAvailable:Je,onNavigate:$e}),i.jsx(xx,{notification:j,onDismiss:()=>B(null),onNavigate:$e}),O!==null?i.jsx(nx,{jobId:O,detail:nc,selectedJob:gt,user:(Fs=ie.data)==null?void 0:Fs.user,onBackToDashboard:()=>$e("/"),onRetry:fr,onDismiss:xr,onCancel:gr,onRefresh:()=>{Zt.refetch(),_n.refetch(),En.refetch(),mr.refetch()}}):_?i.jsx(ix,{data:Lt.data,loading:Lt.isLoading,error:Lt.error,repo:o,status:c,user:(Ds=ie.data)==null?void 0:Ds.user,now:Pn,onRepoChange:l,onStatusChange:u,onApprove:M=>br(M,"approve"),onReject:M=>br(M,"reject"),onUpdateRuleScope:A,onDeleteRule:S,onRefresh:()=>Lt.refetch()}):T?i.jsx(ux,{tokens:(zs=Mt.data)==null?void 0:zs.tokens,loading:Mt.isLoading,error:Mt.error,user:(qs=ie.data)==null?void 0:qs.user,ownerOptions:((Bs=pr.data)==null?void 0:Bs.users)??[],dashboardUrl:(Us=de.data)==null?void 0:Us.dashboard_url,dashboardUrlSource:($s=de.data)==null?void 0:$s.dashboard_url_source,now:Pn,onCreate:H,onUpdateOwner:X,onRevoke:se,onRefresh:()=>Mt.refetch()}):G?z?i.jsx(ex,{data:Yt.data,loading:Yt.isLoading,error:Yt.error,onBack:()=>{h("hooks"),$e("/webhooks")},onRefresh:()=>Yt.refetch(),onViewHook:M=>$e(`/webhooks/hooks/${encodeURIComponent(M)}`)}):i.jsx(Xf,{summary:Ve.data,timeseries:(Hs=tt.data)==null?void 0:Hs.points,exceptions:(Ks=At.data)==null?void 0:Ks.exceptions,hooks:rc,deliveries:ic,section:d,summaryLoading:Ve.isLoading,sectionLoading:sc,loadingMore:d==="hooks"?ut.isFetchingNextPage:dt.isFetchingNextPage,hasMore:d==="hooks"?ut.hasNextPage:dt.hasNextPage,deliveryFilters:m,error:Ve.error??ac,onSectionChange:h,onLoadMore:()=>d==="hooks"?ut.fetchNextPage():dt.fetchNextPage(),onDeliveryFiltersChange:p,onViewHook:M=>$e(`/webhooks/hooks/${encodeURIComponent(M)}`),onRefresh:oc}):R?i.jsxs(i.Fragment,{children:[i.jsx(Kf,{state:(Qs=de.data)==null?void 0:Qs.autoupdate,isAdmin:!!((Ws=(Vs=ie.data)==null?void 0:Vs.user)!=null&&Ws.is_admin),runningAction:v,actionError:N,onRefresh:()=>Pe("refresh"),onApply:()=>Pe("apply"),onCompletePending:()=>Pe("complete")}),i.jsx(tx,{processes:fe.data,processesLoading:fe.isLoading,processesError:fe.error,systemd:et.data,systemdLoading:et.isLoading,systemdError:et.error,alerts:(Gs=De.data)==null?void 0:Gs.alerts,alertsLoading:De.isLoading,alertsError:De.error,now:Pn,onRefreshProcesses:()=>fe.refetch(),onRefreshSystemd:()=>et.refetch(),onRefreshAlerts:()=>De.refetch()})]}):i.jsxs(i.Fragment,{children:[V.error?i.jsx(Ne,{tone:"error",text:V.error.message}):null,de.error?i.jsx(Ne,{tone:"error",text:de.error.message}):null,i.jsxs("section",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4","aria-label":"Summary metrics",children:[i.jsx(_e,{title:"Pending",value:be.pending??0,icon:i.jsx(Qo,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Running",value:be.running??0,icon:i.jsx(bn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Blocked",value:be.blocked??0,icon:i.jsx(zr,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Done",value:be.done??0,icon:i.jsx(wn,{className:"h-5 w-5"})})]}),i.jsxs("section",{className:"grid gap-3",children:[i.jsx(gx,{count:Ge.length,limit:r,loading:we.isLoading,onRefresh:()=>we.refetch()}),i.jsxs(me,{title:"Recent jobs",flushHeader:!0,children:[i.jsx(bx,{filters:t,actorOptions:((Js=Fe.data)==null?void 0:Js.actors)??[],onChange:Zl}),we.error?i.jsx(Ne,{tone:"error",text:we.error.message}):null,i.jsx(wx,{jobs:Ge,loading:we.isLoading,loadingMore:we.isFetching&&!we.isLoading,hasMore:Ge.length>=r,onLoadMore:ec,onViewJob:Ot,now:Pn,user:(Xs=ie.data)==null?void 0:Xs.user,onRetry:fr,onDismiss:xr,onCancel:gr})]}),i.jsx(me,{title:"Runtime usage",action:i.jsx(lt,{onClick:()=>V.refetch()}),children:i.jsx(Ax,{usage:(Ys=V.data)==null?void 0:Ys.metrics.runtime_usage,loading:V.isLoading,totalJobs:ho(be)})})]}),i.jsxs("section",{className:"grid gap-4 xl:grid-cols-3",children:[i.jsx(me,{title:"Runtime percentiles",children:i.jsx(uo,{label:"runtime",values:(Zs=V.data)==null?void 0:Zs.metrics.runtime_seconds})}),i.jsx(me,{title:"Jobs per day",children:i.jsx(Tx,{values:(ea=V.data)==null?void 0:ea.metrics.by_created_day,loading:V.isLoading,totalJobs:ho(be)})}),i.jsx(me,{title:"Queue wait percentiles",children:i.jsx(uo,{label:"queue wait",values:(ta=V.data)==null?void 0:ta.metrics.queue_wait_seconds})})]})]})]})]})}function Hf({about:e}){const t=e!=null&&e.version?`v${e.version}`:"version loading";return i.jsxs("p",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-sm text-slate-300",children:[i.jsx("span",{children:"Operational dashboard"}),i.jsx("span",{className:"font-mono text-xs text-slate-400",children:t}),e!=null&&e.repository_url?i.jsxs("a",{className:"inline-flex items-center gap-1 text-xs font-semibold text-slate-200 hover:underline",href:Ze(e.repository_url),rel:"noreferrer",target:"_blank",children:[i.jsx(Gt,{className:"h-3.5 w-3.5","aria-hidden":!0}),"GitHub"]}):null]})}function Bl(e){var t,n;return!!((n=(t=e==null?void 0:e.target)==null?void 0:t.tag_name)!=null&&n.trim()&&e.decision!=="noop")}function Kf({state:e,isAdmin:t,runningAction:n=null,actionError:r="",onRefresh:s,onApply:a,onCompletePending:o}){var v,b,N,C,k,q,j,B,O,P,_;if(!e||!Bl(e))return null;const l=(b=(v=e==null?void 0:e.target)==null?void 0:v.tag_name)==null?void 0:b.trim();if(!t||!l)return null;const c=Qf(e.decision),u=((N=e.queue)==null?void 0:N.active_total)??0,d=Vf((C=e.classification)==null?void 0:C.risk),h=Wf((k=e.target)==null?void 0:k.body),m=((j=(q=e.classification)==null?void 0:q.migration_files)==null?void 0:j.length)??0,p=((O=(B=e.classification)==null?void 0:B.risky_files)==null?void 0:O.length)??0,y=!!(e.executor_reload_pending&&e.dashboard_applied_at&&o),w=!!(a&&m===0);return i.jsxs("section",{className:"rounded-md border border-amber-300 bg-amber-50 p-3 text-amber-950 shadow-sm","aria-label":"Update available",children:[i.jsxs("div",{className:"flex flex-col gap-3 lg:flex-row lg:items-start lg:justify-between",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(zr,{className:"h-4 w-4 text-amber-700","aria-hidden":!0}),i.jsx("h2",{className:"text-sm font-semibold",children:"Update available"}),i.jsx("span",{className:"rounded-sm border border-amber-300 bg-white px-1.5 py-0.5 font-mono text-[11px] text-amber-800",children:l}),(P=e.target)!=null&&P.url?i.jsxs("a",{className:"inline-flex items-center gap-1 text-xs font-semibold text-amber-800 hover:underline",href:Ze(e.target.url),rel:"noreferrer",target:"_blank",children:[i.jsx(Gt,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Release"]}):null]}),i.jsxs("p",{className:"mt-1 text-sm text-amber-900",children:[c,e.installed_tag?i.jsxs("span",{className:"font-mono",children:[" from ",e.installed_tag]}):null]}),i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[s?i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-md border border-amber-300 bg-white px-2.5 text-xs font-semibold text-amber-900 hover:bg-amber-100 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:n!==null,onClick:s,children:[i.jsx(cr,{className:Q("h-3.5 w-3.5",n==="refresh"&&"animate-spin"),"aria-hidden":!0}),n==="refresh"?"Checking...":"Check now"]}):null,w?i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-md bg-amber-800 px-2.5 text-xs font-semibold text-white hover:bg-amber-900 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:n!==null,onClick:()=>{window.confirm(`Apply ${l}? This can restart bridge services according to the recorded safe plan.`)&&(a==null||a())},children:[i.jsx(wn,{className:"h-3.5 w-3.5","aria-hidden":!0}),n==="apply"?"Applying...":"Apply update"]}):null,y?i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-md border border-amber-300 bg-white px-2.5 text-xs font-semibold text-amber-900 hover:bg-amber-100 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:n!==null,onClick:o,children:[i.jsx(Gn,{className:"h-3.5 w-3.5","aria-hidden":!0}),n==="complete"?"Completing...":"Complete reload"]}):null]})]}),i.jsxs("div",{className:"grid gap-2 text-xs sm:grid-cols-3 lg:min-w-[420px]",children:[i.jsx(ai,{label:"Impact",value:d}),i.jsx(ai,{label:"Active jobs",value:String(u)}),i.jsx(ai,{label:"Admin only",value:"autoupdate"})]})]}),e.blocked_reason||e.executor_reload_pending||m>0||p>0?i.jsxs("div",{className:"mt-3 flex flex-wrap gap-2 text-xs",children:[e.executor_reload_pending?i.jsx("span",{className:"rounded-sm border border-amber-300 bg-white px-2 py-1 font-semibold",children:"executor reload pending"}):null,e.blocked_reason?i.jsx("span",{className:"rounded-sm border border-amber-300 bg-white px-2 py-1 font-mono",children:e.blocked_reason}):null,m>0?i.jsxs("span",{className:"rounded-sm border border-amber-300 bg-white px-2 py-1",children:[m," migration file",m===1?"":"s"]}):null,p>0?i.jsxs("span",{className:"rounded-sm border border-amber-300 bg-white px-2 py-1",children:[p," executor/shared file",p===1?"":"s"]}):null]}):null,h?i.jsxs("div",{className:"mt-3 rounded-md border border-amber-200 bg-white/70 p-2.5",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-amber-800",children:"Changelog preview"}),i.jsx(Gf,{markdown:h})]}):null,(_=e.warnings)!=null&&_.length?i.jsx("div",{className:"mt-2 font-mono text-xs text-amber-800",children:e.warnings[0]}):null,r?i.jsxs("div",{className:"mt-2 rounded-sm border border-amber-300 bg-white px-2 py-1 font-mono text-xs text-amber-900",children:["Action failed: ",r]}):null]})}function ai({label:e,value:t}){return i.jsxs("div",{className:"min-w-0 rounded-md border border-amber-200 bg-white/80 px-2 py-1.5",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-amber-700",children:e}),i.jsx("div",{className:"mt-0.5 truncate font-mono text-xs text-amber-950",children:t})]})}function Qf(e){return{stage_dashboard_reload:"Dashboard reload can be staged now",stage_defer_executor_reload:"Dashboard reload can be staged; executor reload waits for the queue",stage_full_reload:"Full reload can be staged now",defer_migration:"Migration release is waiting for a quiet queue"}[e??""]??"Update plan recorded"}function Vf(e){return{dashboard_only:"dashboard only",executor_or_queue:"executor or queue",executor_or_shared:"executor or shared",migration_required:"migration",none:"none"}[e??""]??"unknown"}function Wf(e){return(e??"").trim()}function Gf({markdown:e}){return i.jsx("div",{className:"mt-1 text-sm leading-relaxed text-amber-950",children:i.jsx(Pm,{allowedElements:["a","blockquote","code","em","h1","h2","h3","h4","li","ol","p","strong","ul"],components:{a:({href:t,children:n})=>i.jsx("a",{className:"font-semibold text-amber-800 underline underline-offset-2",href:Ze(t??""),rel:"noreferrer",target:"_blank",children:n}),blockquote:({children:t})=>i.jsx("blockquote",{className:"mt-2 border-l-2 border-amber-300 pl-2 text-amber-900",children:t}),code:({children:t})=>i.jsx("code",{className:"rounded-sm bg-amber-100 px-1 py-0.5 font-mono text-[0.85em] text-amber-950",children:t}),h1:({children:t})=>i.jsx("h3",{className:"mt-2 text-sm font-semibold text-amber-950 first:mt-0",children:t}),h2:({children:t})=>i.jsx("h3",{className:"mt-2 text-sm font-semibold text-amber-950 first:mt-0",children:t}),h3:({children:t})=>i.jsx("h3",{className:"mt-2 text-sm font-semibold text-amber-950 first:mt-0",children:t}),h4:({children:t})=>i.jsx("h4",{className:"mt-2 text-xs font-semibold uppercase text-amber-800 first:mt-0",children:t}),li:({children:t})=>i.jsx("li",{className:"break-words pl-0.5 [overflow-wrap:anywhere]",children:t}),ol:({children:t})=>i.jsx("ol",{className:"mt-1 list-decimal space-y-1 pl-5 first:mt-0",children:t}),p:({children:t})=>i.jsx("p",{className:"mt-1 break-words [overflow-wrap:anywhere] first:mt-0",children:t}),strong:({children:t})=>i.jsx("strong",{className:"font-semibold",children:t}),em:({children:t})=>i.jsx("em",{className:"italic",children:t}),ul:({children:t})=>i.jsx("ul",{className:"mt-1 list-disc space-y-1 pl-5 first:mt-0",children:t})},children:e})})}function Jf({isDashboardRoute:e,isSystemRoute:t=!1,isKnowledgeRoute:n,isMcpRoute:r=!1,isWebhooksRoute:s=!1,showWebhooks:a=!1,knowledgeBadgeCount:o=0,systemUpdateAvailable:l=!1,onNavigate:c}){return i.jsxs("nav",{className:"flex min-w-0 rounded-lg border border-border bg-panel p-1 shadow-sm","aria-label":"Dashboard sections",children:[i.jsxs(Fn,{href:"/",active:e,onNavigate:c,children:[i.jsx(Go,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"Jobs"})]}),i.jsxs(Fn,{href:"/system",active:t,onNavigate:c,children:[i.jsx(ou,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"System"}),l?i.jsx("span",{className:Q("inline-flex h-5 min-w-5 items-center justify-center rounded-full border px-1 font-mono text-[11px] leading-none",t?"border-white/40 bg-white/15 text-white":"border-amber-200 bg-amber-100 text-amber-800"),"aria-label":"System update available",children:"!"}):null]}),a?i.jsxs(Fn,{href:"/webhooks",active:s,onNavigate:c,children:[i.jsx(bn,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"Webhooks"})]}):null,i.jsxs(Fn,{href:"/knowledge",active:n,onNavigate:c,children:[i.jsx(Hi,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"Knowledge"}),o>0?i.jsx("span",{className:Q("inline-flex h-5 min-w-5 items-center justify-center rounded-full border px-1 font-mono text-[11px] leading-none",n?"border-white/40 bg-white/15 text-white":"border-amber-200 bg-amber-100 text-amber-800"),"aria-label":`${o} proposed knowledge ${o===1?"item":"items"}`,children:o}):null]}),i.jsxs(Fn,{href:"/mcp",active:r,onNavigate:c,children:[i.jsx(Tr,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{children:"MCP"})]})]})}function qn({text:e}){return i.jsxs("div",{className:"flex items-center justify-center gap-2 py-10 text-sm text-muted",children:[i.jsx(cr,{className:"h-4 w-4 animate-spin","aria-hidden":!0}),e]})}function Xf({summary:e,timeseries:t,exceptions:n,hooks:r,deliveries:s,section:a,summaryLoading:o,sectionLoading:l,loadingMore:c,hasMore:u,deliveryFilters:d,error:h,onSectionChange:m,onLoadMore:p,onDeliveryFiltersChange:y,onViewHook:w,onRefresh:v}){var C,k,q,j,B,O,P;const b=Object.values((e==null?void 0:e.receipts)??{}).reduce((_,T)=>_+T,0),N=[{id:"overview",label:"Overview"},{id:"hooks",label:"Hooks",count:(C=e==null?void 0:e.totals)==null?void 0:C.hooks},{id:"deliveries",label:"Deliveries",count:(k=e==null?void 0:e.totals)==null?void 0:k.deliveries}];return i.jsxs("section",{className:"grid gap-4",children:[i.jsx($l,{icon:i.jsx(bn,{className:"h-5 w-5 text-muted","aria-hidden":!0}),title:"GitHub webhooks",subtitle:(e==null?void 0:e.mode)==="primary"?"Primary webhook ingestion. IMAP remains active as an idempotent safety net.":(e==null?void 0:e.mode)==="canary"?"Canary ingestion health. Only the webhook canary allowlist may create jobs.":"Shadow ingestion health. Deliveries are observed but do not create jobs.",action:i.jsx(lt,{onClick:v})}),h?i.jsx(Ne,{tone:"error",text:h.message}):null,i.jsx("div",{className:"flex max-w-full flex-wrap rounded-md border border-border bg-white p-1",role:"tablist","aria-label":"Webhook dashboard section",children:N.map(_=>i.jsxs("button",{type:"button",role:"tab","aria-label":_.count===void 0?_.label:`${_.label} (${_.count} total)`,"aria-selected":a===_.id,className:Q("inline-flex h-8 items-center gap-2 rounded px-3 text-sm font-semibold",a===_.id?"bg-primary text-white":"text-muted hover:bg-slate-50 hover:text-foreground"),onClick:()=>m(_.id),children:[_.label,_.count!==void 0?i.jsx("span",{className:"rounded border border-current/30 px-1 font-mono text-[10px]",children:_.count}):null]},_.id))}),i.jsxs("div",{className:"grid grid-cols-2 gap-3 xl:grid-cols-4","aria-label":"Webhook status",children:[i.jsx(_e,{title:"Receipts",value:b,icon:i.jsx(bn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Duplicates",value:(e==null?void 0:e.duplicate_deliveries)??0,icon:i.jsx(cr,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Cross-source matches",value:(e==null?void 0:e.cross_source_matches)??0,icon:i.jsx(vn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Mode",value:o?"…":(e==null?void 0:e.mode)??"unknown",icon:i.jsx(Vo,{className:"h-5 w-5"})})]}),a==="overview"?i.jsxs(i.Fragment,{children:[i.jsx(me,{title:"Delivery activity",children:l?i.jsx(qn,{text:"Loading delivery activity…"}):t!=null&&t.length?i.jsx("div",{className:"h-72","aria-label":"Webhook deliveries over time",children:i.jsx(rr,{width:"100%",height:"100%",children:i.jsxs(Dr,{data:t,children:[i.jsx(ir,{strokeDasharray:"3 3"}),i.jsx(sr,{dataKey:"bucket"}),i.jsx(ar,{allowDecimals:!1}),i.jsx(or,{}),i.jsx(Co,{}),i.jsx(Vt,{dataKey:"observed",stackId:"deliveries",fill:"#2563eb"}),i.jsx(Vt,{dataKey:"duplicate",stackId:"deliveries",fill:"#f59e0b"}),i.jsx(Vt,{dataKey:"unsupported",stackId:"deliveries",fill:"#94a3b8"})]})})}):i.jsx(Z,{text:"No webhook activity in the selected 30-day window."})}),i.jsx(me,{title:"Receipt states",children:o?i.jsx(qn,{text:"Loading webhook summary…"}):Object.keys((e==null?void 0:e.receipts)??{}).length?i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:Object.entries((e==null?void 0:e.receipts)??{}).sort(([_],[T])=>_.localeCompare(T)).map(([_,T])=>i.jsx(J,{label:_,value:T},_))}):i.jsx(Z,{text:"No webhook deliveries observed yet."})}),i.jsxs(me,{title:"Cross-source coverage",children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(J,{label:"Both sources",value:((q=e==null?void 0:e.coverage)==null?void 0:q.both)??0}),i.jsx(J,{label:"IMAP only",value:((j=e==null?void 0:e.coverage)==null?void 0:j.imap_only)??0}),i.jsx(J,{label:"Webhook only",value:((B=e==null?void 0:e.coverage)==null?void 0:B.webhook_only)??0}),i.jsx(J,{label:"Coverage",value:((O=e==null?void 0:e.coverage)==null?void 0:O.ratio)==null?"not measurable":`${Math.round(e.coverage.ratio*100)}%`})]}),(P=e==null?void 0:e.coverage)!=null&&P.window_start&&e.coverage.window_end?i.jsxs("p",{className:"mt-3 font-mono text-xs text-muted",children:["Comparable canonical events from ",e.coverage.window_start," to ",e.coverage.window_end,"; newest ",e.coverage.grace_seconds??0,"s excluded."]}):null]}),Object.keys((e==null?void 0:e.enqueue)??{}).length?i.jsx(me,{title:"Canary ingestion decisions",children:i.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:Object.entries((e==null?void 0:e.enqueue)??{}).sort(([_],[T])=>_.localeCompare(T)).map(([_,T])=>i.jsx(J,{label:_,value:T},_))})}):null,i.jsx(me,{title:"Exceptions requiring review",children:n!=null&&n.length?i.jsx("div",{className:"overflow-x-auto",children:i.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[i.jsx("thead",{className:"border-b border-border text-xs text-muted",children:i.jsxs("tr",{children:[i.jsx("th",{className:"px-3 py-2",children:"Type"}),i.jsx("th",{className:"px-3 py-2",children:"Repository"}),i.jsx("th",{className:"px-3 py-2",children:"Reference"}),i.jsx("th",{className:"px-3 py-2",children:"Observed"})]})}),i.jsx("tbody",{children:n.map(_=>i.jsxs("tr",{className:"border-b border-border/70 last:border-0",children:[i.jsx("td",{className:"px-3 py-2 font-semibold",children:_.kind}),i.jsx("td",{className:"px-3 py-2 font-mono text-xs",children:_.repository??"unknown"}),i.jsx("td",{className:"px-3 py-2 font-mono text-xs",children:_.event_key??_.reference}),i.jsx("td",{className:"px-3 py-2 font-mono text-xs text-muted",children:_.created_at})]},`${_.kind}:${_.reference}`))})]})}):i.jsx(Z,{text:"No cross-source exceptions in retained data."})})]}):null,a==="hooks"?i.jsx(me,{title:"Hook inventory",children:l?i.jsx(qn,{text:"Loading hook inventory…"}):r!=null&&r.length?i.jsx(Fi,{noun:"hooks",hasMore:u,loading:c,onLoadMore:p,children:i.jsxs("table",{className:"w-full min-w-[920px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"sticky top-0 z-10 border-b border-border bg-panel text-left text-xs text-muted",children:[i.jsx("th",{className:"px-3 py-2",children:"Target"}),i.jsx("th",{className:"px-3 py-2",children:"State"}),i.jsx("th",{className:"px-3 py-2",children:"Configuration"}),i.jsx("th",{className:"px-3 py-2",children:"Last delivery"}),i.jsx("th",{className:"px-3 py-2",children:"Last ping"})]})}),i.jsx("tbody",{children:r.map(_=>i.jsxs("tr",{className:"cursor-pointer border-b border-border/70 last:border-0 hover:bg-slate-50",onClick:()=>w(_.id),children:[i.jsxs("td",{className:"px-3 py-3",children:[i.jsx("button",{type:"button",className:"text-left font-semibold text-primary hover:underline",onClick:T=>{T.stopPropagation(),w(_.id)},children:_.target}),i.jsxs("div",{className:"font-mono text-xs text-muted",children:[_.target_type," · #",_.id]})]}),i.jsx("td",{className:"px-3 py-3",children:i.jsx("span",{className:Q("rounded border px-2 py-1 text-xs font-semibold",_.status==="receiving"?"border-emerald-200 bg-emerald-50 text-emerald-700":_.status==="inactive"?"border-red-200 bg-red-50 text-red-700":"border-slate-200 bg-slate-50 text-slate-600"),children:_.status})}),i.jsxs("td",{className:"max-w-sm px-3 py-3 text-xs",children:[i.jsx("div",{children:_.events.join(", ")||"No event snapshot"}),i.jsxs("div",{className:"mt-1 font-mono text-muted",children:[_.content_type??"content type unknown"," · SSL ",_.ssl_verify===null||_.ssl_verify===void 0?"unknown":_.ssl_verify?"verified":"disabled"]})]}),i.jsxs("td",{className:"px-3 py-3 text-xs",children:[i.jsxs("div",{className:"font-semibold",children:[_.last_event_name??"Never",_.last_action?` · ${_.last_action}`:""]}),i.jsx("div",{className:"mt-1 font-mono text-muted",children:_.last_repository??_.last_event_at??"No delivery observed"})]}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs text-muted",children:_.last_ping_at??"Never"})]},_.id))})]})}):i.jsx(Z,{text:"No hook inventory is available. Redeliver a signed ping from GitHub to create the sanitized configuration snapshot."})}):null,a==="deliveries"?i.jsxs(me,{title:"Recent deliveries",children:[i.jsx(Yf,{filters:d,onChange:y}),l?i.jsx(qn,{text:"Loading deliveries…"}):s!=null&&s.length?i.jsx(Fi,{noun:"deliveries",hasMore:u,loading:c,onLoadMore:p,children:i.jsx(Ul,{deliveries:s,onViewHook:w})}):i.jsx(Z,{text:"No deliveries match the current filters."})]}):null]})}function Yf({filters:e,onChange:t}){const n=[{key:"hook_id",label:"Hook ID",placeholder:"690954530"},{key:"event_name",label:"Event",placeholder:"issue_comment"},{key:"repository",label:"Repository",placeholder:"gisce/repository"},{key:"result",label:"Result",placeholder:"observed"},{key:"enqueue_status",label:"Ingestion",placeholder:"enqueued"}];return i.jsx("div",{className:"grid gap-2 border-b border-border p-3 sm:grid-cols-2 xl:grid-cols-5",children:n.map(r=>i.jsxs("label",{className:"grid gap-1 text-xs font-semibold text-muted",children:[r.label,i.jsx("input",{className:"h-9 rounded-md border border-border bg-white px-2 font-mono text-xs text-foreground",value:e[r.key],placeholder:r.placeholder,onChange:s=>t({...e,[r.key]:s.target.value})})]},r.key))})}function Ul({deliveries:e,onViewHook:t}){return i.jsxs("table",{className:"w-full min-w-[1120px] text-left text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"sticky top-0 z-10 border-b border-border bg-panel text-left text-xs text-muted",children:[i.jsx("th",{className:"px-3 py-2",children:"Received"}),i.jsx("th",{className:"px-3 py-2",children:"Hook"}),i.jsx("th",{className:"px-3 py-2",children:"Event"}),i.jsx("th",{className:"px-3 py-2",children:"Repository"}),i.jsx("th",{className:"px-3 py-2",children:"Result"}),i.jsx("th",{className:"px-3 py-2",children:"Ingestion"}),i.jsx("th",{className:"px-3 py-2",children:"Delivery"})]})}),i.jsx("tbody",{children:e.map(n=>{var r;return i.jsxs("tr",{className:"border-b border-border/70 last:border-0",children:[i.jsx("td",{className:"px-3 py-3 font-mono text-xs text-muted",children:n.created_at}),i.jsx("td",{className:"px-3 py-3",children:n.hook_id?i.jsxs("button",{type:"button",className:"text-left text-primary hover:underline",onClick:()=>t(n.hook_id),children:[i.jsx("span",{className:"block font-semibold",children:((r=n.hook)==null?void 0:r.target)??`Hook #${n.hook_id}`}),i.jsxs("span",{className:"font-mono text-xs",children:["#",n.hook_id]})]}):i.jsx("span",{className:"text-xs text-muted",children:"Unknown (legacy)"})}),i.jsxs("td",{className:"px-3 py-3 font-semibold",children:[n.event_name,n.action?` · ${n.action}`:""]}),i.jsx("td",{className:"px-3 py-3",children:n.repository??"—"}),i.jsxs("td",{className:"px-3 py-3",children:[i.jsx("span",{className:"rounded border border-border bg-slate-50 px-2 py-1 text-xs font-semibold",children:n.status}),n.duplicate_count?i.jsxs("span",{className:"ml-2 font-mono text-xs text-muted",children:[n.duplicate_count," retries"]}):null]}),i.jsx("td",{className:"px-3 py-3",children:n.enqueue_status?i.jsxs(i.Fragment,{children:[i.jsx("span",{className:"rounded border border-border bg-slate-50 px-2 py-1 text-xs font-semibold",children:n.enqueue_status}),n.job_id?i.jsxs("a",{className:"ml-2 font-mono text-xs font-semibold text-primary hover:underline",href:`/jobs/${n.job_id}`,children:["Job #",n.job_id]}):null]}):i.jsx("span",{className:"text-xs text-muted",children:"shadow"})}),i.jsx("td",{className:"max-w-[14rem] truncate px-3 py-3 font-mono text-xs text-muted",title:n.delivery_id,children:n.delivery_id})]},n.delivery_id)})})]})}function Fi({noun:e,hasMore:t,loading:n,onLoadMore:r,children:s,className:a}){return i.jsxs("div",{"data-testid":`lazy-scroll-${e}`,className:Q("max-h-[640px] overflow-auto rounded-md border border-border",a),children:[s,i.jsx(Zf,{noun:e,hasMore:t,loading:n,onLoadMore:r})]})}function Zf({noun:e,hasMore:t,loading:n,onLoadMore:r}){const s=L.useRef(null),a=L.useRef(!1);return L.useEffect(()=>{n||(a.current=!1)},[n]),L.useEffect(()=>{const o=s.current;if(!o||!t||n||!r)return;const l=()=>{a.current||(a.current=!0,r())};if(!("IntersectionObserver"in window)){l();return}const c=new IntersectionObserver(u=>{u.some(d=>d.isIntersecting)&&l()},{rootMargin:"240px 0px"});return c.observe(o),()=>c.disconnect()},[t,n,e,r]),!t&&!n?null:i.jsx("div",{ref:s,className:"flex min-h-10 items-center justify-center border-t border-border px-3 py-2 text-xs font-medium text-muted","aria-live":"polite",children:n?`Loading more ${e}...`:`Scroll for more ${e}`})}function ex({data:e,loading:t,error:n,onBack:r,onRefresh:s,onViewHook:a}){if(t)return i.jsx(qn,{text:"Loading hook detail…"});if(n)return i.jsxs("div",{className:"grid gap-3",children:[i.jsx(Ne,{tone:"error",text:n.message}),i.jsx("button",{type:"button",className:"w-fit rounded border border-border px-3 py-2 text-sm font-semibold",onClick:r,children:"Back to hooks"})]});if(!e)return i.jsx(Z,{text:"Hook detail is not available."});const o=e.hook;return i.jsxs("section",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsxs("button",{type:"button",className:"mb-2 inline-flex items-center gap-2 text-sm font-semibold text-primary hover:underline",onClick:r,children:[i.jsx(Ho,{className:"h-4 w-4","aria-hidden":!0}),"Back to hooks"]}),i.jsx("h2",{className:"text-xl font-semibold",children:o.target}),i.jsxs("p",{className:"font-mono text-xs text-muted",children:[o.target_type," webhook #",o.id]})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(lt,{onClick:s}),o.admin_url?i.jsxs("a",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold hover:bg-slate-50",href:Ze(o.admin_url),target:"_blank",rel:"noreferrer",children:[i.jsx(Gt,{className:"h-4 w-4","aria-hidden":!0}),"Open in GitHub"]}):null]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-3 lg:grid-cols-4",children:[i.jsx(_e,{title:"State",value:o.status,icon:i.jsx(bn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Deliveries",value:e.stats.deliveries,icon:i.jsx(vn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Retries",value:e.stats.duplicates,icon:i.jsx(cr,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Unsupported",value:e.stats.unsupported,icon:i.jsx(zr,{className:"h-5 w-5"})})]}),i.jsxs(me,{title:"Sanitized configuration",children:[i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsx(J,{label:"Active",value:o.active?"yes":"no"}),i.jsx(J,{label:"Content type",value:o.content_type??"unknown"}),i.jsx(J,{label:"SSL verification",value:o.ssl_verify===null||o.ssl_verify===void 0?"unknown":o.ssl_verify?"enabled":"disabled"}),i.jsx(J,{label:"Destination URL",value:o.delivery_url??"unknown"}),i.jsx(J,{label:"GitHub created",value:o.github_created_at??"unknown"}),i.jsx(J,{label:"GitHub updated",value:o.github_updated_at??"unknown"}),i.jsx(J,{label:"Last ping",value:o.last_ping_at??"never"}),i.jsx(J,{label:"Last delivery",value:o.last_event_at??"never"}),i.jsx(J,{label:"Last result",value:o.last_result??"unknown"})]}),i.jsxs("div",{className:"mt-3 rounded-md border border-border p-3",children:[i.jsx("div",{className:"text-xs font-semibold text-muted",children:"Subscribed events"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:o.events.length?o.events.map(l=>i.jsx("span",{className:"rounded border border-border bg-slate-50 px-2 py-1 font-mono text-xs",children:l},l)):i.jsx("span",{className:"text-sm text-muted",children:"No event snapshot; redeliver a ping."})})]})]}),i.jsx(me,{title:"Latest observed delivery",children:i.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:[i.jsx(J,{label:"Event",value:o.last_event_name?`${o.last_event_name}${o.last_action?` · ${o.last_action}`:""}`:"none"}),i.jsx(J,{label:"Repository",value:o.last_repository??"none"}),i.jsx(J,{label:"Delivery ID",value:o.last_delivery_id??"none"})]})}),i.jsx(me,{title:"Recent deliveries",children:e.recent_deliveries.length?i.jsx(Ul,{deliveries:e.recent_deliveries,onViewHook:a}):i.jsx(Z,{text:"This hook has no retained deliveries."})})]})}function tx({processes:e,processesLoading:t,processesError:n,systemd:r,systemdLoading:s,systemdError:a,alerts:o,alertsLoading:l,alertsError:c,now:u,onRefreshProcesses:d,onRefreshSystemd:h,onRefreshAlerts:m}){return i.jsxs("section",{className:"grid gap-4","aria-label":"Bridge system",children:[i.jsxs(me,{title:"Systemd",action:i.jsx(lt,{onClick:h}),children:[a?i.jsx(Ne,{tone:"error",text:a.message}):null,i.jsx(Mx,{data:r,loading:s})]}),i.jsxs(me,{title:"Process activity",action:i.jsx(lt,{onClick:d}),children:[n?i.jsx(Ne,{tone:"error",text:n.message}):null,i.jsx(Dx,{data:e,loading:t})]}),i.jsxs(me,{title:"Monitor alerts",action:i.jsx(lt,{onClick:m}),children:[c?i.jsx(Ne,{tone:"error",text:c.message}):null,i.jsx(zx,{alerts:o,loading:l,now:u})]})]})}function Fn({href:e,active:t,children:n,onNavigate:r}){return i.jsx("a",{className:Q("inline-flex h-8 min-w-0 flex-1 items-center justify-center gap-1 rounded-md px-1.5 text-xs font-semibold sm:flex-none sm:gap-1.5 sm:px-3 sm:text-sm [&>span]:truncate [&>svg]:shrink-0",t?"bg-primary text-white shadow-sm":"text-muted hover:bg-slate-50 hover:text-foreground"),href:e,onClick:s=>{!r||s.defaultPrevented||s.button!==0||s.metaKey||s.ctrlKey||s.altKey||s.shiftKey||(s.preventDefault(),r(e))},children:n})}function nx({jobId:e,detail:t,selectedJob:n,user:r,onBackToDashboard:s,onRetry:a,onDismiss:o,onCancel:l,onRefresh:c}){const[u,d]=L.useState(!1),[h,m]=L.useState(!1),[p,y]=L.useState(!1),w=!!(r!=null&&r.is_admin&&n&&zn(n.status)),v=!!(n&&Oi(n,r)),b=u?"Retrying...":"Retry",N=h?"Dismissing...":"Dismiss",C=p?"Cancelling...":"Cancel";return i.jsxs("div",{className:"grid min-w-0 gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("a",{className:"inline-flex h-9 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50",href:"/",onClick:k=>{k.defaultPrevented||k.button!==0||k.metaKey||k.ctrlKey||k.altKey||k.shiftKey||(k.preventDefault(),s())},children:[i.jsx(Ho,{className:"h-4 w-4","aria-hidden":!0}),"Dashboard"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[w?i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md bg-primary px-3 text-sm font-semibold text-white disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:u,onClick:async()=>{if(window.confirm(`Retry job #${e}?`)){d(!0);try{await a(e)}finally{d(!1)}}},children:[i.jsx(Gn,{className:"h-4 w-4","aria-hidden":!0}),b]}):null,w?i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md border border-border bg-white px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:h,onClick:async()=>{if(window.confirm(`Dismiss job #${e}?`)){m(!0);try{await o(e)}finally{m(!1)}}},children:[i.jsx(wn,{className:"h-4 w-4","aria-hidden":!0}),N]}):null,v?i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md border border-red-200 bg-red-50 px-3 text-sm font-semibold text-red-700 hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:p,onClick:async()=>{const k=window.prompt(`Cancel job #${e}? Optional reason:`);if(k!==null){y(!0);try{await l(e,k)}finally{y(!1)}}},children:[i.jsx(Jt,{className:"h-4 w-4","aria-hidden":!0}),C]}):null,i.jsx(lt,{onClick:c})]})]}),i.jsx(me,{title:`Job #${e}`,className:"p-3 sm:p-4",children:t})]})}function rx({selectedJobId:e,selectedJob:t,loading:n,error:r,session:s,sessionEvents:a,transcript:o,now:l}){return t?i.jsx(Ex,{job:t,session:s,sessionEvents:a,transcript:o,now:l}):e!==null&&n?i.jsx(Z,{text:"Loading selected job..."}):e!==null&&r?i.jsx(Ne,{tone:"error",text:`Job #${e}: ${r.message}`}):i.jsx(Z,{text:"Select a job to inspect its timeline, worklog and GitHub links."})}function ix({data:e,loading:t,error:n,repo:r,status:s,user:a,now:o,onRepoChange:l,onStatusChange:c,onApprove:u,onReject:d,onUpdateRuleScope:h,onDeleteRule:m,onRefresh:p}){const y=(e==null?void 0:e.summary)??{},[w,v]=L.useState("proposals"),b=[{id:"proposals",label:"Proposals",count:(e==null?void 0:e.proposals.length)??0},{id:"rules",label:"Rules",count:(e==null?void 0:e.rules.length)??0},{id:"events",label:"Events",count:(e==null?void 0:e.events.length)??0}];return i.jsxs("div",{className:"grid min-w-0 gap-4",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("h2",{className:"flex items-center gap-2 text-base font-semibold",children:[i.jsx(Hi,{className:"h-5 w-5 text-muted","aria-hidden":!0}),"Acquired knowledge"]}),i.jsx("p",{className:"text-xs text-muted",children:"Captured feedback, proposed rules and curated agent memory."})]}),i.jsx(lt,{onClick:p})]}),n?i.jsx(Ne,{tone:"error",text:n.message}):null,i.jsxs("section",{className:"grid grid-cols-2 gap-3 lg:grid-cols-4","aria-label":"Knowledge metrics",children:[i.jsx(_e,{title:"Proposed",value:y.proposed??0,icon:i.jsx(Qo,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Approved",value:y.approved??0,icon:i.jsx(wn,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Rules",value:y.rules??0,icon:i.jsx(Wo,{className:"h-5 w-5"})}),i.jsx(_e,{title:"Events",value:y.events??0,icon:i.jsx(bn,{className:"h-5 w-5"})})]}),i.jsx(me,{title:"Filters",className:"p-3",children:i.jsxs("div",{className:Q("grid gap-3",w==="proposals"?"md:grid-cols-[minmax(0,1fr)_220px]":"md:grid-cols-[minmax(0,1fr)]"),children:[i.jsx(Ye,{label:"Repository",children:i.jsxs("select",{className:"control",value:r,onChange:N=>l(N.target.value),children:[i.jsx("option",{value:"",children:"All repositories"}),((e==null?void 0:e.repositories)??[]).map(N=>i.jsx("option",{value:N,children:N},N))]})}),w==="proposals"?i.jsx(Ye,{label:"Proposal status",children:i.jsxs("select",{className:"control",value:s,onChange:N=>c(N.target.value),children:[i.jsx("option",{value:"",children:"All statuses"}),i.jsx("option",{value:"proposed",children:"proposed"}),i.jsx("option",{value:"approved",children:"approved"}),i.jsx("option",{value:"rejected",children:"rejected"}),i.jsx("option",{value:"error",children:"error"})]})}):null]})}),i.jsxs(me,{title:"Knowledge records",action:i.jsx("div",{className:"flex max-w-full flex-wrap rounded-md border border-border bg-white p-0.5",role:"tablist","aria-label":"Knowledge record type",children:b.map(N=>i.jsxs("button",{className:Q("inline-flex h-8 items-center gap-1.5 rounded px-2.5 text-xs font-semibold",w===N.id?"bg-primary text-white":"text-muted hover:bg-slate-50 hover:text-foreground"),type:"button",role:"tab","aria-label":`${N.label} (${N.count})`,"aria-selected":w===N.id,onClick:()=>v(N.id),children:[i.jsx("span",{children:N.label}),i.jsx("span",{className:Q("rounded-sm border px-1 font-mono text-[10px]",w===N.id?"border-white/40 text-white":"border-border text-muted"),children:N.count})]},N.id))}),children:[w==="proposals"?i.jsx(sx,{proposals:(e==null?void 0:e.proposals)??[],loading:t,isAdmin:!!(a!=null&&a.is_admin),now:o,onApprove:u,onReject:d}):null,w==="rules"?i.jsx(lx,{rules:(e==null?void 0:e.rules)??[],loading:t,now:o,onUpdateRuleScope:h,onDeleteRule:m}):null,w==="events"?i.jsx(cx,{events:(e==null?void 0:e.events)??[],loading:t,now:o}):null]})]})}function sx({proposals:e,loading:t,isAdmin:n,now:r,onApprove:s,onReject:a}){const[o,l]=L.useState(null);return t&&e.length===0?i.jsx(Z,{text:"Loading proposals..."}):e.length===0?i.jsx(Z,{text:"No proposals match the current filters."}):i.jsx("div",{className:"grid gap-2",children:e.map(c=>i.jsxs("article",{className:"grid min-w-0 gap-2 rounded-md border border-border bg-white p-3",children:[i.jsx(Kl,{scope:c.scope,type:c.type,confidence:c.confidence,status:c.status,timestamp:c.updated_at,now:r}),i.jsx("p",{className:"min-w-0 break-words text-sm font-medium [overflow-wrap:anywhere]",children:c.rule||c.reason||"No reusable rule proposed."}),c.reason?i.jsx("p",{className:"min-w-0 break-words text-xs text-muted [overflow-wrap:anywhere]",children:c.reason}):null,c.source_event?i.jsx(ax,{event:c.source_event}):i.jsxs("p",{className:"font-mono text-xs text-muted",children:["Source event ",c.event_id]}),c.error?i.jsx(Ne,{tone:"error",text:c.error}):null,n&&c.status==="proposed"?i.jsxs("div",{className:"flex flex-wrap gap-2",children:[i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md bg-primary px-3 text-sm font-semibold text-white disabled:opacity-60",type:"button",disabled:o===c.id,onClick:async()=>{l(c.id);try{await s(c.id)}finally{l(null)}},children:[i.jsx(wn,{className:"h-4 w-4","aria-hidden":!0}),"Approve"]}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:opacity-60",type:"button",disabled:o===c.id,onClick:async()=>{l(c.id);try{await a(c.id)}finally{l(null)}},children:[i.jsx(Jt,{className:"h-4 w-4","aria-hidden":!0}),"Reject"]})]}):null]},c.id))})}function ax({event:e}){const t=e.trigger_actor||(e.actor!=="github"?e.actor:null);return i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2 rounded-md border border-border bg-slate-50 px-2 py-1.5",children:[i.jsx(Cn,{actor:t,avatarUrl:e.trigger_actor_avatar_url,framed:!0}),e.source_job_id?i.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border bg-white px-2 text-xs font-semibold text-foreground hover:bg-slate-50",href:Sn(e.source_job_id),children:[i.jsx(vn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",e.source_job_id]}):null,e.github_urls.length>0?i.jsx(Xn,{urls:e.github_urls,compact:!0}):i.jsx("span",{className:"font-mono text-xs text-muted",children:"No GitHub link"})]})}function ox(e){const t=[{value:"global",label:"global"}];if(e.startsWith("repo:")){const n=e.slice(5),[r,s]=n.split("/",2);r&&s&&(t.push({value:`org:${r}`,label:`org:${r}`}),t.push({value:`repo:${r}/${s}`,label:`repo:${r}/${s}`}))}else e.startsWith("org:")&&t.push({value:e,label:e});return t.some(n=>n.value===e)||t.push({value:e,label:e}),t}function lx({rules:e,loading:t,now:n,onUpdateRuleScope:r,onDeleteRule:s}){const[a,o]=L.useState(null),[l,c]=L.useState(null),[u,d]=L.useState("");return t&&e.length===0?i.jsx(Z,{text:"Loading curated rules..."}):e.length===0?i.jsx(Z,{text:"No curated rules match the current filters."}):i.jsx("div",{className:"grid gap-2",children:e.map(h=>{const m=h.source_event_details??[],p=m[0],y=p?p.trigger_actor||(p.actor!=="github"?p.actor:null):null,w=m.flatMap(k=>k.github_urls??[]),v=ox(h.scope),b=l===h.id,N=a===h.id,C=!!h.can_manage;return i.jsxs("article",{className:"grid min-w-0 gap-2 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsx(Kl,{scope:h.scope,type:h.type,confidence:h.confidence,status:`${h.observations} observation${h.observations===1?"":"s"}`,timestamp:h.last_seen,now:n}),C?i.jsxs("div",{className:"flex flex-wrap items-end gap-2",children:[b?i.jsxs(i.Fragment,{children:[i.jsx(Ye,{label:"Scope",children:i.jsx("select",{className:"control h-8 min-w-[180px] py-1 text-xs",value:u,disabled:N,onChange:k=>d(k.target.value),children:v.map(k=>i.jsx("option",{value:k.value,children:k.label},k.value))})}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:opacity-60",type:"button",disabled:N||u===h.scope,title:"Save scope",onClick:async()=>{if(u!==h.scope){o(h.id);try{await r(h.id,u),c(null)}finally{o(null)}}},children:[i.jsx(cu,{className:"h-4 w-4","aria-hidden":!0}),"Save"]}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-muted hover:bg-slate-50 disabled:opacity-60",type:"button",disabled:N,title:"Cancel scope edit",onClick:()=>{c(null),d("")},children:[i.jsx(Jt,{className:"h-4 w-4","aria-hidden":!0}),"Cancel"]})]}):i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:opacity-60",type:"button",disabled:N,title:"Edit scope",onClick:()=>{c(h.id),d(h.scope)},children:[i.jsx(lu,{className:"h-4 w-4","aria-hidden":!0}),"Edit"]}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-red-200 px-3 text-sm font-semibold text-red-700 hover:bg-red-50 disabled:opacity-60",type:"button",disabled:N,onClick:async()=>{if(window.confirm("Delete this curated rule?")){o(h.id);try{await s(h.id)}finally{o(null)}}},children:[i.jsx(ki,{className:"h-4 w-4","aria-hidden":!0}),"Delete"]})]}):null]}),i.jsx("p",{className:"min-w-0 break-words text-sm font-medium [overflow-wrap:anywhere]",children:h.rule}),i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(Cn,{actor:y,avatarUrl:p==null?void 0:p.trigger_actor_avatar_url,framed:!0}),p!=null&&p.source_job_id?i.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-foreground hover:bg-white",href:Sn(p.source_job_id),children:[i.jsx(vn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",p.source_job_id]}):null,w.length>0?i.jsx(Xn,{urls:w,compact:!0}):i.jsx("span",{className:"font-mono text-xs text-muted",children:"No GitHub link"})]})]},h.id)})})}function cx({events:e,loading:t,now:n}){return t&&e.length===0?i.jsx(Z,{text:"Loading captured events..."}):e.length===0?i.jsx(Z,{text:"No captured feedback events match the current filters."}):i.jsx("div",{className:"grid gap-2",children:e.map(r=>{const s=r.trigger_actor||(r.actor!=="github"?r.actor:null);return i.jsxs("details",{className:"group rounded-md border border-border bg-white",children:[i.jsxs("summary",{className:"grid cursor-pointer list-none gap-2 px-3 py-2 marker:hidden hover:bg-slate-50",children:[i.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-2",children:[i.jsxs("span",{className:"inline-flex min-w-0 items-center gap-2 font-mono text-xs font-semibold text-muted",children:[i.jsx(yn,{className:"h-3.5 w-3.5 shrink-0 transition-transform group-open:rotate-180","aria-hidden":!0}),i.jsx("span",{className:"truncate",children:ql(r.scope)})]}),i.jsx("span",{className:"shrink-0 font-mono text-xs text-muted",children:i.jsx(Ie,{value:r.occurred_at,relative:!0,now:n})})]}),i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(Cn,{actor:s,avatarUrl:r.trigger_actor_avatar_url,framed:!0}),r.source_job_id?i.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-foreground hover:bg-white",href:Sn(r.source_job_id),children:[i.jsx(vn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",r.source_job_id]}):null,r.github_urls.length>0?i.jsx(Xn,{urls:r.github_urls,compact:!0}):i.jsx("span",{className:"font-mono text-xs text-muted",children:"No GitHub link"})]}),i.jsx("p",{className:"line-clamp-2 break-words text-sm [overflow-wrap:anywhere]",children:r.comment})]}),i.jsxs("div",{className:"grid gap-2 border-t border-border px-3 py-2",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"mb-1 text-xs font-semibold text-muted",children:"GitHub links"}),r.github_urls.length>0?i.jsx(Xn,{urls:r.github_urls}):i.jsx("p",{className:"text-xs text-muted",children:"No links recorded."})]}),i.jsx("pre",{className:"max-h-72 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-relaxed text-slate-100",children:JSON.stringify(r.context,null,2)})]})]},r.id)})})}function ux({tokens:e,loading:t,error:n,user:r,ownerOptions:s,dashboardUrl:a,dashboardUrlSource:o,now:l,onCreate:c,onUpdateOwner:u,onRevoke:d,onRefresh:h}){const[m,p]=L.useState(""),[y,w]=L.useState(""),[v,b]=L.useState(!1),[N,C]=L.useState(null),[k,q]=L.useState(null),[j,B]=L.useState(null),[O,P]=L.useState(""),_=e??[],T=s.find(E=>E.login===y);L.useEffect(()=>{var E;r!=null&&r.is_admin&&(y&&s.some(F=>F.login===y)||w((r==null?void 0:r.login)||((E=s[0])==null?void 0:E.login)||""))},[s,r==null?void 0:r.is_admin,r==null?void 0:r.login,y]);const R=(a||(typeof window>"u"?"":window.location.origin)).replace(/\/$/,""),G=`${R}/mcp`,z=`${R}/api/mcp`;return i.jsxs("div",{className:"grid min-w-0 gap-4",children:[i.jsx($l,{icon:i.jsx(Tr,{className:"h-5 w-5 text-muted","aria-hidden":!0}),title:"MCP access",subtitle:r!=null&&r.is_admin?"Issue and revoke read-only tokens for any dashboard user.":"Issue and revoke read-only tokens linked to your user.",action:i.jsx(lt,{onClick:h})}),n?i.jsx(Ne,{tone:"error",text:n.message}):null,O?i.jsx(Ne,{tone:"error",text:O}):null,i.jsx(dx,{dashboardUrl:G,endpointUrl:z,dashboardUrlSource:o??"request"}),j?i.jsxs("section",{className:"rounded-md border border-emerald-300 bg-emerald-50 p-3 text-emerald-950","aria-label":"Created MCP token",children:[i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h2",{className:"text-sm font-semibold",children:"Token created"}),i.jsx("p",{className:"mt-1 text-xs text-emerald-800",children:"This secret is shown once. Store it in the local agent environment before leaving this page."})]}),i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-emerald-300 bg-white px-3 text-sm font-semibold text-emerald-900 hover:bg-emerald-100",type:"button",onClick:()=>B(null),children:[i.jsx(Jt,{className:"h-4 w-4","aria-hidden":!0}),"Hide"]})]}),i.jsx("pre",{className:"mt-3 overflow-auto rounded bg-emerald-950 px-3 py-2 font-mono text-xs text-emerald-50",children:j.token})]}):null,i.jsx(me,{title:"Create token",children:i.jsxs("form",{className:r!=null&&r.is_admin?"grid gap-3 md:grid-cols-[minmax(0,1fr)_minmax(12rem,16rem)_auto]":"grid gap-3 md:grid-cols-[minmax(0,1fr)_auto]",onSubmit:async E=>{E.preventDefault();const F=m.trim();if(F){b(!0),P("");try{const V=await c(F,r!=null&&r.is_admin?y:void 0);B(V),p("")}catch(V){P(V instanceof Error?V.message:String(V))}finally{b(!1)}}},children:[i.jsx(Ye,{label:"Token name",children:i.jsx("input",{className:"control",value:m,placeholder:"local agent",disabled:v,onChange:E=>p(E.target.value)})}),r!=null&&r.is_admin?i.jsxs(Ye,{label:"Owner",children:[i.jsx(Hl,{ariaLabel:"Owner",value:y,ownerOptions:s,disabled:v||s.length===0,selectedSuffix:E=>E.login===(r==null?void 0:r.login)?" (you)":"",emptyLabel:"No known users",onChange:w}),T?i.jsxs("span",{className:"font-normal text-muted",children:["Token will be linked to @",T.login,"."]}):null]}):null,i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 self-end rounded-md bg-primary px-3 text-sm font-semibold text-white disabled:cursor-not-allowed disabled:opacity-60",type:"submit",disabled:v||!m.trim()||!!(r!=null&&r.is_admin&&!y),children:[i.jsx(Tr,{className:"h-4 w-4","aria-hidden":!0}),v?"Creating...":"Create token"]})]})}),i.jsx(me,{title:"Active tokens",children:i.jsx(hx,{tokens:_,loading:t,now:l,ownerOptions:s,canManageOwners:!!(r!=null&&r.is_admin),revokingId:N,updatingOwnerId:k,onUpdateOwner:async(E,F)=>{q(E),P("");try{await u(E,F)}catch(V){P(V instanceof Error?V.message:String(V))}finally{q(null)}},onRevoke:async E=>{if(window.confirm("Revoke this MCP token?")){C(E),P("");try{await d(E)}catch(F){P(F instanceof Error?F.message:String(F))}finally{C(null)}}}})})]})}function dx({dashboardUrl:e,endpointUrl:t,dashboardUrlSource:n}){const r=n==="configured"?"Configured public URL":n==="forwarded"?"Forwarded public URL":"Needs public URL",s=n==="request",a=s?"Set GITHUB_AGENT_BRIDGE_DASHBOARD_PUBLIC_URL or forward X-Forwarded-* headers":e,o=s?"Public dashboard URL required before connecting remote agents":t,c=`{ - "mcpServers": { - "github-agent-bridge": { - "url": "${s?"https://bridge.example.com/api/mcp":t}", - "headers": { - "Authorization": "Bearer \${GITHUB_AGENT_BRIDGE_MCP_TOKEN}" - } - } - } -}`;return i.jsxs(me,{title:"Connect an agent",children:[s?i.jsx(Ne,{tone:"warning",text:"Set GITHUB_AGENT_BRIDGE_DASHBOARD_PUBLIC_URL, or forward X-Forwarded-* headers from the proxy, before connecting remote agents."}):null,i.jsxs("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,1fr)_minmax(0,1fr)]",children:[i.jsxs("div",{className:"grid min-w-0 gap-3",children:[i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm font-semibold",children:[i.jsx(Gt,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Public dashboard URL",i.jsx("span",{className:"rounded-sm border border-border bg-slate-50 px-1.5 py-0.5 font-mono text-[11px] font-normal text-muted",children:r})]}),i.jsx("p",{className:"mt-1 text-xs text-muted",children:"Share this page URL with bridge admins only after it resolves to the external dashboard origin."}),i.jsx("pre",{className:"mt-3 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs text-slate-100",children:a})]}),i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[i.jsx(Gt,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"HTTP MCP endpoint"]}),i.jsx("p",{className:"mt-1 text-xs text-muted",children:"Remote agents connect directly with a bearer token; no local `gab` binary is required on the agent host."}),i.jsx("pre",{className:"mt-3 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs text-slate-100",children:o})]})]}),i.jsxs("div",{className:"grid min-w-0 gap-3",children:[i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[i.jsx(Tr,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Agent config"]}),i.jsx("p",{className:"mt-1 text-xs text-muted",children:"Create a token below, then store the one-time secret as `GITHUB_AGENT_BRIDGE_MCP_TOKEN` for the agent."}),i.jsx("pre",{className:"mt-3 max-h-64 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-relaxed text-slate-100",children:c})]}),i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[i.jsx(Hi,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Agent prompt"]}),i.jsx("p",{className:"mt-1 text-xs text-muted",children:"Ask the agent to use the read-only bridge knowledge server before acting on repository work."}),i.jsx("pre",{className:"mt-3 max-h-40 overflow-auto rounded-md bg-slate-950 px-3 py-2 font-mono text-xs leading-relaxed text-slate-100",children:"Use the github-agent-bridge MCP server for repository knowledge. Query list_repositories and list_knowledge before making repository decisions."})]})]})]})]})}function $l({icon:e,title:t,subtitle:n,action:r}){return i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("h2",{className:"flex items-center gap-2 text-base font-semibold",children:[e,t]}),i.jsx("p",{className:"text-xs text-muted",children:n})]}),r]})}function hx({tokens:e,loading:t,now:n,ownerOptions:r,canManageOwners:s,revokingId:a,updatingOwnerId:o,onUpdateOwner:l,onRevoke:c}){return t&&e.length===0?i.jsx(Z,{text:"Loading MCP tokens..."}):e.length===0?i.jsx(Z,{text:"No active MCP tokens."}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"grid gap-2 md:hidden",children:e.map(u=>i.jsxs("article",{className:"grid min-w-0 gap-3 rounded-md border border-border bg-white p-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h3",{className:"break-words text-sm font-semibold [overflow-wrap:anywhere]",children:u.name}),i.jsx("div",{className:"mt-1 break-all font-mono text-xs text-muted",children:u.id}),s?i.jsx(lo,{token:u,ownerOptions:r,disabled:o===u.id,onUpdateOwner:l}):u.user_login?i.jsxs("div",{className:"mt-1 text-xs text-muted",children:["Owner: @",u.user_login]}):null]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsx(J,{label:"Created",value:i.jsx(Ie,{value:u.created_at,relative:!0,now:n})}),i.jsx(J,{label:"Last used",value:u.last_used_at?i.jsx(Ie,{value:u.last_used_at,relative:!0,now:n}):"never"})]}),i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-2 rounded-md border border-red-200 px-3 text-sm font-semibold text-red-700 hover:bg-red-50 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:a===u.id,onClick:()=>c(u.id),children:[i.jsx(ki,{className:"h-4 w-4","aria-hidden":!0}),a===u.id?"Revoking...":"Revoke"]})]},u.id))}),i.jsx("div",{className:"hidden overflow-auto rounded-md border border-border md:block",children:i.jsxs("table",{className:"min-w-full border-collapse text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"border-b border-border bg-slate-50 text-left text-xs text-muted",children:[i.jsx("th",{className:"px-3 py-2 font-semibold",children:"Name"}),i.jsx("th",{className:"px-3 py-2 font-semibold",children:"Owner"}),i.jsx("th",{className:"px-3 py-2 font-semibold",children:"Created"}),i.jsx("th",{className:"px-3 py-2 font-semibold",children:"Last used"}),i.jsx("th",{className:"px-3 py-2 font-semibold",children:"ID"}),i.jsx("th",{className:"px-3 py-2 text-right font-semibold",children:"Actions"})]})}),i.jsx("tbody",{children:e.map(u=>i.jsxs("tr",{className:"border-b border-border last:border-b-0",children:[i.jsx("td",{className:"px-3 py-3 font-semibold",children:u.name}),i.jsx("td",{className:"px-3 py-3 text-xs text-muted",children:s?i.jsx(lo,{token:u,ownerOptions:r,disabled:o===u.id,onUpdateOwner:l}):u.user_login?`@${u.user_login}`:"unassigned"}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs",children:i.jsx(Ie,{value:u.created_at,relative:!0,now:n})}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs",children:u.last_used_at?i.jsx(Ie,{value:u.last_used_at,relative:!0,now:n}):"never"}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs text-muted",children:u.id}),i.jsx("td",{className:"px-3 py-3 text-right",children:i.jsxs("button",{className:"inline-flex h-8 items-center gap-2 rounded-md border border-red-200 px-3 text-sm font-semibold text-red-700 hover:bg-red-50 disabled:cursor-not-allowed disabled:opacity-60",type:"button",disabled:a===u.id,onClick:()=>c(u.id),children:[i.jsx(ki,{className:"h-4 w-4","aria-hidden":!0}),a===u.id?"Revoking...":"Revoke"]})})]},u.id))})]})})]})}function lo({token:e,ownerOptions:t,disabled:n,onUpdateOwner:r}){const s=e.user_login??"";return i.jsx(Hl,{ariaLabel:`Owner for ${e.name}`,value:s,ownerOptions:t,disabled:n||t.length===0,emptyLabel:"Select owner",size:"compact",onChange:a=>{!a||a===e.user_login||r(e.id,a)}})}function Hl({value:e,ownerOptions:t,disabled:n,onChange:r,ariaLabel:s,selectedSuffix:a,emptyLabel:o,size:l="default"}){const c=t.find(d=>d.login===e),u=c?`@${c.login}${(a==null?void 0:a(c))??""}`:o;return i.jsxs("div",{className:Q("relative flex min-w-0 items-center gap-2 rounded-md border border-border bg-panel text-foreground focus-within:border-primary focus-within:ring-1 focus-within:ring-primary",n?"opacity-60":"",l==="compact"?"h-8 w-44 max-w-full px-2":"h-9 w-full px-2.5"),children:[i.jsx("span",{className:Q("pointer-events-none flex shrink-0 items-center justify-center",l==="compact"?"h-5 w-5":"h-6 w-6"),children:c!=null&&c.avatar_url?i.jsx("img",{className:"h-full w-full rounded-full bg-slate-100",src:Ze(c.avatar_url),alt:"",referrerPolicy:"no-referrer"}):i.jsx(Wn,{className:Q("text-muted",l==="compact"?"h-4 w-4":"h-5 w-5"),"aria-hidden":!0})}),i.jsx("span",{className:Q("pointer-events-none min-w-0 flex-1 truncate font-mono",c?"text-foreground":"text-muted",l==="compact"?"text-xs":"text-sm"),children:u}),i.jsxs("select",{className:"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed","aria-label":s,value:e,disabled:n,onChange:d=>r(d.target.value),children:[t.length===0||!e?i.jsx("option",{value:"",children:o}):null,t.map(d=>i.jsxs("option",{value:d.login,children:["@",d.login,(a==null?void 0:a(d))??""]},d.login))]}),i.jsx(yn,{className:Q("pointer-events-none shrink-0 text-muted",l==="compact"?"h-3.5 w-3.5":"h-4 w-4"),"aria-hidden":!0})]})}function Xn({urls:e,compact:t=!1}){const n=t?e.slice(0,2):e,r=e.length-n.length;return i.jsxs("div",{className:"flex min-w-0 max-w-full flex-wrap gap-1.5",children:[n.map(s=>i.jsxs("a",{className:Q("inline-flex max-w-full items-center gap-1 rounded-md border border-border font-semibold text-primary hover:bg-white hover:underline",t?"h-7 px-2 text-xs":"min-h-7 px-2 py-1 text-xs"),href:Ze(s),"aria-label":s,rel:"noreferrer",target:"_blank",children:[i.jsx(Gt,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),i.jsx("span",{className:"truncate",children:t?px(s):s})]},s)),r>0?i.jsxs("span",{className:"inline-flex h-7 items-center rounded-md border border-border px-2 font-mono text-xs text-muted",children:["+",r]}):null]})}function px(e){try{const t=new URL(e);return t.pathname.replace(/^\//,"")+t.hash}catch{return e}}function Kl({scope:e,type:t,confidence:n,status:r,timestamp:s,now:a}){return i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2 text-xs text-muted",children:[i.jsx("span",{className:"truncate font-mono font-semibold text-foreground",children:ql(e)}),i.jsx("span",{className:"rounded-sm border border-border px-1.5 py-0.5 font-mono",children:t}),i.jsxs("span",{className:"rounded-sm border border-border px-1.5 py-0.5 font-mono",children:[Math.round(n*100),"%"]}),i.jsx("span",{className:"rounded-sm border border-border px-1.5 py-0.5 font-mono",children:r}),i.jsx("span",{className:"font-mono",children:i.jsx(Ie,{value:s,relative:!0,now:a})})]})}function mx({user:e,loading:t}){const n=e!=null&&e.login?`@${e.login}`:t?"Loading profile...":"GitHub OAuth",r=e!=null&&e.is_admin?"admin":"read-only",s=e!=null&&e.avatar_url?i.jsx("img",{className:"h-10 w-10 rounded-full border border-slate-700 bg-slate-800",src:e.avatar_url,alt:e.login?`${e.login} avatar`:"",referrerPolicy:"no-referrer"}):i.jsx("span",{className:"inline-flex h-10 w-10 items-center justify-center rounded-full border border-slate-700 bg-slate-900",children:i.jsx(Wn,{className:"h-5 w-5","aria-hidden":!0})}),a=e!=null&&e.html_url?i.jsx("a",{className:"truncate font-semibold text-white hover:underline",href:Ze(e.html_url),rel:"noreferrer",target:"_blank",children:n}):i.jsx("div",{className:"truncate font-semibold text-white",children:n});return i.jsxs("div",{className:"flex max-w-full shrink-0 items-center gap-3 text-sm text-slate-300","aria-label":e!=null&&e.login?`Signed in as ${e.login}`:"Dashboard account",children:[i.jsx(Wo,{className:"hidden h-4 w-4 shrink-0 sm:block","aria-hidden":!0}),i.jsxs("div",{className:"hidden min-w-0 text-right sm:block",children:[a,i.jsxs("div",{className:"text-xs text-slate-400",children:["Signed in · ",r]})]}),s]})}function fx({config:e,loading:t,onEnable:n,onDisable:r}){const[s,a]=L.useState(!1),[o,l]=L.useState(""),c=!!(e!=null&&e.status.enabled),u=typeof navigator<"u"&&typeof window<"u"&&Rr(),d=t||s||!(e!=null&&e.configured)||!u,h=u?e!=null&&e.configured?c?"Disable notifications":"Enable notifications":"Notifications not configured":"Notifications unavailable";return i.jsx("div",{className:"relative",children:i.jsx("button",{className:Q("inline-flex h-9 w-9 items-center justify-center rounded-md border text-sm font-semibold",c?"border-emerald-400 bg-emerald-50 text-emerald-700":"border-slate-700 bg-slate-900 text-slate-200",d&&"cursor-not-allowed opacity-60"),type:"button","aria-label":h,title:o||h,disabled:d,onClick:async()=>{a(!0),l("");try{c?await r():await n()}catch(m){l(m instanceof Error?m.message:String(m))}finally{a(!1)}},children:i.jsx(Ko,{className:Q("h-4 w-4",s&&"animate-live-pulse"),"aria-hidden":!0})})})}function xx({notification:e,onDismiss:t,onNavigate:n}){if(!e)return null;const r=e.title||"GitHub Agent Bridge",s=e.body||e.summary||"Bridge job finished",a=e.url||e.job_url||(e.job_id?Sn(e.job_id):"/"),o=a.startsWith("/");return i.jsx("aside",{className:"fixed right-3 top-20 z-50 w-[min(calc(100vw-1.5rem),28rem)] rounded-md border border-emerald-300 bg-white shadow-xl shadow-slate-950/15","aria-live":"assertive","aria-label":"Bridge notification",children:i.jsxs("div",{className:"flex items-start gap-3 p-3",children:[i.jsx("div",{className:"mt-0.5 flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-emerald-50 text-emerald-700",children:i.jsx(Ko,{className:"h-4 w-4","aria-hidden":!0})}),i.jsxs("div",{className:"min-w-0 flex-1",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx("h2",{className:"min-w-0 break-words text-sm font-semibold text-foreground",children:r}),i.jsx("button",{className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-muted hover:bg-slate-100 hover:text-foreground",type:"button","aria-label":"Dismiss notification",onClick:t,children:i.jsx(Jt,{className:"h-4 w-4","aria-hidden":!0})})]}),i.jsx("p",{className:"mt-1 min-w-0 break-words text-sm text-muted",children:s}),e.detail?i.jsx("p",{className:"mt-1 line-clamp-2 min-w-0 break-words text-xs text-muted",children:e.detail}):null,i.jsxs("button",{className:"mt-3 inline-flex h-8 items-center gap-1.5 rounded-md border border-border px-2.5 text-xs font-semibold text-foreground hover:bg-slate-50",type:"button",onClick:()=>{t(),o?n(a):window.open(Ze(a),"_blank","noopener,noreferrer")},children:[i.jsx(Gt,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Open"]})]})]})})}function gx({count:e,limit:t,loading:n,onRefresh:r}){return i.jsxs("div",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 rounded-lg border border-border bg-white px-3 py-3 shadow-sm md:px-4",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("h2",{className:"text-base font-semibold",children:"Jobs"}),i.jsx("p",{className:"text-xs text-muted",children:n?"Refreshing latest jobs...":`Showing ${e} of the latest ${t} requested jobs`})]}),i.jsx(lt,{onClick:r,compactOnMobile:!0})]})}function me({title:e,action:t,children:n,className:r,flushHeader:s=!1}){return i.jsxs("section",{className:Q("min-w-0 rounded-lg border border-border bg-panel p-4 shadow-sm",r),children:[i.jsxs("div",{className:Q("flex flex-wrap items-center justify-between gap-3",!s&&"mb-4"),children:[i.jsx("h2",{className:"text-sm font-semibold",children:e}),t]}),n]})}function _e({title:e,value:t,icon:n}){return i.jsxs("div",{className:"rounded-lg border border-border bg-panel p-3 shadow-sm md:p-4",children:[i.jsxs("div",{className:"flex items-center justify-between text-muted",children:[i.jsx("span",{className:"text-sm font-medium",children:e}),n]}),i.jsx("strong",{className:"mt-3 block text-2xl leading-none md:mt-4 md:text-3xl",children:t})]})}function bx({filters:e,actorOptions:t,onChange:n}){const[r,s]=L.useState(e);L.useEffect(()=>s(e),[e]);const a=Uf(e),o=oo(e)||oo(r),l=()=>{s(Mi),n(Mi)};return i.jsxs("details",{className:"my-3 rounded-md border border-border bg-slate-50/70",children:[i.jsxs("summary",{className:"grid cursor-pointer list-none grid-cols-[minmax(0,1fr)_auto] items-center gap-3 px-3 py-2 text-sm font-semibold marker:hidden",children:[i.jsxs("span",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsxs("span",{className:"inline-flex shrink-0 items-center gap-2",children:[i.jsx(au,{className:"h-4 w-4 text-muted","aria-hidden":!0}),"Filters"]}),a.length>0?i.jsx("span",{className:"flex min-w-0 flex-wrap items-center gap-1.5","aria-label":"Applied filters",children:a.map(c=>i.jsxs("span",{className:"inline-flex max-w-full items-center gap-1 rounded-full border border-blue-200 bg-blue-50 px-2 py-0.5 text-xs font-semibold text-blue-700",children:[i.jsx("span",{className:"text-blue-700/70",children:c.label}),i.jsx("span",{className:"max-w-40 truncate font-mono",children:c.value.trim()})]},c.key))}):null]}),i.jsxs("span",{className:"inline-flex shrink-0 items-center gap-2",children:[o?i.jsxs("button",{className:"inline-flex h-8 items-center justify-center gap-1.5 rounded-md border border-border bg-white px-2.5 text-xs font-semibold text-foreground hover:bg-slate-50",type:"button",onClick:c=>{c.preventDefault(),c.stopPropagation(),l()},children:[i.jsx(Gn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Clear filters"]}):null,i.jsx(yn,{className:"h-4 w-4 text-muted","aria-hidden":!0})]})]}),i.jsxs("form",{className:"grid gap-3 border-t border-border bg-white p-3 md:grid-cols-3 xl:grid-cols-9",onSubmit:c=>{c.preventDefault(),n(r)},children:[i.jsx(Ye,{label:"Status",children:i.jsxs("select",{className:"control",value:r.status,onChange:c=>s({...r,status:c.target.value}),children:[i.jsx("option",{value:"",children:"All"}),i.jsx("option",{value:"pending",children:"pending"}),i.jsx("option",{value:"running",children:"running"}),i.jsx("option",{value:"blocked",children:"blocked"}),i.jsx("option",{value:"done",children:"done"}),i.jsx("option",{value:"denied",children:"denied"}),i.jsx("option",{value:"waiting_approval",children:"waiting_approval"})]})}),i.jsx(Ye,{label:"Repository",children:i.jsx("input",{className:"control",value:r.repo,placeholder:"owner/repo",onChange:c=>s({...r,repo:c.target.value})})}),i.jsx(Ye,{label:"Thread",children:i.jsx("input",{className:"control",value:r.thread,inputMode:"numeric",placeholder:"issue or PR",onChange:c=>s({...r,thread:c.target.value})})}),i.jsx(Ye,{label:"Action",children:i.jsx("input",{className:"control",value:r.action,placeholder:"reply_comment",onChange:c=>s({...r,action:c.target.value})})}),i.jsx(Ye,{label:"Actor",className:"xl:col-span-2",children:i.jsx(yx,{value:r.actor,options:t,onChange:c=>s({...r,actor:c})})}),i.jsx(Ye,{label:"Intent",children:i.jsxs("select",{className:"control",value:r.intent,onChange:c=>s({...r,intent:c.target.value}),children:[i.jsx("option",{value:"",children:"All"}),i.jsx("option",{value:"review_only",children:"review_only"}),i.jsx("option",{value:"work_allowed",children:"work_allowed"})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 self-end xl:col-span-2",children:[i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md border border-border px-3 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-white",type:"button",disabled:!o,onClick:l,children:[i.jsx(Gn,{className:"h-4 w-4","aria-hidden":!0}),"Clear"]}),i.jsxs("button",{className:"inline-flex h-9 items-center justify-center gap-2 rounded-md bg-primary px-3 text-sm font-semibold text-white",type:"submit",children:[i.jsx(uu,{className:"h-4 w-4","aria-hidden":!0}),"Apply"]})]})]})]})}function yx({value:e,options:t,onChange:n}){const[r,s]=L.useState(!1),a=e.trim().replace(/^@/,"").toLowerCase(),o=t.filter(c=>!a||c.login.toLowerCase().includes(a)).slice(0,8),l=t.find(c=>c.login.toLowerCase()===a);return i.jsxs("div",{className:"relative min-w-0",children:[i.jsxs("div",{className:"control flex items-center gap-2 px-2",children:[l?i.jsx("img",{className:"h-5 w-5 shrink-0 rounded-full bg-slate-100",src:Ze(l.avatar_url??""),alt:`${l.login} avatar`,referrerPolicy:"no-referrer"}):i.jsx(Wn,{className:"h-4 w-4 shrink-0 text-muted","aria-hidden":!0}),i.jsx("input",{className:"min-w-0 flex-1 bg-transparent font-mono text-sm outline-none",value:e,placeholder:"@login",onChange:c=>{n(c.target.value),s(!0)},onFocus:()=>s(!0),onBlur:()=>window.setTimeout(()=>s(!1),100)}),e?i.jsx("button",{className:"rounded-sm p-1 text-muted hover:bg-slate-100",type:"button","aria-label":"Clear actor filter",onClick:()=>n(""),children:i.jsx(Jt,{className:"h-3.5 w-3.5","aria-hidden":!0})}):null]}),r&&o.length>0?i.jsx("div",{className:"absolute left-0 right-0 z-20 mt-1 max-h-72 overflow-auto rounded-md border border-border bg-white p-1 shadow-lg",children:o.map(c=>i.jsxs("button",{className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-left hover:bg-slate-50",type:"button",onMouseDown:u=>u.preventDefault(),onClick:()=>{n(c.login),s(!1)},children:[c.avatar_url?i.jsx("img",{className:"h-6 w-6 shrink-0 rounded-full bg-slate-100",src:Ze(c.avatar_url),alt:`${c.login} avatar`,referrerPolicy:"no-referrer"}):i.jsx(Wn,{className:"h-5 w-5 shrink-0 text-muted","aria-hidden":!0}),i.jsxs("span",{className:"min-w-0 flex-1 truncate font-mono text-xs text-foreground",children:["@",c.login]}),i.jsx("span",{className:"shrink-0 rounded-full bg-slate-100 px-1.5 py-0.5 text-[10px] font-semibold text-muted",children:c.job_count})]},c.login))}):null]})}function Ye({label:e,children:t,className:n}){return i.jsxs("label",{className:Q("grid min-w-0 gap-1 text-xs font-semibold text-muted",n),children:[e,t]})}function wx({jobs:e,loading:t,loadingMore:n=!1,hasMore:r=!1,onLoadMore:s,onViewJob:a,now:o,user:l,onRetry:c,onDismiss:u,onCancel:d}){const[h,m]=L.useState(null),[p,y]=L.useState(null),[w,v]=L.useState(null),b=L.useRef(!1),N=L.useRef(n),C=!!(l!=null&&l.is_admin&&c),k=!!(l!=null&&l.is_admin&&u);L.useEffect(()=>{N.current&&!n&&(b.current=!1),N.current=n},[n]);const q=L.useCallback(()=>{b.current||(b.current=!0,s==null||s())},[s]),j=L.useCallback(async P=>{if(c){m(P);try{await c(P)}finally{m(null)}}},[c]),B=L.useCallback(async P=>{if(u){y(P);try{await u(P)}finally{y(null)}}},[u]),O=L.useCallback(async(P,_)=>{if(d){v(P);try{await d(P,_)}finally{v(null)}}},[d]);return t&&e.length===0?i.jsx(Z,{text:"Loading jobs..."}):e.length===0?i.jsx(Z,{text:"No jobs match the current filters."}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2 md:hidden",children:[e.map(P=>i.jsx(kx,{job:P,onViewJob:a,now:o,canRetry:C&&zn(P.status),retrying:h===P.id,onRetry:j,canDismiss:k&&zn(P.status),dismissing:p===P.id,onDismiss:B,canCancel:!!(d&&Oi(P,l)),cancelling:w===P.id,onCancel:O},P.id)),i.jsx(jx,{hasMore:r,loading:n,onLoadMore:q})]}),i.jsx(Fi,{noun:"jobs",hasMore:r,loading:n,onLoadMore:q,className:"hidden md:block",children:i.jsxs("table",{className:"min-w-[1080px] table-fixed border-collapse text-sm",children:[i.jsx("thead",{children:i.jsxs("tr",{className:"sticky top-0 z-10 border-b border-border bg-panel text-left text-xs text-muted",children:[i.jsx("th",{className:"w-[42%] px-3 py-2 font-semibold",children:"Job"}),i.jsx("th",{className:"w-32 px-3 py-2 font-semibold",children:"Status"}),i.jsx("th",{className:"w-40 px-3 py-2 font-semibold",children:"Action"}),i.jsx("th",{className:"w-36 px-3 py-2 font-semibold",children:"Actor"}),i.jsx("th",{className:"w-36 px-3 py-2 font-semibold",children:"Timing"}),i.jsx("th",{className:"w-28 px-3 py-2 font-semibold",children:"Updated"}),i.jsx("th",{className:"w-24 px-3 py-2 text-right font-semibold",children:"Actions"})]})}),i.jsx("tbody",{children:e.map(P=>i.jsx(vx,{job:P,now:o,onViewJob:a,canRetry:C&&zn(P.status),retrying:h===P.id,onRetry:j,canDismiss:k&&zn(P.status),dismissing:p===P.id,onDismiss:B,canCancel:!!(d&&Oi(P,l)),cancelling:w===P.id,onCancel:O},P.id))})]})})]})}function vx({job:e,now:t,onViewJob:n,canRetry:r,retrying:s,onRetry:a,canDismiss:o,dismissing:l,onDismiss:c,canCancel:u,cancelling:d,onCancel:h}){return i.jsxs("tr",{className:"cursor-pointer border-b border-border align-top hover:bg-slate-50",onClick:()=>n(e.id),children:[i.jsx("td",{className:"min-w-0 px-3 py-3",children:i.jsxs("div",{className:"flex min-w-0 items-start gap-2",children:[i.jsxs("span",{className:"mt-0.5 shrink-0 font-mono text-xs font-semibold text-muted",children:["#",e.id]}),i.jsxs("div",{className:"min-w-0 space-y-1",children:[i.jsx("div",{className:"line-clamp-2 text-sm font-semibold leading-snug text-foreground [overflow-wrap:anywhere]",title:e.subject,children:e.subject}),i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted",children:[i.jsx("span",{className:"min-w-0 max-w-full truncate font-mono",children:e.repo??e.work_key}),i.jsxs("span",{className:"shrink-0",children:["thread ",e.thread??"n/a"]})]})]})]})}),i.jsx("td",{className:"px-3 py-3",children:i.jsx(cs,{status:e.status})}),i.jsxs("td",{className:"px-3 py-3",children:[i.jsx("div",{className:"min-w-0 truncate text-sm text-foreground",title:e.action,children:e.action}),i.jsx("div",{className:"mt-1",children:i.jsx(ls,{intent:e.intent,actionMode:e.action_mode,display:"intent",compact:!0})})]}),i.jsx("td",{className:"px-3 py-3",children:i.jsx(Cn,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url})}),i.jsxs("td",{className:"px-3 py-3 text-xs text-muted",children:[i.jsxs("div",{className:"flex items-center justify-between gap-2",children:[i.jsx("span",{children:"wait"}),i.jsx("span",{className:"font-mono text-foreground",children:Qe(os(e,t))})]}),i.jsxs("div",{className:"mt-1 flex items-center justify-between gap-2",children:[i.jsx("span",{children:"run"}),i.jsx("span",{className:"font-mono text-foreground",children:Qe(as(e,t))})]}),i.jsxs("div",{className:"mt-1 flex items-center justify-between gap-2",children:[i.jsx("span",{children:"tries"}),i.jsx("span",{className:"font-mono text-foreground",children:e.attempts})]})]}),i.jsx("td",{className:"px-3 py-3 font-mono text-xs",children:i.jsx(Ie,{value:e.updated_at,compact:!0,relative:!0,now:t})}),i.jsx("td",{className:"px-3 py-3 text-right",children:i.jsxs("div",{className:"inline-flex items-center gap-1",children:[i.jsx(Ql,{jobId:e.id,canRetry:r,retrying:s,onRetry:a,compact:!0}),i.jsx(Vl,{jobId:e.id,canDismiss:o,dismissing:l,onDismiss:c,compact:!0}),i.jsx(Wl,{jobId:e.id,canCancel:u,cancelling:d,onCancel:h,compact:!0})]})})]})}function jx({hasMore:e,loading:t,onLoadMore:n}){return!e&&!t?null:i.jsxs("button",{className:"inline-flex min-h-10 w-full items-center justify-center gap-2 rounded-md border border-border px-3 py-2 text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60 md:hidden",type:"button",disabled:t||!e,onClick:()=>n==null?void 0:n(),children:[i.jsx(yn,{className:"h-4 w-4","aria-hidden":!0}),t?"Loading more jobs...":"Load more jobs"]})}function kx({job:e,onViewJob:t,now:n,canRetry:r,retrying:s,onRetry:a,canDismiss:o,dismissing:l,onDismiss:c,canCancel:u,cancelling:d,onCancel:h}){return i.jsxs("article",{className:"rounded-md border border-border bg-white shadow-[0_1px_0_rgba(15,23,42,0.03)]",children:[i.jsxs("button",{className:"grid w-full gap-2 p-3 text-left hover:bg-slate-50",type:"button",onClick:()=>t(e.id),children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"min-w-0 space-y-1",children:[i.jsxs("div",{className:"grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-center gap-2",children:[i.jsxs("span",{className:"shrink-0 font-mono text-xs font-semibold text-muted",children:["#",e.id]}),i.jsx("span",{className:"truncate font-mono text-sm",children:e.repo??e.work_key})]}),i.jsx("div",{className:"line-clamp-2 text-sm leading-snug text-foreground",children:e.subject}),i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-muted",children:[i.jsxs("span",{children:["thread ",e.thread??"n/a"," · ",e.action]}),i.jsx(ls,{intent:e.intent,actionMode:e.action_mode,compact:!0,display:"intent"}),i.jsx(Cn,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url})]})]}),i.jsx(cs,{status:e.status})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-2 text-xs",children:[i.jsx(J,{label:"Wait",value:Qe(os(e,n))}),i.jsx(J,{label:"Runtime",value:Qe(as(e,n))}),i.jsx(J,{label:"Updated",value:i.jsx(Ie,{value:e.updated_at,compact:!0,relative:!0,now:n})})]})]}),r||o||u?i.jsxs("div",{className:"flex flex-wrap gap-2 border-t border-border px-3 py-2",children:[i.jsx(Ql,{jobId:e.id,canRetry:r,retrying:s,onRetry:a}),i.jsx(Vl,{jobId:e.id,canDismiss:o,dismissing:l,onDismiss:c}),i.jsx(Wl,{jobId:e.id,canCancel:u,cancelling:d,onCancel:h})]}):null]})}function Ql({jobId:e,canRetry:t,retrying:n,onRetry:r,compact:s=!1}){if(!t)return null;const a=n?"Retrying...":"Retry";return i.jsxs("button",{className:Q("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-border text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60",s?"w-8 px-0":"px-3"),type:"button",disabled:n,"aria-label":`Retry job #${e}`,title:`Retry job #${e}`,onClick:async o=>{o.stopPropagation(),window.confirm(`Retry job #${e}?`)&&await r(e)},children:[i.jsx(Gn,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{className:Q(s&&"sr-only"),children:a})]})}function Vl({jobId:e,canDismiss:t,dismissing:n,onDismiss:r,compact:s=!1}){if(!t)return null;const a=n?"Dismissing...":"Dismiss";return i.jsxs("button",{className:Q("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-border text-sm font-semibold text-foreground hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60",s?"w-8 px-0":"px-3"),type:"button",disabled:n,"aria-label":`Dismiss job #${e}`,title:`Dismiss job #${e}`,onClick:async o=>{o.stopPropagation(),window.confirm(`Dismiss job #${e}?`)&&await r(e)},children:[i.jsx(wn,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{className:Q(s&&"sr-only"),children:a})]})}function Wl({jobId:e,canCancel:t,cancelling:n,onCancel:r,compact:s=!1}){if(!t)return null;const a=n?"Cancelling...":"Cancel";return i.jsxs("button",{className:Q("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-red-200 bg-red-50 text-sm font-semibold text-red-700 hover:bg-red-100 disabled:cursor-not-allowed disabled:opacity-60",s?"w-8 px-0":"px-3"),type:"button",disabled:n,"aria-label":`Cancel job #${e}`,title:`Cancel job #${e}`,onClick:async o=>{o.stopPropagation();const l=window.prompt(`Cancel job #${e}? Optional reason:`);l!==null&&await r(e,l)},children:[i.jsx(Jt,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{className:Q(s&&"sr-only"),children:a})]})}function Cn({actor:e,avatarUrl:t,framed:n=!1}){const r=t?i.jsx("img",{className:"h-4 w-4 shrink-0 rounded-full bg-slate-100",src:Ze(t),alt:e?`${e} avatar`:"",referrerPolicy:"no-referrer"}):i.jsx(Wn,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),s=i.jsxs(i.Fragment,{children:[r,i.jsx("span",{className:"min-w-0 truncate",children:e?`@${e}`:"unknown actor"})]});return n?i.jsx("span",{className:"inline-flex h-7 max-w-full items-center gap-1 rounded-md border border-border px-2 text-xs font-semibold text-muted",children:s}):i.jsx("span",{className:"inline-flex min-w-0 max-w-full items-center gap-1 font-mono text-xs text-muted",children:s})}function Nx(e){return(e==null?void 0:e.model)??"OpenClaw default"}function Sx(e){return(e==null?void 0:e.thinking)??"OpenClaw default"}function Cx(e){return e?e.configured?"configured":e.summary:"n/a"}function _x(e,t){const n=t||(e==="work_allowed"?"fix_allowed":"review_only");return n==="fix_allowed"||!t&&e==="work_allowed"?{mode:n,intentLabel:"work_allowed",title:"Work allowed"}:{mode:n,intentLabel:"review_only",title:"Review only"}}function ls({intent:e,actionMode:t,compact:n=!1,display:r="mode"}){const s=_x(e,t),a=s.intentLabel==="work_allowed"?hu:Vo,o=r==="intent"?s.intentLabel:s.mode;return i.jsxs("span",{className:Q("inline-flex min-h-6 max-w-full items-center gap-1.5 rounded-md border px-2 text-xs font-semibold",s.intentLabel==="work_allowed"?"border-blue-200 bg-blue-50 text-blue-700":"border-violet-200 bg-violet-50 text-violet-700",n&&"min-h-5 px-1.5 text-[11px]"),title:`${s.title}: ${s.mode}`,"aria-label":`${s.title}: ${o}`,children:[i.jsx(a,{className:Q("h-3.5 w-3.5 shrink-0",n&&"h-3 w-3"),"aria-hidden":!0}),i.jsx("span",{className:"truncate font-mono",children:o})]})}function Ex({job:e,session:t,sessionEvents:n,transcript:r,now:s,compact:a=!1}){var p;const o=Sn(e.id),l=n??[],c=r??[],u=jf(l),d=kf(c),h=as(e,s),m=os(e,s);return i.jsxs("div",{className:"grid min-w-0 gap-4",children:[i.jsxs("div",{className:"sticky top-0 z-20 -mx-3 -mt-3 grid gap-2 border-b border-border bg-panel/95 px-3 py-2 shadow-sm backdrop-blur sm:-mx-4 sm:-mt-4 sm:px-4","aria-label":"Sticky job header",children:[i.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[i.jsx(cs,{status:e.status}),i.jsxs("a",{className:"inline-flex h-7 items-center gap-1 rounded-md border border-border bg-white px-2 text-xs font-semibold text-foreground hover:bg-slate-50",href:o,children:[i.jsx(vn,{className:"h-3.5 w-3.5","aria-hidden":!0}),"Job #",e.id]}),i.jsx(Cn,{actor:e.trigger_actor,avatarUrl:e.trigger_actor_avatar_url,framed:!0}),i.jsx("span",{className:"min-w-0 break-words font-mono text-xs text-muted [overflow-wrap:anywhere]",children:e.work_key})]}),i.jsxs("div",{className:"grid min-w-0 gap-2 lg:grid-cols-[minmax(0,1fr)_minmax(280px,auto)] lg:items-start",children:[i.jsx("p",{className:"min-w-0 break-words text-sm text-muted [overflow-wrap:anywhere]",children:e.subject}),i.jsxs("div",{className:"grid min-w-0 gap-1",children:[i.jsx("h3",{className:"text-xs font-semibold text-muted",children:"GitHub links"}),e.github_urls.length>0?i.jsx(Xn,{urls:e.github_urls,compact:!0}):i.jsx("p",{className:"text-xs text-muted",children:"No links recorded."})]})]})]}),i.jsxs("div",{className:Q("grid gap-2 text-sm sm:gap-3",a?"grid-cols-1":"grid-cols-3"),children:[i.jsx(J,{label:"Queue wait",value:Qe(m)}),i.jsx(J,{label:e.status==="running"?"Running for":"Runtime",value:Qe(h)}),i.jsx(J,{label:"Coalesced",value:String(e.coalesced_count)})]}),e.queue_state==="serialized_by_work_key"?i.jsxs("p",{className:"rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-900",children:["Serialized behind running job #",e.blocked_by_job_id," for this work key."]}):null,i.jsxs("div",{className:Q("grid gap-2 text-sm sm:gap-3",a?"grid-cols-1":"grid-cols-3"),children:[i.jsx(J,{label:"Model",value:Nx(e.model_route)}),i.jsx(J,{label:"Reasoning",value:Sx(e.model_route)}),i.jsx(J,{label:"Route",value:Cx(e.model_route)})]}),i.jsx(Px,{job:e,compact:a}),i.jsxs("div",{className:Q("grid gap-2 text-sm sm:gap-3",a?"grid-cols-1":"grid-cols-2 xl:grid-cols-4"),children:[i.jsx(J,{label:"Created",value:i.jsx(Ie,{value:e.created_at,compact:!0,relative:!0,now:s})}),i.jsx(J,{label:"Started",value:e.started_at?i.jsx(Ie,{value:e.started_at,compact:!0,relative:!0,now:s}):"n/a"}),i.jsx(J,{label:"Updated",value:i.jsx(Ie,{value:e.updated_at,compact:!0,relative:!0,now:s})}),i.jsx(J,{label:"Finished",value:e.finished_at?i.jsx(Ie,{value:e.finished_at,compact:!0,relative:!0,now:s}):"n/a"})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Timeline"}),i.jsx("div",{className:"grid min-w-0 gap-3",children:(e.worklog??[]).length>0?(p=e.worklog)==null?void 0:p.map(y=>i.jsxs("div",{className:"min-w-0 border-l-2 border-primary pl-3",children:[i.jsx("div",{className:"text-sm font-semibold",children:y.phase}),i.jsx("div",{className:"font-mono text-xs text-muted",children:i.jsx(Ie,{value:y.ts,relative:!0,now:s})}),i.jsx("div",{className:"break-words text-sm [overflow-wrap:anywhere]",children:y.summary}),y.detail?i.jsx("div",{className:"mt-1 break-words font-mono text-xs text-muted [overflow-wrap:anywhere]",children:y.detail}):null]},y.id)):i.jsx(Z,{text:"No worklog entries."})})]}),i.jsxs("div",{children:[i.jsxs("h3",{className:"mb-2 flex items-center gap-2 text-sm font-semibold",children:[i.jsx(Go,{className:"h-4 w-4","aria-hidden":!0}),"OpenClaw session"]}),t?i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[i.jsx(J,{label:"Session ID",value:t.id}),i.jsx(J,{label:"Source",value:t.source})]}),i.jsx("p",{className:"break-words text-xs text-muted [overflow-wrap:anywhere]",children:t.detail})]}):i.jsx(Z,{text:"Session correlation is loading."})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Agent activity"}),i.jsx("div",{className:"grid max-h-[460px] min-w-0 gap-2 overflow-auto pr-1",children:u.length>0?u.map((y,w)=>i.jsx(Ix,{event:y,defaultOpen:so(y.eventType,e.status==="running",w,u.length),now:s},y.id)):i.jsx(Z,{text:e.status==="running"?"Waiting for live agent output...":"No agent activity has been recorded for this session."})})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"mb-2 text-sm font-semibold",children:"Session transcript"}),i.jsx("div",{className:"grid max-h-[620px] min-w-0 gap-2 overflow-auto pr-1",children:d.length>0?d.map((y,w)=>i.jsx(Rx,{entry:y,defaultOpen:so(y.kind,e.status==="running",w,d.length),now:s},y.id)):i.jsx(Z,{text:e.status==="running"?"Waiting for live transcript entries...":"No OpenClaw transcript entries are available for this session."})})]})]})}function Px({job:e,compact:t=!1}){const n=e.intent_classifier??null,r=(n==null?void 0:n.llm)??{},s=(n==null?void 0:n.parser)??{},a=typeof r.confidence=="number"?`${Math.round(r.confidence*100)}%`:"n/a";return i.jsxs("div",{className:"grid gap-2",children:[i.jsx("h3",{className:"text-sm font-semibold",children:"Action mode"}),i.jsxs("div",{className:Q("grid gap-2 text-sm sm:gap-3",t?"grid-cols-1":"grid-cols-2 xl:grid-cols-4"),children:[i.jsx(J,{label:"Mode",value:i.jsx(ls,{intent:e.intent,actionMode:e.action_mode})}),i.jsx(J,{label:"Intent",value:e.intent}),i.jsx(J,{label:"Addressed",value:n?co(r.addressed_to_agent):"n/a"}),i.jsx(J,{label:"Write",value:n?r.write_permission??"none":e.intent==="work_allowed"?"allowed":"none"})]}),n?i.jsxs("div",{className:"grid gap-2 rounded-md border border-border bg-panel p-3 text-xs",children:[i.jsxs("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsx(nt,{label:"Classifier",value:n.enabled?"enabled":"disabled"}),i.jsx(nt,{label:"Applied",value:co(r.applied)}),i.jsx(nt,{label:"Confidence",value:a}),i.jsx(nt,{label:"Parser",value:`${s.action??"n/a"} / ${s.work_intent??"n/a"}`})]}),i.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[i.jsx(nt,{label:"LLM",value:`${r.action??"n/a"} / ${r.work_intent??"n/a"}`}),i.jsx(nt,{label:"Scope",value:r.scope||"n/a"})]}),r.main_request?i.jsx(nt,{label:"Main request",value:r.main_request}):null,r.subordinate_reason?i.jsx(nt,{label:"Subordinate reason",value:r.subordinate_reason}):null,r.reason?i.jsx(nt,{label:"Reason",value:r.reason}):null,n.error?i.jsx(nt,{label:"Error",value:n.error,tone:"danger"}):null]}):i.jsx("p",{className:"text-xs text-muted",children:"No intent classifier metadata recorded for this job."})]})}function co(e){return e===!0?"yes":e===!1?"no":"n/a"}function nt({label:e,value:t,tone:n="neutral"}){return i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted",children:e}),i.jsx("div",{className:Q("mt-0.5 min-w-0 break-words font-mono text-xs [overflow-wrap:anywhere]",n==="danger"?"text-red-700":"text-foreground"),children:t})]})}function Rx({entry:e,defaultOpen:t,now:n}){return i.jsx(Gl,{badge:e.badge,meta:i.jsx(Ie,{value:e.meta,relative:!0,now:n}),count:e.count,summary:e.summary,defaultOpen:t,children:i.jsx("pre",{className:"max-h-72 max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-slate-950 px-2 py-1.5 font-mono text-xs leading-relaxed text-slate-100 [overflow-wrap:anywhere]",children:e.text})})}function Ix({event:e,defaultOpen:t,now:n}){return i.jsx(Gl,{badge:e.badge,meta:i.jsx(Ie,{value:e.meta,relative:!0,now:n}),count:e.count,summary:e.summary,defaultOpen:t,children:e.detail?i.jsx("pre",{className:"max-h-56 max-w-full overflow-auto whitespace-pre-wrap break-words rounded bg-slate-950 px-2 py-1.5 font-mono text-xs leading-relaxed text-slate-100 [overflow-wrap:anywhere]",children:e.detail}):null})}function Gl({badge:e,meta:t,count:n,summary:r,defaultOpen:s,children:a}){const[o,l]=L.useState(!!s);return i.jsxs("details",{className:"group min-w-0 rounded border border-border bg-slate-50/60",open:o,onToggle:c=>l(c.currentTarget.open),children:[i.jsxs("summary",{className:"grid cursor-pointer list-none gap-1 px-2 py-1.5 marker:hidden hover:bg-white",children:[i.jsxs("div",{className:"grid min-w-0 gap-1 sm:flex sm:items-center sm:justify-between sm:gap-2",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-1.5",children:[i.jsx(yn,{className:"h-3.5 w-3.5 shrink-0 text-muted transition-transform group-open:rotate-180","aria-hidden":!0}),i.jsx("span",{className:"truncate font-mono text-[11px] font-semibold text-muted",children:e}),n&&n>1?i.jsx("span",{className:"rounded-sm border border-border px-1 font-mono text-[10px] text-muted",children:n}):null]}),i.jsx("span",{className:"min-w-0 truncate pl-5 font-mono text-[11px] text-muted sm:shrink-0 sm:pl-0",children:t})]}),i.jsx("div",{className:"min-w-0 break-words pl-5 text-xs text-foreground [overflow-wrap:anywhere] sm:truncate",children:r})]}),i.jsx("div",{className:"min-w-0 border-t border-border bg-white px-2 py-2",children:a})]})}function uo({label:e,values:t}){const n=[{name:"median",seconds:(t==null?void 0:t.median)??0},{name:"p90",seconds:(t==null?void 0:t.p90)??0},{name:"p99",seconds:(t==null?void 0:t.p99)??0}];return i.jsx("div",{className:"h-56",children:i.jsx(rr,{width:"100%",height:"100%",children:i.jsxs(Dr,{data:n,children:[i.jsx(ir,{strokeDasharray:"3 3"}),i.jsx(sr,{dataKey:"name"}),i.jsx(ar,{tickFormatter:Qe}),i.jsx(or,{formatter:r=>[Qe(Number(r)),e]}),i.jsx(Vt,{dataKey:"seconds",fill:"#0969da",radius:[4,4,0,0]})]})})})}function Tx({values:e,loading:t,totalJobs:n}){const r=Object.entries(e??{}).map(([s,a])=>({day:s,count:a}));return t&&r.length===0?i.jsx(Z,{text:"Loading job history..."}):r.length===0?i.jsx(Z,{text:n>0?"Job history has no valid creation dates.":"No job history available."}):i.jsx("div",{className:"h-56",children:i.jsx(rr,{width:"100%",height:"100%",children:i.jsxs(Dr,{data:r,children:[i.jsx(ir,{strokeDasharray:"3 3"}),i.jsx(sr,{dataKey:"day",minTickGap:16}),i.jsx(ar,{allowDecimals:!1}),i.jsx(or,{formatter:s=>[Number(s),"jobs"]}),i.jsx(Vt,{dataKey:"count",fill:"#16a34a",radius:[4,4,0,0]})]})})})}function Ax({usage:e,loading:t,totalJobs:n}){const[r,s]=L.useState("day"),a=(e==null?void 0:e[r])??[],o=a.map(u=>({...u,label:Lx(u.bucket,r)})),l=a.reduce((u,d)=>u+d.seconds,0),c=a.reduce((u,d)=>u+(d.runs??d.jobs),0);return t&&o.length===0?i.jsx(Z,{text:"Loading runtime usage..."}):o.length===0?i.jsx(Z,{text:n>0?"No jobs have recorded runtime yet.":"No job history available."}):i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted",children:[i.jsx(du,{className:"h-4 w-4","aria-hidden":!0}),i.jsxs("span",{children:[Cr(l)," consumed across ",c," run",c===1?"":"s"]})]}),i.jsx("div",{className:"inline-flex h-8 rounded-md border border-border bg-white p-0.5","aria-label":"Runtime grouping",children:["day","month"].map(u=>i.jsx("button",{className:Q("rounded px-2.5 text-xs font-semibold capitalize",r===u?"bg-primary text-white":"text-muted hover:bg-slate-50"),type:"button",onClick:()=>s(u),children:u},u))})]}),i.jsx("div",{className:"h-64",children:i.jsx(rr,{width:"100%",height:"100%",children:i.jsxs(Dr,{data:o,children:[i.jsx(ir,{strokeDasharray:"3 3"}),i.jsx(sr,{dataKey:"label",minTickGap:16,tick:{fontSize:11}}),i.jsx(ar,{tickFormatter:u=>Cr(Number(u))}),i.jsx(Co,{}),i.jsx(or,{formatter:(u,d)=>d==="Work"?[Cr(Number(u)),"work"]:d==="Review"?[Cr(Number(u)),"review"]:[Number(u),String(d)],labelFormatter:u=>String(u)}),i.jsx(Vt,{dataKey:"work_seconds",name:"Work",stackId:"runtime",fill:"#0969da",isAnimationActive:!1}),i.jsx(Vt,{dataKey:"review_seconds",name:"Review",stackId:"runtime",fill:"#8250df",radius:[4,4,0,0],isAnimationActive:!1})]})})})]})}function Lx(e,t){if(t==="month"){const[a,o]=e.split("-").map(Number);return!a||!o?e:new Intl.DateTimeFormat(void 0,{month:"short",year:"numeric"}).format(new Date(a,o-1,1))}const[n,r,s]=e.split("-").map(Number);return!n||!r||!s?e:new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric"}).format(new Date(n,r-1,s))}function Cr(e){const t=Math.max(0,Math.round(e));if(t<60)return`${t}s`;const n=Math.round(t/60);if(n<60)return`${n}m`;const r=Math.floor(n/60),s=n%60;return s===0?`${r}h`:`${r}h ${s}m`}function ho(e){return Object.values(e).reduce((t,n)=>t+n,0)}function Mx({data:e,loading:t}){if(t&&!e)return i.jsx(Z,{text:"Loading systemd units..."});if(!e)return i.jsx(Z,{text:"No systemd snapshot available."});const n=e.units??[],r=n.filter(o=>o.active_state==="active").length,s=n.filter(o=>o.active_state==="failed"||o.result==="failed").length,a=n.filter(o=>o.kind==="timer").length;return i.jsxs("div",{className:"grid min-w-0 gap-3",children:[e.errors.length>0?i.jsx(Ne,{tone:"error",text:e.errors[0]}):null,n.length===0?i.jsx(Z,{text:"No configured bridge units found."}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-4",children:[i.jsx(_r,{label:"Units",value:String(n.length)}),i.jsx(_r,{label:"Active",value:String(r)}),i.jsx(_r,{label:"Failed",value:String(s),tone:s>0?"bad":"neutral"}),i.jsx(_r,{label:"Timers",value:String(a)})]}),i.jsxs("div",{className:"overflow-hidden rounded-md border border-border bg-white",children:[i.jsxs("div",{className:"hidden grid-cols-[minmax(0,1.35fr)_90px_120px_90px_minmax(0,1fr)] gap-3 border-b border-border bg-slate-50 px-3 py-2 text-[11px] font-semibold uppercase text-muted md:grid",children:[i.jsx("span",{children:"Unit"}),i.jsx("span",{children:"Status"}),i.jsx("span",{children:"State"}),i.jsx("span",{children:"PID"}),i.jsx("span",{children:"Schedule"})]}),i.jsx("div",{className:"divide-y divide-border",children:n.map(o=>i.jsx(Ox,{unit:o},o.unit))})]})]})]})}function _r({label:e,value:t,tone:n="neutral"}){return i.jsxs("div",{className:Q("min-w-0 rounded-md border bg-white px-3 py-2",n==="bad"?"border-red-200":"border-border"),children:[i.jsx("div",{className:Q("font-mono text-lg font-semibold",n==="bad"?"text-red-700":"text-foreground"),children:t}),i.jsx("div",{className:"mt-0.5 text-[11px] font-semibold uppercase text-muted",children:e})]})}function Ox({unit:e}){const[t,n]=L.useState(!1),r=e.active_state==="active",s=e.active_state==="failed"||e.result==="failed",a=e.next_elapse||e.last_trigger||"n/a";return i.jsxs("details",{className:"group min-w-0",open:t,onToggle:o=>n(o.currentTarget.open),children:[i.jsxs("summary",{className:"grid min-w-0 cursor-pointer list-none grid-cols-2 gap-2 px-3 py-3 text-sm marker:hidden hover:bg-slate-50 md:grid-cols-[minmax(0,1.35fr)_90px_120px_90px_minmax(0,1fr)] md:items-center md:gap-3",children:[i.jsxs("div",{className:"col-span-2 min-w-0 md:col-span-1",children:[i.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[i.jsx(yn,{className:"h-3.5 w-3.5 shrink-0 text-muted transition-transform group-open:rotate-180","aria-hidden":!0}),i.jsx("span",{className:"truncate font-mono text-xs font-semibold text-foreground",children:e.unit})]}),i.jsxs("div",{className:"mt-1 flex flex-wrap items-center gap-1.5 pl-5 text-[11px] font-semibold uppercase text-muted",children:[i.jsx("span",{children:e.role}),i.jsx("span",{children:e.kind}),i.jsx("span",{children:e.load_state}),i.jsx("span",{children:t?"following log":"expand log"})]})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2 md:block",children:[i.jsx("span",{className:"text-[11px] font-semibold uppercase text-muted md:hidden",children:"Status"}),i.jsx("span",{className:Q("inline-flex h-6 items-center rounded-full border px-2 text-xs font-semibold",s?"border-red-300 bg-red-50 text-red-700":r?"border-emerald-300 bg-emerald-50 text-emerald-700":"border-slate-300 bg-slate-50 text-slate-700"),children:e.active_state})]}),i.jsx(po,{label:"State",value:e.sub_state,detail:e.result||"unknown"}),i.jsx(po,{label:"PID",value:e.main_pid?String(e.main_pid):"n/a",detail:Qe(e.uptime_seconds)}),i.jsxs("div",{className:"col-span-2 min-w-0 md:col-span-1",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted md:hidden",children:"Schedule"}),i.jsx("div",{className:"truncate font-mono text-[11px] text-foreground",title:a,children:e.next_elapse?`next ${e.next_elapse}`:a})]})]}),i.jsx("div",{className:"border-t border-border bg-slate-50 px-3 pb-3 pt-2",children:i.jsx(Fx,{unit:e.unit,active:t})})]})}function po({label:e,value:t,detail:n}){return i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted md:hidden",children:e}),i.jsx("div",{className:"truncate font-mono text-[11px] text-foreground",children:t}),n?i.jsx("div",{className:"truncate font-mono text-[11px] text-muted",children:n}):null]})}function Fx({unit:e,active:t}){const[n,r]=L.useState([]),[s,a]=L.useState(""),o=L.useRef(null);return L.useEffect(()=>{if(!t){r([]),a("");return}r([]),a("");const l=new EventSource(`/api/systemd/journal/stream?unit=${encodeURIComponent(e)}`);return l.addEventListener("journal_line",c=>{const u=Fr(c);u&&r(d=>[...d.slice(-199),u])}),l.addEventListener("journal_error",c=>{const u=Fr(c);a((u==null?void 0:u.error)??"journal stream failed")}),l.onerror=()=>{},()=>l.close()},[t,e]),L.useEffect(()=>{const l=o.current;l&&(l.scrollTop=l.scrollHeight)},[n]),i.jsxs("div",{className:"grid min-w-0 gap-2",children:[i.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted",children:"Live journal"}),i.jsx("div",{className:"mt-0.5 truncate font-mono text-[11px] text-muted",children:n.length>0?`${n.length} lines streamed`:"waiting for journal output"})]}),i.jsx("div",{className:"font-mono text-[11px] text-muted",children:"journalctl -f"})]}),s?i.jsx(Ne,{tone:"error",text:s}):null,i.jsx("div",{ref:o,className:"h-72 overflow-auto rounded-md border border-slate-800 bg-slate-950 p-3 font-mono text-xs leading-relaxed text-slate-100",children:n.length>0?n.map((l,c)=>i.jsx("div",{className:"break-words [overflow-wrap:anywhere]",children:l.line},`${l.unit}-${c}`)):i.jsx("div",{className:"text-slate-400",children:"No journal lines received yet."})})]})}function Dx({data:e,loading:t}){var h,m,p,y,w,v;if(t&&!e)return i.jsx(Z,{text:"Loading process activity..."});if(!e)return i.jsx(Z,{text:"No process snapshot available."});const n=e.executor.children??[],r=n.flatMap(b=>Xl(b)),s=r.reduce((b,N)=>b+N.cpu_ticks,0),a=r.reduce((b,N)=>b+qx(N),0),o=e.executor.service==="active",l=r.slice(0,8).map(b=>({label:`pid ${b.pid}`,ticks:b.cpu_ticks})),c=(e.samples??[]).map(b=>({label:Hn(b.ts),ticks:b.cpu_ticks,io:b.io_bytes,active:b.active_since_last_sample?"active":"quiet"})),u=c.length>0?c:l,d=(h=e.samples)==null?void 0:h[e.samples.length-1];return i.jsxs("div",{className:"grid gap-4",children:[i.jsx("div",{className:"rounded-md border border-slate-200 bg-slate-50 p-3",children:i.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[i.jsxs("div",{className:"min-w-0",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx("span",{className:Q("inline-flex h-6 items-center rounded-full border px-2 text-xs font-semibold",o?"border-emerald-300 bg-emerald-50 text-emerald-700":"border-slate-300 bg-white text-slate-600"),children:o?"active":"idle"}),i.jsxs("span",{className:"font-mono text-xs text-muted",children:["service ",e.executor.service]})]}),i.jsx("div",{className:"mt-2 text-sm font-semibold text-foreground",children:e.running_jobs.length>0?`${e.running_jobs.length} running job${e.running_jobs.length===1?"":"s"}`:"No running jobs"}),e.running_jobs.length>0?i.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:e.running_jobs.slice(0,4).map(b=>i.jsxs("span",{className:"inline-flex min-h-6 items-center gap-1.5 rounded-full border border-blue-200 bg-white px-2 font-mono text-[11px] font-semibold text-blue-700",children:[i.jsx("span",{className:"h-2 w-2 rounded-full bg-blue-600 animate-live-pulse","aria-hidden":!0}),"#",b.id," ",Qe(b.age_seconds)]},b.id))}):null,d?i.jsxs("p",{className:"mt-1 text-xs text-muted",children:["Last persisted sample ",Hn(d.ts)," · ",d.active_since_last_sample?"activity observed":`quiet ${Qe(d.idle_seconds)}`]}):null,i.jsx("p",{className:"mt-1 text-xs text-muted",children:e.detail})]}),i.jsxs("div",{className:"grid min-w-[190px] grid-cols-3 gap-2 text-center text-xs",children:[i.jsx(oi,{label:"PID",value:e.executor.pid?String(e.executor.pid):"n/a"}),i.jsx(oi,{label:"Children",value:String(r.length)}),i.jsx(oi,{label:"CPU ticks",value:String(s)})]})]})}),i.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[i.jsx(Er,{label:"Live process",value:((m=e.signals)==null?void 0:m.live_process.state)??(r.length>0?"live":"no_child_process"),detail:`${((p=e.signals)==null?void 0:p.live_process.child_count)??r.length} children`}),i.jsx(Er,{label:"Process activity",value:((y=e.signals)==null?void 0:y.process_activity.state)??(d!=null&&d.active_since_last_sample?"active":"quiet"),detail:d?`sample ${Hn(d.ts)}`:"no sample"}),i.jsx(Er,{label:"Semantic progress",value:(w=e.signals)!=null&&w.semantic_progress.length?"recent":"none",detail:mo(e.running_jobs,"semantic_progress")}),i.jsx(Er,{label:"Visible progress",value:(v=e.signals)!=null&&v.visible_progress.length?"streaming":"none",detail:mo(e.running_jobs,"visible_progress")})]}),e.alerts.length>0?i.jsx(Ne,{tone:"error",text:e.alerts[0]}):null,i.jsxs("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,0.9fr)_minmax(0,1.1fr)]",children:[i.jsxs("div",{className:"min-w-0 rounded-md border border-border p-3",children:[i.jsxs("div",{className:"mb-3 flex items-center justify-between gap-3",children:[i.jsxs("h3",{className:"flex items-center gap-2 text-sm font-semibold",children:[i.jsx(ga,{className:"h-4 w-4","aria-hidden":!0}),c.length>0?"CPU history":"CPU ticks"]}),i.jsxs("span",{className:"font-mono text-xs text-muted",children:[Yl(a)," I/O"]})]}),u.length>0?i.jsx("div",{className:"h-40",children:i.jsx(rr,{width:"100%",height:"100%",children:i.jsxs(hc,{data:u,children:[i.jsx(ir,{strokeDasharray:"3 3"}),i.jsx(sr,{dataKey:"label",tick:!1}),i.jsx(ar,{allowDecimals:!1,tick:{fontSize:11}}),i.jsx(or,{formatter:b=>[Number(b),"cpu ticks"]}),i.jsx(pc,{type:"monotone",dataKey:"ticks",stroke:"#0f766e",strokeWidth:2,dot:{r:3},activeDot:{r:5},isAnimationActive:!1})]})})}):i.jsx(Z,{text:"No executor CPU samples available."})]}),i.jsxs("div",{className:"min-w-0",children:[i.jsxs("h3",{className:"mb-2 flex items-center gap-2 text-sm font-semibold",children:[i.jsx(ga,{className:"h-4 w-4","aria-hidden":!0}),"Executor children"]}),n.length>0?i.jsx("div",{className:"grid gap-2",children:n.map(b=>i.jsx(Jl,{process:b},b.pid))}):i.jsx(Z,{text:"No child process detected for the executor."})]})]})]})}function zx({alerts:e,loading:t,now:n}){if(t&&!e)return i.jsx(Z,{text:"Loading monitor alerts..."});const r=e??[];return r.length===0?i.jsx(Z,{text:"No active monitor alerts."}):i.jsx("div",{className:"grid gap-2",children:r.slice(0,5).map(s=>i.jsxs("div",{className:"rounded-md border border-red-200 bg-red-50 p-2.5",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs font-semibold text-red-700",children:[i.jsx(zr,{className:"h-3.5 w-3.5","aria-hidden":!0}),i.jsx("span",{children:s.severity}),i.jsx("span",{className:"font-normal text-red-600",children:Fl(s.last_seen,n)}),s.observations>1?i.jsxs("span",{className:"rounded-full border border-red-200 bg-white px-1.5",children:[s.observations,"x"]}):null]}),i.jsx("p",{className:"mt-1 break-words text-sm font-medium text-red-950 [overflow-wrap:anywhere]",children:s.message})]},s.fingerprint))})}function Jl({process:e}){var r,s;const t=((r=e.io_bytes)==null?void 0:r.read_bytes)??0,n=((s=e.io_bytes)==null?void 0:s.write_bytes)??0;return i.jsxs("div",{className:"rounded-md border border-border bg-white p-2.5",children:[i.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono",children:["pid ",e.pid]}),i.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["state ",e.state]}),i.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["cpu ",e.cpu_ticks]}),i.jsxs("span",{className:"rounded-full border border-border px-2 text-xs text-muted",children:["I/O ",Yl(t+n)]})]}),i.jsx("div",{className:"mt-2 break-words font-mono text-xs text-muted",children:e.cmd||"unknown command"}),e.children&&e.children.length>0?i.jsx("div",{className:"mt-3 border-l-2 border-border pl-3",children:e.children.map(a=>i.jsx(Jl,{process:a},a.pid))}):null]})}function oi({label:e,value:t}){return i.jsxs("div",{className:"rounded-md border border-border bg-white px-2 py-2",children:[i.jsx("div",{className:"font-mono text-sm font-semibold text-foreground",children:t}),i.jsx("div",{className:"mt-0.5 text-[11px] font-semibold uppercase text-muted",children:e})]})}function Er({label:e,value:t,detail:n}){return i.jsxs("div",{className:"min-w-0 rounded-md border border-border bg-white p-2.5",children:[i.jsx("div",{className:"text-[11px] font-semibold uppercase text-muted",children:e}),i.jsx("div",{className:"mt-1 truncate text-sm font-semibold text-foreground",children:t}),i.jsx("div",{className:"mt-1 truncate font-mono text-[11px] text-muted",children:n})]})}function mo(e,t){const n=e.find(s=>s[t]),r=n==null?void 0:n[t];return!n||!r?"no running heartbeat":`#${n.id} ${r.phase} ${Qe(r.age_seconds??null)}`}function Xl(e){return[e,...(e.children??[]).flatMap(t=>Xl(t))]}function qx(e){var t,n;return(((t=e.io_bytes)==null?void 0:t.read_bytes)??0)+(((n=e.io_bytes)==null?void 0:n.write_bytes)??0)}function Yl(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(1)} MiB`}function J({label:e,value:t}){return i.jsxs("div",{className:"min-w-0 rounded-md border border-border p-3",children:[i.jsx("div",{className:"text-xs font-semibold text-muted",children:e}),i.jsx("div",{className:"mt-1 min-w-0 break-words text-sm [overflow-wrap:anywhere]",children:t})]})}function cs({status:e}){const t=Nf(e),n=e==="running"||e==="pending";return i.jsxs("span",{className:Q("inline-flex min-h-6 items-center gap-1.5 rounded-full border px-2 text-xs font-semibold",t.badge),children:[i.jsx("span",{className:Q("h-2.5 w-2.5 rounded-full",t.dot,n&&"animate-live-pulse"),"aria-hidden":!0}),e]})}function Z({text:e}){return i.jsx("div",{className:"rounded-md border border-dashed border-border p-6 text-center text-sm text-muted",children:e})}function Ne({tone:e,text:t}){return i.jsx("div",{className:Q("rounded-md border p-3 text-sm",e==="error"&&"border-red-300 bg-red-50 text-red-700",e==="warning"&&"border-amber-300 bg-amber-50 text-amber-800"),children:t})}function lt({onClick:e,compactOnMobile:t=!1}){return i.jsxs("button",{className:Q("inline-flex h-8 items-center justify-center gap-2 rounded-md border border-border text-sm font-semibold text-foreground hover:bg-slate-50",t?"w-8 px-0 sm:w-auto sm:px-3":"px-3"),onClick:e,type:"button","aria-label":"Refresh",children:[i.jsx(cr,{className:"h-4 w-4","aria-hidden":!0}),i.jsx("span",{className:Q(t&&"hidden sm:inline"),children:"Refresh"})]})}const fo=document.getElementById("root");fo&&bc.createRoot(fo).render(i.jsx(L.StrictMode,{children:i.jsx(Qc,{client:pf,children:i.jsx($f,{})})})); diff --git a/src/github_agent_bridge/dashboard_static/index.html b/src/github_agent_bridge/dashboard_static/index.html index 0279433..4d50123 100644 --- a/src/github_agent_bridge/dashboard_static/index.html +++ b/src/github_agent_bridge/dashboard_static/index.html @@ -4,7 +4,7 @@ GitHub Agent Bridge Dashboard - + diff --git a/src/github_agent_bridge/queue.py b/src/github_agent_bridge/queue.py index b51ecb4..7df812b 100644 --- a/src/github_agent_bridge/queue.py +++ b/src/github_agent_bridge/queue.py @@ -880,6 +880,7 @@ def _ensure_columns(self, con: sqlite3.Connection) -> None: "webhook_shadow_receipts": { "duplicate_count": "INTEGER NOT NULL DEFAULT 0", "hook_id": "TEXT", + "payload_json": "TEXT", "enqueue_status": "TEXT", "job_id": "INTEGER REFERENCES jobs(id) ON DELETE SET NULL", }, diff --git a/src/github_agent_bridge/sql/schema.sql b/src/github_agent_bridge/sql/schema.sql index 0446cf6..60072b4 100644 --- a/src/github_agent_bridge/sql/schema.sql +++ b/src/github_agent_bridge/sql/schema.sql @@ -88,6 +88,7 @@ CREATE TABLE IF NOT EXISTS webhook_shadow_receipts ( event_key TEXT, repository TEXT, payload_hash TEXT NOT NULL, + payload_json TEXT, status TEXT NOT NULL CHECK(status IN ('observed','duplicate','unsupported')), enqueue_status TEXT, job_id INTEGER REFERENCES jobs(id) ON DELETE SET NULL, diff --git a/src/github_agent_bridge/webhook.py b/src/github_agent_bridge/webhook.py index 68514b1..aaf377d 100644 --- a/src/github_agent_bridge/webhook.py +++ b/src/github_agent_bridge/webhook.py @@ -180,10 +180,11 @@ def persist_shadow_delivery( ) try: con.execute( - "INSERT INTO webhook_shadow_receipts(delivery_id,hook_id,event_name,action,event_key,repository,payload_hash,status,enqueue_status,job_id,created_at) VALUES(?,?,?,?,?,?,?,?,?,?,?)", + "INSERT INTO webhook_shadow_receipts(delivery_id,hook_id,event_name,action,event_key,repository,payload_hash,payload_json,status,enqueue_status,job_id,created_at) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)", ( delivery_id, hook_id, event_name, action, event_key, repo, - payload_hash, status, enqueue_status, job_id, now, + payload_hash, raw_payload.decode("utf-8"), status, + enqueue_status, job_id, now, ), ) except sqlite3.IntegrityError: diff --git a/tests/test_webhook.py b/tests/test_webhook.py index 2cdeecf..5c016c0 100644 --- a/tests/test_webhook.py +++ b/tests/test_webhook.py @@ -259,6 +259,21 @@ def test_webhook_canary_enqueues_enabled_actionable_repository_once(tmp_path): assert first.json()["enqueue_status"] == "enqueued" assert first.json()["job_id"] assert retry.json()["enqueue_status"] == "duplicate" + detail = client.get("/api/webhooks/github/deliveries/delivery-1").json() + assert detail["delivery"]["delivery_id"] == "delivery-1" + assert detail["delivery"]["enqueue_status"] == "enqueued" + assert detail["delivery"]["job_id"] == first.json()["job_id"] + assert detail["payload"] == json.loads(payload) + assert detail["payload_hash"] == hashlib.sha256(payload).hexdigest() + assert detail["job"] == { + "id": first.json()["job_id"], + "work_key": "gisce/github-agent-bridge#191", + "status": "pending", + "action": "reply_comment", + "decision": "auto_trusted", + "work_intent": "work_allowed", + "updated_at": detail["job"]["updated_at"], + } with sqlite3.connect(config.db) as con: assert con.execute("SELECT COUNT(*) FROM jobs").fetchone()[0] == 1 assert con.execute( @@ -752,12 +767,15 @@ def test_webhook_status_requires_dashboard_admin(tmp_path): ) assert {client.get(path).status_code for path in paths} == {401} assert client.get("/api/webhooks/github/hooks/42").status_code == 401 + assert client.get("/api/webhooks/github/deliveries/delivery-1").status_code == 401 client.cookies.set("gab_dashboard_session", _sign(config, _encode_session({"login": "alice"}))) assert {client.get(path).status_code for path in paths} == {403} assert client.get("/api/webhooks/github/hooks/42").status_code == 403 + assert client.get("/api/webhooks/github/deliveries/delivery-1").status_code == 403 client.cookies.set("gab_dashboard_session", _sign(config, _encode_session({"login": "operator"}, is_admin=True))) assert {client.get(path).status_code for path in paths} == {200} assert client.get("/api/webhooks/github/hooks/42").status_code == 404 + assert client.get("/api/webhooks/github/deliveries/delivery-1").status_code == 404 assert client.get("/api/status").json()["webhook_configured"] is True @@ -864,6 +882,14 @@ def test_webhook_monitoring_endpoints_keep_summary_light_and_return_real_data(tm } assert second_page["next_cursor"] is None + delivery_detail = client.get("/api/webhooks/github/deliveries/delivery-1").json() + assert delivery_detail["delivery"] == next( + item for item in deliveries if item["delivery_id"] == "delivery-1" + ) + assert delivery_detail["payload"] == json.loads(delivery) + assert delivery_detail["payload_hash"] == hashlib.sha256(delivery).hexdigest() + assert delivery_detail["job"] is None + filtered = client.get("/api/webhooks/github/deliveries", params={ "hook_id": "42", "event_name": "issue_comment", "repository": "gisce/github-agent-bridge", "result": "observed",