admin08077/Githubgemini
0
1import{r as o,j as e}from"./react-CIdJ77ke.js";import{af as T,S as A,L as S,M as w,aH as z}from"./index-CX7Qxd1D.js";import"./accessibilityService-PX6aNbbc.js";import"./workspaceConnectorService-KhhKdOYD.js";import"./@braintree-DzxiOROe.js";import"./react-dom-R9L8nDNe.js";import"./scheduler-CoSDG3-6.js";import"./@google-CcUHq7Ay.js";import"./idb-Dob3nYDb.js";import"./marked-BrGMJkBT.js";import"./mermaid-KwKZWwy0.js";import"./dayjs-CeEF-NGT.js";import"./d3-transition-CiCB8KJE.js";import"./d3-timer-DdKHrDhs.js";import"./d3-dispatch-kxCwF96_.js";import"./d3-interpolate-CtIaNujU.js";import"./d3-color-amxIadob.js";import"./d3-selection-C52G7wmG.js";import"./d3-ease-DRPgKoYJ.js";import"./d3-zoom-BYoC3mS3.js";import"./dompurify-J5RlrwSC.js";import"./dagre-d3-es-CTpFWynZ.js";import"./lodash-es-Dt6r0yiR.js";import"./d3-shape-CX8xTzfR.js";import"./d3-path-CimkQT29.js";import"./d3-fetch-BOsq7VnW.js";import"./khroma-DUX6PT6k.js";import"./uuid-DhYbOkY1.js";import"./d3-scale-DRZz3QW5.js";import"./internmap-BkD7Hj8s.js";import"./d3-array-DGRYoJHh.js";import"./d3-format-CzD4bSOQ.js";import"./d3-time-format-CUNN4Ell.js";import"./d3-time-6cSPyVSY.js";import"./d3-axis-DSWTncID.js";import"./elkjs-oKFFZvz7.js";import"./cytoscape-DtBltrT8.js";import"./cytoscape-cose-bilkent-Cgr1thlj.js";import"./cose-base-CwCxnKwh.js";import"./layout-base-CMXQqlmj.js";import"./d3-sankey-DgqkLiUE.js";import"./d3-scale-chromatic-B-NsZVaP.js";import"./ts-dedent-DrFu-skq.js";import"./stylis-D5iaQeiq.js";import"./mdast-util-from-markdown-CLAsVoWb.js";import"./micromark-CTBPIv-_.js";import"./micromark-util-combine-extensions-Bka6Sc1c.js";import"./micromark-util-chunked-DrRIdSP-.js";import"./micromark-factory-space-x2vfxbz5.js";import"./micromark-util-character-Bcm1tP9o.js";import"./micromark-core-commonmark-AH8VCgT7.js";import"./micromark-util-classify-character-Cq7Fg3xE.js";import"./micromark-util-resolve-all-PQCKh0dx.js";import"./decode-named-character-reference-C3-224fz.js";import"./micromark-util-subtokenize-QwsxNXk2.js";import"./micromark-factory-destination-CypD_wgM.js";import"./micromark-factory-label-CRHH4ZHP.js";import"./micromark-factory-title-B7kCBvC9.js";import"./micromark-factory-whitespace-B322EA6O.js";import"./micromark-util-normalize-identifier-C9ANKk3v.js";import"./micromark-util-html-tag-name-DbKNfynz.js";import"./micromark-util-decode-numeric-character-reference-DRnCnno4.js";import"./micromark-util-decode-string-DJl8Y_PO.js";import"./unist-util-stringify-position-Ch_qCilz.js";import"./mdast-util-to-string-C_aolqmU.js";import"./jszip-CFFhfFtd.js";import"./octokit-B6bKu3NB.js";import"./@octokit-MBEWYTsi.js";import"./bottleneck-D_vuF9V7.js";import"./universal-user-agent-CLgqIJsR.js";import"./before-after-hook-y8XtM9xW.js";import"./fast-content-type-parse-3SwieiST.js";import"./axe-core-Cc5paZPx.js";/**2 * @license3 * SPDX-License-Identifier: Apache-2.04*/let m=!1;const g="devcore-trace-",P=()=>{if(m){console.warn("Tracing is already active.");return}performance.clearMarks(),performance.clearMeasures(),m=!0,console.log("Performance tracing started.")},k=()=>{if(!m)return console.warn("Tracing is not active."),[];m=!1,console.log("Performance tracing stopped.");const a=performance.getEntries().filter(r=>r.name.startsWith(g));return performance.clearMarks(),performance.clearMeasures(),a.map(r=>({name:r.name.replace(g,""),startTime:r.startTime,duration:r.duration,entryType:r.entryType}))};/**5 * @license6 * SPDX-License-Identifier: Apache-2.07*/const I=a=>{try{const r=JSON.parse(a),t={name:"root",value:0,children:[]};return r.output&&Object.entries(r.output).forEach(([i,n])=>{const l={name:i,value:n.size};t.children?.push(l),t.value+=n.size}),t}catch(r){throw console.error("Failed to parse bundle stats:",r),new Error("Invalid stats JSON format.")}},C=({trace:a})=>{if(a.length===0)return e.jsx("p",{className:"text-text-secondary",children:"No trace data collected."});const r=Math.max(...a.map(t=>t.startTime+t.duration));return e.jsx("div",{className:"space-y-1 font-mono text-xs",children:a.filter(t=>t.entryType==="measure").map((t,i)=>e.jsxs("div",{className:"group relative h-6 bg-primary/20 rounded",children:[e.jsx("div",{className:"h-full bg-primary",style:{marginLeft:`${t.startTime/r*100}%`,width:`${t.duration/r*100}%`}}),e.jsxs("div",{className:"absolute inset-0 px-2 flex items-center text-primary font-bold",children:[t.name," (",t.duration.toFixed(1),"ms)"]})]},i))})},Ue=()=>{const[a,r]=o.useState("runtime"),[t,i]=o.useState(!1),[n,l]=o.useState([]),[u,h]=o.useState(""),[c,b]=o.useState(null),[p,x]=o.useState(!1),[y,d]=o.useState(""),j=()=>{if(t){const s=k();l(s),i(!1)}else l([]),P(),i(!0)},N=()=>{try{b(I(u))}catch(s){alert(s instanceof Error?s.message:"Parsing failed.")}},v=async()=>{const s=a==="runtime"?n:c;if(!s||Array.isArray(s)&&s.length===0){alert("No data to analyze.");return}x(!0),d("");try{const f=await z(s);d(f)}catch{d("Error getting analysis from AI.")}finally{x(!1)}};return e.jsxs("div",{className:"h-full flex flex-col p-4 sm:p-6 lg:p-8 text-text-primary",children:[e.jsxs("header",{className:"mb-6",children:[e.jsxs("h1",{className:"text-3xl font-bold flex items-center",children:[e.jsx(T,{}),e.jsx("span",{className:"ml-3",children:"AI Performance Profiler"})]}),e.jsx("p",{className:"text-text-secondary mt-1",children:"Analyze runtime performance and bundle sizes with AI insights."})]}),e.jsxs("div",{className:"flex border-b border-border mb-4",children:[e.jsx("button",{onClick:()=>r("runtime"),className:`px-4 py-2 text-sm ${a==="runtime"?"border-b-2 border-primary":""}`,children:"Runtime Performance"}),e.jsx("button",{onClick:()=>r("bundle"),className:`px-4 py-2 text-sm ${a==="bundle"?"border-b-2 border-primary":""}`,children:"Bundle Analysis"})]}),e.jsxs("div",{className:"flex-grow grid grid-cols-1 lg:grid-cols-2 gap-6 min-h-0",children:[e.jsx("div",{className:"bg-surface p-4 border border-border rounded-lg flex flex-col",children:a==="runtime"?e.jsxs(e.Fragment,{children:[e.jsx("button",{onClick:j,className:"btn-primary mb-4 py-2",children:t?"Stop Tracing":"Start Tracing"}),e.jsx("div",{className:"flex-grow overflow-y-auto",children:e.jsx(C,{trace:n})})]}):e.jsxs(e.Fragment,{children:[e.jsx("textarea",{value:u,onChange:s=>h(s.target.value),placeholder:"Paste your stats.json content here",className:"w-full h-48 p-2 bg-background border rounded font-mono text-xs mb-2"}),e.jsx("button",{onClick:N,className:"btn-primary py-2",children:"Analyze Bundle"}),e.jsx("div",{className:"flex-grow overflow-y-auto mt-2",children:e.jsx("pre",{className:"text-xs",children:c?JSON.stringify(c,null,2):"Analysis will appear here."})})]})}),e.jsxs("div",{className:"bg-surface p-4 border border-border rounded-lg flex flex-col",children:[e.jsxs("button",{onClick:v,disabled:p,className:"btn-primary flex items-center justify-center gap-2 py-2 mb-4",children:[e.jsx(A,{}),p?"Analyzing...":"Get AI Optimization Suggestions"]}),e.jsx("div",{className:"flex-grow bg-background border border-border rounded p-2 overflow-y-auto",children:p?e.jsx("div",{className:"flex justify-center items-center h-full",children:e.jsx(S,{})}):e.jsx(w,{content:y})})]})]})]})};export{Ue as PerformanceProfiler};8//# sourceMappingURL=PerformanceProfiler-CabPZOig.js.map9 