compass-code 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- compass_cli/__init__.py +0 -0
- compass_cli/commands/__init__.py +0 -0
- compass_cli/commands/ingest.py +310 -0
- compass_cli/commands/mcp.py +25 -0
- compass_cli/commands/query.py +181 -0
- compass_cli/commands/serve.py +123 -0
- compass_cli/commands/setup.py +171 -0
- compass_cli/display.py +231 -0
- compass_cli/errors.py +30 -0
- compass_cli/main.py +54 -0
- compass_cli/progress.py +191 -0
- compass_cli/result_views.py +389 -0
- compass_cli/types.py +41 -0
- compass_code-0.1.0.dist-info/METADATA +72 -0
- compass_code-0.1.0.dist-info/RECORD +137 -0
- compass_code-0.1.0.dist-info/WHEEL +4 -0
- compass_code-0.1.0.dist-info/entry_points.txt +2 -0
- compass_core/__init__.py +1 -0
- compass_core/contract/__init__.py +6 -0
- compass_core/contract/errors.py +116 -0
- compass_core/contract/models.py +204 -0
- compass_core/contract/params.py +99 -0
- compass_core/contract/results.py +370 -0
- compass_core/contract/serialize.py +59 -0
- compass_core/contract/types.py +76 -0
- compass_core/errors.py +148 -0
- compass_core/graph/__init__.py +0 -0
- compass_core/graph/db.py +205 -0
- compass_core/graph/schema.py +165 -0
- compass_core/graph/stored_ids.py +133 -0
- compass_core/graph/writer.py +482 -0
- compass_core/index/__init__.py +1 -0
- compass_core/index/freshness.py +55 -0
- compass_core/index/locate.py +155 -0
- compass_core/index/metadata.py +107 -0
- compass_core/ir/__init__.py +0 -0
- compass_core/ir/graph.py +65 -0
- compass_core/ir/models.py +75 -0
- compass_core/languages/__init__.py +1 -0
- compass_core/languages/base.py +26 -0
- compass_core/languages/python/__init__.py +6 -0
- compass_core/languages/python/extractor.py +670 -0
- compass_core/languages/python/import_resolver.py +107 -0
- compass_core/languages/registry.py +89 -0
- compass_core/logger.py +42 -0
- compass_core/phases/__init__.py +0 -0
- compass_core/phases/base.py +58 -0
- compass_core/phases/discovery.py +167 -0
- compass_core/phases/parse.py +80 -0
- compass_core/phases/persistence.py +33 -0
- compass_core/phases/pipeline.py +152 -0
- compass_core/phases/resolution.py +572 -0
- compass_core/phases/symbol_table.py +36 -0
- compass_core/phases/validation.py +76 -0
- compass_core/progress.py +45 -0
- compass_core/py.typed +0 -0
- compass_core/query/__init__.py +1 -0
- compass_core/query/cypher.py +92 -0
- compass_core/query/detail.py +241 -0
- compass_core/query/graph_map.py +127 -0
- compass_core/query/impact.py +273 -0
- compass_core/query/impact_walk.py +352 -0
- compass_core/query/overview.py +221 -0
- compass_core/query/references.py +235 -0
- compass_core/query/rows.py +378 -0
- compass_core/query/search.py +183 -0
- compass_core/query/status.py +49 -0
- compass_core/query/walk_queries.py +202 -0
- compass_core/render.py +408 -0
- compass_core/settings.py +61 -0
- compass_core/shared_types.py +78 -0
- compass_mcp/__init__.py +0 -0
- compass_mcp/guide.py +45 -0
- compass_mcp/py.typed +0 -0
- compass_mcp/server.py +261 -0
- compass_server/__init__.py +5 -0
- compass_server/errors.py +84 -0
- compass_server/main.py +42 -0
- compass_server/py.typed +0 -0
- compass_server/routers/__init__.py +0 -0
- compass_server/routers/query.py +182 -0
- compass_server/settings.py +37 -0
- compass_server/static/404.html +1 -0
- compass_server/static/_next/static/chunks/1629039a.eed2a06658ec4f9c.js +1 -0
- compass_server/static/_next/static/chunks/1ff282bf-bb7c483245264fc9.js +1 -0
- compass_server/static/_next/static/chunks/223.f881a22f446259bf.js +508 -0
- compass_server/static/_next/static/chunks/51fa5c19.6396973222c9d6fd.js +485 -0
- compass_server/static/_next/static/chunks/556.443c1682b6b20128.js +1 -0
- compass_server/static/_next/static/chunks/684-1aa0170f59baf77e.js +1 -0
- compass_server/static/_next/static/chunks/92e71660.3a42d4f70d017951.js +342 -0
- compass_server/static/_next/static/chunks/937-8692224bb6d1b605.js +1 -0
- compass_server/static/_next/static/chunks/app/_not-found/page-2c96ddf295eb6a86.js +1 -0
- compass_server/static/_next/static/chunks/app/layout-4bd0ba4a7d18aff9.js +1 -0
- compass_server/static/_next/static/chunks/app/page-5376a0a98bbd1faa.js +1 -0
- compass_server/static/_next/static/chunks/framework-96dcd958cfe08bd4.js +1 -0
- compass_server/static/_next/static/chunks/main-6dee8e626b16731a.js +1 -0
- compass_server/static/_next/static/chunks/main-app-460e8bc670818718.js +1 -0
- compass_server/static/_next/static/chunks/pages/_app-638a3e7363f92b80.js +1 -0
- compass_server/static/_next/static/chunks/pages/_error-6a72dbbb45cae743.js +1 -0
- compass_server/static/_next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
- compass_server/static/_next/static/chunks/webpack-597057bf48ce4111.js +1 -0
- compass_server/static/_next/static/css/1b0fbfd8dd653f37.css +3 -0
- compass_server/static/_next/static/ctUZeD9K7jQUgLqmBas2L/_buildManifest.js +1 -0
- compass_server/static/_next/static/ctUZeD9K7jQUgLqmBas2L/_ssgManifest.js +1 -0
- compass_server/static/_next/static/media/0086f8992871c45b-s.woff2 +0 -0
- compass_server/static/_next/static/media/034d78ad42e9620c-s.woff2 +0 -0
- compass_server/static/_next/static/media/03b436aa846269de-s.woff2 +0 -0
- compass_server/static/_next/static/media/0484562807a97172-s.p.woff2 +0 -0
- compass_server/static/_next/static/media/08aedeceaf1dcd57-s.woff2 +0 -0
- compass_server/static/_next/static/media/0aa834ed78bf6d07-s.woff2 +0 -0
- compass_server/static/_next/static/media/29a4aea02fdee119-s.woff2 +0 -0
- compass_server/static/_next/static/media/29e7bbdce9332268-s.woff2 +0 -0
- compass_server/static/_next/static/media/36008747766f78c6-s.woff2 +0 -0
- compass_server/static/_next/static/media/39969fcf98a3026e-s.woff2 +0 -0
- compass_server/static/_next/static/media/4de1fea1a954a5b6-s.p.woff2 +0 -0
- compass_server/static/_next/static/media/5c0c2bcbaa4149ca-s.p.woff2 +0 -0
- compass_server/static/_next/static/media/67957d42bae0796d-s.woff2 +0 -0
- compass_server/static/_next/static/media/6d38f9d4e0f4772b-s.woff2 +0 -0
- compass_server/static/_next/static/media/6d664cce900333ee-s.p.woff2 +0 -0
- compass_server/static/_next/static/media/886030b0b59bc5a7-s.woff2 +0 -0
- compass_server/static/_next/static/media/8888a3826f4a3af4-s.p.woff2 +0 -0
- compass_server/static/_next/static/media/939c4f875ee75fbb-s.woff2 +0 -0
- compass_server/static/_next/static/media/a1386beebedccca4-s.woff2 +0 -0
- compass_server/static/_next/static/media/ab00a911ac2adf48-s.woff2 +0 -0
- compass_server/static/_next/static/media/b957ea75a84b6ea7-s.p.woff2 +0 -0
- compass_server/static/_next/static/media/bb3ef058b751a6ad-s.p.woff2 +0 -0
- compass_server/static/_next/static/media/c3bc380753a8436c-s.woff2 +0 -0
- compass_server/static/_next/static/media/cce080f35d014443-s.woff2 +0 -0
- compass_server/static/_next/static/media/db911767852bc875-s.woff2 +0 -0
- compass_server/static/_next/static/media/eafabf029ad39a43-s.p.woff2 +0 -0
- compass_server/static/_next/static/media/f10b8e9d91f3edcb-s.woff2 +0 -0
- compass_server/static/_next/static/media/f911b923c6adde36-s.woff2 +0 -0
- compass_server/static/_next/static/media/fe0777f1195381cb-s.woff2 +0 -0
- compass_server/static/index.html +1 -0
- compass_server/static/index.txt +25 -0
- compass_server/web_bundle.py +27 -0
- compass_server/web_limits.py +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{6384:(e,t,s)=>{"use strict";function n(e,t){var s;return null!=(s=e.edges_by_type[t])?s:0}function a(e){return Object.values(e.edges_by_type).reduce((e,t)=>e+t,0)}function r(e){return[{id:"files",label:"Files",value:e.files,detail:"Source files indexed",colorClass:"bg-kind-file"},{id:"classes",label:"Classes",value:e.classes,detail:"Class definitions",colorClass:"bg-kind-class"},{id:"functions",label:"Functions",value:e.functions,detail:"Including methods",colorClass:"bg-kind-function"},{id:"edges",label:"Edges",value:a(e),detail:"Links between symbols",colorClass:"bg-edge-calls"}]}function l(e){return[{id:"files",label:"Files",value:e.files,colorClass:"bg-kind-file"},{id:"classes",label:"Classes",value:e.classes,colorClass:"bg-kind-class"},{id:"functions",label:"Functions",value:e.functions,colorClass:"bg-kind-function"}]}s.d(t,{Bo:()=>a,CV:()=>c,KW:()=>d,Yf:()=>r,hZ:()=>l,te:()=>o});let i=[{type:"CONTAINS",label:"Contains",colorClass:"bg-edge-contains"},{type:"IMPORTS",label:"Imports",colorClass:"bg-edge-imports"},{type:"INHERITS",label:"Inherits",colorClass:"bg-edge-inherits"},{type:"CALLS",label:"Calls",colorClass:"bg-edge-calls"},{type:"CALLS_EXTERN",label:"Ext. calls",colorClass:"bg-edge-external"}];function o(e){let t=Math.max(0,...i.map(t=>n(e,t.type)));return i.map(s=>{var a;return{id:s.type,label:s.label,value:n(e,s.type),colorClass:s.colorClass,barPercent:(a=n(e,s.type),t>0?a/t*100:0)}})}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new Date;return{indexed:"Indexed ".concat(d(new Date(e.indexed_at),t)),commit:e.indexed_commit?e.indexed_commit.slice(0,7):void 0,staleCount:e.stale_file_count}}function d(e,t){let s=e.getTime();if(Number.isNaN(s))return"at an unknown time";let n=Math.max(0,Math.round((t.getTime()-s)/1e3));if(n<60)return"just now";let a=Math.floor(n/60);if(a<60)return"".concat(a," min ago");let r=Math.floor(a/60);if(r<24)return"".concat(r," h ago");let l=Math.floor(r/24);return l<30?"".concat(l," d ago"):e.toLocaleDateString()}},13131:(e,t,s)=>{"use strict";s.d(t,{K:()=>o,Ly:()=>m,bR:()=>u,eB:()=>x,hD:()=>d,qR:()=>l,sB:()=>c,wg:()=>i});var n=s(40222);let a={File:"--kind-file",Class:"--kind-class",Function:"--kind-function",Method:"--kind-method",ExternalDep:"--kind-external"},r={CONTAINS:"--edge-contains",IMPORTS:"--edge-imports",INHERITS:"--edge-inherits",CALLS:"--edge-calls",CALLS_EXTERN:"--edge-external"},l={File:"bg-kind-file",Class:"bg-kind-class",Function:"bg-kind-function",Method:"bg-kind-method",ExternalDep:"bg-kind-external"},i={File:"text-kind-file",Class:"text-kind-class",Function:"text-kind-function",Method:"text-kind-method",ExternalDep:"text-kind-external"},o={CONTAINS:"bg-edge-contains",IMPORTS:"bg-edge-imports",INHERITS:"bg-edge-inherits",CALLS:"bg-edge-calls",CALLS_EXTERN:"bg-edge-external"},c={File:"File",Class:"Class",Function:"Function",Method:"Method",ExternalDep:"External Dep"},d={File:8,Class:6,Function:4,Method:4,ExternalDep:3},u={CONTAINS:"Contains",IMPORTS:"Imports",INHERITS:"Inherits",CALLS:"Calls",CALLS_EXTERN:"Ext. Calls"};function m(e){var t;return(0,n.rt)(null!=(t=a[e])?t:"--kind-file")}function x(e){var t;return(0,n.rt)(null!=(t=r[e])?t:"--edge-contains")}},15040:(e,t,s)=>{"use strict";s.d(t,{K6:()=>g,_3:()=>p,hD:()=>a,nr:()=>n,qt:()=>b,vZ:()=>h,zf:()=>r});async function n(e){let t=await fetch("".concat("").concat(e));if(!t.ok)throw Error("API ".concat(e," failed: ").concat(t.status));return t.json()}class a extends Error{constructor(e,t,s,n=[]){super(t),this.name="ApiError",this.code=e,this.status=s,this.details=n}}function r(e){return e instanceof DOMException&&"AbortError"===e.name}function l(e,t){return(null==t?void 0:t.aborted)===!0||r(e)}function i(e){return"object"==typeof e&&null!==e}async function o(e,t){let s;try{s=await e.text()}catch(e){if(l(e,t))throw e;throw new a("NETWORK","Connection lost while reading the response",0)}try{return JSON.parse(s)}catch(e){return s.length>0?{__raw:s.slice(0,200)}:void 0}}function c(e){return i(e)&&"string"==typeof e.__raw?": ".concat(e.__raw):""}function d(e,t){if(i(t)&&"string"==typeof t.code&&"string"==typeof t.message&&Array.isArray(t.details))return new a(t.code,t.message,e.status,t.details);let s=e.statusText?" ".concat(e.statusText):"";return new a("INTERNAL","Unexpected response (HTTP ".concat(e.status).concat(s,")").concat(c(t)).slice(0,300),e.status)}function u(e,t,s){return new a("INTERNAL","Unexpected response from ".concat(e," (is NEXT_PUBLIC_API_URL correct?)").concat(c(s)).slice(0,300),t.status)}function m(e,t){return i(e)&&"ok"===e.outcome&&e.operation===t}async function x(e,t,s){let n=t.toString();try{return await fetch("".concat("").concat(e).concat(n?"?".concat(n):""),{signal:s})}catch(e){if(l(e,s))throw e;throw new a("NETWORK","Could not reach the Compass backend",0)}}async function f(e,t,s,n){let a=await x(e,t,n),r=await o(a,n);if(!a.ok)throw d(a,r);if(!m(r,s))throw u(e,a,r);return r}function p(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=new URLSearchParams({q:e});return void 0!==t.kind&&s.set("kind",t.kind),void 0!==t.limit&&s.set("limit",String(t.limit)),f("/api/search",s,"FIND",t.signal)}async function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=new URLSearchParams({ref:e});void 0!==t.depth&&s.set("depth",String(t.depth)),void 0!==t.minConfidence&&s.set("min_confidence",String(t.minConfidence)),void 0!==t.limit&&s.set("limit",String(t.limit));let n="/api/impact",a=await x(n,s,t.signal),r=await o(a,t.signal);if(a.ok){if(!m(r,"IMPACT"))throw u(n,a,r);return{status:"ok",data:r}}if(409===a.status&&i(r)&&"ambiguous"===r.outcome)return{status:"ambiguous",data:r};if(404===a.status&&i(r)&&"not_found"===r.outcome)return{status:"not_found",data:r};throw d(a,r)}function g(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return f("/api/overview",new URLSearchParams,"OVERVIEW",e.signal)}async function b(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s="/api/describe",n=await x(s,new URLSearchParams({ref:e}),t.signal),a=await o(n,t.signal);if(n.ok){if(!m(a,"DESCRIBE"))throw u(s,n,a);return a}if((404===n.status||409===n.status)&&i(a)&&("not_found"===a.outcome||"ambiguous"===a.outcome))return null;throw d(n,a)}},22467:(e,t,s)=>{"use strict";s.d(t,{E:()=>r});var n=s(59697),a=s(40253);function r(e){let{className:t,...s}=e;return(0,n.jsx)("div",{className:(0,a.cn)("animate-pulse rounded-md bg-muted",t),...s})}},34830:(e,t,s)=>{"use strict";s.d(t,{$:()=>c});var n=s(59697),a=s(44213),r=s(35888),l=s(48484),i=s(40253);let o=(0,l.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 cursor-pointer",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),c=a.forwardRef((e,t)=>{let{className:s,variant:a,size:l,asChild:c=!1,...d}=e,u=c?r.DX:"button";return(0,n.jsx)(u,{className:(0,i.cn)(o({variant:a,size:l,className:s})),ref:t,...d})});c.displayName="Button"},40222:(e,t,s)=>{"use strict";s.d(t,{qs:()=>x,rt:()=>function e(t){var s;if("undefined"==typeof document)return a;let l=(s="dark"===document.documentElement.dataset.theme,"".concat(s?"dark":"light",":").concat(t)),o=r.get(l);if(o)return o;let c=getComputedStyle(document.documentElement).getPropertyValue(t).trim(),d=function(){if(i)return i;let e=document.createElement("canvas");return e.width=1,e.height=1,i=e.getContext("2d",{willReadFrequently:!0})}(),u=null;if(c&&d){let e=e=>(d.clearRect(0,0,1,1),d.fillStyle=e,d.fillStyle=c,d.fillRect(0,0,1,1),d.getImageData(0,0,1,1).data),t=e("#000000"),s=e("#ffffff");t[3]>0&&t[0]===s[0]&&t[1]===s[1]&&t[2]===s[2]&&(u="#".concat(m(t[0])).concat(m(t[1])).concat(m(t[2])))}return null===u?t===n?a:e(n):(r.set(l,u),u)},tp:()=>u});let n="--muted-foreground",a="#808080",r=new Map,l=0,i=null,o=new Set,c=null;function d(){r=new Map,l+=1,o.forEach(e=>e())}function u(){return l}function m(e){return e.toString(16).padStart(2,"0")}function x(e){return 0===o.size&&(r=new Map,(c=new MutationObserver(d)).observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]})),o.add(e),()=>{o.delete(e),0===o.size&&c&&(c.disconnect(),c=null)}}},40253:(e,t,s)=>{"use strict";s.d(t,{cn:()=>r});var n=s(73138),a=s(24353);function r(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return(0,a.QP)((0,n.$)(t))}},49895:(e,t,s)=>{"use strict";s.d(t,{TopBar:()=>B});var n=s(59697),a=s(44213),r=s(4438),l=s(93019),i=s(30986),o=s(6384),c=s(22467),d=s(10975),u=s(84158),m=s(40253);let x=d.bL;d.l9;let f=d.ZL;d.bm;let p=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)(d.hJ,{ref:t,className:(0,m.cn)("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...a})});p.displayName=d.hJ.displayName;let h=a.forwardRef((e,t)=>{let{className:s,children:a,...r}=e;return(0,n.jsxs)(f,{children:[(0,n.jsx)(p,{}),(0,n.jsxs)(d.UC,{ref:t,className:(0,m.cn)("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 ease-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-lg",s),...r,children:[a,(0,n.jsxs)(d.bm,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,n.jsx)(u.A,{className:"h-4 w-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});h.displayName=d.UC.displayName;let g=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)(d.hE,{ref:t,className:(0,m.cn)("text-lg font-semibold leading-none tracking-tight",s),...a})});g.displayName=d.hE.displayName;let b=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)(d.VY,{ref:t,className:(0,m.cn)("text-sm text-muted-foreground",s),...a})});b.displayName=d.VY.displayName;var v=s(73965);let j=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)(v.uB,{ref:t,className:(0,m.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",s),...a})});j.displayName=v.uB.displayName;let N=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,n.jsx)(i.A,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,n.jsx)(v.uB.Input,{ref:t,className:(0,m.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",s),...a})]})});N.displayName=v.uB.Input.displayName;let y=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)(v.uB.List,{ref:t,className:(0,m.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",s),...a})});y.displayName=v.uB.List.displayName;let w=a.forwardRef((e,t)=>(0,n.jsx)(v.uB.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));w.displayName=v.uB.Empty.displayName;let k=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)(v.uB.Group,{ref:t,className:(0,m.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",s),...a})});k.displayName=v.uB.Group.displayName,a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)(v.uB.Separator,{ref:t,className:(0,m.cn)("-mx-1 h-px bg-border",s),...a})}).displayName=v.uB.Separator.displayName;let C=a.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)(v.uB.Item,{ref:t,className:(0,m.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",s),...a})});C.displayName=v.uB.Item.displayName;var S=s(52980),E=s(76765),_=s(15040);let L=[{title:"Files",kinds:["file"]},{title:"Classes",kinds:["class"]},{title:"Functions",kinds:["function","method"]}];function A(e){let{open:t,onOpenChange:s,onSelect:r}=e,[l,i]=(0,a.useState)(""),{hits:o,loading:c,error:d}=function(e){let[t,s]=(0,a.useState)({hits:[],loading:!1,error:!1}),n=e.trim();return(0,a.useEffect)(()=>{if(!n)return void s({hits:[],loading:!1,error:!1});let e=new AbortController;s(e=>({...e,loading:!0,error:!1}));let t=setTimeout(()=>{(0,_._3)(n,{limit:20,signal:e.signal}).then(e=>s({hits:e.hits,loading:!1,error:!1})).catch(t=>{(0,_.zf)(t)||e.signal.aborted||s({hits:[],loading:!1,error:!0})})},180);return()=>{clearTimeout(t),e.abort()}},[n]),t}(t?l:"");return(0,n.jsx)(x,{open:t,onOpenChange:e=>{e||i(""),s(e)},children:(0,n.jsxs)(h,{className:"top-[20%] translate-y-0 gap-0 overflow-hidden p-0 sm:max-w-xl [&>button]:hidden",children:[(0,n.jsx)(g,{className:"sr-only",children:"Search"}),(0,n.jsx)(b,{className:"sr-only",children:"Search files, classes and functions"}),(0,n.jsxs)(j,{shouldFilter:!1,className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-[10px] [&_[cmdk-group-heading]]:uppercase [&_[cmdk-group-heading]]:tracking-wider [&_[cmdk-group-heading]]:text-muted-foreground",children:[(0,n.jsx)(N,{value:l,onValueChange:i,placeholder:"Search files, classes, functions…",autoFocus:!0}),(0,n.jsxs)(y,{className:"max-h-80",children:[""===l.trim()&&(0,n.jsx)("p",{className:"px-4 py-6 text-center text-xs text-muted-foreground",children:"Type a name or path to find it in the graph."}),""!==l.trim()&&!c&&!d&&0===o.length&&(0,n.jsx)(w,{children:"No matches."}),d&&(0,n.jsx)("p",{className:"px-4 py-6 text-center text-xs text-muted-foreground",children:"Search is unavailable right now."}),L.map(e=>{let{title:t,kinds:a}=e,l=o.filter(e=>a.includes(e.symbol.kind));return 0===l.length?null:(0,n.jsx)(k,{heading:t,children:l.map(e=>{let{symbol:t}=e,a=(0,E.h0)(t.kind);return(0,n.jsxs)(C,{value:t.id,onSelect:()=>{s(!1),i(""),r(t)},className:"cursor-pointer gap-2 py-2",children:[(0,n.jsx)(a,{className:"size-4 shrink-0 text-muted-foreground","aria-hidden":!0}),(0,n.jsx)("span",{className:"min-w-0 truncate font-mono text-xs",children:(0,S.hm)(t)}),(0,n.jsx)("span",{className:"ml-auto min-w-0 truncate font-mono text-[10px] text-muted-foreground",children:t.file_path?(0,S._1)(t.file_path,2):""})]},t.id)})},t)})]})]})]})})}var I=s(78400),T=s(49139),R=s(34830);let M="compass-theme";function z(e){return"dark"===e?"light":"dark"}JSON.stringify(M);var D=s(40222);function O(){return"dark"===document.documentElement.dataset.theme?"dark":"light"}function F(){let{theme:e,toggle:t}=function(){let e=(0,a.useSyncExternalStore)(D.qs,O,()=>"light");return(0,a.useEffect)(()=>{let e=window.matchMedia("(prefers-color-scheme: dark)"),t=()=>{null===function(){try{var e;return e=window.localStorage.getItem(M),"light"===e||"dark"===e?e:null}catch(e){return null}}()&&(document.documentElement.dataset.theme=e.matches?"dark":"light")};return e.addEventListener("change",t),()=>e.removeEventListener("change",t)},[]),{theme:e,toggle:(0,a.useCallback)(()=>{let e=z(O());document.documentElement.dataset.theme=e;try{window.localStorage.setItem(M,e)}catch(e){}},[])}}(),s=z(e);return(0,n.jsx)(R.$,{variant:"ghost",size:"icon",onClick:t,"aria-label":"Switch to ".concat(s," theme"),title:"Switch to ".concat(s," theme"),className:"cursor-pointer text-muted-foreground hover:text-foreground",children:"dark"===e?(0,n.jsx)(I.A,{className:"size-4"}):(0,n.jsx)(T.A,{className:"size-4"})})}var P=s(93859);function B(){let e=function(){let[e,t]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let e=!1;return(0,_.nr)("/api/status").then(s=>{e||t(s)}).catch(()=>{}),()=>{e=!0}},[]),e}(),{setView:t}=(0,P.a)(),[s,d]=(0,a.useState)(!1),u=function(){let[e,t]=(0,a.useState)("Ctrl");return(0,a.useEffect)(()=>{/Mac|iPhone|iPad/.test(navigator.platform)&&t("⌘")},[]),e}();return(0,a.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"k"===e.key.toLowerCase()&&(e.preventDefault(),d(e=>!e))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,n.jsxs)("header",{className:"grid h-12 flex-none grid-cols-[1fr_minmax(0,32rem)_1fr] items-center gap-3 border-b border-border bg-card px-3",children:[(0,n.jsxs)("div",{className:"flex min-w-0 items-center gap-2.5",children:[(0,n.jsx)("span",{className:"flex size-7 flex-none items-center justify-center rounded-md border border-primary/60 text-primary",children:(0,n.jsx)(r.A,{className:"size-4","aria-hidden":!0})}),e?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"truncate text-sm font-semibold",title:e.repo_root,children:function(e){var t;let s=e.split(/[\\/]/).filter(Boolean);return null!=(t=s[s.length-1])?t:e}(e.repo_root)}),(0,n.jsxs)("span",{className:"hidden items-center gap-1 whitespace-nowrap text-xs text-muted-foreground sm:flex",children:[(0,n.jsx)(l.A,{className:"size-3","aria-hidden":!0}),"indexed ",(0,o.KW)(new Date(e.indexed_at),new Date)]})]}):(0,n.jsx)(c.E,{className:"h-4 w-28"})]}),(0,n.jsxs)("button",{type:"button",onClick:()=>d(!0),"aria-label":"Search files, classes, functions",className:"flex h-8 w-full cursor-pointer items-center gap-2 rounded-md border border-border bg-background px-3 text-left text-xs text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,n.jsx)(i.A,{className:"size-3.5 flex-none","aria-hidden":!0}),(0,n.jsx)("span",{className:"flex-1 truncate",children:"Search files, classes, functions…"}),(0,n.jsxs)("kbd",{className:"flex items-center gap-1 font-mono text-[10px]",children:[(0,n.jsx)("span",{className:"rounded border border-border bg-muted px-1.5 py-0.5",children:u}),(0,n.jsx)("span",{className:"rounded border border-border bg-muted px-1.5 py-0.5",children:"K"})]})]}),(0,n.jsx)("div",{className:"flex items-center justify-end gap-1",children:(0,n.jsx)(F,{})}),(0,n.jsx)(A,{open:s,onOpenChange:d,onSelect:e=>t("graph",e.id)})]})}},52980:(e,t,s)=>{"use strict";function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,s=e.split("/").filter(Boolean);return s.length<=t?e:"…/".concat(s.slice(-t).join("/"))}function a(e){if("file"===e.kind){var t;return(null!=(t=e.file_path)?t:e.name).split("/").filter(Boolean).slice(-2).join("/")}return"external"===e.kind?e.name:e.id.split("::").pop()||e.name}function r(e){let t=e.replace(/\s+$/,"").replace(/^\s*\n/,"").split("\n"),s=t.slice(1).filter(e=>""!==e.trim()).map(e=>e.length-e.trimStart().length),n=s.length>0?Math.min(...s):0;return t.map((e,t)=>0===t?e.trimStart():e.slice(Math.min(n,e.length-e.trimStart().length))).join("\n")}function l(e){let{line_start:t,line_end:s}=e.symbol;if(null===t)return[];let n=[{label:"Lines",value:null!==s&&s!==t?"".concat(t,"–").concat(s):String(t)}];if(null!==s&&s>=t){let e=s-t+1;n.push({label:"Size",value:"".concat(e," line").concat(1===e?"":"s")})}return n}s.d(t,{TW:()=>r,_1:()=>n,hm:()=>a,px:()=>l})},68269:(e,t,s)=>{"use strict";s.d(t,{ActiveView:()=>tU});var n=s(59697),a=s(39517),r=s(59534),l=s(11435),i=s(44213),o=s(12885),c=s(18522),d=s(48484),u=s(40253);let m=(0,d.F)("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground [&>svg]:text-foreground",destructive:"border-destructive/50 text-destructive [&>svg]:text-destructive",warning:"border-warning/40 bg-warning/10 text-foreground [&>svg]:text-warning"}},defaultVariants:{variant:"default"}}),x=i.forwardRef((e,t)=>{let{className:s,variant:a,...r}=e;return(0,n.jsx)("div",{ref:t,role:"alert",className:(0,u.cn)(m({variant:a}),s),...r})});x.displayName="Alert";let f=i.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)("h5",{ref:t,className:(0,u.cn)("mb-1 font-medium leading-none tracking-tight",s),...a})});f.displayName="AlertTitle";let p=i.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)("div",{ref:t,className:(0,u.cn)("text-sm [&_p]:leading-relaxed",s),...a})});p.displayName="AlertDescription";let h={UNRESOLVED_CALLS:o.A,STALE_INDEX:c.A},g=new Set(["UNRESOLVED_CALLS","STALE_INDEX"]);function b(e){let{caveat:t}=e,s=h[t.code];return(0,n.jsxs)(x,{variant:g.has(t.code)?"warning":"default",role:"status",className:"py-2.5",children:[(0,n.jsx)(s,{className:"size-4","aria-hidden":!0}),(0,n.jsx)(p,{children:t.message})]})}var v=s(76181);function j(e){let{title:t,message:s,action:a}=e;return(0,n.jsxs)(x,{variant:"destructive",children:[(0,n.jsx)(v.A,{className:"size-4","aria-hidden":!0}),(0,n.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)(f,{children:t}),(0,n.jsx)(p,{children:s})]}),a]})]})}var N=s(34830);function y(e){let{onRetry:t,label:s="Retry"}=e;return(0,n.jsxs)(N.$,{variant:"outline",size:"sm",className:"cursor-pointer",onClick:t,children:[(0,n.jsx)(c.A,{className:"size-3.5","aria-hidden":!0}),s]})}var w=s(93859),k=s(3148),C=s(51291),S=s(49694),E=s(50034),_=s(14118);let L={file:{icon:k.A,textClass:"text-kind-file",tintClass:"bg-kind-file/15",label:"File"},class:{icon:C.A,textClass:"text-kind-class",tintClass:"bg-kind-class/15",label:"Class"},function:{icon:S.A,textClass:"text-kind-function",tintClass:"bg-kind-function/15",label:"Function"},method:{icon:E.A,textClass:"text-kind-method",tintClass:"bg-kind-method/15",label:"Method"},external:{icon:_.A,textClass:"text-kind-external",tintClass:"bg-kind-external/15",label:"External"}};function A(e){return null===e.file_path?"":null===e.line_start?e.file_path:"".concat(e.file_path,":").concat(e.line_start)}function I(e){let{item:t,onRetarget:s}=e,{symbol:a}=t,r=L[a.kind],l=r.icon,i=t.min_confidence,o=function(e){var t;let s=e.min_confidence;return null!==s?{text:s.toFixed(2),title:"Minimum edge confidence ".concat(s.toFixed(2))}:"IMPORTS"===(null==(t=e.via)?void 0:t.kind)?{text:"import",title:"Import dependency (not a call)"}:{text:"—",title:"Confidence unknown"}}(t);return(0,n.jsxs)("button",{type:"button",onClick:()=>s(a.id),title:"Re-target impact on ".concat(a.name),className:"grid min-h-9 w-full cursor-pointer grid-cols-[minmax(0,1.3fr)_minmax(0,1fr)_minmax(0,1fr)_3rem] items-center gap-3 bg-card px-3.5 text-left hover:bg-muted focus-visible:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,n.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,n.jsx)(l,{className:(0,u.cn)("size-3.5 flex-none",r.textClass),"aria-hidden":!0}),(0,n.jsx)("span",{className:"truncate font-mono text-[13px]",children:a.name})]}),(0,n.jsx)("span",{className:"truncate font-mono text-xs text-muted-foreground",children:A(a)}),(0,n.jsx)("span",{className:"truncate text-xs italic text-muted-foreground",children:function(e){if(null===e)return"";let t=e.symbol.name,s=e.kind;switch(s){case"CALLS":return"calls ".concat(t);case"IMPORTS":return"imports ".concat(t);case"INHERITS":return"inherits ".concat(t);default:return s}}(t.via)}),(0,n.jsx)("span",{className:(0,u.cn)("text-right font-mono text-xs",null===i?"text-muted-foreground":i>=1?"text-success":"text-warning"),title:o.title,children:o.text})]})}function T(e){return 1===e?"Direct dependents":"".concat(e," hops away")}function R(e){let{groups:t,onRetarget:s}=e;return(0,n.jsx)("div",{className:"flex flex-col gap-5",children:(function(e){let t=new Map;for(let n of e){var s;let e=null!=(s=t.get(n.distance))?s:{distance:n.distance,count:0,files:[]};e.count+=n.items.length,e.files.push(n),t.set(n.distance,e)}return[...t.values()].sort((e,t)=>e.distance-t.distance)})(t).map(e=>(0,n.jsxs)("section",{"aria-label":T(e.distance),className:"flex flex-col gap-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold",children:T(e.distance)}),(0,n.jsx)("span",{className:"flex-1"}),(0,n.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:e.count})]}),(0,n.jsx)("div",{className:"flex flex-col gap-3",children:e.files.map(e=>(0,n.jsxs)("div",{className:"overflow-hidden rounded-lg border border-border",children:[(0,n.jsx)("div",{className:"border-b border-border bg-muted px-3.5 py-1.5 font-mono text-xs text-muted-foreground",children:e.file_path}),(0,n.jsx)("div",{className:"flex flex-col gap-px bg-border",children:e.items.map(e=>(0,n.jsx)(I,{item:e,onRetarget:s},e.symbol.id))})]},e.file_path))})]},e.distance))})}var M=s(92798),z=s(73382);function D(e){let{value:t,min:s,max:a,onChange:r}=e;return(0,n.jsxs)("div",{role:"group","aria-label":"Depth",className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:"Depth"}),(0,n.jsxs)("div",{className:"flex items-center rounded-md border border-border bg-muted p-0.5",children:[(0,n.jsx)(N.$,{variant:"ghost",size:"icon",className:"size-6 cursor-pointer","aria-label":"Decrease depth",disabled:t<=s,onClick:()=>r(t-1),children:(0,n.jsx)(M.A,{className:"size-3.5"})}),(0,n.jsx)("span",{className:"w-7 text-center font-mono text-xs","aria-live":"polite",children:t}),(0,n.jsx)(N.$,{variant:"ghost",size:"icon",className:"size-6 cursor-pointer","aria-label":"Increase depth",disabled:t>=a,onClick:()=>r(t+1),children:(0,n.jsx)(z.A,{className:"size-3.5"})})]})]})}function O(e){switch(e.code){case"NETWORK":return{title:"Backend unreachable",message:"Can't reach the Code Compass backend. Is compass serve running?",retryable:!0};case"INDEX_NOT_FOUND":return{title:"No index",message:"No index found. Run compass ingest in your repository.",retryable:!0};case"INDEX_BUSY":return{title:"Index busy",message:"The index is being rebuilt. Try again in a moment.",retryable:!0};case"INDEX_INCOMPATIBLE":return{title:"Incompatible index",message:"The index was created by an incompatible version. Re-run compass ingest.",retryable:!1};case"QUERY_TIMEOUT":return{title:"Query timed out",message:"The analysis took too long. Try a smaller depth or retry.",retryable:!0};case"INVALID_ARGUMENT":return{title:"Invalid request",message:e.message,retryable:!1};case"NOT_FOUND":return{title:"Not found",message:e.message,retryable:!1};case"AMBIGUOUS":return{title:"Ambiguous reference",message:e.message,retryable:!1};case"INTERNAL":return{title:"Something went wrong",message:"The backend hit an unexpected error. Try again.",retryable:!0};default:return{title:"Something went wrong",message:e.message,retryable:!0}}}var F=s(61075),P=s(22467);function B(e){let{maybeIncomplete:t=!1,title:s="No resolved dependents found",description:a="This only reflects resolved calls and imports. Tests and entry points often look like this.",incompleteNote:r="Some possible callers could not be resolved, so this may be incomplete."}=e;return(0,n.jsxs)("div",{className:"flex flex-col items-center gap-2 rounded-lg border border-dashed border-border px-5 py-11 text-center",children:[(0,n.jsx)(F.A,{className:"size-6 text-muted-foreground","aria-hidden":!0}),(0,n.jsx)("div",{className:"font-medium",children:s}),(0,n.jsx)("div",{className:"max-w-sm text-xs text-muted-foreground",children:a}),t&&(0,n.jsx)("div",{className:"max-w-sm text-xs text-muted-foreground",children:r})]})}function U(){return(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"Pick a function, class or file to see what it affects."})}function K(){return(0,n.jsxs)("div",{role:"status","aria-label":"Loading impact analysis",className:"flex flex-col gap-3",children:[(0,n.jsx)(P.E,{className:"h-20 w-full"}),(0,n.jsx)(P.E,{className:"h-9 w-full"}),(0,n.jsx)(P.E,{className:"h-9 w-full"}),(0,n.jsx)(P.E,{className:"h-9 w-full"})]})}function W(e){let{symbols:t,onChoose:s}=e;return(0,n.jsx)("ul",{className:"flex flex-col gap-px overflow-hidden rounded-lg border border-border bg-border",children:t.map(e=>{let t=L[e.kind],a=t.icon;return(0,n.jsx)("li",{children:(0,n.jsxs)("button",{type:"button",onClick:()=>s(e),className:"flex w-full cursor-pointer items-center gap-3 bg-card px-3.5 py-2 text-left hover:bg-muted focus-visible:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:[(0,n.jsx)(a,{className:(0,u.cn)("size-3.5 flex-none",t.textClass),"aria-hidden":!0}),(0,n.jsx)("span",{className:"font-mono text-[13px]",children:e.name}),(0,n.jsx)("span",{className:"truncate font-mono text-xs text-muted-foreground",children:A(e)})]})},e.id)})})}function V(e){let{reference:t,candidates:s,onChoose:a}=e;return(0,n.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,n.jsxs)("p",{className:"text-sm",children:[(0,n.jsx)("span",{className:"font-mono",children:t})," matches more than one symbol. Which did you mean?"]}),(0,n.jsx)(W,{symbols:s,onChoose:a})]})}function G(e){let{reference:t,suggestions:s,onChoose:a}=e;return(0,n.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,n.jsxs)("p",{className:"text-sm",children:["No symbol matches '",t,"'"]}),s.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:"Did you mean:"}),(0,n.jsx)(W,{symbols:s,onChoose:a})]})]})}let X=(0,d.F)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function $(e){let{className:t,variant:s,...a}=e;return(0,n.jsx)("div",{className:(0,u.cn)(X({variant:s}),t),...a})}let H=i.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)("div",{ref:t,className:(0,u.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",s),...a})});function q(e){let{result:t,onShowInGraph:s}=e,{target:a}=t,l=L[a.kind],i=l.icon,o=A(a);return(0,n.jsxs)(H,{className:"flex items-start gap-4 p-4",children:[(0,n.jsx)("div",{className:(0,u.cn)("flex size-10 flex-none items-center justify-center rounded-lg",l.tintClass,l.textClass),children:(0,n.jsx)(i,{className:"size-5","aria-hidden":!0})}),(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1.5",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-2.5",children:[(0,n.jsx)("h2",{className:"font-mono text-lg font-semibold tracking-tight",children:a.name}),(0,n.jsx)($,{variant:"secondary",className:(0,u.cn)(l.textClass,l.tintClass),children:l.label}),o&&(0,n.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:o})]}),a.signature&&(0,n.jsx)("div",{className:"break-words font-mono text-xs text-muted-foreground",children:a.signature}),(0,n.jsxs)("div",{className:"text-sm",children:[(0,n.jsxs)("span",{className:"font-semibold",children:[t.total," affected"]}),(0,n.jsxs)("span",{className:"text-muted-foreground",children:[" ","\xb7 ",t.affected_file_count," ",1===t.affected_file_count?"file":"files"]})]})]}),(0,n.jsxs)(N.$,{variant:"outline",size:"sm",className:"cursor-pointer",onClick:()=>s(a.id),children:[(0,n.jsx)(r.A,{className:"size-3.5","aria-hidden":!0}),"Show in graph"]})]})}H.displayName="Card",i.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)("div",{ref:t,className:(0,u.cn)("p-6",s),...a})}).displayName="CardContent";var Z=s(30986);let Y=i.forwardRef((e,t)=>{let{className:s,type:a,...r}=e;return(0,n.jsx)("input",{type:a,className:(0,u.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",s),ref:t,...r})});function J(e){let{query:t,onQueryChange:s,results:a,loading:r,error:l,onPick:o,autoFocus:c}=e,d=(0,i.useId)(),[m,x]=(0,i.useState)(!1),[f,p]=(0,i.useState)(0),h=m&&t.trim().length>0,g=Math.min(f,Math.max(a.length-1,0));(0,i.useEffect)(()=>p(0),[a]),(0,i.useEffect)(()=>{if(!h)return;let e=document.getElementById("".concat(d,"-").concat(g));e&&"function"==typeof e.scrollIntoView&&e.scrollIntoView({block:"nearest"})},[h,g,d]);let b=e=>{r||(x(!1),o(e.symbol))};return(0,n.jsxs)("div",{className:"relative",role:"search",children:[(0,n.jsx)(Z.A,{className:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground","aria-hidden":!0}),(0,n.jsx)(Y,{role:"combobox","aria-label":"Search a function, class or file","aria-expanded":h,"aria-controls":d,"aria-autocomplete":"list","aria-activedescendant":h&&a[g]?"".concat(d,"-").concat(g):void 0,autoFocus:c,autoComplete:"off",placeholder:"Search a function, class or file…",className:"pl-9",value:t,onChange:e=>{s(e.target.value),x(!0),p(0)},onFocus:()=>x(!0),onBlur:()=>x(!1),onKeyDown:e=>{"ArrowDown"===e.key?(e.preventDefault(),h?p(Math.min(g+1,Math.max(a.length-1,0))):x(!0)):"ArrowUp"===e.key?(e.preventDefault(),p(Math.max(g-1,0))):"Enter"===e.key&&h&&a[g]?(e.preventDefault(),r||b(a[g])):"Escape"===e.key&&x(!1)}}),h&&(0,n.jsxs)("div",{onMouseDown:e=>e.preventDefault(),className:"absolute inset-x-0 top-full z-20 mt-1 max-h-72 overflow-y-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md",children:[(0,n.jsx)("ul",{id:d,role:"listbox","aria-label":"Matching symbols","aria-busy":r,className:(0,u.cn)("p-1",r&&a.length>0&&"opacity-60"),children:a.map((e,t)=>{let s=L[e.symbol.kind],a=s.icon;return(0,n.jsxs)("li",{id:"".concat(d,"-").concat(t),role:"option","aria-selected":t===g,"aria-disabled":r||void 0,onMouseDown:t=>{t.preventDefault(),b(e)},onMouseEnter:()=>p(t),className:(0,u.cn)("flex cursor-pointer items-center gap-3 rounded-sm px-2.5 py-1.5",t===g&&"bg-muted"),children:[(0,n.jsx)(a,{className:(0,u.cn)("size-3.5 flex-none",s.textClass),"aria-hidden":!0}),(0,n.jsx)("span",{className:"font-mono text-[13px]",children:e.symbol.name}),(0,n.jsx)("span",{className:"flex-1 truncate font-mono text-xs text-muted-foreground",children:A(e.symbol)}),(0,n.jsx)($,{variant:"secondary",className:(0,u.cn)("text-[10px]",s.textClass),children:s.label})]},e.symbol.id)})}),0===a.length&&(0,n.jsx)("p",{className:"px-3 py-2 text-xs text-muted-foreground",role:"status",children:l?"Search unavailable. ".concat(O(l).message):r?"Searching…":"No matches"})]})]})}Y.displayName="Input";var Q=s(15040);function ee(){let{focus:e,setView:t}=(0,w.a)(),s=(null==e?void 0:e.trim())||null,[a,r]=(0,i.useState)(3),[l,o]=(0,i.useState)(""),c=function(e){let[t,s]=(0,i.useState)([]),[n,a]=(0,i.useState)(!1),[r,l]=(0,i.useState)(null),o=e.trim();return(0,i.useEffect)(()=>{if(o.length<1){s([]),l(null),a(!1);return}let e=new AbortController;a(!0);let t=setTimeout(()=>{(0,Q._3)(o,{limit:12,signal:e.signal}).then(t=>{e.signal.aborted||(s(t.hits),l(null),a(!1))}).catch(t=>{e.signal.aborted||(l(t instanceof Q.hD?t:new Q.hD("INTERNAL","Search failed",0)),s([]),a(!1))})},200);return()=>{clearTimeout(t),e.abort()}},[o]),{results:t,loading:n,error:r}}(l),d=function(e,t){var s;let[n,a]=(0,i.useState)(null),[r,l]=(0,i.useState)(0);(0,i.useEffect)(()=>{if(null===e)return;let s={target:e,depth:t,attempt:r},n=e=>a({inputs:s,state:e}),l=new AbortController;return(0,Q.vZ)(e,{depth:t,signal:l.signal}).then(e=>{if(!l.signal.aborted)switch(e.status){case"ok":return n({status:"ok",result:e.data});case"ambiguous":return n({status:"ambiguous",result:e.data});case"not_found":return n({status:"not_found",result:e.data})}}).catch(e=>{!l.signal.aborted&&n({status:"error",error:e instanceof Q.hD?e:new Q.hD("INTERNAL",e instanceof Error?e.message:"Unexpected error",0)})}),()=>l.abort()},[e,t,r]);let o=(0,i.useCallback)(()=>l(e=>e+1),[]);return{...null===(s={target:e,depth:t,attempt:r}).target?{status:"idle"}:null===n||n.inputs.target!==s.target||n.inputs.depth!==s.depth||n.inputs.attempt!==s.attempt?{status:"loading"}:n.state,retry:o}}(s,a),u=e=>t("impact",e),m=e=>{o(""),u(e.id)};return(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-auto",children:(0,n.jsxs)("div",{className:"mx-auto flex max-w-5xl flex-col gap-4 px-8 pb-14 pt-6",children:[(0,n.jsxs)("div",{className:"flex items-baseline gap-3",children:[(0,n.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:"Impact"}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"If I change this, what else is affected?"})]}),(0,n.jsx)(J,{query:l,onQueryChange:o,results:c.results,loading:c.loading,error:c.error,onPick:m,autoFocus:null===s}),null!==s&&(0,n.jsx)("div",{className:"flex justify-end",children:(0,n.jsx)(D,{value:a,min:1,max:10,onChange:r})}),(0,n.jsxs)("div",{"aria-live":"polite",className:"flex flex-col gap-4",children:["idle"===d.status&&(0,n.jsx)(U,{}),"loading"===d.status&&(0,n.jsx)(K,{}),"ambiguous"===d.status&&(0,n.jsx)(V,{reference:d.result.reference,candidates:d.result.candidates,onChoose:m}),"not_found"===d.status&&(0,n.jsx)(G,{reference:d.result.reference,suggestions:d.result.suggestions,onChoose:m}),"error"===d.status&&(0,n.jsx)(et,{state:d}),"ok"===d.status&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(q,{result:d.result,onShowInGraph:e=>t("graph",e)}),d.result.truncated&&(0,n.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Showing the first ",d.result.groups.reduce((e,t)=>e+t.items.length,0)," of ",d.result.total]}),d.result.caveats.map(e=>(0,n.jsx)(b,{caveat:e},e.code)),0===d.result.groups.length?(0,n.jsx)(B,{maybeIncomplete:d.result.caveats.some(e=>"UNRESOLVED_CALLS"===e.code)}):(0,n.jsx)(R,{groups:d.result.groups,onRetarget:u})]})]})]})})}function et(e){let{state:t}=e,s=O(t.error);return(0,n.jsx)(j,{title:s.title,message:s.message,action:s.retryable?(0,n.jsx)(y,{onRetry:t.retry}):void 0})}var es=s(93539);let en={file:"File",class:"Class",function:"Function",method:"Method",external:"ExternalDep"};var ea=s(13131),er=s(41089);let el=i.forwardRef((e,t)=>{let{className:s,...a}=e;return(0,n.jsx)(er.bL,{className:(0,u.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted-foreground/20",s),...a,ref:t,children:(0,n.jsx)(er.zi,{className:(0,u.cn)("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})})});function ei(e){let{id:t,label:s,count:a,total:r,enabled:l,onToggle:i,marker:o}=e;return(0,n.jsxs)("div",{className:"flex items-center gap-2 px-1.5 py-1",children:[o,(0,n.jsx)("label",{htmlFor:t,className:"flex-1 cursor-pointer select-none ".concat(l?"text-foreground":"text-muted-foreground/60"),children:s}),(0,n.jsx)("span",{className:"font-mono tabular-nums text-muted-foreground",title:a===r?"".concat(r," in the index"):"".concat(a," on the globe of ").concat(r," in the index"),children:a===r?r:"".concat(a,"/").concat(r)}),(0,n.jsx)(el,{id:t,checked:l,onCheckedChange:i,"aria-label":"Show ".concat(s),className:"h-4 w-7 [&>span]:size-3 data-[state=checked]:[&>span]:translate-x-3"})]})}el.displayName=er.bL.displayName;let eo=["File","Class","Function","Method","ExternalDep"],ec=["CONTAINS","IMPORTS","INHERITS","CALLS","CALLS_EXTERN"];function ed(e){let{typeVisibility:t,typeCounts:s,typeTotals:a,onToggleType:r,edgeTypeVisibility:l,edgeTypeCounts:i,edgeTypeTotals:o,onToggleEdgeType:c,showLabels:d,onToggleLabels:u,onZoomIn:m,onZoomOut:x}=e;return(0,n.jsxs)(H,{className:"absolute bottom-4 left-4 w-[220px] max-h-[calc(100%-2rem)] overflow-y-auto bg-card/80 backdrop-blur-md p-3.5 text-xs z-10 flex flex-col gap-3.5",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground mb-2",children:"Entities"}),(0,n.jsx)("div",{className:"flex flex-col",children:eo.map(e=>(0,n.jsx)(ei,{id:"filter-node-".concat(e),label:ea.sB[e],count:s[e],total:a[e],enabled:t[e],onToggle:()=>r(e),marker:(0,n.jsx)("span",{className:"size-2 rounded-full flex-shrink-0 ".concat(ea.qR[e]," ").concat(t[e]?"":"opacity-25")})},e))})]}),(0,n.jsxs)("div",{className:"border-t border-border pt-3",children:[(0,n.jsx)("p",{className:"text-[10px] font-bold uppercase tracking-widest text-muted-foreground mb-2",children:"Relationships"}),(0,n.jsx)("div",{className:"flex flex-col",children:ec.map(e=>(0,n.jsx)(ei,{id:"filter-edge-".concat(e),label:ea.bR[e],count:i[e],total:o[e],enabled:l[e],onToggle:()=>c(e),marker:(0,n.jsx)("span",{className:"w-3 h-0.5 rounded-full flex-shrink-0 ".concat(ea.K[e]," ").concat(l[e]?"":"opacity-25")})},e))})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between border-t border-border pt-3",children:[(0,n.jsx)("span",{className:"text-foreground",children:"Show labels"}),(0,n.jsx)(el,{checked:d,onCheckedChange:u})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between border-t border-border pt-3",children:[(0,n.jsx)("span",{className:"text-foreground",children:"Zoom"}),(0,n.jsxs)("div",{className:"flex gap-1",children:[(0,n.jsx)(N.$,{variant:"outline",size:"icon",onClick:x,"aria-label":"Zoom out",className:"size-6 text-muted-foreground hover:text-foreground [&_svg]:size-3",children:(0,n.jsx)(M.A,{})}),(0,n.jsx)(N.$,{variant:"outline",size:"icon",onClick:m,"aria-label":"Zoom in",className:"size-6 text-muted-foreground hover:text-foreground [&_svg]:size-3",children:(0,n.jsx)(z.A,{})})]})]})]})}var eu=s(65310),em=s(20254),ex=s(72135),ef=s(52980);let ep=/^(Args|Arguments|Parameters|Attributes|Returns?|Yields?|Raises|Examples?|Notes?|Warnings?|See Also):\s*$/,eh={args:"Parameters",arguments:"Parameters",parameters:"Parameters",attributes:"Attributes",return:"Returns",returns:"Returns",yield:"Yields",yields:"Yields",raises:"Raises",example:"Example",examples:"Example",note:"Note",notes:"Note",warning:"Warning",warnings:"Warning","see also":"See also"},eg=new Set(["Parameters","Attributes","Raises"]),eb=/^([\w.*]+)\s*(?:\(([^)]*)\))?\s*:\s*(.*)$/,ev=/^\s*(?:[-*•]|\d+[.)])\s+/,ej=e=>e.length-e.trimStart().length;function eN(e){let t=[],s=[],n=()=>{if(0===s.length)return;let e=s.map(e=>e.trim());t.push(s.some(e=>ev.test(e))?e.join("\n"):e.join(" ")),s=[]};for(let t of e)""===t.trim()?n():s.push(t);return n(),t}var ey=s(18797);let ew={plain:{color:"var(--foreground)",backgroundColor:"transparent"},styles:[{types:["keyword","boolean","builtin","important"],style:{color:"var(--kind-method)"}},{types:["string","triple-quoted-string","string-interpolation","char"],style:{color:"var(--kind-external)"}},{types:["function","class-name"],style:{color:"var(--kind-file)"}},{types:["number","constant"],style:{color:"var(--kind-function)"}},{types:["decorator","annotation","attr-name"],style:{color:"var(--kind-class)"}},{types:["comment"],style:{color:"var(--muted-foreground)",fontStyle:"italic"}},{types:["punctuation","operator"],style:{color:"var(--muted-foreground)"}}]};function ek(e){let{source:t,startLine:s,language:a="python",showLineNumbers:r=!0,className:l}=e;return(0,n.jsx)(ey.f4,{theme:ew,code:t.replace(/\n$/,""),language:a,children:e=>{let{tokens:t,getLineProps:a,getTokenProps:i}=e;return(0,n.jsx)("pre",{className:"overflow-auto font-mono text-[11px] leading-5 bg-muted/40 [scrollbar-width:thin] [scrollbar-color:var(--border)_transparent] [&::-webkit-scrollbar]:size-1.5 [&::-webkit-scrollbar-corner]:bg-transparent [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-border [&::-webkit-scrollbar-track]:bg-transparent ".concat(null!=l?l:""),children:(0,n.jsx)("code",{className:"block min-w-max py-2",children:t.map((e,t)=>(0,n.jsxs)("div",{...a({line:e}),className:"flex px-0",children:[r&&(0,n.jsx)("span",{className:"w-10 shrink-0 pr-3 text-right text-muted-foreground/70 select-none",children:s+t}),(0,n.jsx)("span",{className:r?"whitespace-pre pr-3":"whitespace-pre px-3",children:e.map((e,t)=>(0,n.jsx)("span",{...i({token:e})},t))})]},t))})})}})}function eC(e){let{text:t}=e,s=t.split(/(``[^`]+``|`[^`]+`)/g);return(0,n.jsx)(n.Fragment,{children:s.map((e,t)=>e.startsWith("`")?(0,n.jsx)("code",{className:"rounded bg-muted/60 px-1 py-0.5 font-mono text-[11px] text-foreground",children:e.replace(/^`+|`+$/g,"")},t):e)})}function eS(e){let{children:t}=e;return(0,n.jsx)("h4",{className:"text-[11px] font-medium text-muted-foreground",children:t})}function eE(e){let{section:t}=e;return(0,n.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,n.jsx)(eS,{children:t.title}),"entries"===t.kind&&(0,n.jsx)("dl",{className:"flex flex-col gap-2.5 border-l border-border pl-3",children:t.entries.map(e=>(0,n.jsxs)("div",{children:[(0,n.jsxs)("dt",{className:"flex items-baseline gap-2",children:[(0,n.jsx)("code",{className:"rounded bg-muted/60 px-1.5 py-0.5 font-mono text-[11px] text-foreground",children:e.name}),e.type&&(0,n.jsx)("span",{className:"font-mono text-[10px] text-muted-foreground",children:e.type})]}),e.text&&(0,n.jsx)("dd",{className:"mt-1 leading-relaxed text-foreground/75",children:(0,n.jsx)(eC,{text:e.text})})]},e.name))}),"text"===t.kind&&t.paragraphs.map((e,t)=>(0,n.jsx)("p",{className:"whitespace-pre-line leading-relaxed text-foreground/75",children:(0,n.jsx)(eC,{text:e})},t)),"code"===t.kind&&(0,n.jsx)(ek,{source:t.code,startLine:1,showLineNumbers:!1,className:"max-h-64 rounded"})]})}function e_(e){let{text:t}=e,s=(0,i.useMemo)(()=>(function(e){var t,s;let n=[],a=[],r=n;for(let s of(0,ef.TW)(e).split("\n")){let e=ep.exec(s);if(e){let s={title:null!=(t=eh[e[1].toLowerCase()])?t:e[1],lines:[]};a.push(s),r=s.lines}else r.push(s)}let l=eN(n);return{summary:null!=(s=l[0])?s:"",body:l.slice(1),sections:a.flatMap(e=>{var t;return null!=(t=function(e,t){let s=(0,ef.TW)(t.join("\n"));if(""===s.trim())return null;if("Example"===e)return{kind:"code",title:e,code:s};if(eg.has(e)){let t=function(e){let t=e.filter(e=>""!==e.trim());if(0===t.length)return[];let s=Math.min(...t.map(ej)),n=[];for(let e of t){let t=ej(e)===s?eb.exec(e.trim()):null;if(t){var a;n.push({name:t[1],type:null!=(a=t[2])?a:null,text:t[3].trim()})}else if(n.length>0){let t=n[n.length-1];t.text="".concat(t.text," ").concat(e.trim()).trim()}}return n}(s.split("\n"));if(t.length>0)return{kind:"entries",title:e,entries:t}}return{kind:"text",title:e,paragraphs:eN(s.split("\n"))}}(e.title,e.lines))?t:[]})}})(t),[t]);return(0,n.jsxs)("div",{className:"flex flex-col gap-3",children:[s.summary&&(0,n.jsx)("p",{className:"text-[13px] font-medium leading-snug text-foreground",children:(0,n.jsx)(eC,{text:s.summary})}),s.body.map((e,t)=>(0,n.jsx)("p",{className:"whitespace-pre-line leading-relaxed text-foreground/75",children:(0,n.jsx)(eC,{text:e})},t)),s.sections.map(e=>(0,n.jsx)(eE,{section:e},e.title))]})}var eL=s(76765);let eA="text-[10px] font-semibold uppercase tracking-wider text-muted-foreground";function eI(e){let{sections:t,canSelect:s,onSelect:a,truncated:r,about:l}=e,i=t.filter(e=>e.items.length>0),o=!!(l&&(l.docstring||l.chips.length>0));return 0!==i.length||o?(0,n.jsxs)("div",{className:"flex flex-col gap-4 px-4 py-3",children:[(null==l?void 0:l.docstring)&&(0,n.jsxs)("section",{"aria-label":"Description",className:"flex flex-col gap-1.5",children:[(0,n.jsx)("h3",{className:eA,children:"Description"}),(0,n.jsx)(e_,{text:l.docstring})]}),l&&l.chips.length>0&&(0,n.jsxs)("section",{"aria-label":"Location",className:"flex flex-col gap-1.5",children:[(0,n.jsx)("h3",{className:eA,children:"Location"}),(0,n.jsx)("ul",{className:"flex flex-wrap gap-1.5",children:l.chips.map(e=>(0,n.jsxs)("li",{className:"flex gap-1 rounded-md bg-muted/50 px-2 py-1",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,n.jsx)("span",{className:"font-mono",children:e.value})]},e.label))})]}),i.map(e=>(0,n.jsxs)("section",{"aria-label":e.title,className:"flex flex-col gap-1",children:[(0,n.jsxs)("h3",{className:eA,children:[e.title," ",(0,n.jsx)("span",{className:"ml-1 font-mono",children:e.items.length})]}),(0,n.jsx)("ul",{className:"-mx-2 flex flex-col",children:e.items.map(e=>{let t=(0,eL.h0)(e.kind);return(0,n.jsx)("li",{children:(0,n.jsxs)("button",{type:"button",disabled:!s(e),onClick:()=>a(e),title:(0,eL.GE)(e.file_path,e.line_start,e.line_end),className:"flex w-full items-center gap-2 rounded px-2 py-1 text-left enabled:cursor-pointer enabled:hover:bg-muted disabled:opacity-60",children:[(0,n.jsx)(t,{className:"size-3.5 shrink-0 text-muted-foreground","aria-hidden":!0}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-foreground",children:(0,ef.hm)(e)}),"file"!==e.kind&&null!==e.line_start&&(0,n.jsxs)("span",{className:"font-mono text-[10px] text-muted-foreground",children:[":",e.line_start]})]})},e.id)})})]},e.title)),r&&(0,n.jsx)("p",{className:"text-muted-foreground",children:"Some lists are cut short."})]}):(0,n.jsx)("p",{className:"px-4 py-3 text-muted-foreground",children:"No related symbols in this repository."})}var eT=s(87415),eR=s(27811),eM=s(45119);function ez(e){let{icon:t,label:s,hint:a,onClick:r,active:l}=e;return(0,n.jsxs)("button",{type:"button",onClick:r,title:a,"aria-pressed":l,className:(0,u.cn)("flex h-8 flex-1 cursor-pointer items-center justify-center gap-1.5 text-xs transition-colors","hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",l?"bg-muted font-medium text-foreground":"text-foreground/80"),children:[(0,n.jsx)("span",{className:"[&_svg]:size-3.5","aria-hidden":!0,children:t}),s]})}function eD(e){let{view:t,onViewChange:s,hasSource:a,onImpact:r,onExpand:i}=e;return(0,n.jsxs)("div",{role:"toolbar","aria-label":"Node views and actions",className:"flex divide-x divide-border overflow-hidden rounded-md border border-border",children:[(0,n.jsx)(ez,{icon:(0,n.jsx)(eT.A,{}),label:"Overview",hint:"Everything this node connects to",onClick:()=>s("overview"),active:"overview"===t}),a&&(0,n.jsx)(ez,{icon:(0,n.jsx)(eR.A,{}),label:"Source",hint:"The code",onClick:()=>s("source"),active:"source"===t}),(0,n.jsx)(ez,{icon:(0,n.jsx)(l.A,{}),label:"Impact",hint:"Show what a change to this could affect",onClick:r}),i&&(0,n.jsx)(ez,{icon:(0,n.jsx)(eM.A,{}),label:"Expand",hint:"Reveal this node's neighbours in the graph",onClick:i})]})}function eO(e){var t,s,a,r,l;let{node:o,detail:c,loading:d,error:u,onRetry:m,onClose:x,onShowImpact:f,onExpand:p,canSelect:h,onSelectRelated:g}=e,[b,v]=(0,i.useState)("overview"),[w,k]=(0,i.useState)(!1),C=null!=(t=null==c?void 0:c.symbol)?t:null,S=C?(0,eL.GE)(C.file_path,C.line_start,C.line_end):(l=o.publicId).startsWith("file::")?l.slice(6):l.split("::")[0],E=null!=(s=null==C?void 0:C.source)?s:null,_=(0,eL.h0)(o.type);(0,i.useEffect)(()=>{v("overview"),k(!1)},[o.id]);let L="source"===b&&E?"source":"overview";async function A(){try{await navigator.clipboard.writeText(S),k(!0),setTimeout(()=>k(!1),1500)}catch(e){}}return(0,n.jsxs)("aside",{"aria-label":"Node details",className:"w-[380px] shrink-0 h-full overflow-y-auto border-l border-border bg-card/80 backdrop-blur-md text-xs flex flex-col",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-2 px-4 py-3",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)($,{variant:"outline",className:"w-fit gap-1 ".concat(ea.wg[o.type]),children:[(0,n.jsx)(_,{className:"size-3","aria-hidden":!0}),ea.sB[o.type]]}),(0,n.jsx)(N.$,{variant:"ghost",size:"icon",onClick:x,className:"size-6 cursor-pointer text-muted-foreground hover:text-foreground [&_svg]:size-3.5","aria-label":"Close details",children:(0,n.jsx)(eu.A,{})})]}),(0,n.jsx)("p",{className:"font-mono font-semibold text-foreground text-base break-all",children:null!=(a=null==C?void 0:C.name)?a:o.label}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[(0,n.jsx)("span",{className:"min-w-0 truncate font-mono text-[11px]",title:S,children:(0,ef._1)(S)}),(0,n.jsx)("button",{type:"button",onClick:A,"aria-label":"Copy location",className:"cursor-pointer shrink-0 hover:text-foreground",children:w?(0,n.jsx)(em.A,{className:"size-3.5"}):(0,n.jsx)(ex.A,{className:"size-3.5"})})]}),(0,n.jsx)(eD,{view:L,onViewChange:v,hasSource:!!E,onImpact:()=>f(o),onExpand:o.hasChildren?()=>p(o):void 0})]}),d&&(0,n.jsx)(eF,{}),u&&(0,n.jsx)("div",{className:"px-4 py-3",children:(0,n.jsx)(j,{title:"Could not load details",message:u,action:(0,n.jsx)(y,{onRetry:m})})}),!d&&!u&&!c&&(0,n.jsx)("p",{className:"px-4 py-3 border-t border-border text-muted-foreground",children:"No further details for this node."}),c&&C&&(0,n.jsxs)(n.Fragment,{children:["source"===L&&E&&(0,n.jsx)("div",{className:"flex min-h-0 flex-1 flex-col border-t border-border",children:(0,n.jsx)(ek,{source:E,startLine:null!=(r=C.line_start)?r:1,className:"min-h-0 flex-1"})}),"overview"===L&&(0,n.jsx)("div",{className:"border-t border-border",children:(0,n.jsx)(eI,{sections:function(e){switch(e.symbol.kind){case"class":return[{title:"Base classes",items:e.bases,emptyText:"No base classes in this repository."},{title:"Subclasses",items:e.subclasses,emptyText:"No subclasses."},{title:"Methods",items:e.members,emptyText:"No methods."}];case"function":case"method":return[{title:"Calls",items:e.callees,emptyText:"Calls nothing in this repository."},{title:"Called by",items:e.callers,emptyText:"Not called from this repository."}];case"file":return[{title:"Defines",items:e.members,emptyText:"Defines no classes or functions."},{title:"Imports",items:e.imports,emptyText:"Imports no repository files."},{title:"Imported by",items:e.imported_by,emptyText:"Not imported anywhere."}];default:return[]}}(c),canSelect:h,onSelect:g,truncated:c.truncated,about:"File"===o.type?void 0:{docstring:c.docstring,chips:(0,ef.px)(c)}})})]})]})}function eF(){return(0,n.jsxs)("div",{className:"px-4 py-3 border-t border-border flex flex-col gap-2","aria-busy":!0,children:[(0,n.jsx)(P.E,{className:"h-3 w-2/3"}),(0,n.jsx)(P.E,{className:"h-3 w-1/2"}),(0,n.jsx)(P.E,{className:"h-24 w-full"})]})}var eP=s(38282);let eB={detail:null,loading:!1,error:null},eU=(0,es.default)(()=>Promise.all([s.e(480),s.e(389),s.e(368),s.e(223),s.e(556)]).then(s.bind(s,85556)).then(e=>e.GraphCanvas3D),{loadableGenerated:{webpack:()=>[85556]},ssr:!1});function eK(){var e,t,s,a;let{focus:r,setView:l}=(0,w.a)(),{data:o,loading:c,error:d}=function(){let[e,t]=(0,i.useState)(null),[s,n]=(0,i.useState)(!0),[a,r]=(0,i.useState)(null);return(0,i.useEffect)(()=>{let e=!1;return n(!0),r(null),(0,Q.nr)("/api/graph/map").then(s=>{!e&&(t({nodes:s.nodes.map(e=>{let{kind:t,...s}=e;return{...s,type:en[t]}}),edges:s.edges.map((e,t)=>({...e,id:"e".concat(t)}))}),n(!1))}).catch(t=>{e||(r(t.message),n(!1))}),()=>{e=!0}},[]),{data:e,loading:s,error:a}}(),{visibleNodes:u,visibleEdges:m,typeVisibility:f,typeCounts:h,typeTotals:g,toggleType:b,edgeTypeVisibility:v,edgeTypeCounts:j,edgeTypeTotals:N,toggleEdgeType:y,expand:k,revealPathTo:C}=function(e){let[t,s]=(0,i.useState)(new Set),[n,a]=(0,i.useState)(new Set),[r,l]=(0,i.useState)({File:"all",Class:"off",Function:"off",Method:"off",ExternalDep:"off"}),o=(0,i.useMemo)(()=>Object.fromEntries(Object.entries(r).map(e=>{let[t,s]=e;return[t,"off"!==s]})),[r]),[c,d]=(0,i.useState)({CONTAINS:!0,IMPORTS:!0,INHERITS:!0,CALLS:!0,CALLS_EXTERN:!0}),{childrenOf:u,parentOf:m,roots:x}=(0,i.useMemo)(()=>{let t={},s={},n={};if(e)for(let l of e.edges){if("CONTAINS"===l.type||"IMPORTS"===l.type){var a,r;(null!=(r=t[a=l.source])?r:t[a]=[]).push(l.target),l.target in s||(s[l.target]=l.source)}"CONTAINS"===l.type&&(n[l.target]=l.source)}return{childrenOf:t,parentOf:s,roots:e?e.nodes.filter(e=>!n[e.id]).map(e=>e.id):[]}},[e]);(0,i.useEffect)(()=>{s(new Set(x)),a(new Set)},[x]);let f=(0,i.useMemo)(()=>{let t=new Map;return null==e||e.nodes.forEach(e=>t.set(e.id,e)),t},[e]),p=(0,i.useCallback)(e=>{l(t=>{let s=t;for(let t of e){var n;let e=null==(n=f.get(t))?void 0:n.type;e&&"off"===s[e]&&(s={...s,[e]:"revealed"})}return s})},[f]),h=(0,i.useCallback)(e=>{let t=u[e];t&&0!==t.length&&(s(e=>{let s=new Set(e);return t.forEach(e=>s.add(e)),s}),a(t=>new Set(t).add(e)),p(t))},[u,p]),g=(0,i.useCallback)(e=>{let t=[],n=new Set,r=e;for(;r&&!n.has(r);)n.add(r),t.push(r),r=m[r];s(e=>{let s=new Set(e);return t.forEach(e=>s.add(e)),s}),a(e=>{let s=new Set(e);return t.slice(1).forEach(e=>s.add(e)),s}),p(t)},[m,p]),b=(0,i.useCallback)(e=>{l(t=>({...t,[e]:"off"===t[e]?"all":"off"}))},[]),v=(0,i.useCallback)(e=>{d(t=>({...t,[e]:!t[e]}))},[]),j=(0,i.useMemo)(()=>{let s=[];return null==e||e.nodes.forEach(e=>{var a,l;let i=e.type,o=r[i];"off"!==o&&("revealed"!==o||t.has(e.id))&&s.push({id:e.id,publicId:e.public_id,label:e.label,type:i,filePath:e.file_path,hasChildren:(null!=(l=null==(a=u[e.id])?void 0:a.length)?l:0)>0,expanded:n.has(e.id)})}),s},[e,t,r,u,n]),N=(0,i.useMemo)(()=>{if(!e)return[];let t=new Set(j.map(e=>e.id));return e.edges.filter(e=>t.has(e.source)&&t.has(e.target)&&c[e.type]).map(e=>({id:e.id,source:e.source,target:e.target,type:e.type}))},[e,j,c]),y=(0,i.useMemo)(()=>{let e={File:0,Class:0,Function:0,Method:0,ExternalDep:0};return j.forEach(t=>{e[t.type]++}),e},[j]),w=(0,i.useMemo)(()=>{let t={CONTAINS:0,IMPORTS:0,INHERITS:0,CALLS:0,CALLS_EXTERN:0};if(!e)return t;let s=new Set(j.map(e=>e.id));return e.edges.forEach(e=>{s.has(e.source)&&s.has(e.target)&&t[e.type]++}),t},[e,j]);return{visibleNodes:j,visibleEdges:N,typeVisibility:o,typeCounts:y,typeTotals:(0,i.useMemo)(()=>{let t={File:0,Class:0,Function:0,Method:0,ExternalDep:0};return null==e||e.nodes.forEach(e=>{t[e.type]++}),t},[e]),toggleType:b,edgeTypeVisibility:c,edgeTypeCounts:w,edgeTypeTotals:(0,i.useMemo)(()=>{let t={CONTAINS:0,IMPORTS:0,INHERITS:0,CALLS:0,CALLS_EXTERN:0};return null==e||e.edges.forEach(e=>{t[e.type]++}),t},[e]),toggleEdgeType:v,expand:h,revealPathTo:g}}(o),[S,E]=(0,i.useState)(!0),[_,L]=(0,i.useState)(""),[A,I]=(0,i.useState)(null),T=A?{node:u.find(e=>e.id===A.id),x:A.x,y:A.y}:null,R=null!=(e=null==T?void 0:T.node)?e:null,M=(0,i.useMemo)(()=>{var e;return function(e,t){var s,n;let a=null==t?void 0:t.trim();return a&&null!=(n=null!=(s=e.find(e=>e.public_id===a))?s:e.find(e=>e.public_id==="file::".concat(a)))?n:null}(null!=(e=null==o?void 0:o.nodes)?e:[],r)},[o,r]),z=!!(null==r?void 0:r.trim())&&!!o&&!M,D=!!M&&!f[M.type],O=(0,i.useRef)(null);(0,i.useEffect)(()=>{if(!o||""===_.trim())return;let e=_.toLowerCase();o.nodes.filter(t=>t.label.toLowerCase().includes(e)).forEach(e=>C(e.id))},[_,o]),(0,i.useEffect)(()=>{M&&(C(M.id),I({id:M.id}))},[M]),(0,i.useEffect)(()=>{let e=e=>{var t;"Escape"===e.key&&(null==(t=e.target)?void 0:t.tagName)!=="INPUT"&&I(null)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]);let F=(0,i.useCallback)((e,t,s)=>{I({id:e.id,x:t,y:s})},[]),{detail:P,loading:B,error:U,retry:K}=function(e){let[t,s]=(0,i.useState)(eB),[n,a]=(0,i.useState)(0);(0,i.useEffect)(()=>{if(!e)return void s(eB);let t=new AbortController;return s({detail:null,loading:!0,error:null}),(0,Q.qt)(e,{signal:t.signal}).then(e=>s({detail:e,loading:!1,error:null})).catch(e=>{(0,Q.zf)(e)||t.signal.aborted||s({detail:null,loading:!1,error:e instanceof Error?e.message:"Could not load details"})}),()=>t.abort()},[e,n]);let r=(0,i.useCallback)(()=>a(e=>e+1),[]);return{...t,retry:r}}(null!=(t=null==R?void 0:R.publicId)?t:null),W=(0,i.useMemo)(()=>{var e;return new Map((null!=(e=null==o?void 0:o.nodes)?e:[]).map(e=>[e.public_id,e]))},[o]),V=(0,i.useCallback)(e=>W.has(e.id),[W]),G=(0,i.useCallback)(e=>{let t=W.get(e.id);t&&(C(t.id),I({id:t.id}))},[W,C]),X=(0,i.useCallback)(e=>{k(e.id),I(null)},[k]);return(0,n.jsxs)("div",{className:"flex-1 flex overflow-hidden",children:[(0,n.jsxs)("div",{className:"flex-1 relative overflow-hidden",children:[(0,n.jsxs)("div",{className:"absolute top-3 left-1/2 -translate-x-1/2 z-10 flex flex-col items-center gap-2",children:[(0,n.jsx)(Y,{value:_,onChange:e=>L(e.target.value),placeholder:"Search nodes…",className:"h-8 text-xs w-56 bg-card/80 backdrop-blur-md"}),D&&(0,n.jsxs)(x,{role:"status",className:"py-2 w-auto",children:[(0,n.jsx)(eP.A,{className:"size-4","aria-hidden":!0}),(0,n.jsx)(p,{children:"Hidden by the current filters"})]}),z&&(0,n.jsxs)(x,{role:"status",className:"py-2 w-auto",children:[(0,n.jsx)(eP.A,{className:"size-4","aria-hidden":!0}),(0,n.jsx)(p,{children:"Node not in the current graph view"})]})]}),(0,n.jsx)(eU,{ref:O,nodes:u,edges:m,totalNodeCount:Object.values(g).reduce((e,t)=>e+t,0),showLabels:S,onNodeClick:F,onNodeDblClick:X,onBackgroundClick:()=>I(null),focusId:null!=(s=null==M?void 0:M.id)?s:null,selectedId:null!=(a=null==R?void 0:R.id)?a:null}),c&&(0,n.jsx)("div",{className:"absolute inset-0 flex items-center justify-center text-muted-foreground text-sm",children:"Loading graph…"}),d&&(0,n.jsxs)("div",{className:"absolute inset-0 flex flex-col items-center justify-center gap-2 text-center px-6",children:[(0,n.jsx)("p",{className:"text-sm font-medium text-foreground",children:"No graph data"}),(0,n.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Run"," ",(0,n.jsx)("code",{className:"bg-muted px-1.5 py-0.5 rounded text-xs font-mono",children:"compass ingest ./repo"})," ","first."]})]}),(0,n.jsx)(ed,{typeVisibility:f,typeCounts:h,typeTotals:g,onToggleType:b,edgeTypeVisibility:v,edgeTypeCounts:j,edgeTypeTotals:N,onToggleEdgeType:y,showLabels:S,onToggleLabels:()=>E(e=>!e),onZoomIn:()=>{var e;return null==(e=O.current)?void 0:e.zoomIn()},onZoomOut:()=>{var e;return null==(e=O.current)?void 0:e.zoomOut()}}),(0,n.jsx)("p",{className:"absolute bottom-4 right-4 text-[11px] text-muted-foreground/70 z-10",children:"Click to select. Double-click to expand."})]}),R&&(0,n.jsx)(eO,{node:R,detail:P,loading:B,error:U,onRetry:K,onClose:()=>I(null),onShowImpact:e=>l("impact",e.publicId),onExpand:e=>k(e.id),canSelect:V,onSelectRelated:G})]})}function eW(e){let{title:t,description:s,aside:a,className:r,children:l}=e;return(0,n.jsxs)(H,{className:(0,u.cn)("flex min-w-0 flex-col gap-4 px-5 py-4 shadow-none",r),children:[(0,n.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,n.jsxs)("div",{className:"flex items-baseline justify-between gap-3",children:[(0,n.jsx)("h2",{className:"text-sm font-semibold",children:t}),a&&(0,n.jsx)("span",{className:"text-xs text-muted-foreground tabular-nums",children:a})]}),s&&(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:s})]}),l]})}function eV(e){let{nodeCount:t,edgeCount:s,segments:a,edges:r}=e;return(0,n.jsxs)(eW,{title:"Graph composition",aside:"".concat(t.toLocaleString()," nodes \xb7 ").concat(s.toLocaleString()," edges"),children:[(0,n.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,n.jsx)("div",{role:"img","aria-label":a.map(e=>"".concat(e.label," ").concat(e.value)).join(", "),className:"flex h-2.5 gap-0.5 overflow-hidden rounded-full bg-muted",children:a.filter(e=>e.value>0).map(e=>(0,n.jsx)("span",{title:"".concat(e.label," \xb7 ").concat(e.value),className:(0,u.cn)("h-full",e.colorClass),style:{flexGrow:e.value,flexBasis:0}},e.id))}),(0,n.jsx)("ul",{className:"flex flex-wrap gap-x-4 gap-y-1 text-xs",children:a.map(e=>(0,n.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,n.jsx)("span",{className:(0,u.cn)("size-2 flex-none rounded-sm",e.colorClass),"aria-hidden":!0}),(0,n.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,n.jsx)("span",{className:"font-mono tabular-nums",children:e.value.toLocaleString()})]},e.id))})]}),(0,n.jsx)("ul",{className:"grid grid-cols-1 gap-x-8 gap-y-2.5 border-t border-border pt-4 text-xs sm:grid-cols-2",children:r.map(e=>(0,n.jsxs)("li",{className:"grid grid-cols-[4.5rem_minmax(0,1fr)_2.5rem] items-center gap-3",children:[(0,n.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,n.jsx)("span",{className:"h-1.5 overflow-hidden rounded-full bg-muted","aria-hidden":!0,children:(0,n.jsx)("span",{className:(0,u.cn)("block h-full rounded-full",e.colorClass),style:{width:"".concat(e.barPercent,"%")}})}),(0,n.jsx)("span",{className:"text-right font-mono tabular-nums",children:e.value.toLocaleString()})]},e.id))})]})}function eG(e){let{resolvedPercent:t,issues:s,note:a}=e;return(0,n.jsxs)(eW,{title:"Index health",description:a,children:[(0,n.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,n.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,n.jsxs)("span",{className:"text-3xl font-semibold tracking-tight",children:[t,"%"]}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:"of calls resolved"})]}),(0,n.jsx)("div",{role:"img","aria-label":"".concat(t,"% of calls resolved"),className:"flex h-2.5 overflow-hidden rounded-full bg-kind-class/40",children:(0,n.jsx)("span",{className:"h-full rounded-full bg-kind-function",style:{width:"".concat(t,"%")}})})]}),(0,n.jsx)("ul",{className:"flex flex-col gap-1.5 text-xs",children:s.map(e=>(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:(0,u.cn)("size-2 flex-none rounded-full",e.dotClass),"aria-hidden":!0}),(0,n.jsx)("span",{className:"flex-1 text-muted-foreground",children:e.label}),(0,n.jsx)("span",{className:"font-mono tabular-nums",children:e.count.toLocaleString()})]},e.id))})]})}function eX(e){let{indexed:t,commit:s,staleCount:a,repoRoot:r}=e;return(0,n.jsxs)("div",{className:"flex flex-col items-end gap-1 text-xs text-muted-foreground",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[(0,n.jsx)("span",{children:t}),s&&(0,n.jsx)("span",{className:"font-mono",children:s}),a>0&&(0,n.jsxs)($,{variant:"outline",children:[a.toLocaleString()," changed since"]})]}),(0,n.jsx)("span",{className:"max-w-[28rem] truncate font-mono",title:r,children:r})]})}var e$=s(6384);let eH=["var(--kind-function)","var(--kind-method)","var(--kind-class)","var(--kind-file)"],eq="var(--kind-file)",eZ="var(--muted-foreground)";function eY(e,t){return t>0?Math.round(e/t*1e3)/10:0}function eJ(e){return e.byKind.reduce((e,t)=>e+t.unused,0)}let eQ={function:{label:"Unused functions",color:eH[0]},method:{label:"Unused methods",color:eH[1]},class:{label:"Unused classes",color:eH[2]}};var e0=s(37028),e1=s(20672),e2=s(30283),e5=s(64004),e3=s(84626),e4=s(16989);let e8={light:"",dark:".dark"},e6=i.createContext(null);function e9(){let e=i.useContext(e6);if(!e)throw Error("useChart must be used within a <ChartContainer />");return e}let e7=i.forwardRef((e,t)=>{let{id:s,className:a,children:r,config:l,...o}=e,c=i.useId(),d="chart-".concat(s||c.replace(/:/g,""));return(0,n.jsx)(e6.Provider,{value:{config:l},children:(0,n.jsxs)("div",{"data-chart":d,ref:t,className:(0,u.cn)("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",a),...o,children:[(0,n.jsx)(te,{id:d,config:l}),(0,n.jsx)(e5.u,{children:r})]})})});e7.displayName="Chart";let te=e=>{let{id:t,config:s}=e,a=Object.entries(s).filter(e=>{let[,t]=e;return t.theme||t.color});return a.length?(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:Object.entries(e8).map(e=>{let[s,n]=e;return"\n".concat(n," [data-chart=").concat(t,"] {\n").concat(a.map(e=>{var t;let[n,a]=e,r=(null==(t=a.theme)?void 0:t[s])||a.color;return r?" --color-".concat(n,": ").concat(r,";"):null}).join("\n"),"\n}\n")}).join("\n")}}):null},tt=e3.m,ts=i.forwardRef((e,t)=>{let{active:s,payload:a,className:r,indicator:l="dot",hideLabel:o=!1,hideIndicator:c=!1,label:d,labelFormatter:m,labelClassName:x,formatter:f,color:p,nameKey:h,labelKey:g}=e,{config:b}=e9(),v=i.useMemo(()=>{var e;if(o||!(null==a?void 0:a.length))return null;let[t]=a,s="".concat(g||(null==t?void 0:t.dataKey)||(null==t?void 0:t.name)||"value"),r=tr(b,t,s),l=g||"string"!=typeof d?null==r?void 0:r.label:(null==(e=b[d])?void 0:e.label)||d;return m?(0,n.jsx)("div",{className:(0,u.cn)("font-medium",x),children:m(l,a)}):l?(0,n.jsx)("div",{className:(0,u.cn)("font-medium",x),children:l}):null},[d,m,a,o,x,b,g]);if(!s||!(null==a?void 0:a.length))return null;let j=1===a.length&&"dot"!==l;return(0,n.jsxs)("div",{ref:t,className:(0,u.cn)("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",r),children:[j?null:v,(0,n.jsx)("div",{className:"grid gap-1.5",children:a.filter(e=>"none"!==e.type).map((e,t)=>{let s="".concat(h||e.name||e.dataKey||"value"),a=tr(b,e,s),r=p||e.payload.fill||e.color;return(0,n.jsx)("div",{className:(0,u.cn)("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground","dot"===l&&"items-center"),children:f&&(null==e?void 0:e.value)!==void 0&&e.name?f(e.value,e.name,e,t,e.payload):(0,n.jsxs)(n.Fragment,{children:[(null==a?void 0:a.icon)?(0,n.jsx)(a.icon,{}):!c&&(0,n.jsx)("div",{className:(0,u.cn)("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":"dot"===l,"w-1":"line"===l,"w-0 border-[1.5px] border-dashed bg-transparent":"dashed"===l,"my-0.5":j&&"dashed"===l}),style:{"--color-bg":r,"--color-border":r}}),(0,n.jsxs)("div",{className:(0,u.cn)("flex flex-1 justify-between leading-none",j?"items-end":"items-center"),children:[(0,n.jsxs)("div",{className:"grid gap-1.5",children:[j?v:null,(0,n.jsx)("span",{className:"text-muted-foreground",children:(null==a?void 0:a.label)||e.name})]}),e.value&&(0,n.jsx)("span",{className:"font-mono font-medium tabular-nums text-foreground",children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})});ts.displayName="ChartTooltip";let tn=e4.s,ta=i.forwardRef((e,t)=>{let{className:s,hideIcon:a=!1,payload:r,verticalAlign:l="bottom",nameKey:i}=e,{config:o}=e9();return(null==r?void 0:r.length)?(0,n.jsx)("div",{ref:t,className:(0,u.cn)("flex items-center justify-center gap-4","top"===l?"pb-3":"pt-3",s),children:r.filter(e=>"none"!==e.type).map(e=>{let t="".concat(i||e.dataKey||"value"),s=tr(o,e,t);return(0,n.jsxs)("div",{className:(0,u.cn)("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[(null==s?void 0:s.icon)&&!a?(0,n.jsx)(s.icon,{}):(0,n.jsx)("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:e.color}}),null==s?void 0:s.label]},e.value)})}):null});function tr(e,t,s){if("object"!=typeof t||null===t)return;let n="payload"in t&&"object"==typeof t.payload&&null!==t.payload?t.payload:void 0,a=s;return s in t&&"string"==typeof t[s]?a=t[s]:n&&s in n&&"string"==typeof n[s]&&(a=n[s]),a in e?e[a]:e[s]}function tl(e){let{title:t,description:s,aside:a,segments:r,centre:l}=e,i=r.reduce((e,t)=>e+t.value,0),o=r.filter(e=>e.value>0),c=Object.fromEntries(r.map(e=>[e.id,{label:e.label,color:e.color}]));return(0,n.jsx)(eW,{title:t,description:s,aside:a,children:(0,n.jsxs)("div",{className:"flex flex-col items-center gap-4 sm:flex-row",children:[(0,n.jsxs)("div",{className:"relative size-44 flex-none",children:[(0,n.jsx)(e7,{config:c,className:"aspect-square size-full",children:(0,n.jsxs)(e0.r,{children:[(0,n.jsx)(tt,{content:(0,n.jsx)(ts,{hideLabel:!0,nameKey:"id"})}),(0,n.jsx)(e1.F,{data:o,dataKey:"value",nameKey:"id",innerRadius:"68%",outerRadius:"100%",paddingAngle:2,cornerRadius:3,stroke:"var(--card)",strokeWidth:2,isAnimationActive:!1,children:o.map(e=>(0,n.jsx)(e2.f,{fill:e.color},e.id))})]})}),(0,n.jsxs)("div",{className:"pointer-events-none absolute inset-0 flex flex-col items-center justify-center",children:[(0,n.jsx)("span",{className:"text-2xl font-semibold tracking-tight",children:l.value}),(0,n.jsx)("span",{className:"text-[11px] text-muted-foreground",children:l.caption})]})]}),(0,n.jsx)("ul",{className:"grid w-full min-w-0 flex-1 gap-1.5 text-xs",children:r.map(e=>(0,n.jsxs)("li",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"size-2.5 flex-none rounded-full",style:{background:e.color},"aria-hidden":!0}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate text-muted-foreground",children:e.label}),(0,n.jsx)("span",{className:"font-mono tabular-nums",children:e.value.toLocaleString()}),(0,n.jsx)("span",{className:"w-12 text-right font-mono tabular-nums text-muted-foreground",children:i>0?"".concat(Math.round(e.value/i*1e3)/10,"%"):"0%"})]},e.id))})]})})}ta.displayName="ChartLegend";var ti=s(16919),to=s(48065);function tc(e){return e>0?"color-mix(in oklab, ".concat(eq," ").concat(Math.round(e/100*78+8),"%, transparent)"):"transparent"}function td(e){let{title:t,description:s,columns:a,rows:r}=e;return(0,n.jsxs)(eW,{title:t,description:s,className:"lg:col-span-2",children:[(0,n.jsx)("div",{className:"overflow-x-auto",children:(0,n.jsxs)("table",{className:"w-full border-separate border-spacing-0.5 text-xs",children:[(0,n.jsx)("thead",{children:(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{scope:"col",className:"w-36 text-left font-normal text-muted-foreground",children:"Area"}),a.map(e=>{let t="agent"===e.kind?ti.A:to.A;return(0,n.jsx)("th",{scope:"col",className:"px-1 pb-1 align-bottom font-normal text-muted-foreground",children:(0,n.jsxs)("span",{className:"flex flex-col items-center gap-1 text-center leading-tight",children:[(0,n.jsx)(t,{className:"size-3","aria-hidden":!0}),e.label]})},e.id)})]})}),(0,n.jsx)("tbody",{children:r.map(e=>(0,n.jsxs)("tr",{children:[(0,n.jsx)("th",{scope:"row",className:"truncate text-left font-mono font-normal",children:e.label}),a.map(t=>{var s;let a=null!=(s=e.values[t.id])?s:0;return(0,n.jsx)("td",{title:"".concat(e.label," \xb7 ").concat(t.label,": ").concat(a,"%"),style:{background:tc(a)},className:"h-9 min-w-14 rounded text-center font-mono tabular-nums ring-1 ring-inset ring-border/60",children:a>0?"".concat(a,"%"):(0,n.jsx)("span",{className:"text-muted-foreground/60",children:"–"})},t.id)})]},e.id))})]})}),(0,n.jsxs)("div",{className:"flex items-center gap-2 text-[11px] text-muted-foreground",children:[(0,n.jsx)("span",{children:"0%"}),(0,n.jsx)("span",{className:"h-2 w-28 rounded-full ring-1 ring-border/60",style:{background:"linear-gradient(to right, ".concat(tc(0),", ").concat(tc(100),")")},"aria-hidden":!0}),(0,n.jsx)("span",{children:"100% of the area's lines"})]})]})}var tu=s(77241),tm=s(82121),tx=s(64030),tf=s(27835),tp=s(56415);function th(e){return e.length<=26?e:"…".concat(e.slice(-25))}function tg(e){let{title:t,description:s,aside:a,rows:r,valueLabel:l,color:i=eq}=e,o=r.map(e=>{var t;return{...e,detail:null!=(t=e.detail)?t:e.value.toLocaleString()}});return(0,n.jsx)(eW,{title:t,description:s,aside:a,children:(0,n.jsx)(e7,{config:{value:{label:l,color:i}},className:"aspect-auto w-full",style:{height:32*Math.max(r.length,1)+8},children:(0,n.jsxs)(tu.E,{data:o,layout:"vertical",margin:{top:0,right:64,bottom:0,left:0},barCategoryGap:10,children:[(0,n.jsx)(tm.W,{type:"number",hide:!0,domain:[0,"dataMax"]}),(0,n.jsx)(tx.h,{type:"category",dataKey:"label",width:180,tickLine:!1,axisLine:!1,tickFormatter:th,tick:{fill:"var(--muted-foreground)",fontSize:11,fontFamily:"var(--font-mono, monospace)"}}),(0,n.jsx)(tt,{cursor:{fill:"var(--muted)",opacity:.5},content:(0,n.jsx)(ts,{hideLabel:!0})}),(0,n.jsx)(tf.y,{dataKey:"value",fill:"var(--color-value)",radius:[0,4,4,0],barSize:12,isAnimationActive:!1,children:(0,n.jsx)(tp.Z,{dataKey:"detail",position:"right",fill:"var(--foreground)",fontSize:11,fontFamily:"var(--font-mono, monospace)"})})]})})})}var tb=s(25202),tv=s(17317),tj=s(69813),tN=s(54672),ty=s(80014);function tw(e){let{title:t,description:s,aside:a,labels:r,series:l,unit:i="",area:o=!1}=e,c=Object.fromEntries(l.map(e=>[e.id,{label:e.label,color:e.color}])),d=r.map((e,t)=>({label:e,...Object.fromEntries(l.map(e=>{var s;return[e.id,null!=(s=e.values[t])?s:0]}))})),u=[(0,n.jsx)(tb.d,{vertical:!1,stroke:"var(--border)"},"grid"),(0,n.jsx)(tm.W,{dataKey:"label",tickLine:!1,axisLine:!1,tickMargin:8},"x"),(0,n.jsx)(tx.h,{width:40,tickLine:!1,axisLine:!1,tickFormatter:e=>"".concat(e).concat(i),domain:[0,"auto"]},"y"),(0,n.jsx)(tt,{content:(0,n.jsx)(ts,{indicator:"line"})},"tooltip"),...l.length>1?[(0,n.jsx)(tn,{content:(0,n.jsx)(ta,{})},"legend")]:[]];return(0,n.jsx)(eW,{title:t,description:s,aside:a,children:(0,n.jsx)(e7,{config:c,className:"aspect-auto w-full",style:{height:200},children:o?(0,n.jsxs)(tv.Q,{data:d,margin:{top:8,right:8,left:0,bottom:0},children:[u,l.map(e=>(0,n.jsx)(tj.G,{dataKey:e.id,type:"monotone",stroke:"var(--color-".concat(e.id,")"),strokeWidth:2,fill:"var(--color-".concat(e.id,")"),fillOpacity:.16,dot:!1,activeDot:{r:4,stroke:"var(--card)",strokeWidth:2},isAnimationActive:!1},e.id))]}):(0,n.jsxs)(tN.b,{data:d,margin:{top:8,right:8,left:0,bottom:0},children:[u,l.map(e=>(0,n.jsx)(ty.N,{dataKey:e.id,type:"monotone",stroke:"var(--color-".concat(e.id,")"),strokeWidth:2,dot:!1,activeDot:{r:4,stroke:"var(--card)",strokeWidth:2},isAnimationActive:!1},e.id))]})})})}function tk(e){let{title:t,children:s}=e;return(0,n.jsxs)("section",{className:"flex flex-col gap-3",children:[(0,n.jsx)("h3",{className:"text-xs font-medium uppercase tracking-widest text-muted-foreground",children:t}),(0,n.jsx)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:s})]})}let tC={totalSymbols:149,byKind:[{kind:"function",unused:9},{kind:"method",unused:6},{kind:"class",unused:2}],topFiles:[{path:"app/legacy/exporters.py",unused:5,total:8},{path:"app/billing/refunds.py",unused:4,total:11},{path:"app/jobs/cleanup.py",unused:3,total:5},{path:"app/utils/dates.py",unused:3,total:7},{path:"app/auth/tokens.py",unused:2,total:9}]},tS={files:[{path:"app/billing/invoice.py",commits:38,refactorCommits:9,linesChanged:1840},{path:"app/auth/permissions.py",commits:27,refactorCommits:6,linesChanged:1210},{path:"app/api/routes.py",commits:24,refactorCommits:4,linesChanged:960},{path:"app/models/user.py",commits:19,refactorCommits:5,linesChanged:720},{path:"app/jobs/scheduler.py",commits:14,refactorCommits:3,linesChanged:510}],activity:{labels:["May","Jun","Jul","Aug","Sep","Oct"],areas:[{path:"app/billing",commits:[8,15,17,13,12,6]},{path:"app/auth",commits:[6,9,12,10,8,4]},{path:"app/api",commits:[4,7,9,9,8,4]},{path:"app/models",commits:[3,5,7,6,5,4]}]}},tE={totalLines:24600,history:{labels:["May","Jun","Jul","Aug","Sep","Oct"],percent:[8.4,13.9,20.6,25.8,29.7,32.1]},agents:[{name:"Claude Opus 5.5",lines:3420},{name:"Claude Sonnet 5.5",lines:2980},{name:"Claude Sonnet 4.6",lines:1150},{name:"Pi Coding Agent",lines:340}],areas:[{path:"app/billing",aiLines:1980,totalLines:3100},{path:"app/api",aiLines:1560,totalLines:3300},{path:"app/jobs",aiLines:820,totalLines:2100},{path:"app/models",aiLines:900,totalLines:2900},{path:"app/auth",aiLines:630,totalLines:4200}]},t_={areas:[{path:"app/billing",owners:[{name:"Priya Nair",kind:"person",percent:38},{name:"Claude Opus 5.5",kind:"agent",percent:41},{name:"Marcus Lee",kind:"person",percent:21}]},{path:"app/auth",owners:[{name:"Marcus Lee",kind:"person",percent:72},{name:"Claude Sonnet 5.5",kind:"agent",percent:18},{name:"Priya Nair",kind:"person",percent:10}]},{path:"app/api",owners:[{name:"Dana Okafor",kind:"person",percent:46},{name:"Claude Sonnet 5.5",kind:"agent",percent:33},{name:"Pi Coding Agent",kind:"agent",percent:9},{name:"Marcus Lee",kind:"person",percent:12}]},{path:"app/models",owners:[{name:"Priya Nair",kind:"person",percent:64},{name:"Claude Sonnet 4.6",kind:"agent",percent:31},{name:"Dana Okafor",kind:"person",percent:5}]},{path:"app/jobs",owners:[{name:"Dana Okafor",kind:"person",percent:57},{name:"Claude Opus 5.5",kind:"agent",percent:39},{name:"Marcus Lee",kind:"person",percent:4}]}]};function tL(){let e=eJ(tC),t=function(e){let t=new Map;for(let n of e.areas)for(let e of n.owners){var s;let n=null!=(s=t.get(e.name))?s:{kind:e.kind,total:0};n.total+=e.percent,t.set(e.name,n)}return{columns:[...t.entries()].sort((e,t)=>{let[,s]=e,[,n]=t;return s.kind===n.kind?n.total-s.total:"person"===s.kind?-1:1}).map(e=>{let[t,s]=e;return{id:t,label:t,kind:s.kind}}),rows:e.areas.map(e=>({id:e.path,label:e.path,values:Object.fromEntries(e.owners.map(e=>[e.name,e.percent]))}))}}(t_);return(0,n.jsxs)("section",{"aria-label":"Preview signals",className:"flex flex-col gap-6 rounded-xl border border-dashed border-border bg-muted/30 p-5",children:[(0,n.jsxs)("header",{className:"flex flex-col gap-0.5",children:[(0,n.jsx)("h2",{className:"text-sm font-semibold",children:"Preview signals"}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:"Sample numbers: the index does not record these yet, so nothing below describes your code."})]}),(0,n.jsxs)(tk,{title:"Dead code",children:[(0,n.jsx)(tl,{title:"Likely unused symbols",description:"Dynamic calls cannot be seen, so these are likely, not certain",segments:[...["function","method","class"].map(e=>{var t,s;return{id:e,label:eQ[e].label,value:null!=(s=null==(t=tC.byKind.find(t=>t.kind===e))?void 0:t.unused)?s:0,color:eQ[e].color}}),{id:"in-use",label:"In use",value:Math.max(0,tC.totalSymbols-eJ(tC)),color:eZ}],centre:{value:"".concat(eY(e,tC.totalSymbols),"%"),caption:"unused"}}),(0,n.jsx)(tg,{title:"Files with the most dead code",description:"Unused symbols per file",rows:[...tC.topFiles].sort((e,t)=>t.unused-e.unused).map(e=>({id:e.path,label:e.path,value:e.unused,detail:"".concat(e.unused," of ").concat(e.total)})),valueLabel:"Unused symbols"})]}),(0,n.jsxs)(tk,{title:"Refactoring",children:[(0,n.jsx)(tw,{title:"Refactoring activity",description:"Commits per month in the busiest areas",labels:tS.activity.labels,series:tS.activity.areas.slice(0,4).map((e,t)=>({id:e.path.replace(/\W+/g,"-"),label:e.path,color:eH[t],values:e.commits}))}),(0,n.jsx)(tg,{title:"Most reworked files",description:"Commits touching each file",rows:[...tS.files].sort((e,t)=>t.commits-e.commits).map(e=>({id:e.path,label:e.path,value:e.commits,detail:"".concat(e.commits)})),valueLabel:"Commits"})]}),(0,n.jsxs)(tk,{title:"AI authorship",children:[(0,n.jsx)(tl,{title:"Lines by author",description:"Surviving lines, credited from commit trailers",aside:"".concat(tE.totalLines.toLocaleString()," lines"),segments:function(e){let t=e.agents.slice(0,4),s=e.agents.slice(4).reduce((e,t)=>e+t.lines,0),n=e.agents.reduce((e,t)=>e+t.lines,0);return[...t.map((e,t)=>({id:e.name,label:e.name,value:e.lines,color:eH[t]})),...s>0?[{id:"other-agents",label:"Other agents",value:s,color:"var(--kind-external)"}]:[],{id:"people",label:"Written by people",value:Math.max(0,e.totalLines-n),color:eZ}]}(tE),centre:{value:"".concat(eY(tE.agents.reduce((e,t)=>e+t.lines,0),tE.totalLines),"%"),caption:"AI-written"}}),(0,n.jsx)(tw,{title:"AI share over time",description:"Share of lines written by AI agents",labels:tE.history.labels,series:[{id:"ai",label:"AI-written lines",color:"var(--kind-file)",values:tE.history.percent}],unit:"%",area:!0})]}),(0,n.jsx)(tk,{title:"Code ownership",children:(0,n.jsx)(td,{title:"Who owns what",description:"Share of each area's surviving lines, by author; people first, then AI agents",columns:t.columns,rows:t.rows})})]})}function tA(e){let{label:t,value:s,detail:a,colorClass:r}=e;return(0,n.jsxs)(H,{className:"flex flex-col gap-1 px-5 py-4 shadow-none",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,n.jsx)("span",{className:(0,u.cn)("size-2 flex-none rounded-sm",r),"aria-hidden":!0}),t]}),(0,n.jsx)("div",{className:"text-2xl font-semibold tabular-nums tracking-tight",children:s.toLocaleString()}),(0,n.jsx)("p",{className:"text-xs text-muted-foreground",children:a})]})}function tI(){return(0,n.jsxs)("div",{role:"status","aria-label":"Loading overview",className:"flex flex-col gap-4",children:[(0,n.jsx)("div",{className:"grid grid-cols-2 gap-3 md:grid-cols-4",children:[0,1,2,3].map(e=>(0,n.jsx)(P.E,{className:"h-20"},e))}),(0,n.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:[(0,n.jsx)(P.E,{className:"h-36"}),(0,n.jsx)(P.E,{className:"h-36"})]}),(0,n.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:[(0,n.jsx)(P.E,{className:"h-56"}),(0,n.jsx)(P.E,{className:"h-56"})]})]})}function tT(){var e,t,s;let a=function(){let[e,t]=(0,i.useState)(null),[s,n]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=new AbortController,n=e=>t({attempt:s,state:e});return(0,Q.K6)({signal:e.signal}).then(t=>{e.signal.aborted||n({status:"ok",result:t})}).catch(t=>{!e.signal.aborted&&n({status:"error",error:t instanceof Q.hD?t:new Q.hD("INTERNAL",t instanceof Error?t.message:"Unexpected error",0)})}),()=>e.abort()},[s]);let a=(0,i.useCallback)(()=>n(e=>e+1),[]);return{...null!==e&&e.attempt===s?e.state:{status:"loading"},retry:a}}(),r="error"===a.status?O(a.error):null;return(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:(0,n.jsxs)("div",{className:"mx-auto flex max-w-5xl flex-col gap-6 px-8 pb-14 pt-6",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-end justify-between gap-x-6 gap-y-2",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,n.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:"Overview"}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:"What is in this index, and how healthy the code is."})]}),"ok"===a.status&&(0,n.jsx)(eX,{...(0,e$.CV)(a.result.index),repoRoot:a.result.index.repo_root})]}),"loading"===a.status&&(0,n.jsx)(tI,{}),r&&(0,n.jsx)(j,{title:r.title,message:r.message,action:r.retryable?(0,n.jsx)(y,{onRetry:a.retry}):void 0}),"ok"===a.status&&(e=a.result,(0,n.jsxs)(n.Fragment,{children:[e.caveats.length>0&&(0,n.jsx)("div",{className:"flex flex-col gap-2",children:e.caveats.map(e=>(0,n.jsx)(b,{caveat:e},e.code))}),(0,n.jsx)("div",{className:"grid grid-cols-2 gap-4 md:grid-cols-4",children:(0,e$.Yf)(e.counts).map(e=>(0,n.jsx)(tA,{label:e.label,value:e.value,detail:e.detail,colorClass:e.colorClass},e.id))}),(0,n.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-[1.7fr_1fr]",children:[(0,n.jsx)(eV,{nodeCount:e.counts.files+e.counts.classes+e.counts.functions,edgeCount:(0,e$.Bo)(e.counts),segments:(0,e$.hZ)(e.counts),edges:(0,e$.te)(e.counts)}),(0,n.jsx)(eG,{resolvedPercent:(t=e.call_resolution).total>0?eY(t.resolved,t.total):100,issues:[{id:"unresolved",label:"Unresolved calls",count:(s=e.call_resolution).total-s.resolved,dotClass:"bg-kind-class"}],note:"Unresolved calls are missing from Impact results, so a change may reach further than shown."})]}),(0,n.jsx)(tL,{})]}))]})})}var tR=s(62402);let tM=tR.Kq,tz=tR.bL,tD=tR.l9,tO=i.forwardRef((e,t)=>{let{className:s,sideOffset:a=4,...r}=e;return(0,n.jsx)(tR.UC,{ref:t,sideOffset:a,className:(0,u.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",s),...r})});function tF(e){let{items:t,active:s,onSelect:a}=e;return(0,n.jsx)(tM,{delayDuration:100,children:(0,n.jsx)("nav",{"aria-label":"Workspace views",className:"flex w-14 flex-none flex-col items-center gap-1 border-r border-border bg-card py-2 text-sidebar-foreground",children:t.map(e=>{let{id:t,label:r,icon:l,shortcut:i}=e,o=t===s;return(0,n.jsxs)(tz,{children:[(0,n.jsx)(tD,{asChild:!0,children:(0,n.jsx)(N.$,{variant:"ghost",size:"icon","aria-label":r,"aria-current":o?"page":void 0,onClick:()=>a(t),className:(0,u.cn)("cursor-pointer",o?"bg-accent text-primary":"text-muted-foreground"),children:(0,n.jsx)(l,{className:"size-5"})})}),(0,n.jsxs)(tO,{side:"right",className:"flex items-center gap-2",children:[r,i&&(0,n.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:i})]})]},t)})})})}tO.displayName=tR.UC.displayName;let tP=[{id:"overview",label:"Overview",icon:a.A,shortcut:"G O"},{id:"graph",label:"Graph",icon:r.A,shortcut:"G G"},{id:"impact",label:"Impact",icon:l.A,shortcut:"G I"}],tB={o:"overview",g:"graph",i:"impact"};function tU(){let{view:e,focus:t,setView:s}=(0,w.a)(),a=(0,i.useRef)({});(0,i.useEffect)(()=>{a.current[e]=t},[e,t]);let r=(0,i.useCallback)(e=>{var t;return s(e,null!=(t=a.current[e])?t:null)},[s]);return(0,i.useEffect)(()=>{let e=0,t=t=>{var s;if(t.repeat||t.isComposing||t.shiftKey||t.metaKey||t.ctrlKey||t.altKey||(s=t.target)instanceof HTMLElement&&(s.isContentEditable||["INPUT","TEXTAREA","SELECT"].includes(s.tagName)))return;let n=t.key.toLowerCase(),a=Date.now()-e<=1e3,l=tB[n];a&&l?(r(l),e=0):e="g"===n?Date.now():0};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[tB,r]),(0,n.jsxs)("div",{className:"flex flex-1 min-h-0 min-w-0",children:[(0,n.jsx)(tF,{items:tP,active:e,onSelect:r}),(0,n.jsxs)("div",{className:"flex flex-1 min-h-0 min-w-0 flex-col overflow-hidden",children:["overview"===e&&(0,n.jsx)(tT,{}),"graph"===e&&(0,n.jsx)(eK,{}),"impact"===e&&(0,n.jsx)(ee,{})]})]})}},76765:(e,t,s)=>{"use strict";s.d(t,{GE:()=>i,h0:()=>o});var n=s(49208),a=s(51291),r=s(14118),l=s(49694);function i(e,t,s){return e?null===t?e:null===s||s===t?"".concat(e,":").concat(t):"".concat(e,":").concat(t,"-").concat(s):""}function o(e){let t=e.toLowerCase();return"file"===t?n.A:"class"===t?a.A:t.startsWith("external")?r.A:l.A}},93859:(e,t,s)=>{"use strict";s.d(t,{a:()=>l});var n=s(1402),a=s(44213);let r=["overview","graph","impact"];function l(){var e,t;let s=(0,n.useSearchParams)(),l=(0,n.useRouter)(),i=(0,n.usePathname)(),o=(0,a.useCallback)((e,t)=>{let n=new URLSearchParams({view:e});t&&n.set("focus",t),n.toString()!==s.toString()&&l.push("".concat(i,"?").concat(n.toString()),{scroll:!1})},[l,i,s]);return{view:"explore"===(e=s.get("view"))?"graph":null!=(t=r.find(t=>t===e))?t:"overview",focus:s.get("focus"),setView:o}}},99190:(e,t,s)=>{Promise.resolve().then(s.bind(s,49895)),Promise.resolve().then(s.bind(s,68269))}},e=>{e.O(0,[684,256,937,358],()=>e(e.s=99190)),_N_E=e.O()}]);
|