@codeyam/codeyam-cli 0.1.32 → 0.1.33

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.
@@ -29,7 +29,7 @@ ${a.stack}`:typeof a=="object"?xg(a):String(a)}).filter(Boolean).join(`
29
29
  `)}t&&(p=p.where("branch_id","=",t));const h=await p.orderBy("committed_at","desc").limit(o).execute(),m=Date.now()-u;if(!h||h.length===0)return[];if(m>100){const v=h.reduce((N,w)=>N+(w.files?JSON.stringify(w.files).length:0),0);console.log(`CodeYam DEBUG: [CommitFilesTiming] loadCommits took ${m}ms (${h.length} commits, totalFiles: ${Math.round(v/1024)}KB)`)}if(i)return h.map(N=>({...N,branch:void 0,mergedBranch:void 0,analyses:[],entities:[]})).map(Rn);const f=h.map(v=>v.id),[y,g,x]=await Promise.all([Fg(f),Rg(f),Dg(f)]);return h.map(v=>{const N=v.branch_id?y.get(v.branch_id):void 0,w=v.merged_branch_id?y.get(v.merged_branch_id):void 0,C=g.get(v.id)||[],k=x.get(v.id)||[];return{...v,branch:N,mergedBranch:w,analyses:C,entities:k}}).map(Rn)}catch(p){return Oe("CodeYam Error: Database error loading commits",p,{projectId:e,branchId:t,ids:r,shas:s,limit:o}),[]}}async function nt({projectId:e,branchId:t,fileIds:r,filePaths:s,names:a,shas:o,excludeMetadata:i}){if(r&&r.length==0||s&&s.length==0||a&&a.length==0||o&&o.length==0)return[];if(o&&o.length>50){const d=[];for(let u=0;u<o.length;u+=50){const p=o.slice(u,u+50),h=await nt({projectId:e,branchId:t,fileIds:r,filePaths:s,names:a,shas:p,excludeMetadata:i});h&&d.push(...h)}return d}const l=Fe();try{const p=await(i?l.selectFrom("entities").select(["entities.project_id","entities.file_id","entities.commit_id","entities.name","entities.sha","entities.entity_type","entities.file_path","entities.description","entities.documentation","entities.quality","entities.created_at","entities.updated_at"]):l.selectFrom("entities").selectAll("entities")).$if(!!t,h=>h.innerJoin("entity_branches","entity_branches.entity_sha","entities.sha").where("entity_branches.branch_id","=",t)).$if(!!e,h=>h.where("entities.project_id","=",e)).$if(!!o,h=>h.where("entities.sha","in",o)).$if(!!s,h=>h.where("entities.file_path","in",s)).$if(!!a,h=>h.where("entities.name","in",a)).$if(!!r,h=>h.where("entities.file_id","in",r)).execute();return!p||p.length===0?null:p.map(Xr)}catch(d){return console.log("Load Entities: Error occurred",d,{projectId:e,fileIds:r,filePaths:s,shas:o}),null}}function Ig(e,t){const{jsonArrayFrom:r}=Bn();let s=e.selectFrom("entity_branches").select(Jf);return t&&(s=t(s)),r(s)}async function su({projectId:e,sha:t,silent:r}){const s=Fe();try{const a=await s.selectFrom("entities").innerJoin("files","entities.file_id","files.id").selectAll("entities").select(o=>Ig(o,i=>i.whereRef("entity_branches.entity_sha","=","entities.sha")).as("entity_branches")).where("files.project_id","=",e).where("entities.sha","=",t).executeTakeFirst();return a?Xr(a):(!r&&process.env.CODEYAM_E2E_BASELINE_MODE!=="true"&&Oe(`CodeYam Error: Load Entity: Entity not found (sha=${t==null?void 0:t.substring(0,12)})`,null,{projectId:e,sha:t}),null)}catch(a){return Oe("CodeYam Error: Load Entity: Database error",a,{projectId:e,sha:t}),null}}const po=1e3;async function au({projectId:e,filePaths:t,fileIds:r,fileNames:s}){if(t&&t.length>50){const l=[];for(let d=0;d<t.length;d+=50){const u=t.slice(d,d+50),p=await au({projectId:e,filePaths:u,fileIds:r,fileNames:s});p&&l.push(...p)}return l}const a=Fe(),o=[];let i=0;try{for(;;){let l=a.selectFrom("files").selectAll().where("project_id","=",e).limit(po).offset(i);if(t){if(t.length===0)return[];l=l.where("path","in",t)}if(r){if(r.length===0)return[];l=l.where("id","in",r)}if(s){if(s.length===0)return[];l=l.where("name","in",s)}const d=await l.execute();if(!d||d.length===0||(o.push(...d),d.length<po))break;i+=po}return o==null?void 0:o.map(gi)}catch(l){return console.log("CodeYam Error: Error loading project files in loadFiles",l),null}}async function bi({id:e,slug:t,withBranches:r,withFiles:s,silent:a}){try{let i=Fe().selectFrom("projects").selectAll();if(e)i=i.where("id","=",e);else if(t)i=i.where("slug","=",t);else throw new Error("Either id or slug must be provided");const l=await i.executeTakeFirst();if(!l)return null;const d=fa(l);return s&&(d.files=await au({projectId:d.id})),r&&(d.branches=await xi({projectId:d.id,includeInactive:!1})),d}catch{return null}}function ta(e,t){const r={...e};for(const s in t){const a=t[s],o=e[s];a!=null&&typeof a=="object"&&!Array.isArray(a)&&o!==void 0&&o!==null&&typeof o=="object"&&!Array.isArray(o)?r[s]=ta(o,a):a!==void 0&&(r[s]=a)}return r}async function hn({commitId:e,commitSha:t,metadataUpdate:r,runStatusUpdate:s,archiveCurrentRun:a,updateCallback:o}){for(let d=0;d<=4;d++)try{return await Fe().transaction().execute(async u=>{const p=await u.selectFrom("commits").select(["id","metadata"]).$if(!!e,f=>f.where("id","=",e)).$if(!!t,f=>f.where("sha","=",t)).executeTakeFirst();if(!p)return Oe(`CodeYam Error: updateCommitMetadata(): Commit ${e} not found`),null;const h=p.metadata||{};if(s)s.lastUpdatedAt??(s.lastUpdatedAt=new Date().toISOString()),r=ta(r??{},{currentRun:s});else if(!r&&!o)return h;const m=r?ta(h,r):h;if(a&&m.currentRun){const f={...m.currentRun,archivedAt:new Date().toISOString()};m.historicalRuns=[...m.historicalRuns||[],f]}o&&await o(m);try{return await u.updateTable("commits").set({metadata:JSON.stringify(m)}).where("id","=",p.id).returning(["id"]).executeTakeFirst()?m:(Oe(`CodeYam Error: updateCommitMetadata(): Failed to update commit ${e}`),h)}catch(f){return Oe(`CodeYam Error: updateCommitMetadata(): Failed to update commit ${e}`,f),h}})}catch(u){const p=u instanceof Error&&u.message.includes("database is locked");if(p&&d<4){const h=250*Math.pow(2,d);await new Promise(m=>setTimeout(m,h));continue}return Oe(`CodeYam Error: updateCommitMetadata(): Transaction failed for commit ${e}${p?` after ${d+1} attempts`:""}`,u),null}return null}async function ou(e,t,r="analysis"){try{return await Fe().transaction().execute(async s=>{const a=await s.selectFrom("analyses").selectAll().where("id","=",e).executeTakeFirst();if(!a)return Oe(`CodeYam Error: updateFreshAnalysisMetadata(): Analysis ${e} not found (source: ${r})`,null,{analysisId:e,source:r}),null;const o=Zt(a);return t(o.metadata,o),await s.updateTable("analyses").set({metadata:JSON.stringify(o.metadata)}).where("id","=",e).returningAll().executeTakeFirst()?o.metadata:(Oe(`CodeYam Error: updateFreshAnalysisMetadata(): Failed to update analysis ${e} (source: ${r})`,null,{analysisId:e,source:r}),null)})}catch(s){return Oe(`CodeYam Error: updateFreshAnalysisMetadata(): Transaction failed for analysis ${e} (source: ${r})`,s,{analysisId:e,source:r}),null}}async function fr(e,t,r="capture"){for(let o=0;o<=4;o++)try{return await Fe().transaction().execute(async i=>{const l=await i.selectFrom("analyses").selectAll().where("id","=",e).executeTakeFirst();if(!l)return Oe(`CodeYam Error: updateFreshAnalysisStatus(): Analysis ${e} not found (source: ${r})`,null,{analysisId:e,source:r}),null;const d=Zt(l);return t(d.status,d),await i.updateTable("analyses").set({status:JSON.stringify(d.status)}).where("id","=",e).returningAll().executeTakeFirst()?d.status:(Oe(`CodeYam Error: updateFreshAnalysisStatus(): Failed to update analysis ${e} (source: ${r})`,null,{analysisId:e,source:r}),null)})}catch(i){const l=i instanceof Error&&i.message.includes("database is locked");if(l&&o<4){const d=250*Math.pow(2,o);await new Promise(u=>setTimeout(u,d));continue}return Oe(`CodeYam Error: updateFreshAnalysisStatus(): Transaction failed for analysis ${e} (source: ${r})${l?` after ${o+1} attempts`:""}`,i,{analysisId:e,source:r}),null}return null}async function lr({projectId:e,projectSlug:t,metadataUpdate:r,updateCallback:s}){if(!e&&!t)throw new Error("Either projectId or projectSlug must be provided");try{return await Fe().transaction().execute(async a=>{const o=await a.selectFrom("projects").selectAll().$if(!!e,d=>d.where("id","=",e)).$if(!!t,d=>d.where("slug","=",t)).executeTakeFirst();if(!o)return Oe(`CodeYam Error: updateProjectMetadata(): Project ${e} not found`),null;const i=o.metadata||{};if(!r&&!s)return i;const l=r?ta(i,r):i;s&&await s(l,fa(o));try{return await a.updateTable("projects").set({metadata:JSON.stringify(l)}).where("id","=",o.id).returningAll().executeTakeFirst()?l:(Oe(`CodeYam Error: updateProjectMetadata(): Failed to update project ${e}`),null)}catch(d){return Oe(`CodeYam Error: updateProjectMetadata(): Failed to update project ${e}`,d),null}})}catch(a){return Oe(`CodeYam Error: updateProjectMetadata(): Transaction failed for project ${e}`,a),null}}const Og=()=>crypto.randomUUID();function Lg(e){const{id:t,projectId:r,analysisId:s,previousVersionId:a,analysis:o,metadata:i,data:l,...d}=e;return delete d.userScenarios,delete d.comments,"created_at"in d&&delete d.created_at,{...d,id:t??Og(),metadata:i?JSON.stringify(i):null,project_id:r,analysis_id:s,previous_version_id:a}}async function Bg(e){if(e.length===0)return[];const t=Fe(),r=e.map(Lg);try{return(await t.insertInto("scenarios").values(r).onConflict(mr(r[0],"id",["created_at"])).returningAll().execute()).map(Zd)}catch(s){return Oe("CodeYam Error: Database error upserting scenarios",s,{scenarioCount:e.length}),null}}const zg=()=>crypto.randomUUID();function Yg(e){const{id:t,commitId:r,branchId:s,...a}=e;return delete a.commit,delete a.branch,{...a,id:t??zg(),commit_id:r,branch_id:s}}async function ql(e){if(e.length===0)return[];const t=Fe(),r=e.map(Yg);try{return(await t.insertInto("commit_branches").values(r).onConflict(mr(r[0],"id",["created_at"])).returningAll().execute()).map(yi)}catch(s){return Oe("CodeYam Error: Database error upserting commit branches",s,{commitBranchCount:e.length,commitBranchIds:e.map(a=>a.id)}),[]}}async function Ug(e,t){const r=Fe(),s={username:e,avatar_url:t};try{return await r.insertInto("github_users").values(s).onConflict(mr(s,"username",[])).returningAll().executeTakeFirst()||null}catch(a){return Oe("CodeYam Error: Error upserting github user",a,{username:e,avatarUrl:t}),null}}const Wg=()=>crypto.randomUUID();function Jg(e,t){const{id:r,projectId:s,branchId:a,mergedBranchId:o,aiMessage:i,htmlUrl:l,analyzedAt:d,committedAt:u,author:p,metadata:h,files:m,...f}=e;return delete f.branch,delete f.mergedBranch,delete f.backgroundJob,delete f.analyses,delete f.parents,delete f.entities,delete f.commitBranches,{...f,id:r??Wg(),project_id:s??String(t),metadata:h?JSON.stringify(h):void 0,files:m?JSON.stringify(m):void 0,branch_id:a,merged_branch_id:o,author_github_username:p==null?void 0:p.username,html_url:l,ai_message:i,analyzed_at:d,committed_at:u}}async function Hg({projectId:e,commits:t}){const r=Fe();try{const s=t.reduce((i,l)=>{const{author:d}=l;return d!=null&&d.username&&(d!=null&&d.avatarUrl)&&(i[d.username]=d.avatarUrl),i},{});for(const i in s)await Ug(i,s[i]);const a=t.map(i=>Jg(i,e));return(await r.insertInto("commits").values(a).onConflict(mr(a[0],"id",["created_at"])).returningAll().execute()).map(Rn)}catch(s){return Oe("CodeYam Error: Error saving commits",s,{projectId:e,commitCount:t.length,commitIds:t.map(a=>a.id).filter(Boolean)}),[]}}const Vg=()=>crypto.randomUUID();function Kg(e){const{id:t,files:r,branches:s,team:a,analyzedAt:o,contentChangedAt:i,createdAt:l,updatedAt:d,metadata:u,...p}=e;return{...p,id:t??Vg(),analyzed_at:o||null,content_changed_at:i||null,created_at:l||new Date().toISOString(),updated_at:d||null,metadata:u?JSON.stringify(u):null,github_token:null,configuration:null,team_id:null}}async function Gg(e){try{if(e.length===0)return null;const t=Fe(),r=e.map(o=>Kg(o)),s=await t.insertInto("projects").values(r).onConflict(mr(r[0],"id",["created_at"])).returningAll().execute(),a=s==null?void 0:s[0];return a?fa(a):null}catch(t){return console.log("Error saving project",t),null}}const na=G.join(ua.homedir(),".codeyam","secrets.json"),ra=G.join(process.cwd(),".codeyam","secrets.json");async function bn(){let e={};try{if(Q.existsSync(ra)){const o=await Ae.readFile(ra,"utf8");e=JSON.parse(o)}}catch{console.warn(Qs.yellow("⚠ Could not read project secrets file, trying home directory"))}if(!e.OPENAI_API_KEY&&!e.ANTHROPIC_API_KEY)try{if(Q.existsSync(na)){const o=await Ae.readFile(na,"utf8");e={...JSON.parse(o),...e}}}catch{console.warn(Qs.yellow("⚠ Could not read home secrets file, falling back to environment variables"))}const t={},r=e.OPENAI_API_KEY||process.env.OPENAI_API_KEY;r&&(t.OPENAI_API_KEY=r);const s=e.ANTHROPIC_API_KEY||process.env.ANTHROPIC_API_KEY;s&&(t.ANTHROPIC_API_KEY=s);const a=e.GROQ_API_KEY||process.env.GROQ_API_KEY;return a&&(t.GROQ_API_KEY=a),t}async function qg(e,t=!0){const r=t?na:ra,s=G.dirname(r);await Ae.mkdir(s,{recursive:!0}),await Ae.writeFile(r,JSON.stringify(e,null,2)),await Ae.chmod(r,384)}function Qg(e=!0){return e?na:ra}async function Ql(){const e=await bn(),t=[];for(const r of t)e[r];return{isValid:!0,missing:[],secrets:e}}async function Zg(e){console.log(),console.log(Qs.blue("ℹ Configuration needed")),console.log();const t={};for(const r of e)switch(r){case"OPENAI_API_KEY":const s=await Bm({type:"password",name:"key",message:"OpenAI API Key",validate:a=>a&&!a.startsWith("sk-")?"OpenAI API key should start with sk-":!0});s.key&&(t.OPENAI_API_KEY=s.key);break}return t}async function Xg(e=!0){const t=await Ql();if(t.isValid)return t.secrets;const r=await Zg(t.missing),a={...await bn(),...r};await qg(a,e);const o=Qg(e);return console.log(Qs.green(`✓ Configuration saved to ${o}`)),(await Ql()).secrets}function e0(e){const t=G.resolve(e),r=G.parse(t).root;return t===r||t===G.resolve(ua.homedir())}function iu(e=process.cwd()){let t=G.resolve(e);const r=G.parse(t).root;for(;t!==r;){if(e0(t))return null;const s=G.join(t,".codeyam","config.json");if(Q.existsSync(s))return t;t=G.dirname(t)}return null}let lu=iu();function Ce(){return lu}function t0(e){lu=e}function cu(e){const t={...e};for(const r in e)if(r.includes(".")){const s=r.replace(/\./g,"");t[s]=e[r]}return t}const n0={"Accordion.Item":e=>`<CYAccordion.Root type="single" collapsible>${e}</CYAccordion.Root>`,"Accordion.Header":e=>`<CYAccordion.Root type="single" collapsible><CYAccordion.Item value="item-1">${e}</CYAccordion.Item></CYAccordion.Root>`,"Accordion.Trigger":e=>`<CYAccordion.Root type="single" collapsible><CYAccordion.Item value="item-1"><CYAccordion.Header>${e}</CYAccordion.Header></CYAccordion.Item></CYAccordion.Root>`,"Accordion.Content":e=>`<CYAccordion.Root type="single" collapsible><CYAccordion.Item value="item-1">${e}</CYAccordion.Item></CYAccordion.Root>`,"AlertDialog.Trigger":e=>`<CYAlertDialog.Root>${e}</CYAlertDialog.Root>`,"AlertDialog.Portal":e=>`<CYAlertDialog.Root>${e}</CYAlertDialog.Root>`,"AlertDialog.Overlay":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal>${e}</CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Content":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal>${e}</CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Title":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal><CYAlertDialog.Content>${e}</CYAlertDialog.Content></CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Description":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal><CYAlertDialog.Content>${e}</CYAlertDialog.Content></CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Action":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal><CYAlertDialog.Content>${e}</CYAlertDialog.Content></CYAlertDialog.Portal></CYAlertDialog.Root>`,"AlertDialog.Cancel":e=>`<CYAlertDialog.Root><CYAlertDialog.Portal><CYAlertDialog.Content>${e}</CYAlertDialog.Content></CYAlertDialog.Portal></CYAlertDialog.Root>`,"Avatar.Image":e=>`<CYAvatar.Root>${e}</CYAvatar.Root>`,"Avatar.Fallback":e=>`<CYAvatar.Root>${e}</CYAvatar.Root>`,"Checkbox.Indicator":e=>`<CYCheckbox.Root>${e}</CYCheckbox.Root>`,"Collapsible.Trigger":e=>`<CYCollapsible.Root>${e}</CYCollapsible.Root>`,"Collapsible.Content":e=>`<CYCollapsible.Root>${e}</CYCollapsible.Root>`,"ContextMenu.Trigger":e=>`<CYContextMenu.Root>${e}</CYContextMenu.Root>`,"ContextMenu.Portal":e=>`<CYContextMenu.Root>${e}</CYContextMenu.Root>`,"ContextMenu.Content":e=>`<CYContextMenu.Root><CYContextMenu.Portal>${e}</CYContextMenu.Portal></CYContextMenu.Root>`,"ContextMenu.Item":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.CheckboxItem":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.RadioGroup":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.RadioItem":e=>`<CYContextMenu.Root><CYContextMenu.Content><CYContextMenu.RadioGroup value="item-1">${e}</CYContextMenu.RadioGroup></CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.ItemIndicator":e=>`<CYContextMenu.Root><CYContextMenu.Content><CYContextMenu.CheckboxItem checked>${e}</CYContextMenu.CheckboxItem></CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.Label":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.Separator":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.Sub":e=>`<CYContextMenu.Root><CYContextMenu.Content>${e}</CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.SubTrigger":e=>`<CYContextMenu.Root><CYContextMenu.Content><CYContextMenu.Sub>${e}</CYContextMenu.Sub></CYContextMenu.Content></CYContextMenu.Root>`,"ContextMenu.SubContent":e=>`<CYContextMenu.Root><CYContextMenu.Content><CYContextMenu.Sub>${e}</CYContextMenu.Sub></CYContextMenu.Content></CYContextMenu.Root>`,"Dialog.Trigger":e=>`<CYDialog.Root>${e}</CYDialog.Root>`,"Dialog.Portal":e=>`<CYDialog.Root>${e}</CYDialog.Root>`,"Dialog.Overlay":e=>`<CYDialog.Root><CYDialog.Portal>${e}</CYDialog.Portal></CYDialog.Root>`,"Dialog.Content":e=>`<CYDialog.Root><CYDialog.Portal>${e}</CYDialog.Portal></CYDialog.Root>`,"Dialog.Title":e=>`<CYDialog.Root><CYDialog.Portal><CYDialog.Content>${e}</CYDialog.Content></CYDialog.Portal></CYDialog.Root>`,"Dialog.Description":e=>`<CYDialog.Root><CYDialog.Portal><CYDialog.Content>${e}</CYDialog.Content></CYDialog.Portal></CYDialog.Root>`,"Dialog.Close":e=>`<CYDialog.Root><CYDialog.Portal><CYDialog.Content>${e}</CYDialog.Content></CYDialog.Portal></CYDialog.Root>`,"DropdownMenu.Trigger":e=>`<CYDropdownMenu.Root>${e}</CYDropdownMenu.Root>`,"DropdownMenu.Portal":e=>`<CYDropdownMenu.Root>${e}</CYDropdownMenu.Root>`,"DropdownMenu.Content":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Portal>${e}</CYDropdownMenu.Portal></CYDropdownMenu.Root>`,"DropdownMenu.Item":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.CheckboxItem":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.RadioGroup":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.RadioItem":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content><CYDropdownMenu.RadioGroup value="item-1">${e}</CYDropdownMenu.RadioGroup></CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.ItemIndicator":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content><CYDropdownMenu.CheckboxItem checked>${e}</CYDropdownMenu.CheckboxItem></CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.Label":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.Separator":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.Sub":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content>${e}</CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.SubTrigger":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content><CYDropdownMenu.Sub>${e}</CYDropdownMenu.Sub></CYDropdownMenu.Content></CYDropdownMenu.Root>`,"DropdownMenu.SubContent":e=>`<CYDropdownMenu.Root><CYDropdownMenu.Content><CYDropdownMenu.Sub>${e}</CYDropdownMenu.Sub></CYDropdownMenu.Content></CYDropdownMenu.Root>`,"Form.Field":e=>`<CYForm.Root>${e}</CYForm.Root>`,"Form.Label":e=>`<CYForm.Root><CYForm.Field name="test-field">${e}</CYForm.Field></CYForm.Root>`,"Form.Control":e=>`<CYForm.Root><CYForm.Field name="test-field">${e}</CYForm.Field></CYForm.Root>`,"Form.Message":e=>`<CYForm.Root><CYForm.Field name="test-field">${e}</CYForm.Field></CYForm.Root>`,"Form.ValidityState":e=>`<CYForm.Root><CYForm.Field name="test-field">${e}</CYForm.Field></CYForm.Root>`,"Form.Submit":e=>`<CYForm.Root>${e}</CYForm.Root>`,"HoverCard.Trigger":e=>`<CYHoverCard.Root>${e}</CYHoverCard.Root>`,"HoverCard.Portal":e=>`<CYHoverCard.Root>${e}</CYHoverCard.Root>`,"HoverCard.Content":e=>`<CYHoverCard.Root><CYHoverCard.Portal>${e}</CYHoverCard.Portal></CYHoverCard.Root>`,"Menubar.Menu":e=>`<CYMenubar.Root>${e}</CYMenubar.Root>`,"Menubar.Trigger":e=>`<CYMenubar.Root><CYMenubar.Menu>${e}</CYMenubar.Menu></CYMenubar.Root>`,"Menubar.Portal":e=>`<CYMenubar.Root><CYMenubar.Menu>${e}</CYMenubar.Menu></CYMenubar.Root>`,"Menubar.Content":e=>`<CYMenubar.Root><CYMenubar.Menu>${e}</CYMenubar.Menu></CYMenubar.Root>`,"Menubar.Item":e=>`<CYMenubar.Root><CYMenubar.Menu><CYMenubar.Content>${e}</CYMenubar.Content></CYMenubar.Menu></CYMenubar.Root>`,"NavigationMenu.List":e=>`<CYNavigationMenu.Root>${e}</CYNavigationMenu.Root>`,"NavigationMenu.Item":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List>${e}</CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Trigger":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List><CYNavigationMenu.Item>${e}</CYNavigationMenu.Item></CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Content":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List><CYNavigationMenu.Item><CYNavigationMenu.Trigger />{/* Dummy trigger for context */}${e}</CYNavigationMenu.Item></CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Link":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List><CYNavigationMenu.Item>${e}</CYNavigationMenu.Item></CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Indicator":e=>`<CYNavigationMenu.Root><CYNavigationMenu.List><CYNavigationMenu.Item><CYNavigationMenu.Trigger />{/* Dummy trigger for context */}</CYNavigationMenu.Item>${e}</CYNavigationMenu.List></CYNavigationMenu.Root>`,"NavigationMenu.Viewport":e=>`<CYNavigationMenu.Root>${e}</CYNavigationMenu.Root>`,"Popover.Trigger":e=>`<CYPopover.Root>${e}</CYPopover.Root>`,"Popover.Portal":e=>`<CYPopover.Root>${e}</CYPopover.Root>`,"Popover.Content":e=>`<CYPopover.Root><CYPopover.Portal>${e}</CYPopover.Portal></CYPopover.Root>`,"Popover.Close":e=>`<CYPopover.Root><CYPopover.Content>${e}</CYPopover.Content></CYPopover.Root>`,"Popover.Anchor":e=>`<CYPopover.Root>${e}</CYPopover.Root>`,"Progress.Indicator":e=>`<CYProgress.Root value={50}>${e}</CYProgress.Root>`,"RadioGroup.Item":e=>`<CYRadioGroup.Root>${e}</CYRadioGroup.Root>`,"RadioGroup.Indicator":e=>`<CYRadioGroup.Root><CYRadioGroup.Item value="item-1">${e}</CYRadioGroup.Item></CYRadioGroup.Root>`,"ScrollArea.Viewport":e=>`<CYScrollArea.Root>${e}</CYScrollArea.Root>`,"ScrollArea.Scrollbar":e=>`<CYScrollArea.Root>${e}</CYScrollArea.Root>`,"ScrollArea.Thumb":e=>`<CYScrollArea.Root><CYScrollArea.Scrollbar orientation="vertical">${e}</CYScrollArea.Scrollbar></CYScrollArea.Root>`,"ScrollArea.Corner":e=>`<CYScrollArea.Root>${e}</CYScrollArea.Root>`,"Select.Trigger":e=>`<CYSelect.Root>${e}</CYSelect.Root>`,"Select.Value":e=>`<CYSelect.Root><CYSelect.Trigger>${e}</CYSelect.Trigger></CYSelect.Root>`,"Select.Icon":e=>`<CYSelect.Root><CYSelect.Trigger>${e}</CYSelect.Trigger></CYSelect.Root>`,"Select.Portal":e=>`<CYSelect.Root>${e}</CYSelect.Root>`,"Select.Content":e=>`<CYSelect.Root><CYSelect.Portal>${e}</CYSelect.Portal></CYSelect.Root>`,"Select.Viewport":e=>`<CYSelect.Root><CYSelect.Content>${e}</CYSelect.Content></CYSelect.Root>`,"Select.Item":e=>`<CYSelect.Root><CYSelect.Content>${e}</CYSelect.Content></CYSelect.Root>`,"Select.ItemText":e=>`<CYSelect.Root><CYSelect.Content><CYSelect.Item value="item-1">${e}</CYSelect.Item></CYSelect.Content></CYSelect.Root>`,"Select.ItemIndicator":e=>`<CYSelect.Root><CYSelect.Content><CYSelect.Item value="item-1">${e}</CYSelect.Item></CYSelect.Content></CYSelect.Root>`,"Select.Group":e=>`<CYSelect.Root><CYSelect.Content>${e}</CYSelect.Content></CYSelect.Root>`,"Select.Label":e=>`<CYSelect.Root><CYSelect.Content><CYSelect.Group>${e}</CYSelect.Group></CYSelect.Content></CYSelect.Root>`,"Select.Separator":e=>`<CYSelect.Root><CYSelect.Content>${e}</CYSelect.Content></CYSelect.Root>`,"Slider.Track":e=>`<CYSlider.Root>${e}</CYSlider.Root>`,"Slider.Range":e=>`<CYSlider.Root><CYSlider.Track>${e}</CYSlider.Track></CYSlider.Root>`,"Slider.Thumb":e=>`<CYSlider.Root>${e}</CYSlider.Root>`,"Switch.Thumb":e=>`<CYSwitch.Root>${e}</CYSwitch.Root>`,"Tabs.List":e=>`<CYTabs.Root defaultValue="tab1">${e}</CYTabs.Root>`,"Tabs.Trigger":e=>`<CYTabs.Root defaultValue="tab1"><CYTabs.List>${e}</CYTabs.List></CYTabs.Root>`,"Tabs.Content":e=>`<CYTabs.Root defaultValue="tab1">${e}</CYTabs.Root>`,"Toast.Root":e=>`<CYToast.Provider>${e}</CYToast.Provider>`,"Toast.Title":e=>`<CYToast.Provider><CYToast.Root>${e}</CYToast.Root></CYToast.Provider>`,"Toast.Description":e=>`<CYToast.Provider><CYToast.Root>${e}</CYToast.Root></CYToast.Provider>`,"Toast.Action":e=>`<CYToast.Provider><CYToast.Root>${e}</CYToast.Root></CYToast.Provider>`,"Toast.Close":e=>`<CYToast.Provider><CYToast.Root>${e}</CYToast.Root></CYToast.Provider>`,"Toast.Viewport":e=>`<CYToast.Provider>${e}</CYToast.Provider>`,"ToggleGroup.Item":e=>`<CYToggleGroup.Root type="single">${e}</CYToggleGroup.Root>`,"Toolbar.Button":e=>`<CYToolbar.Root>${e}</CYToolbar.Root>`,"Toolbar.Link":e=>`<CYToolbar.Root>${e}</CYToolbar.Root>`,"Toolbar.Separator":e=>`<CYToolbar.Root>${e}</CYToolbar.Root>`,"Toolbar.ToggleGroup":e=>`<CYToolbar.Root>${e}</CYToolbar.Root>`,"Toolbar.ToggleItem":e=>`<CYToolbar.Root><CYToolbar.ToggleGroup type="single">${e}</CYToolbar.ToggleGroup></CYToolbar.Root>`,"Tooltip.Root":e=>`<CYTooltip.Provider>${e}</CYTooltip.Provider>`,"Tooltip.Trigger":e=>`<CYTooltip.Provider><CYTooltip.Root>${e}</CYTooltip.Root></CYTooltip.Provider>`,"Tooltip.Portal":e=>`<CYTooltip.Provider><CYTooltip.Root>${e}</CYTooltip.Root></CYTooltip.Provider>`,"Tooltip.Content":e=>`<CYTooltip.Provider><CYTooltip.Root><CYTooltip.Portal>${e}</CYTooltip.Portal></CYTooltip.Root></CYTooltip.Provider>`,"Tooltip.Arrow":e=>`<CYTooltip.Provider><CYTooltip.Root><CYTooltip.Content>${e}</CYTooltip.Content></CYTooltip.Root></CYTooltip.Provider>`};cu(n0);const r0={"Command.Input":e=>`<CYCommand>${e}</CYCommand>`,"Command.List":e=>`<CYCommand>${e}</CYCommand>`,"Command.Item":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Group":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Separator":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Empty":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Loading":e=>`<CYCommand><CYCommand.List>${e}</CYCommand.List></CYCommand>`,"Command.Shortcut":e=>`<CYCommand><CYCommand.List><CYCommand.Item value="x">${e}</CYCommand.Item></CYCommand.List></CYCommand>`,"Command.Dialog":e=>`<CYCommand.Dialog open>${e}</CYCommand.Dialog>`};cu(r0);function Or(e,t,r=new WeakSet){if(!t)return e;if(!e)return t;try{if(typeof t=="object"&&t!==null){if(r.has(t))throw new Error("Circular reference detected during deep merge");r.add(t)}if(Array.isArray(t)){const a=Array.isArray(e)?e:[],o=[];for(let i=0;i<t.length;i++){const l=t[i];l&&typeof l=="object"&&!Array.isArray(l)||Array.isArray(l)?o[i]=Or(a[i],l,r):o[i]=l}return o}const s={...e};for(const a in t)if(t[a]===null)s[a]=null;else if(Array.isArray(t[a])){const o=Array.isArray(e[a])?e[a]:[];s[a]=[];for(let i=0;i<t[a].length;i++){const l=t[a][i];typeof l=="object"&&l!==null?s[a][i]=Or(o[i],l,r):s[a][i]=l}}else typeof t[a]=="object"&&t[a]!==null?s[a]=Or(s[a]??{},t[a],r):s[a]=t[a];return s}catch(s){throw console.log("CodeYam: Error merging data",e,t),s}}async function s0({projectId:e,commit:t,branch:r}){var l,d,u,p,h,m,f;let s;const a={commitId:t.id,branchId:r.id,active:!0},o=await $g({projectId:e,commitId:t.id,includeBranches:!0});if(o&&o.length>0){s=(l=o.sort((g,x)=>{var b,v,N,w;return(((v=(b=g.branch.metadata)==null?void 0:b.permanent)==null?void 0:v.order)??999)-(((w=(N=x.branch.metadata)==null?void 0:N.permanent)==null?void 0:w.order)??999)})[0])==null?void 0:l.branch,s&&((u=(d=r.metadata)==null?void 0:d.permanent)==null?void 0:u.order)!==void 0&&(((h=(p=r.metadata)==null?void 0:p.permanent)==null?void 0:h.order)<=((f=(m=s.metadata)==null?void 0:m.permanent)==null?void 0:f.order)?s=r:a.active=!1);const y=o.filter(g=>g.active&&g.branch.id!==s.id||!g.active&&g.branch.id===s.id);y.length>0&&await ql(y.map(g=>({...g,active:g.branchId===s.id})))}(o==null?void 0:o.find(y=>y.branchId===a.branchId))||await ql([a])}let Zl=!1;function vn(){if(process.env.SQLITE_PATH)return process.env.SQLITE_PATH;const e=Ce();if(!e)throw new Error("Could not find project root. Please run this command inside a CodeYam project.");return te.join(e,".codeyam","db.sqlite3")}async function We(){if(!Zl){Zl=!0;const t=Ce();t&&await o0(t)}const e=await Xg();process.env.SQLITE_PATH=vn(),e.OPENAI_API_KEY&&(process.env.OPENAI_API_KEY=e.OPENAI_API_KEY)}async function Gj(){try{return await We(),await bi({slug:"__test_connection__",silent:!0}),!0}catch(e){return console.error("Database connection test failed:",e),!1}}async function Ie(e){await We();const t=await bi({slug:e,silent:!0});if(!t)throw new Error(`Project with slug "${e}" not found in database`);const r=await xi({projectId:t.id,names:["_local"]}),s=r==null?void 0:r[0];if(!s)throw new Error(`Local development branch not found for project "${e}". Please run "codeyam init" to set up local analysis.`);return{project:t,branch:s}}async function qj(e){await We();const t=await bi({slug:e.slug,silent:!0});if(t)return{project:t,created:!1};const r={id:li(),name:e.slug,slug:e.slug,path:`local:${process.cwd()}`,metadata:{packageManager:e.packageManager,unapprovedPaths:e.unapprovedPaths,webapps:e.webapps}};try{return{project:await Gg([r]),created:!0}}catch(s){throw new Error(`Failed to create project: ${s.message}`)}}async function Qj(e){await We();const t=await xi({projectId:e.id,names:["_local"]});if(t&&t.length>0)return{branch:t[0],created:!1};const r={projectId:e.id,name:"_local",ref:"_local",primary:!0,activeAt:new Date().toISOString(),contentChangedAt:new Date().toISOString(),metadata:{contributors:[{username:"local-dev",avatarUrl:"https://github.com/identicons/local-dev.png"}],commits:{total:0,last7Days:[]},timeline:[{title:"Local branch created",date:new Date().toISOString(),authors:[{username:"local-dev",avatarUrl:"https://github.com/identicons/local-dev.png"}],sha:"local-init"}]}},s=await Ng([r]);if(!s||s.length===0)throw new Error("Failed to create _local branch");return{branch:s[0],created:!0}}async function a0(e,t,r){await We();const s=Ce(),a=kg(`${e.slug}-local-${Date.now()}-${Math.random()}`),o=r.map(d=>{let u="";if(s)try{if(u=Me(`git diff HEAD -- "${d}"`,{cwd:s,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10}),!u)try{const p=Me(`cat "${d}"`,{cwd:s,encoding:"utf8",stdio:["pipe","pipe","ignore"]});if(p){const h=p.split(`
30
30
  `);u=`@@ -0,0 +1,${h.length} @@
31
31
  ${h.map(m=>`+${m}`).join(`
32
- `)}`}}catch{}}catch{}return{fileName:d,status:"modified",patch:u}}),i={sha:a,projectId:e.id,branchId:t.id,message:`Local analysis: ${r.join(", ")} at ${new Date().toISOString()}`,url:`local://codeyam/${e.slug}/${a}`,htmlUrl:`local://codeyam/${e.slug}/${a}`,author:{username:"local-dev",avatarUrl:"https://github.com/identicons/local-dev.png"},committedAt:new Date().toISOString(),parents:[],files:o,metadata:{baseline:!1,receivedAt:new Date().toISOString()}},l=await Hg({projectId:e.id,commits:[i]});if(!l||l.length===0)throw new Error("Failed to create fake commit");return await s0({projectId:e.id,commit:l[0],branch:t}),l[0]}async function o0(e){const t=te.join(e,".codeyam","db.sqlite3"),r=te.join(e,".codeyam","config.json");if(Q.existsSync(t)||!Q.existsSync(r))return!1;const{default:s}=await import("./init-C42BvUGp.js");return await s.handler({force:!0,autoInit:!0,$0:"",_:[]}),!0}async function zn(){await We();const e=await nt({excludeMetadata:!0});if(!e||e.length===0)return[];const t=new Map;for(const d of e){const u=`${d.name}::${d.filePath}`,p=t.get(u);(!p||d.createdAt&&p.createdAt&&d.createdAt>p.createdAt)&&t.set(u,d)}const r=[...t.values()],s=e.map(d=>d.sha),a=await yn({entityShas:s,excludeMetadata:!0}),o=new Map;if(a)for(const d of a)o.has(d.entitySha)||o.set(d.entitySha,[]),o.get(d.entitySha).push(d);const i=new Map;for(const d of e){const u=`${d.name}::${d.filePath}`,p=i.get(u)||[];p.push(d.sha),i.set(u,p)}return r.map(d=>{const u=o.get(d.sha)||[];if(u.length>0)return{...d,analyses:u};const p=`${d.name}::${d.filePath}`,h=i.get(p)||[];for(const m of h){if(m===d.sha)continue;const f=o.get(m);if(f&&f.length>0)return{...d,analyses:f}}return{...d,analyses:[]}})}async function i0(e){await We();const t=await nt(e);return!t||t.length===0?[]:t.filter(r=>{var s;return!((s=r.metadata)!=null&&s.isSuperseded)})}async function ya(e,t){await We();const r=await yn({entityShas:[e],limit:1});if(r&&r.length>0&&t){const s=await su({projectId:r[0].projectId,sha:e});if(s)for(const a of r)a.entity=s}return r||[]}async function xa(e){if(await We(),e.name&&e.projectId){const r=await yn({projectId:e.projectId,entityName:e.name,limit:10});if(r&&r.length>0){const s=r.filter(o=>{const i=o.scenarios&&o.scenarios.length>0,l=!e.filePath||o.filePath===e.filePath;return i&&l});if(s.length>0)return s.sort((o,i)=>{const l=new Date(o.createdAt||0).getTime();return new Date(i.createdAt||0).getTime()-l}),s[0];const a=r.filter(o=>o.scenarios&&o.scenarios.length>0);if(a.length>0)return a.sort((o,i)=>{const l=new Date(o.createdAt||0).getTime();return new Date(i.createdAt||0).getTime()-l}),a[0]}}const t=await yn({entityShas:[e.sha],limit:1});return t&&t.length>0?t[0]:null}async function du(e){await We();const t=await yn({entityShas:[e],limit:1});return(t==null?void 0:t[0])??null}async function On(e){await We();const t=await Be();if(!t)return null;const{project:r}=await Ie(t);return await su({projectId:r.id,sha:e})}async function uu(e){var s,a,o,i,l,d,u,p;await We();const t=[],r=[];if((s=e.metadata)!=null&&s.importedExports&&e.metadata.importedExports.length>0){const h=e.metadata.importedExports;for(const m of h){if(!m.filePath||!m.name)continue;const f=m.resolvedFilePath??m.filePath,y=m.resolvedName??m.name;let g=await nt({projectId:e.projectId,filePaths:[f],names:[y]});if((!g||g.length===0)&&m.resolvedIsDefault&&(g=await nt({projectId:e.projectId,filePaths:[f],names:["default"]})),g&&g.length>0){const x=g[0],b=await yn({entityShas:[x.sha],limit:1});let v,N,w;if(b&&b.length>0&&b[0].scenarios){const C=b[0],k=C.scenarios||[],j=k.length,A=k.find(M=>{var T,R;return(R=(T=M.metadata)==null?void 0:T.screenshotPaths)==null?void 0:R[0]});A&&(v=(o=(a=A.metadata)==null?void 0:a.screenshotPaths)==null?void 0:o[0],N=A.name),w={status:((i=x.metadata)==null?void 0:i.previousVersionWithAnalyses)||C.entitySha!==x.sha?"out_of_date":"up_to_date",scenarioCount:j,timestamp:C.createdAt?new Date(C.createdAt).toLocaleDateString("en-US",{month:"2-digit",day:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit"}):void 0}}else w={status:"not_analyzed"};t.push({...x,screenshotPath:v,scenarioName:N,analysisStatus:w})}}}if((l=e.metadata)!=null&&l.importedBy){const h=[];for(const m in e.metadata.importedBy)for(const f in e.metadata.importedBy[m]){const y=e.metadata.importedBy[m][f];y.shas&&h.push(...y.shas)}if(h.length>0){const m=await nt({projectId:e.projectId,shas:h});if(m)for(const f of m){const y=await yn({entityShas:[f.sha],limit:1});let g,x,b;if(y&&y.length>0&&y[0].scenarios){const v=y[0],N=v.scenarios||[],w=N.length,C=N.find(j=>{var A,_;return(_=(A=j.metadata)==null?void 0:A.screenshotPaths)==null?void 0:_[0]});C&&(g=(u=(d=C.metadata)==null?void 0:d.screenshotPaths)==null?void 0:u[0],x=C.name),b={status:((p=f.metadata)==null?void 0:p.previousVersionWithAnalyses)||v.entitySha!==f.sha?"out_of_date":"up_to_date",scenarioCount:w,timestamp:v.createdAt?new Date(v.createdAt).toLocaleDateString("en-US",{month:"2-digit",day:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit"}):void 0}}else b={status:"not_analyzed"};r.push({...f,screenshotPath:g,scenarioName:x,analysisStatus:b})}}}return{importedEntities:t,importingEntities:r}}async function Be(){try{const e=Ce();if(!e)return null;const t=te.join(e,".codeyam","config.json");return JSON.parse(await Te.readFile(t,"utf8")).projectSlug||null}catch(e){return console.error("[getProjectSlug] Error:",e),null}}async function gr(){await We();try{const e=await Be();if(!e)return null;const{project:t,branch:r}=await Ie(e),s=await ea({projectId:t.id,branchId:r.id,limit:1,skipRelations:!0});return s&&s.length>0?s[0]:null}catch(e){return console.error("[getCurrentCommit] Error:",e),null}}async function ba(){try{const e=Ce();if(!e)return null;const t=te.join(e,".codeyam","config.json");return JSON.parse(await Te.readFile(t,"utf8"))}catch(e){return console.error("[getProjectConfig] Error:",e),null}}async function pu(e){try{const t=Ce();if(!t)return console.error("[getEntityCodeFromFilesystem] No project root found"),null;if(!e.filePath)return console.error("[getEntityCodeFromFilesystem] Entity has no filePath"),null;const r=te.join(t,e.filePath);return await Te.readFile(r,"utf8")}catch(t){return console.error("[getEntityCodeFromFilesystem] Error reading file:",t),null}}async function hu(e){try{const t=Ce();if(!t||!e.filePath)return!1;const r=te.join(t,e.filePath),a=(await Te.stat(r)).mtime.getTime(),o=e.updatedAt||e.createdAt;if(!o)return!1;const i=new Date(o).getTime();return a>i+1e3}catch{return!1}}async function mu(e){if(await We(),!e.filePath||!e.name||!e.projectId)return console.error("[getEntityHistory] Entity missing required fields (filePath, name, or projectId)"),[];const t=await nt({projectId:e.projectId,filePaths:[e.filePath],names:[e.name]});if(!t||t.length===0)return[];const r=t.map(i=>i.sha),s=await yn({entityShas:r}),a=new Map;if(s)for(const i of s)a.has(i.entitySha)||a.set(i.entitySha,[]),a.get(i.entitySha).push(i);for(const[i,l]of a.entries())l.sort((d,u)=>{const p=new Date(d.createdAt||0).getTime();return new Date(u.createdAt||0).getTime()-p});const o=t.map(i=>({...i,analyses:a.get(i.sha)||[]}));return o.sort((i,l)=>{var p,h;const d=((p=i.analyses[0])==null?void 0:p.createdAt)||i.createdAt||"",u=((h=l.analyses[0])==null?void 0:h.createdAt)||l.createdAt||"";return new Date(u).getTime()-new Date(d).getTime()}),o}async function fu(e){try{const t=Ce();if(!t)return console.error("[updateProjectConfig] No project root found"),!1;const r=te.join(t,".codeyam","config.json"),s=await Te.readFile(r,"utf8"),a=JSON.parse(s),o={...a,...e},i=JSON.stringify(o,null,2);if(await Te.writeFile(r,i,"utf8"),a.projectSlug){const l={};e.universalMocks!==void 0&&(l.universalMocks=e.universalMocks),e.pathsToIgnore!==void 0&&(l.pathsToIgnore=e.pathsToIgnore),e.webapps!==void 0&&(l.webapps=e.webapps),await lr({projectSlug:a.projectSlug,metadataUpdate:l})}return!0}catch(t){return console.error("[updateProjectConfig] Error:",t),!1}}const l0=Object.freeze(Object.defineProperty({__proto__:null,getAllEntities:zn,getAnalysesForEntity:ya,getAnalysisForExactEntitySha:du,getCurrentCommit:gr,getCurrentEntities:i0,getEntityBySha:On,getEntityCodeFromFilesystem:pu,getEntityHistory:mu,getLatestAnalysisForEntity:xa,getProjectConfig:ba,getProjectSlug:Be,getRelatedEntities:uu,hasFileBeenModifiedSinceEntity:hu,requireBranchAndProject:Ie,updateProjectConfig:fu},Symbol.toStringTag,{value:"Module"})),gu="secrets.json";function yu(e){return te.join(e,".codeyam",gu)}function xu(){return te.join(Io.homedir(),".codeyam",gu)}async function va(e){let t={};try{const r=xu(),s=await Te.readFile(r,"utf-8");t=JSON.parse(s)}catch{}try{const r=yu(e),s=await Te.readFile(r,"utf-8"),a=JSON.parse(s);t={...t,...a}}catch{}return t}async function c0(e,t,r=!0){const s=r?xu():yu(e),a=te.dirname(s);await Te.mkdir(a,{recursive:!0}),await Te.writeFile(s,JSON.stringify(t,null,2)+`
32
+ `)}`}}catch{}}catch{}return{fileName:d,status:"modified",patch:u}}),i={sha:a,projectId:e.id,branchId:t.id,message:`Local analysis: ${r.join(", ")} at ${new Date().toISOString()}`,url:`local://codeyam/${e.slug}/${a}`,htmlUrl:`local://codeyam/${e.slug}/${a}`,author:{username:"local-dev",avatarUrl:"https://github.com/identicons/local-dev.png"},committedAt:new Date().toISOString(),parents:[],files:o,metadata:{baseline:!1,receivedAt:new Date().toISOString()}},l=await Hg({projectId:e.id,commits:[i]});if(!l||l.length===0)throw new Error("Failed to create fake commit");return await s0({projectId:e.id,commit:l[0],branch:t}),l[0]}async function o0(e){const t=te.join(e,".codeyam","db.sqlite3"),r=te.join(e,".codeyam","config.json");if(Q.existsSync(t)||!Q.existsSync(r))return!1;const{default:s}=await import("./init-DaE0CBjk.js");return await s.handler({force:!0,autoInit:!0,$0:"",_:[]}),!0}async function zn(){await We();const e=await nt({excludeMetadata:!0});if(!e||e.length===0)return[];const t=new Map;for(const d of e){const u=`${d.name}::${d.filePath}`,p=t.get(u);(!p||d.createdAt&&p.createdAt&&d.createdAt>p.createdAt)&&t.set(u,d)}const r=[...t.values()],s=e.map(d=>d.sha),a=await yn({entityShas:s,excludeMetadata:!0}),o=new Map;if(a)for(const d of a)o.has(d.entitySha)||o.set(d.entitySha,[]),o.get(d.entitySha).push(d);const i=new Map;for(const d of e){const u=`${d.name}::${d.filePath}`,p=i.get(u)||[];p.push(d.sha),i.set(u,p)}return r.map(d=>{const u=o.get(d.sha)||[];if(u.length>0)return{...d,analyses:u};const p=`${d.name}::${d.filePath}`,h=i.get(p)||[];for(const m of h){if(m===d.sha)continue;const f=o.get(m);if(f&&f.length>0)return{...d,analyses:f}}return{...d,analyses:[]}})}async function i0(e){await We();const t=await nt(e);return!t||t.length===0?[]:t.filter(r=>{var s;return!((s=r.metadata)!=null&&s.isSuperseded)})}async function ya(e,t){await We();const r=await yn({entityShas:[e],limit:1});if(r&&r.length>0&&t){const s=await su({projectId:r[0].projectId,sha:e});if(s)for(const a of r)a.entity=s}return r||[]}async function xa(e){if(await We(),e.name&&e.projectId){const r=await yn({projectId:e.projectId,entityName:e.name,limit:10});if(r&&r.length>0){const s=r.filter(o=>{const i=o.scenarios&&o.scenarios.length>0,l=!e.filePath||o.filePath===e.filePath;return i&&l});if(s.length>0)return s.sort((o,i)=>{const l=new Date(o.createdAt||0).getTime();return new Date(i.createdAt||0).getTime()-l}),s[0];const a=r.filter(o=>o.scenarios&&o.scenarios.length>0);if(a.length>0)return a.sort((o,i)=>{const l=new Date(o.createdAt||0).getTime();return new Date(i.createdAt||0).getTime()-l}),a[0]}}const t=await yn({entityShas:[e.sha],limit:1});return t&&t.length>0?t[0]:null}async function du(e){await We();const t=await yn({entityShas:[e],limit:1});return(t==null?void 0:t[0])??null}async function On(e){await We();const t=await Be();if(!t)return null;const{project:r}=await Ie(t);return await su({projectId:r.id,sha:e})}async function uu(e){var s,a,o,i,l,d,u,p;await We();const t=[],r=[];if((s=e.metadata)!=null&&s.importedExports&&e.metadata.importedExports.length>0){const h=e.metadata.importedExports;for(const m of h){if(!m.filePath||!m.name)continue;const f=m.resolvedFilePath??m.filePath,y=m.resolvedName??m.name;let g=await nt({projectId:e.projectId,filePaths:[f],names:[y]});if((!g||g.length===0)&&m.resolvedIsDefault&&(g=await nt({projectId:e.projectId,filePaths:[f],names:["default"]})),g&&g.length>0){const x=g[0],b=await yn({entityShas:[x.sha],limit:1});let v,N,w;if(b&&b.length>0&&b[0].scenarios){const C=b[0],k=C.scenarios||[],j=k.length,A=k.find(M=>{var T,R;return(R=(T=M.metadata)==null?void 0:T.screenshotPaths)==null?void 0:R[0]});A&&(v=(o=(a=A.metadata)==null?void 0:a.screenshotPaths)==null?void 0:o[0],N=A.name),w={status:((i=x.metadata)==null?void 0:i.previousVersionWithAnalyses)||C.entitySha!==x.sha?"out_of_date":"up_to_date",scenarioCount:j,timestamp:C.createdAt?new Date(C.createdAt).toLocaleDateString("en-US",{month:"2-digit",day:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit"}):void 0}}else w={status:"not_analyzed"};t.push({...x,screenshotPath:v,scenarioName:N,analysisStatus:w})}}}if((l=e.metadata)!=null&&l.importedBy){const h=[];for(const m in e.metadata.importedBy)for(const f in e.metadata.importedBy[m]){const y=e.metadata.importedBy[m][f];y.shas&&h.push(...y.shas)}if(h.length>0){const m=await nt({projectId:e.projectId,shas:h});if(m)for(const f of m){const y=await yn({entityShas:[f.sha],limit:1});let g,x,b;if(y&&y.length>0&&y[0].scenarios){const v=y[0],N=v.scenarios||[],w=N.length,C=N.find(j=>{var A,_;return(_=(A=j.metadata)==null?void 0:A.screenshotPaths)==null?void 0:_[0]});C&&(g=(u=(d=C.metadata)==null?void 0:d.screenshotPaths)==null?void 0:u[0],x=C.name),b={status:((p=f.metadata)==null?void 0:p.previousVersionWithAnalyses)||v.entitySha!==f.sha?"out_of_date":"up_to_date",scenarioCount:w,timestamp:v.createdAt?new Date(v.createdAt).toLocaleDateString("en-US",{month:"2-digit",day:"2-digit",year:"2-digit",hour:"2-digit",minute:"2-digit"}):void 0}}else b={status:"not_analyzed"};r.push({...f,screenshotPath:g,scenarioName:x,analysisStatus:b})}}}return{importedEntities:t,importingEntities:r}}async function Be(){try{const e=Ce();if(!e)return null;const t=te.join(e,".codeyam","config.json");return JSON.parse(await Te.readFile(t,"utf8")).projectSlug||null}catch(e){return console.error("[getProjectSlug] Error:",e),null}}async function gr(){await We();try{const e=await Be();if(!e)return null;const{project:t,branch:r}=await Ie(e),s=await ea({projectId:t.id,branchId:r.id,limit:1,skipRelations:!0});return s&&s.length>0?s[0]:null}catch(e){return console.error("[getCurrentCommit] Error:",e),null}}async function ba(){try{const e=Ce();if(!e)return null;const t=te.join(e,".codeyam","config.json");return JSON.parse(await Te.readFile(t,"utf8"))}catch(e){return console.error("[getProjectConfig] Error:",e),null}}async function pu(e){try{const t=Ce();if(!t)return console.error("[getEntityCodeFromFilesystem] No project root found"),null;if(!e.filePath)return console.error("[getEntityCodeFromFilesystem] Entity has no filePath"),null;const r=te.join(t,e.filePath);return await Te.readFile(r,"utf8")}catch(t){return console.error("[getEntityCodeFromFilesystem] Error reading file:",t),null}}async function hu(e){try{const t=Ce();if(!t||!e.filePath)return!1;const r=te.join(t,e.filePath),a=(await Te.stat(r)).mtime.getTime(),o=e.updatedAt||e.createdAt;if(!o)return!1;const i=new Date(o).getTime();return a>i+1e3}catch{return!1}}async function mu(e){if(await We(),!e.filePath||!e.name||!e.projectId)return console.error("[getEntityHistory] Entity missing required fields (filePath, name, or projectId)"),[];const t=await nt({projectId:e.projectId,filePaths:[e.filePath],names:[e.name]});if(!t||t.length===0)return[];const r=t.map(i=>i.sha),s=await yn({entityShas:r}),a=new Map;if(s)for(const i of s)a.has(i.entitySha)||a.set(i.entitySha,[]),a.get(i.entitySha).push(i);for(const[i,l]of a.entries())l.sort((d,u)=>{const p=new Date(d.createdAt||0).getTime();return new Date(u.createdAt||0).getTime()-p});const o=t.map(i=>({...i,analyses:a.get(i.sha)||[]}));return o.sort((i,l)=>{var p,h;const d=((p=i.analyses[0])==null?void 0:p.createdAt)||i.createdAt||"",u=((h=l.analyses[0])==null?void 0:h.createdAt)||l.createdAt||"";return new Date(u).getTime()-new Date(d).getTime()}),o}async function fu(e){try{const t=Ce();if(!t)return console.error("[updateProjectConfig] No project root found"),!1;const r=te.join(t,".codeyam","config.json"),s=await Te.readFile(r,"utf8"),a=JSON.parse(s),o={...a,...e},i=JSON.stringify(o,null,2);if(await Te.writeFile(r,i,"utf8"),a.projectSlug){const l={};e.universalMocks!==void 0&&(l.universalMocks=e.universalMocks),e.pathsToIgnore!==void 0&&(l.pathsToIgnore=e.pathsToIgnore),e.webapps!==void 0&&(l.webapps=e.webapps),await lr({projectSlug:a.projectSlug,metadataUpdate:l})}return!0}catch(t){return console.error("[updateProjectConfig] Error:",t),!1}}const l0=Object.freeze(Object.defineProperty({__proto__:null,getAllEntities:zn,getAnalysesForEntity:ya,getAnalysisForExactEntitySha:du,getCurrentCommit:gr,getCurrentEntities:i0,getEntityBySha:On,getEntityCodeFromFilesystem:pu,getEntityHistory:mu,getLatestAnalysisForEntity:xa,getProjectConfig:ba,getProjectSlug:Be,getRelatedEntities:uu,hasFileBeenModifiedSinceEntity:hu,requireBranchAndProject:Ie,updateProjectConfig:fu},Symbol.toStringTag,{value:"Module"})),gu="secrets.json";function yu(e){return te.join(e,".codeyam",gu)}function xu(){return te.join(Io.homedir(),".codeyam",gu)}async function va(e){let t={};try{const r=xu(),s=await Te.readFile(r,"utf-8");t=JSON.parse(s)}catch{}try{const r=yu(e),s=await Te.readFile(r,"utf-8"),a=JSON.parse(s);t={...t,...a}}catch{}return t}async function c0(e,t,r=!0){const s=r?xu():yu(e),a=te.dirname(s);await Te.mkdir(a,{recursive:!0}),await Te.writeFile(s,JSON.stringify(t,null,2)+`
33
33
  `,"utf-8")}async function d0(e){const t=await va(e);return!!(t.ANTHROPIC_API_KEY&&t.ANTHROPIC_API_KEY.length>0)||!!(t.OPENAI_API_KEY&&t.OPENAI_API_KEY.length>0)||!!(t.GROQ_API_KEY&&t.GROQ_API_KEY.length>0)||!!(t.OPENROUTER_API_KEY&&t.OPENROUTER_API_KEY.length>0)}const u0=3;let Mr=0;async function ws(e){if(!e||e.length===0)return[];if(Mr>=u0)return console.warn(`[Loader] Circuit breaker open (${Mr} consecutive timeouts), skipping entity fetch for ${e.length} entities`),[];const t=Math.min(Math.max(e.length*2e3,1e4),6e4);return new Promise(r=>{let s=!1;const a=setTimeout(()=>{s||(s=!0,Mr++,console.warn(`[Loader] Entity fetch timeout after ${t}ms for ${e.length} entities`),r([]))},t);nt({shas:e,excludeMetadata:!0}).then(o=>{s||(s=!0,clearTimeout(a),Mr=0,r(o||[]))}).catch(()=>{s||(s=!0,clearTimeout(a),Mr++,r([]))})})}function p0({sourcePath:e,destinationPath:t,excludes:r,silent:s}){if(process.platform!=="darwin")return!1;if(Tt(t))try{if(Tm(t).length>0)return!1;ao(t,{recursive:!0})}catch{return!1}try{Me(`cp -c -R "${e}" "${t}"`,{stdio:"pipe",timeout:3e5});for(const a of r)if(a.includes("*"))try{Me(`rm -rf "${Wr(t,a)}"`,{stdio:"pipe",shell:"/bin/sh"})}catch{}else{const o=Wr(t,a);Tt(o)&&ao(o,{recursive:!0,force:!0})}return s||console.log(`Directory cloned (APFS CoW) from ${e} to ${t}`),!0}catch{if(Tt(t))try{ao(t,{recursive:!0})}catch{}return!1}}async function h0({sourcePath:e,destinationPath:t,excludes:r=[],keepExisting:s=!1,silent:a=!1,extraArgs:o=[],timeoutMs:i=3e5}){const l=Date.now();if(!s&&o.length===0&&p0({sourcePath:e,destinationPath:t,excludes:r,silent:a})){if(!a){const u=((Date.now()-l)/1e3).toFixed(1);console.log(`Directory synced from ${e} to ${t} [Time: ${u}s]`)}return}return new Promise((d,u)=>{const p=e.endsWith("/")?e:`${e}/`,h=t.endsWith("/")?t:`${t}/`,m=["-a","--no-specials"];s||m.push("--delete","--force"),m.push(...o);for(const x of r)m.push(`--exclude=${x}`);m.push(p,h);const f=kt("rsync",m);let y=!1;const g=i?setTimeout(()=>{if(!y){y=!0,f.kill("SIGKILL");const x=((Date.now()-l)/1e3).toFixed(1);u(new Error(`rsync timed out after ${x}s syncing ${e} → ${t}`))}},i):void 0;f.on("exit",x=>{if(!y)if(y=!0,g&&clearTimeout(g),x===0){if(!a){const b=((Date.now()-l)/1e3).toFixed(1);console.log(`Directory synced from ${e} to ${t} [Time: ${b}s]`)}d()}else console.error(`CodeYam Error: rsync failed with code: ${x}`,JSON.stringify({rsyncArgs:m},null,2)),u(new Error(`rsync failed with exit code ${x}`))}),f.on("error",x=>{y||(y=!0,g&&clearTimeout(g),a||console.log("Error occurred:",x),u(x))})})}const m0=di(ci);async function f0(e){return new Promise(t=>setTimeout(t,e))}function g0(e){try{return process.kill(e,0),!0}catch{return!1}}async function bu(e){try{const{stdout:t}=await m0(`ps -A -o pid=,ppid= | awk '$2 == ${e} { print $1 }'`),r=t.trim().split(`
34
34
  `).filter(a=>a.trim()).map(a=>parseInt(a.trim(),10)).filter(a=>!isNaN(a)),s=[...r];for(const a of r){const o=await bu(a);s.push(...o)}return s}catch{return[]}}function Xl(e,t,r){try{process.kill(e,t)}catch(s){r==null||r(`Error sending ${t} to process ${e}: ${s}`)}}async function y0(e,t,r){const s=await bu(e);for(const a of s.reverse())await Xl(a,t,r);await Xl(e,t,r)}async function Jr(e,t=console.log,r=1){if(e==process.pid)throw new Error(`Eek! killProcess(${e}) called on self!`);let s=0;async function a(o,i){await y0(e,o,t);for(let l=0;l<i;l++)if(await f0(1e3),s+=1e3,!await g0(e))return t(`Process tree ${e} successfully killed with ${o} after ${s/1e3} seconds.`),!0;return t(`Process tree still running after ${o}...`),!1}if(await a("SIGINT",5)||await a("SIGTERM",5))return!0;for(let o=0;o<r;o++)if(await a("SIGKILL",2))return!0;return console.warn(`CodeYam Warning: Completely failed to kill process tree ${e} after ${s/1e3} seconds.`),!1}function x0(e){const t=new Date().toISOString();e.currentRun&&(e.currentRun.archivedAt=t,e.historicalRuns??(e.historicalRuns=[]),e.historicalRuns.push(e.currentRun)),e.currentRun={id:Xm(),createdAt:t}}Ym.config({quiet:!0});var vu=(e=>(e.Server="server",e.Analyzer="analyzer",e.Capture="capture",e.Controller="controller",e.Worker="worker",e.Project="project",e.Other="other",e))(vu||{});class b0 extends Um{constructor(){super(...arguments),this.processes=new Map}register(t){const r=Wm(),{process:s,type:a,name:o,metadata:i,parentId:l}=t,d={id:r,type:a,name:o,pid:s.pid,state:"running",startedAt:Date.now(),metadata:i,parentId:l,children:[]};if(this.processes.set(r,{info:d,process:s}),l){const h=this.processes.get(l);h&&(h.info.children=h.info.children||[],h.info.children.push(r))}const u=(h,m)=>{this.handleProcessExit(r,h,m)},p=h=>{this.handleProcessError(r,h)};return s.on("exit",u),s.on("error",p),s.__cleanup=()=>{s.removeListener("exit",u),s.removeListener("error",p)},this.emit("processStarted",d),r}unregister(t){const r=this.processes.get(t);return r?(r.process.__cleanup&&r.process.__cleanup(),this.processes.delete(t),!0):!1}getInfo(t){const r=this.processes.get(t);return r?{...r.info}:null}listAll(){return Array.from(this.processes.values()).map(t=>({...t.info}))}listByType(t){return this.listAll().filter(r=>r.type===t)}listByState(t){return this.listAll().filter(r=>r.state===t)}findByName(t){return this.listAll().filter(r=>r.name===t)}async shutdown(t,r={}){const s=this.processes.get(t);if(!s)throw new Error(`Process not found: ${t}`);const{info:a,process:o}=s;if(a.state==="completed"||a.state==="failed"||a.state==="killed")return;if(r.shutdownChildren&&a.children&&a.children.length>0&&await Promise.all(a.children.map(l=>this.shutdown(l,r))),o.pid)try{await Jr(o.pid,l=>console.log(`[Process ${t}] ${l}`))}catch(l){console.warn(`Error killing process ${t}:`,l)}await new Promise(l=>setTimeout(l,100)),a.state==="running"&&(a.state="killed",a.endedAt=Date.now());const i=o.__cleanup;i&&i()}async shutdownByType(t,r={}){const s=this.listByType(t);await Promise.all(s.map(a=>this.shutdown(a.id,r)))}async shutdownAll(t={}){const r=this.listAll();await Promise.all(r.map(s=>this.shutdown(s.id,t)))}cleanupCompleted(t={}){const{retentionMs:r=6e4}=t,s=Date.now();for(const[a,o]of this.processes.entries()){const{info:i}=o;if((i.state==="completed"||i.state==="failed"||i.state==="killed")&&i.endedAt&&s-i.endedAt>r){const l=o.process.__cleanup;l&&l(),this.processes.delete(a)}}}handleProcessExit(t,r,s){const a=this.processes.get(t);if(!a)return;const{info:o}=a;o.endedAt=Date.now(),o.exitCode=r,o.signal=s,r===0?o.state="completed":s?o.state="killed":o.state="failed",this.emit("processExited",o)}handleProcessError(t,r){const s=this.processes.get(t);if(!s)return;const{info:a}=s;a.endedAt=Date.now(),a.state="failed",a.metadata={...a.metadata,error:r.message},this.emit("processExited",a)}}let ho=null;function v0(){return ho||(ho=new b0),ho}const w0={stdoutToConsole:!0,stdoutToFile:!0,stderrToConsole:!0,stderrToFile:!0};function N0({command:e,args:t,workingDir:r,outputOptions:s=w0,processName:a,env:o}){const i={...process.env,...o||{},CODEYAM_PROCESS_NAME:`codeyam-${a}`},l=kt(e,t,{cwd:r,env:i});return v0().register({process:l,type:vu.Other,name:a,metadata:{command:e,args:t,workingDir:r}}),{promise:new Promise(p=>{const h=f=>{const y=te.join(r,"log.txt");Q.appendFile(y,f,g=>{g&&console.log("Error writing to log file:",g)})},m=(f,y="")=>{const g=new Date().toLocaleString();return f.split(`
35
35
  `).map(b=>b.trim()?`[${g}]${y} ${b}`:b).join(`
@@ -38,9 +38,9 @@ ${h.map(m=>`+${m}`).join(`
38
38
  `),s.stderrCallback&&s.stderrCallback(y)}),l.on("exit",function(f){p(f)})}),process:l}}function S0(e){const t=[];return Object.keys(e).forEach(r=>{const s=e[r];s!==void 0&&(typeof s=="boolean"?s&&t.push(`--${r}`):s!==null&&t.push(`--${r}`,String(s)))}),t}function C0({absoluteCodeyamRootPath:e,startEnv:t,startArgs:r,outputOptions:s}){const a=Object.entries(t).map(([i,l])=>`${i}=${l}`).join(`
39
39
  `);Q.writeFileSync(`${e}/.env`,a);const o=S0(r);return N0({command:"node",args:["--enable-source-maps","./dist/project/start.js",...o],workingDir:e,outputOptions:s,processName:"analyzer",env:t})}const k0="/tmp/codeyam/local-dev";function wu(e){return G.join(k0,e)}function Nu(e){return G.join(wu(e),"codeyam")}function zt(e){return G.join(wu(e),"project")}function es(e){return G.join(Nu(e),"log.txt")}const j0=[".sync-metadata.json","__codeyamMocks__"];async function _0(e,t={}){const{port:r,silent:s=!0}=t,a=zt(e);if(r)try{Me(`lsof -ti:${r} | xargs kill -9 2>/dev/null || true`,{stdio:s?"ignore":"inherit"})}catch{}try{Me(`lsof +D "${a}" 2>/dev/null | grep node | awk '{print $2}' | xargs kill -9 2>/dev/null || true`,{stdio:s?"ignore":"inherit"})}catch{}await new Promise(o=>setTimeout(o,500))}async function E0(e,t={}){const{killProcesses:r=!0,port:s,silent:a=!0}=t,o=zt(e),i=[],l=[];if(!Q.existsSync(o))return{removed:i,errors:l};r&&await _0(e,{port:s,silent:a});for(const d of j0){const u=G.join(o,d);if(Q.existsSync(u))try{(await Ae.stat(u)).isDirectory()?await Ae.rm(u,{recursive:!0,force:!0}):await Ae.unlink(u),i.push(d)}catch(p){l.push(`${d}: ${p instanceof Error?p.message:String(p)}`)}}return{removed:i,errors:l}}const P0=G.dirname(pa(import.meta.url));function A0(e){let t=e;for(;t!==G.dirname(t);){const r=G.join(t,"package.json");if(Q.existsSync(r))try{if(JSON.parse(Q.readFileSync(r,"utf8")).name==="@codeyam/codeyam-cli")return t}catch{}t=G.dirname(t)}throw new Error("Could not find @codeyam/codeyam-cli package root")}function wa(){const e=A0(P0);return G.join(e,"analyzer-template")}function yr(e){return Nu(e)}function T0(){const e=wa();return Q.existsSync(G.join(e,".finalized"))}async function ec(e){const t=wa(),r=yr(e),s=Date.now(),a=()=>`${((Date.now()-s)/1e3).toFixed(1)}s`;if(!Q.existsSync(t))throw new Error(`Analyzer template not found at ${t}. Did the build process complete successfully?`);await Ae.mkdir(G.dirname(r),{recursive:!0}),console.log(`[createAnalyzer] Starting rsync: ${t} → ${r}`),await h0({sourcePath:t,destinationPath:r,silent:!0}),console.log(`[createAnalyzer] rsync completed (${a()})`),Q.existsSync(G.join(r,"dist"))||(console.warn("[createAnalyzer] WARNING: dist/ not found after rsync — template may not be built. Attempting build..."),Me("npm install --include=dev && npm run build",{cwd:r,stdio:"pipe",timeout:3e5}),console.log(`[createAnalyzer] npm install + build completed (${a()})`)),console.log(`[createAnalyzer] Done (${a()})`)}function xr(e,t,r,s){const a=yr(e);if(!Q.existsSync(a))throw new Error(`Analyzer not found at ${a}. The analyzer template may not be initialized. Try running 'codeyam init' or contact support if the issue persists.`);const o=void 0;return C0({absoluteCodeyamRootPath:a,startEnv:t,startArgs:r,outputOptions:{stdoutToConsole:!1,stdoutToFile:!0,stdoutCallback:o,stderrToConsole:!1,stderrToFile:!0,stderrCallback:o}})}function M0(e){const t=wa(),r=yr(e),s=G.join(t,".build-info.json"),a=G.join(r,".build-info.json");if(!Q.existsSync(s))return{isFresh:!1,reason:"Template build marker missing - template may be corrupted"};if(!Q.existsSync(r))return{isFresh:!1,reason:"Cached analyzer does not exist"};if(!Q.existsSync(a))return{isFresh:!1,reason:"Cached analyzer build marker missing - was created with old version"};try{const o=JSON.parse(Q.readFileSync(s,"utf8")),i=JSON.parse(Q.readFileSync(a,"utf8"));return o.buildTime>i.buildTime?{isFresh:!1,reason:`Template is newer (${o.buildTimestamp}) than cached version (${i.buildTimestamp})`}:{isFresh:!0}}catch(o){return{isFresh:!1,reason:`Error reading build markers: ${o.message}`}}}async function ts(e,t){const r=yr(e);if(!Q.existsSync(r)){t.update("Creating analyzer..."),await ec(e);return}const s=M0(e);s.isFresh||(t.update(`Updating analyzer (${s.reason})...`),await ec(e),t.update("Analyzer updated"))}async function vi(e){await E0(e,{killProcesses:!1})}const $0=G.dirname(pa(import.meta.url));function Na(){let e=$0;for(;e!==G.dirname(e);){const t=G.join(e,"package.json");if(Q.existsSync(t))try{if(JSON.parse(Q.readFileSync(t,"utf8")).name==="@codeyam/codeyam-cli")return e}catch{}e=G.dirname(e)}return null}function or(e){if(!Q.existsSync(e))return null;try{return JSON.parse(Q.readFileSync(e,"utf8"))}catch{return null}}function F0(){const e=Na();if(e){const t=[G.join(e,"src/webserver/build-info.json"),G.join(e,"codeyam-cli/src/webserver/build-info.json")];for(const r of t){const s=or(r);if(s!=null&&s.semanticVersion)return s.semanticVersion}}return"unknown"}function R0(){const e=Na();if(e){const t=G.join(e,"package.json");try{const r=JSON.parse(Q.readFileSync(t,"utf8"));if(r.version)return r.version}catch{}}return"unknown"}const wi=F0(),mo=R0();function Ni(){if(mo!=="unknown"&&mo!=="0.1.0")return mo;const e=Na();if(e)for(const t of[G.join(e,"src/webserver/build-info.json"),G.join(e,"codeyam-cli/src/webserver/build-info.json")]){const r=or(t);if(r!=null&&r.buildNumber)return`dev (build ${r.buildNumber})`}return"dev"}function Su(e){const t=Na();let r=null;if(t){const d=[G.join(t,"src/webserver/build-info.json"),G.join(t,"codeyam-cli/src/webserver/build-info.json")];for(const u of d)if(r=or(u),r)break}const s=wa(),a=G.join(s,".build-info.json"),o=or(a);let i=null;if(e){const d=yr(e),u=G.join(d,".build-info.json");i=or(u)}let l=!1;return o&&i?l=o.buildTime>i.buildTime:o&&!i&&e&&(l=!0),{cliVersion:wi,webserverVersion:r,templateVersion:o,cachedAnalyzerVersion:i,isCacheStale:l}}function Sa(e){const t=yr(e),r=G.join(t,".build-info.json"),s=or(r);return(s==null?void 0:s.version)??null}function Si(){const e=Ce();return e?G.join(e,".codeyam","server.json"):null}function Zj(e){const t=Si();t&&Q.writeFileSync(t,JSON.stringify(e,null,2))}function Ca(){const e=Si();if(!e||!Q.existsSync(e))return null;try{const t=Q.readFileSync(e,"utf8");return JSON.parse(t)}catch{return null}}function Ci(){const e=Si();if(e)try{Q.unlinkSync(e)}catch{}}function Cu(e){try{return process.kill(e,0),!0}catch{return!1}}function ku(){try{const e=process.platform==="win32",r=Me(e?'tasklist /FI "IMAGENAME eq node.exe" /FO CSV /NH':"ps aux | grep codeyam-server | grep -v grep",{encoding:"utf8",stdio:["pipe","pipe","pipe"]}).trim();if(!r)return[];const s=[];if(e)for(const a of r.split(`
40
40
  `)){const o=a.match(/"[^"]*","(\d+)"/);if(o){const i=parseInt(o[1],10);if(!isNaN(i))try{Me(`wmic process where "ProcessId=${i}" get CommandLine /FORMAT:LIST`,{encoding:"utf8",stdio:["pipe","pipe","pipe"]}).includes("codeyam-server")&&s.push(i)}catch{}}}else for(const a of r.split(`
41
- `)){const o=a.trim().split(/\s+/);if(o.length>=2){const i=parseInt(o[1],10);isNaN(i)||s.push(i)}}return s}catch{return[]}}function Xj(){const e=Ca();if(e)if(!Cu(e.pid))Ci();else return{running:!0,state:e};const t=ku();return t.length>0?{running:!0,pids:t}:{running:!1}}function D0(e,t=5e3){if(e.length===0)return!0;const r=Date.now()+t;for(;Date.now()<r;){if(!e.some(a=>Cu(a)))return!0;Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,100)}return!1}function e_(){let e=!1;const t=[],r=Ca();if(r){try{process.kill(r.pid,"SIGTERM"),t.push(r.pid),e=!0}catch{}Ci()}const s=ku();for(const a of s)try{process.kill(a,"SIGTERM"),t.includes(a)||t.push(a),e=!0}catch{}return D0(t),e}function t_(e,t,r=10,s=10){if(t(e))return e;for(let a=1;a<=s;a++){const o=e+a*r;if(t(o))return o}throw new Error(`Could not find a free port starting from ${e} (tried ${s} candidates)`)}function n_(e){try{return Me(`lsof -ti:${e}`,{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!1}catch{return!0}}const I0="/assets/globals-L-aUIeux.css";function tc({text:e,subtext:t,linkText:r,linkTo:s}){const[a,o]=E(!1);return a?null:n("div",{className:"bg-blue-100 border rounded border-blue-800 shadow-sm mx-6 mt-6",children:c("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:[c("div",{className:"flex items-center gap-3 flex-1",children:[n("div",{className:"shrink-0",children:n("svg",{className:"w-5 h-5 text-yellow-600",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),c("div",{className:"flex-1",children:[n("p",{className:"text-sm font-medium text-blue-900",children:e}),n("p",{className:"text-xs text-blue-700 mt-0.5",children:t})]}),n(Ee,{to:s,className:"shrink-0 px-4 py-2 bg-blue-600 text-white text-sm font-medium rounded hover:bg-blue-700 transition-colors",children:r})]}),n("button",{type:"button",onClick:()=>o(!0),className:"shrink-0 ml-4 p-1 rounded text-blue-600 hover:text-blue-800 hover:bg-blue-100 transition-colors cursor-pointer","aria-label":"Dismiss banner",children:n("svg",{className:"w-5 h-5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M6 18L18 6M6 6l12 12"})})})]})})}function O0({version:e}){return n("div",{className:"px-6 sm:px-12 pb-8 mt-auto pt-8",children:c("div",{className:"border-t border-cygray-30 pt-6 flex flex-wrap justify-between items-center gap-4",children:[c("div",{className:"flex items-center gap-3",children:[n("span",{className:"font-mono text-sm font-semibold tracking-widest text-cyblack-100",children:"CODEYAM"}),e&&n("span",{className:"font-mono text-xs text-gray-400",children:e})]}),c("div",{className:"flex items-center gap-4 font-mono text-xs uppercase tracking-widest",children:[n("a",{href:"https://blog.codeyam.com/",target:"_blank",rel:"noopener noreferrer",className:"text-cyblack-100 underline underline-offset-4 hover:text-primary-100",children:"Read the Blog"}),n("span",{className:"text-cygray-30",children:"|"}),n("a",{href:"https://discord.gg/x4uAgaRdwF",target:"_blank",rel:"noopener noreferrer",className:"text-cyblack-100 underline underline-offset-4 hover:text-primary-100",children:"Join Discord"})]})]})})}function L0({serverVersion:e}){const[t,r]=E("stale"),[s,a]=E(null),o=async()=>{r("restarting"),a(null);try{if(!(await fetch("/api/restart-server",{method:"POST"})).ok)throw new Error("Failed to restart server");r("reconnecting");let l=0;const d=30,u=1e3,p=async()=>{try{if((await fetch("/api/health")).ok){window.location.reload();return}}catch{}l++,l<d?setTimeout(()=>void p(),u):(a("Server took too long to restart. Please refresh manually."),r("stale"))};setTimeout(()=>void p(),500)}catch(i){a(i instanceof Error?i.message:"Failed to restart server"),r("stale")}};return n("div",{className:"bg-amber-100 border rounded border-amber-700 shadow-sm mx-6 mt-6",children:n("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:c("div",{className:"flex items-center gap-3 flex-1",children:[n("div",{className:"shrink-0",children:n("svg",{className:"w-5 h-5 text-amber-600",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})})}),c("div",{className:"flex-1",children:[t==="stale"&&c(we,{children:[n("p",{className:"text-sm font-medium text-amber-900",children:"Dashboard server is out of date"}),c("p",{className:"text-xs text-amber-700 mt-0.5",children:["Server version: ",e,". A newer version of CodeYam CLI is installed. Restart the server to get the latest features."]}),s&&n("p",{className:"text-xs text-red-600 mt-1",children:s})]}),t==="restarting"&&c(we,{children:[n("p",{className:"text-sm font-medium text-amber-900",children:"Restarting server..."}),n("p",{className:"text-xs text-amber-700 mt-0.5",children:"Please wait while the server restarts."})]}),t==="reconnecting"&&c(we,{children:[n("p",{className:"text-sm font-medium text-amber-900",children:"Reconnecting..."}),n("p",{className:"text-xs text-amber-700 mt-0.5",children:"Waiting for the server to come back online."})]})]}),t==="stale"&&n("button",{type:"button",onClick:()=>void o(),className:"shrink-0 px-4 py-2 bg-amber-600 text-white text-sm font-medium rounded hover:bg-amber-700 transition-colors cursor-pointer",children:"Restart Server"}),(t==="restarting"||t==="reconnecting")&&c("div",{className:"shrink-0 flex items-center gap-2 px-4 py-2 text-amber-700 text-sm",children:[c("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[n("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),n("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),t==="restarting"?"Stopping...":"Reconnecting..."]})]})})})}function xt({content:e,label:t="Copy",copiedLabel:r="✓ Copied!",className:s="",duration:a=2e3,ariaLabel:o,icon:i=!1,iconSize:l=14}){const[d,u]=E(!1),p=ie(()=>{navigator.clipboard.writeText(e).then(()=>{u(!0),setTimeout(()=>u(!1),a)}).catch(h=>{console.error("Failed to copy:",h)})},[e,a]);return n("button",{onClick:p,className:`cursor-pointer ${s}`,disabled:d,"aria-label":o||(d?"Copied to clipboard":"Copy to clipboard"),"aria-live":"polite",children:i?d?n(Ft,{size:l,className:"text-green-500"}):n(Bt,{size:l}):d?r:t})}function B0({currentVersion:e,latestVersion:t}){const[r,s]=E(!1);if(r)return null;const a="npm install -g @codeyam/codeyam-cli@latest && codeyam stop && codeyam";return n("div",{className:"bg-emerald-100 border rounded border-emerald-700 shadow-sm mx-6 mt-6",children:c("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:[c("div",{className:"flex items-center gap-3 flex-1",children:[n("div",{className:"shrink-0",children:n("svg",{className:"w-5 h-5 text-emerald-600",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M7 11l5-5m0 0l5 5m-5-5v12"})})}),c("div",{className:"flex-1",children:[n("p",{className:"text-sm font-medium text-emerald-900",children:"A new version of CodeYam CLI is available"}),c("p",{className:"text-xs text-emerald-700 mt-0.5",children:["Current: ",e," → Latest: ",t]})]}),c("div",{className:"shrink-0 flex items-center gap-2",children:[n("code",{className:"text-xs bg-emerald-200 text-emerald-900 px-2 py-1.5 rounded font-mono",children:a}),n(xt,{content:a,label:"Copy",copiedLabel:"Copied!",className:"px-3 py-1.5 bg-emerald-600 text-white text-xs font-medium rounded hover:bg-emerald-700 transition-colors"})]})]}),n("button",{type:"button",onClick:()=>s(!0),className:"shrink-0 ml-4 p-1 rounded text-emerald-600 hover:text-emerald-800 hover:bg-emerald-200 transition-colors cursor-pointer","aria-label":"Dismiss banner",children:n("svg",{className:"w-5 h-5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M6 18L18 6M6 6l12 12"})})})]})})}let $r=null,Ns=0;const z0=3600*1e3;function Y0(e,t){const r=e.split(".").map(Number),s=t.split(".").map(Number);for(let a=0;a<Math.max(r.length,s.length);a++){const o=r[a]??0,i=s[a]??0;if(isNaN(o)||isNaN(i))return!1;if(o>i)return!0;if(o<i)return!1}return!1}async function U0(){const e=Ni();if($r&&Date.now()-Ns<z0)return $r;try{const t=new AbortController,r=setTimeout(()=>t.abort(),5e3),s=await fetch("https://registry.npmjs.org/@codeyam/codeyam-cli/latest",{signal:t.signal});if(clearTimeout(r),!s.ok){const l={updateAvailable:!1,latestVersion:null,currentVersion:e};return $r=l,Ns=Date.now(),l}const o=(await s.json()).version;if(!o){const l={updateAvailable:!1,latestVersion:null,currentVersion:e};return $r=l,Ns=Date.now(),l}const i={updateAvailable:Y0(o,e),latestVersion:o,currentVersion:e};return $r=i,Ns=Date.now(),i}catch{return{updateAvailable:!1,latestVersion:null,currentVersion:e}}}function sa(e){return G.join(e,".codeyam","queue.json")}function Lr(e){const t=sa(e);if(!Q.existsSync(t))return{paused:!1,jobs:[]};try{const r=Q.readFileSync(t,"utf8");return JSON.parse(r)}catch(r){return console.error("Failed to load queue state:",r),{paused:!1,jobs:[]}}}function W0(e,t){const r=sa(e),s=G.dirname(r);Q.existsSync(s)||Q.mkdirSync(s,{recursive:!0});try{Q.writeFileSync(r,JSON.stringify(t,null,2),"utf8")}catch(a){throw console.error("Failed to save queue state:",a),a}}const ca=class ca extends Zr{constructor(t){super(),this.watcher=null,this.debounceTimers=new Map,this.DEBOUNCE_MS=300,this.options=t}start(){try{this.watcher=ce.watch(this.options.projectRootPath,{recursive:!0},(t,r)=>{if(!r||!/\.(ts|tsx|js|jsx|css|scss|json|svg|html)$/.test(r)||ca.IGNORED_DIRS.some(a=>r.includes(a+"/")||r.includes(a+"\\")))return;const s=this.debounceTimers.get(r);s&&clearTimeout(s),this.debounceTimers.set(r,setTimeout(()=>{this.debounceTimers.delete(r),this.syncFile(r)},this.DEBOUNCE_MS))}),console.log(`[InteractiveSyncWatcher] Watching ${this.options.projectRootPath} for changes`)}catch(t){console.error("[InteractiveSyncWatcher] Failed to start:",t)}}syncFile(t){const r=te.join(this.options.projectRootPath,t),s=te.join(this.options.tmpProjectPath,t);try{if(!ce.existsSync(r)){ce.existsSync(s)&&(ce.unlinkSync(s),console.log(`[InteractiveSyncWatcher] Removed: ${t}`));return}const a=te.dirname(s);ce.existsSync(a)||ce.mkdirSync(a,{recursive:!0}),ce.copyFileSync(r,s);const o=te.basename(t);console.log(`[InteractiveSyncWatcher] Synced: ${t}`);const i={type:"file-synced",fileName:o,filePath:t,timestamp:Date.now()};this.emit("sync",i)}catch(a){console.error(`[InteractiveSyncWatcher] Error syncing ${t}:`,a);const o={type:"error",fileName:te.basename(t),filePath:t,timestamp:Date.now()};this.emit("sync",o)}}stop(){this.watcher&&(this.watcher.close(),this.watcher=null);for(const t of this.debounceTimers.values())clearTimeout(t);this.debounceTimers.clear(),console.log("[InteractiveSyncWatcher] Stopped")}};ca.IGNORED_DIRS=["node_modules",".git",".codeyam","__codeyamMocks__",".next","dist","build",".turbo",".vercel","coverage",".cache"];let Lo=ca,J0=class extends Zr{constructor(){super(),this.setMaxListeners(20)}emitFileSynced(t,r){this.emit("event",{type:"file-synced",fileName:t,filePath:r,timestamp:Date.now()})}emitError(t,r){this.emit("event",{type:"sync-error",fileName:t,filePath:r,timestamp:Date.now()})}};const Bo="__codeyam_dev_mode_event_emitter__";globalThis[Bo]||(globalThis[Bo]=new J0);const nc=globalThis[Bo],zo=new Map;async function H0(e,t,r){console.log(`[Queue] Executing job ${e.id} (${e.type})`);try{if(e.type==="analysis")await V0(e,t,r);else if(e.type==="baseline")await K0(e,t,r);else if(e.type==="recapture")await G0(e,t,r);else if(e.type==="capture-only")await q0(e,t,r);else if(e.type==="debug-setup")await Q0(e,t,r);else if(e.type==="interactive-start")await Z0(e,t,r);else if(e.type==="interactive-stop")await X0(e,t,r);else throw new Error(`Unknown job type: ${e.type}`);console.log(`[Queue] Job ${e.id} completed successfully`)}catch(s){throw console.error(`[Queue] Job ${e.id} failed:`,s),s}}async function V0(e,t,r){var b,v,N,w;const{projectSlug:s,commitSha:a,entityShas:o}=e;if(!a)throw new Error("Analysis job missing commitSha");const i=o||[],l=e.onlyDataStructure,d=es(s),u=C=>{const k=`CodeYam Log Level 1: ${C}`;console.log(`[Queue] ${C}`);try{Q.mkdirSync(G.dirname(d),{recursive:!0}),Q.appendFileSync(d,`[${new Date().toLocaleString()}] ${k}
41
+ `)){const o=a.trim().split(/\s+/);if(o.length>=2){const i=parseInt(o[1],10);isNaN(i)||s.push(i)}}return s}catch{return[]}}function Xj(){const e=Ca();if(e)if(!Cu(e.pid))Ci();else return{running:!0,state:e};const t=ku();return t.length>0?{running:!0,pids:t}:{running:!1}}function D0(e,t=5e3){if(e.length===0)return!0;const r=Date.now()+t;for(;Date.now()<r;){if(!e.some(a=>Cu(a)))return!0;Atomics.wait(new Int32Array(new SharedArrayBuffer(4)),0,0,100)}return!1}function e_(){let e=!1;const t=[],r=Ca();if(r){try{process.kill(r.pid,"SIGTERM"),t.push(r.pid),e=!0}catch{}Ci()}const s=ku();for(const a of s)try{process.kill(a,"SIGTERM"),t.includes(a)||t.push(a),e=!0}catch{}return D0(t),e}function t_(e,t,r=10,s=10){if(t(e))return e;for(let a=1;a<=s;a++){const o=e+a*r;if(t(o))return o}throw new Error(`Could not find a free port starting from ${e} (tried ${s} candidates)`)}function n_(e){try{return Me(`lsof -ti:${e}`,{encoding:"utf8",stdio:["pipe","pipe","pipe"]}),!1}catch{return!0}}const I0="/assets/globals-L-aUIeux.css";function tc({text:e,subtext:t,linkText:r,linkTo:s}){const[a,o]=E(!1);return a?null:n("div",{className:"bg-blue-100 border rounded border-blue-800 shadow-sm mx-6 mt-6",children:c("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:[c("div",{className:"flex items-center gap-3 flex-1",children:[n("div",{className:"shrink-0",children:n("svg",{className:"w-5 h-5 text-yellow-600",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"})})}),c("div",{className:"flex-1",children:[n("p",{className:"text-sm font-medium text-blue-900",children:e}),n("p",{className:"text-xs text-blue-700 mt-0.5",children:t})]}),n(Ee,{to:s,className:"shrink-0 px-4 py-2 bg-blue-600 text-white text-sm font-medium rounded hover:bg-blue-700 transition-colors",children:r})]}),n("button",{type:"button",onClick:()=>o(!0),className:"shrink-0 ml-4 p-1 rounded text-blue-600 hover:text-blue-800 hover:bg-blue-100 transition-colors cursor-pointer","aria-label":"Dismiss banner",children:n("svg",{className:"w-5 h-5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M6 18L18 6M6 6l12 12"})})})]})})}function O0({version:e}){return n("div",{className:"px-6 sm:px-12 pb-8 mt-auto pt-8",children:c("div",{className:"border-t border-cygray-30 pt-6 flex flex-wrap justify-between items-center gap-4",children:[c("div",{className:"flex items-center gap-3",children:[n("span",{className:"font-mono text-sm font-semibold tracking-widest text-cyblack-100",children:"CODEYAM"}),e&&n("span",{className:"font-mono text-xs text-gray-400",children:e})]}),c("div",{className:"flex items-center gap-4 font-mono text-xs uppercase tracking-widest",children:[n("a",{href:"https://blog.codeyam.com/",target:"_blank",rel:"noopener noreferrer",className:"text-cyblack-100 underline underline-offset-4 hover:text-primary-100",children:"Read the Blog"}),n("span",{className:"text-cygray-30",children:"|"}),n("a",{href:"https://discord.com/invite/x4uAgaRdwF",target:"_blank",rel:"noopener noreferrer",className:"text-cyblack-100 underline underline-offset-4 hover:text-primary-100",children:"Join Discord"})]})]})})}function L0({serverVersion:e}){const[t,r]=E("stale"),[s,a]=E(null),o=async()=>{r("restarting"),a(null);try{if(!(await fetch("/api/restart-server",{method:"POST"})).ok)throw new Error("Failed to restart server");r("reconnecting");let l=0;const d=30,u=1e3,p=async()=>{try{if((await fetch("/api/health")).ok){window.location.reload();return}}catch{}l++,l<d?setTimeout(()=>void p(),u):(a("Server took too long to restart. Please refresh manually."),r("stale"))};setTimeout(()=>void p(),500)}catch(i){a(i instanceof Error?i.message:"Failed to restart server"),r("stale")}};return n("div",{className:"bg-amber-100 border rounded border-amber-700 shadow-sm mx-6 mt-6",children:n("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:c("div",{className:"flex items-center gap-3 flex-1",children:[n("div",{className:"shrink-0",children:n("svg",{className:"w-5 h-5 text-amber-600",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"})})}),c("div",{className:"flex-1",children:[t==="stale"&&c(we,{children:[n("p",{className:"text-sm font-medium text-amber-900",children:"Dashboard server is out of date"}),c("p",{className:"text-xs text-amber-700 mt-0.5",children:["Server version: ",e,". A newer version of CodeYam CLI is installed. Restart the server to get the latest features."]}),s&&n("p",{className:"text-xs text-red-600 mt-1",children:s})]}),t==="restarting"&&c(we,{children:[n("p",{className:"text-sm font-medium text-amber-900",children:"Restarting server..."}),n("p",{className:"text-xs text-amber-700 mt-0.5",children:"Please wait while the server restarts."})]}),t==="reconnecting"&&c(we,{children:[n("p",{className:"text-sm font-medium text-amber-900",children:"Reconnecting..."}),n("p",{className:"text-xs text-amber-700 mt-0.5",children:"Waiting for the server to come back online."})]})]}),t==="stale"&&n("button",{type:"button",onClick:()=>void o(),className:"shrink-0 px-4 py-2 bg-amber-600 text-white text-sm font-medium rounded hover:bg-amber-700 transition-colors cursor-pointer",children:"Restart Server"}),(t==="restarting"||t==="reconnecting")&&c("div",{className:"shrink-0 flex items-center gap-2 px-4 py-2 text-amber-700 text-sm",children:[c("svg",{className:"w-4 h-4 animate-spin",fill:"none",viewBox:"0 0 24 24",children:[n("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),n("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),t==="restarting"?"Stopping...":"Reconnecting..."]})]})})})}function xt({content:e,label:t="Copy",copiedLabel:r="✓ Copied!",className:s="",duration:a=2e3,ariaLabel:o,icon:i=!1,iconSize:l=14}){const[d,u]=E(!1),p=ie(()=>{navigator.clipboard.writeText(e).then(()=>{u(!0),setTimeout(()=>u(!1),a)}).catch(h=>{console.error("Failed to copy:",h)})},[e,a]);return n("button",{onClick:p,className:`cursor-pointer ${s}`,disabled:d,"aria-label":o||(d?"Copied to clipboard":"Copy to clipboard"),"aria-live":"polite",children:i?d?n(Ft,{size:l,className:"text-green-500"}):n(Bt,{size:l}):d?r:t})}function B0({currentVersion:e,latestVersion:t}){const[r,s]=E(!1);if(r)return null;const a="npm install -g @codeyam/codeyam-cli@latest && codeyam stop && codeyam";return n("div",{className:"bg-emerald-100 border rounded border-emerald-700 shadow-sm mx-6 mt-6",children:c("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center justify-between",children:[c("div",{className:"flex items-center gap-3 flex-1",children:[n("div",{className:"shrink-0",children:n("svg",{className:"w-5 h-5 text-emerald-600",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M7 11l5-5m0 0l5 5m-5-5v12"})})}),c("div",{className:"flex-1",children:[n("p",{className:"text-sm font-medium text-emerald-900",children:"A new version of CodeYam CLI is available"}),c("p",{className:"text-xs text-emerald-700 mt-0.5",children:["Current: ",e," → Latest: ",t]})]}),c("div",{className:"shrink-0 flex items-center gap-2",children:[n("code",{className:"text-xs bg-emerald-200 text-emerald-900 px-2 py-1.5 rounded font-mono",children:a}),n(xt,{content:a,label:"Copy",copiedLabel:"Copied!",className:"px-3 py-1.5 bg-emerald-600 text-white text-xs font-medium rounded hover:bg-emerald-700 transition-colors"})]})]}),n("button",{type:"button",onClick:()=>s(!0),className:"shrink-0 ml-4 p-1 rounded text-emerald-600 hover:text-emerald-800 hover:bg-emerald-200 transition-colors cursor-pointer","aria-label":"Dismiss banner",children:n("svg",{className:"w-5 h-5",fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"2",viewBox:"0 0 24 24",stroke:"currentColor",children:n("path",{d:"M6 18L18 6M6 6l12 12"})})})]})})}let $r=null,Ns=0;const z0=3600*1e3;function Y0(e,t){const r=e.split(".").map(Number),s=t.split(".").map(Number);for(let a=0;a<Math.max(r.length,s.length);a++){const o=r[a]??0,i=s[a]??0;if(isNaN(o)||isNaN(i))return!1;if(o>i)return!0;if(o<i)return!1}return!1}async function U0(){const e=Ni();if($r&&Date.now()-Ns<z0)return $r;try{const t=new AbortController,r=setTimeout(()=>t.abort(),5e3),s=await fetch("https://registry.npmjs.org/@codeyam/codeyam-cli/latest",{signal:t.signal});if(clearTimeout(r),!s.ok){const l={updateAvailable:!1,latestVersion:null,currentVersion:e};return $r=l,Ns=Date.now(),l}const o=(await s.json()).version;if(!o){const l={updateAvailable:!1,latestVersion:null,currentVersion:e};return $r=l,Ns=Date.now(),l}const i={updateAvailable:Y0(o,e),latestVersion:o,currentVersion:e};return $r=i,Ns=Date.now(),i}catch{return{updateAvailable:!1,latestVersion:null,currentVersion:e}}}function sa(e){return G.join(e,".codeyam","queue.json")}function Lr(e){const t=sa(e);if(!Q.existsSync(t))return{paused:!1,jobs:[]};try{const r=Q.readFileSync(t,"utf8");return JSON.parse(r)}catch(r){return console.error("Failed to load queue state:",r),{paused:!1,jobs:[]}}}function W0(e,t){const r=sa(e),s=G.dirname(r);Q.existsSync(s)||Q.mkdirSync(s,{recursive:!0});try{Q.writeFileSync(r,JSON.stringify(t,null,2),"utf8")}catch(a){throw console.error("Failed to save queue state:",a),a}}const ca=class ca extends Zr{constructor(t){super(),this.watcher=null,this.debounceTimers=new Map,this.DEBOUNCE_MS=300,this.options=t}start(){try{this.watcher=ce.watch(this.options.projectRootPath,{recursive:!0},(t,r)=>{if(!r||!/\.(ts|tsx|js|jsx|css|scss|json|svg|html)$/.test(r)||ca.IGNORED_DIRS.some(a=>r.includes(a+"/")||r.includes(a+"\\")))return;const s=this.debounceTimers.get(r);s&&clearTimeout(s),this.debounceTimers.set(r,setTimeout(()=>{this.debounceTimers.delete(r),this.syncFile(r)},this.DEBOUNCE_MS))}),console.log(`[InteractiveSyncWatcher] Watching ${this.options.projectRootPath} for changes`)}catch(t){console.error("[InteractiveSyncWatcher] Failed to start:",t)}}syncFile(t){const r=te.join(this.options.projectRootPath,t),s=te.join(this.options.tmpProjectPath,t);try{if(!ce.existsSync(r)){ce.existsSync(s)&&(ce.unlinkSync(s),console.log(`[InteractiveSyncWatcher] Removed: ${t}`));return}const a=te.dirname(s);ce.existsSync(a)||ce.mkdirSync(a,{recursive:!0}),ce.copyFileSync(r,s);const o=te.basename(t);console.log(`[InteractiveSyncWatcher] Synced: ${t}`);const i={type:"file-synced",fileName:o,filePath:t,timestamp:Date.now()};this.emit("sync",i)}catch(a){console.error(`[InteractiveSyncWatcher] Error syncing ${t}:`,a);const o={type:"error",fileName:te.basename(t),filePath:t,timestamp:Date.now()};this.emit("sync",o)}}stop(){this.watcher&&(this.watcher.close(),this.watcher=null);for(const t of this.debounceTimers.values())clearTimeout(t);this.debounceTimers.clear(),console.log("[InteractiveSyncWatcher] Stopped")}};ca.IGNORED_DIRS=["node_modules",".git",".codeyam","__codeyamMocks__",".next","dist","build",".turbo",".vercel","coverage",".cache"];let Lo=ca,J0=class extends Zr{constructor(){super(),this.setMaxListeners(20)}emitFileSynced(t,r){this.emit("event",{type:"file-synced",fileName:t,filePath:r,timestamp:Date.now()})}emitError(t,r){this.emit("event",{type:"sync-error",fileName:t,filePath:r,timestamp:Date.now()})}};const Bo="__codeyam_dev_mode_event_emitter__";globalThis[Bo]||(globalThis[Bo]=new J0);const nc=globalThis[Bo],zo=new Map;async function H0(e,t,r){console.log(`[Queue] Executing job ${e.id} (${e.type})`);try{if(e.type==="analysis")await V0(e,t,r);else if(e.type==="baseline")await K0(e,t,r);else if(e.type==="recapture")await G0(e,t,r);else if(e.type==="capture-only")await q0(e,t,r);else if(e.type==="debug-setup")await Q0(e,t,r);else if(e.type==="interactive-start")await Z0(e,t,r);else if(e.type==="interactive-stop")await X0(e,t,r);else throw new Error(`Unknown job type: ${e.type}`);console.log(`[Queue] Job ${e.id} completed successfully`)}catch(s){throw console.error(`[Queue] Job ${e.id} failed:`,s),s}}async function V0(e,t,r){var b,v,N,w;const{projectSlug:s,commitSha:a,entityShas:o}=e;if(!a)throw new Error("Analysis job missing commitSha");const i=o||[],l=e.onlyDataStructure,d=es(s),u=C=>{const k=`CodeYam Log Level 1: ${C}`;console.log(`[Queue] ${C}`);try{Q.mkdirSync(G.dirname(d),{recursive:!0}),Q.appendFileSync(d,`[${new Date().toLocaleString()}] ${k}
42
42
 
43
- `)}catch{}},{project:p}=await Ie(s);u("Preparing project cache..."),await vi(s),u("Preparing simulation engine..."),await ts(s,{update:C=>u(C)});const h=Sa(s),m={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:a,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),...!l&&i.length>0?{ENTITY_SHAS:i.join(",")}:{},...l?{ONLY_DATA_STRUCTURE:"true"}:{},...h?{ANALYZER_VERSION:h}:{},...process.env.CODEYAM_TRACE_TRANSFORMS?{CODEYAM_TRACE_TRANSFORMS:process.env.CODEYAM_TRACE_TRANSFORMS}:{}},f=(v=(b=p.metadata)==null?void 0:b.webapps)==null?void 0:v[0];if(!f)throw new Error("No webapps found in project metadata");const y={packageManager:((N=p.metadata)==null?void 0:N.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:0,noServer:!0,framework:f.framework,...l?{}:{orchestrateCapture:"local-sequential"}},g=xr(s,m,y),x=C=>{try{return process.kill(C,0),!0}catch{return!1}};await hn({commitSha:a,runStatusUpdate:{currentEntityShas:i,entityCount:i.length||((w=e.filePaths)==null?void 0:w.length)||0,analysesCompleted:0,capturesCompleted:0,createdAt:new Date().toISOString(),analyzerPid:g.process.pid}}),r==null||r.notifyChange("commit");try{try{const C=new Promise((k,j)=>setTimeout(()=>j(new Error("Analysis timed out after 60 minutes")),36e5));await Promise.race([g.promise,C]),await hn({commitSha:a,runStatusUpdate:{analyzerPid:void 0,capturePid:void 0},archiveCurrentRun:!0}),r==null||r.notifyChange("commit"),await hn({commitSha:a,runStatusUpdate:{currentEntityShas:[]}}),r==null||r.notifyChange("commit"),await new Promise(k=>setTimeout(k,2e3))}finally{if(g.process.pid)try{x(g.process.pid)&&await Jr(g.process.pid,()=>{})}catch{}}}catch(C){if(console.error(`[Queue] Analysis job ${e.id} failed:`,C),g.process.pid&&x(g.process.pid))try{await Jr(g.process.pid,()=>{})}catch{}try{await hn({commitSha:a,runStatusUpdate:{analyzerPid:void 0,capturePid:void 0,failedAt:new Date().toISOString(),failureReason:C instanceof Error?C.message:String(C)}}),r==null||r.notifyChange("commit")}catch(k){console.error("[Queue] Failed to update commit metadata after job failure:",k)}throw C}}async function K0(e,t,r){var m,f,y;const{projectSlug:s,commitSha:a}=e;if(!a)throw new Error("Baseline job missing commitSha");console.log(`[Queue] Starting baseline analysis for ${s}`);const{project:o}=await Ie(s);await vi(s),await ts(s,{update:g=>console.log(`[Queue] ${g}`)});const i=Sa(s),l={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",BRANCH_COMMIT_SHA:a,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),...i?{ANALYZER_VERSION:i}:{}},d=(f=(m=o.metadata)==null?void 0:m.webapps)==null?void 0:f[0];if(!d)throw new Error("No webapps found in project metadata");const u={packageManager:((y=o.metadata)==null?void 0:y.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:0,noServer:!0,framework:d.framework,orchestrateCapture:"local-sequential"},p=xr(s,l,u),h=g=>{try{return process.kill(g,0),!0}catch{return!1}};await hn({commitSha:a,runStatusUpdate:{createdAt:new Date().toISOString(),analyzerPid:p.process.pid}}),r==null||r.notifyChange("commit");try{const g=new Promise((x,b)=>setTimeout(()=>b(new Error("Baseline timed out after 4 hours")),144e5));await Promise.race([p.promise,g]),await hn({commitSha:a,runStatusUpdate:{analyzerPid:void 0,capturePid:void 0},archiveCurrentRun:!0}),r==null||r.notifyChange("commit"),console.log(`[Queue] Baseline completed for ${s}`),await new Promise(x=>setTimeout(x,2e3))}finally{if(p.process.pid)try{h(p.process.pid)&&await Jr(p.process.pid,()=>{})}catch{}}}async function G0(e,t,r){var f,y,g,x;const{projectSlug:s,analysisId:a,scenarioId:o,defaultWidth:i}=e;if(!a)throw new Error("Recapture job missing analysisId");const l=await Xt({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!l||!l.commit)throw new Error(`Analysis ${a} not found`);if(i){const{getDatabase:b}=await import("./index-oF2amaGI.js"),v=b(),N=await v.selectFrom("entities").select(["metadata"]).where("sha","=",l.entitySha).executeTakeFirst();let w={};N!=null&&N.metadata&&(typeof N.metadata=="string"?w=JSON.parse(N.metadata):w=N.metadata),w.defaultWidth=i,await v.updateTable("entities").set({metadata:JSON.stringify(w)}).where("sha","=",l.entitySha).execute()}await fr(a,b=>{if(b.readyToBeCaptured=!0,b.scenarios)for(const v of b.scenarios)(!o||v.name===o)&&(delete v.finishedAt,delete v.startedAt,delete v.screenshotStartedAt,delete v.screenshotFinishedAt,delete v.interactiveStartedAt,delete v.interactiveFinishedAt,delete v.error,delete v.errorStack);delete b.finishedAt});const{project:d}=await Ie(s);await ts(s,{update:b=>console.log(`[Queue] ${b}`)});const u=Sa(s),p={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:l.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),READY_TO_BE_CAPTURED:"true",ANALYSIS_IDS:a,...o?{SCENARIO_IDS:o}:{},...u?{ANALYZER_VERSION:u}:{}},h={packageManager:((f=d.metadata)==null?void 0:f.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:void 0,noServer:!0,framework:((x=(g=(y=d.metadata)==null?void 0:y.webapps)==null?void 0:g[0])==null?void 0:x.framework)??ot.Next,orchestrateCapture:"local-sequential"},m=xr(s,p,h);try{await m.promise}finally{try{m.process.kill("SIGTERM")}catch{}}}async function q0(e,t,r){var f,y,g,x;const{projectSlug:s,analysisId:a,scenarioId:o,defaultWidth:i}=e;if(!a)throw new Error("Capture-only job missing analysisId");const l=await Xt({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!l||!l.commit)throw new Error(`Analysis ${a} not found`);if(i){const{getDatabase:b}=await import("./index-oF2amaGI.js"),v=b(),N=await v.selectFrom("entities").select(["metadata"]).where("sha","=",l.entitySha).executeTakeFirst();let w={};N!=null&&N.metadata&&(typeof N.metadata=="string"?w=JSON.parse(N.metadata):w=N.metadata),w.defaultWidth=i,await v.updateTable("entities").set({metadata:JSON.stringify(w)}).where("sha","=",l.entitySha).execute()}await fr(a,b=>{if(b.readyToBeCaptured=!0,b.scenarios)for(const v of b.scenarios)(!o||v.name===o)&&(delete v.finishedAt,delete v.startedAt,delete v.screenshotStartedAt,delete v.screenshotFinishedAt,delete v.interactiveStartedAt,delete v.interactiveFinishedAt,delete v.error,delete v.errorStack);delete b.finishedAt});const{project:d}=await Ie(s);await ts(s,{update:b=>console.log(`[Queue] ${b}`)});const u=Sa(s);console.log("[Queue] executeCaptureOnlyJob: Setting CAPTURE_ONLY=true for capture without file regeneration");const p={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:l.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),READY_TO_BE_CAPTURED:"true",CAPTURE_ONLY:"true",ANALYSIS_IDS:a,...o?{SCENARIO_IDS:o}:{},...u?{ANALYZER_VERSION:u}:{}},h={packageManager:((f=d.metadata)==null?void 0:f.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:void 0,noServer:!0,fast:!0,framework:((x=(g=(y=d.metadata)==null?void 0:y.webapps)==null?void 0:g[0])==null?void 0:x.framework)??ot.Next,orchestrateCapture:"local-sequential"},m=xr(s,p,h);try{await m.promise}finally{try{m.process.kill("SIGTERM")}catch{}}}async function Q0(e,t,r){var m,f,y,g;const{projectSlug:s,analysisId:a,scenarioId:o}=e;if(!a)throw new Error("Debug setup job missing analysisId");const i=await Xt({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!i||!i.commit)throw new Error(`Analysis ${a} not found`);const{project:l}=await Ie(s);await vi(s),await ts(s,{update:x=>console.log(`[Queue] ${x}`)});const d={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:i.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),READY_TO_BE_CAPTURED:"true",ANALYSIS_IDS:a,PREP_ONLY:"true"};o&&(d.SCENARIO_IDS=o);const u={packageManager:((m=l.metadata)==null?void 0:m.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:void 0,noServer:!1,framework:((g=(y=(f=l.metadata)==null?void 0:f.webapps)==null?void 0:y[0])==null?void 0:g.framework)||ot.Next},h=await xr(s,d,u).promise;if(h!==0)throw new Error(`Prep process exited with code ${h}`)}async function Z0(e,t,r){var x,b,v,N;const{projectSlug:s,analysisId:a,scenarioId:o}=e;if(!a)throw new Error("Interactive start job missing analysisId");const i=await Xt({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!i||!i.commit)throw new Error(`Analysis ${a} not found`);const{project:l}=await Ie(s),d={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:i.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),READY_TO_BE_CAPTURED:"true",ANALYSIS_IDS:a,INTERACTIVE_MODE:"true"};o&&(d.INITIAL_SCENARIO_ID=o),i.scenarios&&i.scenarios.length>0&&(d.SCENARIO_IDS=i.scenarios.map(w=>w.id).join(","));const u=zt(s),p=te.join(u,".next","dev","lock");if(ce.existsSync(p)){console.log("[Queue] Found stale .next/dev/lock, cleaning up old processes");try{const w=Me(`pgrep -f ${JSON.stringify(u)} 2>/dev/null || true`,{encoding:"utf-8"}).trim();if(w)for(const C of w.split(`
43
+ `)}catch{}},{project:p}=await Ie(s);u("Preparing project cache..."),await vi(s),u("Preparing simulation engine..."),await ts(s,{update:C=>u(C)});const h=Sa(s),m={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:a,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),...!l&&i.length>0?{ENTITY_SHAS:i.join(",")}:{},...l?{ONLY_DATA_STRUCTURE:"true"}:{},...h?{ANALYZER_VERSION:h}:{},...process.env.CODEYAM_TRACE_TRANSFORMS?{CODEYAM_TRACE_TRANSFORMS:process.env.CODEYAM_TRACE_TRANSFORMS}:{}},f=(v=(b=p.metadata)==null?void 0:b.webapps)==null?void 0:v[0];if(!f)throw new Error("No webapps found in project metadata");const y={packageManager:((N=p.metadata)==null?void 0:N.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:0,noServer:!0,framework:f.framework,...l?{}:{orchestrateCapture:"local-sequential"}},g=xr(s,m,y),x=C=>{try{return process.kill(C,0),!0}catch{return!1}};await hn({commitSha:a,runStatusUpdate:{currentEntityShas:i,entityCount:i.length||((w=e.filePaths)==null?void 0:w.length)||0,analysesCompleted:0,capturesCompleted:0,createdAt:new Date().toISOString(),analyzerPid:g.process.pid}}),r==null||r.notifyChange("commit");try{try{const C=new Promise((k,j)=>setTimeout(()=>j(new Error("Analysis timed out after 60 minutes")),36e5));await Promise.race([g.promise,C]),await hn({commitSha:a,runStatusUpdate:{analyzerPid:void 0,capturePid:void 0},archiveCurrentRun:!0}),r==null||r.notifyChange("commit"),await hn({commitSha:a,runStatusUpdate:{currentEntityShas:[]}}),r==null||r.notifyChange("commit"),await new Promise(k=>setTimeout(k,2e3))}finally{if(g.process.pid)try{x(g.process.pid)&&await Jr(g.process.pid,()=>{})}catch{}}}catch(C){if(console.error(`[Queue] Analysis job ${e.id} failed:`,C),g.process.pid&&x(g.process.pid))try{await Jr(g.process.pid,()=>{})}catch{}try{await hn({commitSha:a,runStatusUpdate:{analyzerPid:void 0,capturePid:void 0,failedAt:new Date().toISOString(),failureReason:C instanceof Error?C.message:String(C)}}),r==null||r.notifyChange("commit")}catch(k){console.error("[Queue] Failed to update commit metadata after job failure:",k)}throw C}}async function K0(e,t,r){var m,f,y;const{projectSlug:s,commitSha:a}=e;if(!a)throw new Error("Baseline job missing commitSha");console.log(`[Queue] Starting baseline analysis for ${s}`);const{project:o}=await Ie(s);await vi(s),await ts(s,{update:g=>console.log(`[Queue] ${g}`)});const i=Sa(s),l={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",BRANCH_COMMIT_SHA:a,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),...i?{ANALYZER_VERSION:i}:{}},d=(f=(m=o.metadata)==null?void 0:m.webapps)==null?void 0:f[0];if(!d)throw new Error("No webapps found in project metadata");const u={packageManager:((y=o.metadata)==null?void 0:y.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:0,noServer:!0,framework:d.framework,orchestrateCapture:"local-sequential"},p=xr(s,l,u),h=g=>{try{return process.kill(g,0),!0}catch{return!1}};await hn({commitSha:a,runStatusUpdate:{createdAt:new Date().toISOString(),analyzerPid:p.process.pid}}),r==null||r.notifyChange("commit");try{const g=new Promise((x,b)=>setTimeout(()=>b(new Error("Baseline timed out after 4 hours")),144e5));await Promise.race([p.promise,g]),await hn({commitSha:a,runStatusUpdate:{analyzerPid:void 0,capturePid:void 0},archiveCurrentRun:!0}),r==null||r.notifyChange("commit"),console.log(`[Queue] Baseline completed for ${s}`),await new Promise(x=>setTimeout(x,2e3))}finally{if(p.process.pid)try{h(p.process.pid)&&await Jr(p.process.pid,()=>{})}catch{}}}async function G0(e,t,r){var f,y,g,x;const{projectSlug:s,analysisId:a,scenarioId:o,defaultWidth:i}=e;if(!a)throw new Error("Recapture job missing analysisId");const l=await Xt({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!l||!l.commit)throw new Error(`Analysis ${a} not found`);if(i){const{getDatabase:b}=await import("./index-zblh9auj.js"),v=b(),N=await v.selectFrom("entities").select(["metadata"]).where("sha","=",l.entitySha).executeTakeFirst();let w={};N!=null&&N.metadata&&(typeof N.metadata=="string"?w=JSON.parse(N.metadata):w=N.metadata),w.defaultWidth=i,await v.updateTable("entities").set({metadata:JSON.stringify(w)}).where("sha","=",l.entitySha).execute()}await fr(a,b=>{if(b.readyToBeCaptured=!0,b.scenarios)for(const v of b.scenarios)(!o||v.name===o)&&(delete v.finishedAt,delete v.startedAt,delete v.screenshotStartedAt,delete v.screenshotFinishedAt,delete v.interactiveStartedAt,delete v.interactiveFinishedAt,delete v.error,delete v.errorStack);delete b.finishedAt});const{project:d}=await Ie(s);await ts(s,{update:b=>console.log(`[Queue] ${b}`)});const u=Sa(s),p={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:l.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),READY_TO_BE_CAPTURED:"true",ANALYSIS_IDS:a,...o?{SCENARIO_IDS:o}:{},...u?{ANALYZER_VERSION:u}:{}},h={packageManager:((f=d.metadata)==null?void 0:f.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:void 0,noServer:!0,framework:((x=(g=(y=d.metadata)==null?void 0:y.webapps)==null?void 0:g[0])==null?void 0:x.framework)??ot.Next,orchestrateCapture:"local-sequential"},m=xr(s,p,h);try{await m.promise}finally{try{m.process.kill("SIGTERM")}catch{}}}async function q0(e,t,r){var f,y,g,x;const{projectSlug:s,analysisId:a,scenarioId:o,defaultWidth:i}=e;if(!a)throw new Error("Capture-only job missing analysisId");const l=await Xt({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!l||!l.commit)throw new Error(`Analysis ${a} not found`);if(i){const{getDatabase:b}=await import("./index-zblh9auj.js"),v=b(),N=await v.selectFrom("entities").select(["metadata"]).where("sha","=",l.entitySha).executeTakeFirst();let w={};N!=null&&N.metadata&&(typeof N.metadata=="string"?w=JSON.parse(N.metadata):w=N.metadata),w.defaultWidth=i,await v.updateTable("entities").set({metadata:JSON.stringify(w)}).where("sha","=",l.entitySha).execute()}await fr(a,b=>{if(b.readyToBeCaptured=!0,b.scenarios)for(const v of b.scenarios)(!o||v.name===o)&&(delete v.finishedAt,delete v.startedAt,delete v.screenshotStartedAt,delete v.screenshotFinishedAt,delete v.interactiveStartedAt,delete v.interactiveFinishedAt,delete v.error,delete v.errorStack);delete b.finishedAt});const{project:d}=await Ie(s);await ts(s,{update:b=>console.log(`[Queue] ${b}`)});const u=Sa(s);console.log("[Queue] executeCaptureOnlyJob: Setting CAPTURE_ONLY=true for capture without file regeneration");const p={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:l.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),READY_TO_BE_CAPTURED:"true",CAPTURE_ONLY:"true",ANALYSIS_IDS:a,...o?{SCENARIO_IDS:o}:{},...u?{ANALYZER_VERSION:u}:{}},h={packageManager:((f=d.metadata)==null?void 0:f.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:void 0,noServer:!0,fast:!0,framework:((x=(g=(y=d.metadata)==null?void 0:y.webapps)==null?void 0:g[0])==null?void 0:x.framework)??ot.Next,orchestrateCapture:"local-sequential"},m=xr(s,p,h);try{await m.promise}finally{try{m.process.kill("SIGTERM")}catch{}}}async function Q0(e,t,r){var m,f,y,g;const{projectSlug:s,analysisId:a,scenarioId:o}=e;if(!a)throw new Error("Debug setup job missing analysisId");const i=await Xt({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!i||!i.commit)throw new Error(`Analysis ${a} not found`);const{project:l}=await Ie(s);await vi(s),await ts(s,{update:x=>console.log(`[Queue] ${x}`)});const d={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:i.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),READY_TO_BE_CAPTURED:"true",ANALYSIS_IDS:a,PREP_ONLY:"true"};o&&(d.SCENARIO_IDS=o);const u={packageManager:((m=l.metadata)==null?void 0:m.packageManager)||"npm",absoluteProjectRootPath:zt(s),port:void 0,noServer:!1,framework:((g=(y=(f=l.metadata)==null?void 0:f.webapps)==null?void 0:y[0])==null?void 0:g.framework)||ot.Next},h=await xr(s,d,u).promise;if(h!==0)throw new Error(`Prep process exited with code ${h}`)}async function Z0(e,t,r){var x,b,v,N;const{projectSlug:s,analysisId:a,scenarioId:o}=e;if(!a)throw new Error("Interactive start job missing analysisId");const i=await Xt({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!i||!i.commit)throw new Error(`Analysis ${a} not found`);const{project:l}=await Ie(s),d={...await bn(),PROJECT_SLUG:s,USE_WORKER_THREADS:"true",COMMIT_SHA:i.commit.sha,CODEYAM_LOCAL_PROJECT_PATH:t,SQLITE_PATH:vn(),READY_TO_BE_CAPTURED:"true",ANALYSIS_IDS:a,INTERACTIVE_MODE:"true"};o&&(d.INITIAL_SCENARIO_ID=o),i.scenarios&&i.scenarios.length>0&&(d.SCENARIO_IDS=i.scenarios.map(w=>w.id).join(","));const u=zt(s),p=te.join(u,".next","dev","lock");if(ce.existsSync(p)){console.log("[Queue] Found stale .next/dev/lock, cleaning up old processes");try{const w=Me(`pgrep -f ${JSON.stringify(u)} 2>/dev/null || true`,{encoding:"utf-8"}).trim();if(w)for(const C of w.split(`
44
44
  `).filter(Boolean))try{process.kill(parseInt(C,10),"SIGTERM"),console.log(`[Queue] Killed stale process ${C}`)}catch{}}catch{}try{ce.unlinkSync(p),console.log("[Queue] Removed stale lock file")}catch{}}const h=ce.existsSync(u)&&ce.existsSync(te.join(u,"package.json")),m={packageManager:((x=l.metadata)==null?void 0:x.packageManager)||"npm",absoluteProjectRootPath:u,port:void 0,noServer:!1,fast:h,framework:((N=(v=(b=l.metadata)==null?void 0:b.webapps)==null?void 0:v[0])==null?void 0:N.framework)||ot.Next};await fr(a,w=>{w.readyToBeCaptured=!0});const f=xr(s,d,m);await ou(a,w=>{w.interactiveMode={pid:f.process.pid,startedAt:new Date().toISOString(),jobId:e.id}}),console.log(`[Queue] Interactive mode started for analysis ${a}, PID: ${f.process.pid}`);const y=zt(s),g=new Lo({projectRootPath:t,tmpProjectPath:y});g.on("sync",w=>{w.type==="file-synced"?nc.emitFileSynced(w.fileName,w.filePath):w.type==="error"&&nc.emitError(w.fileName,w.filePath)}),g.start(),zo.set(a,g),console.log(`[Queue] File sync watcher started for analysis ${a}`)}async function X0(e,t,r){var u;const{projectSlug:s,analysisId:a}=e;if(!a)throw new Error("Interactive stop job missing analysisId");const o=await Xt({id:a,includeScenarios:!0,includeCommitAndBranch:!0});if(!o)throw new Error(`Analysis ${a} not found`);const i=(u=o.metadata)==null?void 0:u.interactiveMode;if(!(i!=null&&i.pid)){console.log(`[Queue] No interactive mode process found for analysis ${a}`);return}const l=zo.get(a);l&&(l.stop(),zo.delete(a),console.log(`[Queue] File sync watcher stopped for analysis ${a}`));const d=i.pid;console.log(`[Queue] Stopping interactive mode for analysis ${a}, killing PID: ${d}`);try{try{process.kill(d,0)}catch{console.log(`[Queue] Process ${d} already exited`);return}await Jr(d,()=>{}),console.log(`[Queue] Successfully killed interactive mode process ${d}`)}catch(p){throw console.error(`[Queue] Failed to kill process ${d}:`,p),p}finally{await ou(a,p=>{p.interactiveMode=null})}}class ey{constructor(t,r){this.processing=!1,this.completionCallbacks=new Map,this.completedJobs=new Map,this.projectRoot=t,this.state={paused:!1,jobs:[]},r&&(typeof r=="function"?this.notifier={notifyChange:()=>r()}:this.notifier=r)}start(){this.state=Lr(this.projectRoot),this.state.currentlyExecuting&&(console.log(`[Queue] Clearing stale currentlyExecuting job from previous session: ${this.state.currentlyExecuting.id}`),this.state.currentlyExecuting=void 0,this.save()),this.state.jobs.length>0?(this.state.paused=!0,this.save(),console.log(`[Queue] Found ${this.state.jobs.length} queued jobs from previous session (paused)`)):this.state.paused=!1}enqueue(t){const r=t.commitSha||li(),s={...t,id:r,queuedAt:new Date().toISOString()};this.state.jobs.push(s),this.save(),console.log(`[Queue] Enqueued job ${r} (${s.type})`);const a=new Promise((o,i)=>{this.completionCallbacks.set(r,l=>{l?i(l):o()})});return this.state.paused||this.processNext().catch(o=>{console.error("[Queue] ERROR in processNext():",o)}),{jobId:r,completion:a}}resume(){console.log("[Queue] Resuming queue"),this.state.paused=!1,this.save(),this.processNext()}pause(){console.log("[Queue] Pausing queue"),this.state.paused=!0,this.save()}getState(){return{...this.state}}getJobResult(t){return this.completedJobs.get(t)}removeJob(t){const r=this.state.jobs.length;this.state.jobs=this.state.jobs.filter(a=>a.id!==t);const s=this.state.jobs.length<r;if(s){console.log(`[Queue] Removed job ${t}`),this.save();const a=this.completionCallbacks.get(t);a&&(setImmediate(()=>a(new Error("Job cancelled by user"))),this.completionCallbacks.delete(t))}else console.log(`[Queue] Job ${t} not found in queue`);return s}clearQueue(){const t=this.state.jobs.length;return t===0?0:(this.state.jobs.forEach(r=>{const s=this.completionCallbacks.get(r.id);s&&(setImmediate(()=>s(new Error("Job cancelled by user"))),this.completionCallbacks.delete(r.id))}),this.state.jobs=[],console.log(`[Queue] Cleared ${t} jobs`),this.save(),t)}reorderJob(t,r){const s=this.state.jobs.findIndex(i=>i.id===t);if(s===-1)return console.log(`[Queue] Job ${t} not found in queue`),!1;const a=r==="up"?s-1:s+1;if(a<0||a>=this.state.jobs.length)return console.log(`[Queue] Cannot move job ${t} ${r}: at boundary`),!1;const o=this.state.jobs[s];return this.state.jobs[s]=this.state.jobs[a],this.state.jobs[a]=o,console.log(`[Queue] Moved job ${t} ${r} (position ${s} -> ${a})`),this.save(),!0}async processNext(){if(this.state.paused||this.processing)return;if(this.state.jobs.length===0){console.log("[Queue] No jobs to process");return}this.processing=!0;const t=this.state.jobs[0];console.log(`[Queue] Starting job ${t.id} (${t.type})`);try{this.state.currentlyExecuting=this.state.jobs.shift(),this.save(),await H0(t,this.projectRoot,this.notifier),this.state.currentlyExecuting=void 0,this.save(),this.completedJobs.set(t.id,{id:t.id,status:"success",completedAt:new Date().toISOString()});const r=this.completionCallbacks.get(t.id);r&&(r(),this.completionCallbacks.delete(t.id)),console.log(`[Queue] Job ${t.id} completed successfully`)}catch(r){console.error(`[Queue] Job ${t.id} failed:`,r),this.state.currentlyExecuting=void 0,this.save(),this.completedJobs.set(t.id,{id:t.id,status:"error",error:(r==null?void 0:r.message)||"Unknown error",completedAt:new Date().toISOString()});const s=this.completionCallbacks.get(t.id);s&&(s(r),this.completionCallbacks.delete(t.id))}finally{this.processing=!1,!this.state.paused&&this.state.jobs.length>0&&setImmediate(()=>void this.processNext())}}save(){W0(this.projectRoot,this.state),this.notifier&&this.notifier.notifyChange("queue")}}class ty{constructor(t,r,s=100){this.watcher=null,this.debounceTimer=null,this.projectRoot=t,this.onChange=r,this.debounceMs=s}start(){const t=sa(this.projectRoot);if(!Q.existsSync(t)){console.log("[QueueFileWatcher] Queue file does not exist yet, will start watching when created"),this.watchDirectory();return}this.watchFile(t)}watchDirectory(){const t=sa(this.projectRoot),r=t.substring(0,t.lastIndexOf("/"));try{this.watcher=Q.watch(r,(s,a)=>{a==="queue.json"&&(this.stop(),this.watchFile(t),this.notifyChange())}),console.log("[QueueFileWatcher] Watching .codeyam directory for queue.json creation")}catch(s){console.error("[QueueFileWatcher] Failed to watch directory:",s)}}watchFile(t){try{this.watcher=Q.watch(t,r=>{r==="change"&&this.notifyChange()}),console.log("[QueueFileWatcher] Watching queue.json for changes")}catch(r){console.error("[QueueFileWatcher] Failed to watch queue file:",r)}}notifyChange(){this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{this.onChange(),this.debounceTimer=null},this.debounceMs)}stop(){this.watcher&&(this.watcher.close(),this.watcher=null),this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null)}}class ny{constructor(t,r,s){this.fileWatcher=null,this.serverInfo=t,this.projectRoot=r,this.onStateChange=s,this.cachedState=Lr(r)}start(){this.cachedState=Lr(this.projectRoot),console.log(`[ProxyQueue] Connected to background server at ${this.serverInfo.url}`),console.log(`[ProxyQueue] Current queue has ${this.cachedState.jobs.length} jobs`),this.fileWatcher=new ty(this.projectRoot,()=>{console.log("[ProxyQueue] Detected queue.json change from background server"),this.refreshState()}),this.fileWatcher.start()}enqueue(t){let r,s;const a=new Promise((i,l)=>{r=i,s=l}),o=`proxy-${Date.now()}-${Math.random().toString(36).slice(2)}`;return this.enqueueRemote(t).then(i=>{console.log(`[ProxyQueue] Job enqueued on background server: ${i.jobId}`),this.refreshState(),r()}).catch(i=>{console.error("[ProxyQueue] Failed to enqueue job:",i),s(i)}),{jobId:o,completion:a}}async enqueueRemote(t){const r=await fetch(`${this.serverInfo.url}/api/queue`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"enqueue",...t})});if(!r.ok){const s=await r.text();throw new Error(`Failed to enqueue: ${r.status} ${s}`)}return r.json()}resume(){console.log("[ProxyQueue] Sending resume command to background server"),this.sendAction("resume").catch(t=>{console.error("[ProxyQueue] Failed to resume:",t)})}pause(){console.log("[ProxyQueue] Sending pause command to background server"),this.sendAction("pause").catch(t=>{console.error("[ProxyQueue] Failed to pause:",t)})}async sendAction(t){const r=await fetch(`${this.serverInfo.url}/api/queue`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:t})});if(!r.ok){const s=await r.text();throw new Error(`Failed to ${t}: ${r.status} ${s}`)}this.refreshState()}getState(){return this.cachedState=Lr(this.projectRoot),{...this.cachedState}}refreshState(){this.cachedState=Lr(this.projectRoot),this.onStateChange&&this.onStateChange()}async isServerAlive(){try{const t=new AbortController,r=setTimeout(()=>t.abort(),2e3),s=await fetch(`${this.serverInfo.url}/api/health`,{signal:t.signal});return clearTimeout(r),s.ok}catch{return!1}}getServerInfo(){return{...this.serverInfo}}stop(){this.fileWatcher&&(this.fileWatcher.stop(),this.fileWatcher=null)}}function ry(e){const t=G.join(e,".codeyam","server.json");if(!Q.existsSync(t))return null;try{const r=Q.readFileSync(t,"utf8");return JSON.parse(r)}catch{return null}}function sy(e){try{return process.kill(e,0),!0}catch{return!1}}async function ay(e){try{const t=new AbortController,r=setTimeout(()=>t.abort(),2e3),s=await fetch(`${e}/api/health`,{signal:t.signal});return clearTimeout(r),s.ok}catch{return!1}}async function oy(e){const t=ry(e);return!t||!sy(t.pid)||!await ay(t.url)?null:{url:t.url,port:t.port,pid:t.pid}}class iy extends Zr{constructor(){super();vt(this,"watcher",null);vt(this,"dbPath",null);vt(this,"isWatching",!1);this.setMaxListeners(20)}async start(){if(!this.isWatching)try{this.dbPath=vn();const{default:r}=await import("chokidar"),s=[this.dbPath,`${this.dbPath}-wal`,`${this.dbPath}-shm`];this.watcher=r.watch(s,{persistent:!0,ignoreInitial:!0,usePolling:!0,interval:1e3}),this.watcher.on("change",a=>{const o=Date.now(),i=new Date(o).toISOString();console.log("[dbNotifier] ========================================"),console.log(`[dbNotifier] Database file changed: ${a}`),console.log(`[dbNotifier] Timestamp: ${i} (${o})`),console.log(`[dbNotifier] Listeners count: ${this.listenerCount("change")}`),console.log("[dbNotifier] ========================================"),this.emit("change",{type:"unknown",timestamp:o})}).on("error",a=>{console.error("Database watcher error:",a),this.emit("error",a)}),this.isWatching=!0}catch(r){console.error("Failed to start database watcher:",r),this.emit("error",r)}}notifyChange(r="unknown"){const s=Date.now(),a=new Date(s).toISOString();console.log("[dbNotifier] ========================================"),console.log("[dbNotifier] Manual notification triggered"),console.log(`[dbNotifier] Change type: ${r}`),console.log(`[dbNotifier] Timestamp: ${a} (${s})`),console.log(`[dbNotifier] Listeners count: ${this.listenerCount("change")}`),console.log("[dbNotifier] ========================================"),this.emit("change",{type:r,timestamp:s})}stop(){this.watcher&&(this.watcher.close(),this.watcher=null,this.isWatching=!1,console.log("Database watcher stopped"))}}const Nt=new iy;let $n=null,Br=null;async function ly(){if(!$n){if(Br){await Br;return}Br=(async()=>{try{const e=process.env.CODEYAM_ROOT_PATH||iu()||process.cwd();if(t0(e),console.log(`[GlobalQueue] Project root: ${e}`),await We(),process.env.NODE_ENV==="development")try{const r=te.join(e,".codeyam","config.json"),a=JSON.parse(await ce.promises.readFile(r,"utf8")).projectSlug;a&&(await lr({projectSlug:a,metadataUpdate:{labs:{accessGranted:!0,simulations:!0}}}),console.log("[GlobalQueue] Labs & Simulations auto-enabled for dev mode"))}catch(r){console.warn("[GlobalQueue] Could not auto-enable labs:",r)}const t=await oy(e);if(t){console.log(`[GlobalQueue] Detected background server at ${t.url} (PID: ${t.pid})`),console.log("[GlobalQueue] Using proxy queue");const r=new ny(t,e,()=>{Nt.notifyChange("unknown")});await r.start(),$n=r}else{console.log("[GlobalQueue] No background server detected, using local queue");const r=new ey(e,Nt);await r.start(),$n=r}console.log("[GlobalQueue] Queue initialized")}catch(e){throw console.error("[GlobalQueue] Failed to initialize queue:",e),e}})(),await Br}}async function en(){return $n||await ly(),$n}function cy(){return $n||(Br&&console.warn("[GlobalQueue] Queue still initializing, loader may see empty state"),null)}const dy=()=>[{rel:"stylesheet",href:I0},{rel:"icon",type:"image/x-icon",href:"/favicon.ico"}],uy={currentRun:void 0,projectSlug:null,currentEntities:[],availableAPIKeys:[],queuedJobCount:0,queueJobs:[],currentlyExecuting:null,historicalRuns:[],isServerOutOfDate:!1,serverVersion:"unknown",npmUpdate:null,labs:null,simulationsEnabled:!1,isSimulationsReady:!1,isAdmin:!1,editorMode:!1,displayVersion:Ni()};async function py({request:e,context:t}){var r,s,a,o,i,l,d,u,p,h,m;try{const f=e.signal,y=()=>{if(f.aborted)throw new Response(null,{status:499})};y();const g=Ce()||process.cwd(),[x,b,v]=await Promise.all([Be(),va(g),U0().catch(()=>null)]);if(!x)throw new Error("Project slug not found");const{project:N,branch:w}=await Ie(x);y();const C=await ea({projectId:N.id,branchId:w.id,limit:20,skipRelations:!0});y();const k=C.length>0?C[0]:null,j=t.analysisQueue||cy(),A=j==null?void 0:j.getState();y();const _=await Promise.all(((A==null?void 0:A.jobs)||[]).map(async H=>{var ae;const re=await ws(H.entityShas||[]);return re.length===0&&((ae=H.entityShas)!=null&&ae.length)&&console.warn("[Loader] Entity fetch timeout/failed for job",H.id),{...H,entities:re}}));let M=null;if(A!=null&&A.currentlyExecuting){const H=A.currentlyExecuting,re=await ws(H.entityShas||[]);re.length===0&&((r=H.entityShas)!=null&&r.length)&&console.warn("[Loader] Entity fetch timeout/failed for currentlyExecuting",H.id),M={...H,entities:re}}const T=M?_.filter(H=>H.id!==M.id):_;let R=((a=(s=k==null?void 0:k.metadata)==null?void 0:s.currentRun)==null?void 0:a.currentEntityShas)||[];if(R.length===0){const H=((o=k==null?void 0:k.metadata)==null?void 0:o.historicalRuns)||[];if(H.length>0){const ae=[...H].sort((X,oe)=>{const me=X.archivedAt||X.createdAt||"";return(oe.archivedAt||oe.createdAt||"").localeCompare(me)})[0];if(ae){const X=ae.analysisCompletedAt||ae.createdAt;if(X){const oe=new Date(X).getTime(),ve=Date.now()-1440*60*1e3;oe>ve&&(R=ae.currentEntityShas||[])}}}}const D=await ws(R),L=[];b.ANTHROPIC_API_KEY&&L.push("ANTHROPIC_API_KEY"),b.GROQ_API_KEY&&L.push("GROQ_API_KEY"),b.OPENAI_API_KEY&&L.push("OPENAI_API_KEY"),b.OPENROUTER_API_KEY&&L.push("OPENROUTER_API_KEY"),y();const U=[];for(const H of C){const re=((i=H.metadata)==null?void 0:i.historicalRuns)||[];for(const ae of re)U.push(ae)}U.sort((H,re)=>{const ae=H.archivedAt||H.analysisCompletedAt||H.createdAt||"";return(re.archivedAt||re.analysisCompletedAt||re.createdAt||"").localeCompare(ae)});const W=new Set(((l=M==null?void 0:M.entities)==null?void 0:l.map(H=>H.sha))||[]),F=U.filter(H=>!(H.currentEntityShas||[]).some(ae=>W.has(ae))).slice(0,3),Y=new Set;for(const H of F)for(const re of H.currentEntityShas||[])Y.add(re);const P=await ws(Array.from(Y)),O=new Map;for(const H of P)O.set(H.sha,H);const S=F.map(H=>({...H,entities:(H.currentEntityShas||[]).map(re=>O.get(re)).filter(re=>re!=null)})),$=Ca(),I=($==null?void 0:$.cliVersion)??"unknown",K=I!=="unknown"&&I!==wi,q=((u=(d=N.metadata)==null?void 0:d.labs)==null?void 0:u.simulations)??!1,J=q?T0():!1,z=((p=N.metadata)==null?void 0:p.editorMode)??!1,B={currentRun:(h=k==null?void 0:k.metadata)==null?void 0:h.currentRun,projectSlug:x,currentEntities:D,availableAPIKeys:L,queuedJobCount:T.length,queueJobs:T,currentlyExecuting:M,historicalRuns:S,isServerOutOfDate:K,serverVersion:I,npmUpdate:v!=null&&v.updateAvailable&&v.latestVersion?{latestVersion:v.latestVersion,currentVersion:v.currentVersion}:null,labs:((m=N.metadata)==null?void 0:m.labs)??null,simulationsEnabled:q,isSimulationsReady:J,isAdmin:!!process.env.CODEYAM_ADMIN,editorMode:z,displayVersion:Ni()};return ue(B)}catch(f){return f instanceof Response&&f.status===499||console.error("Failed to load root data:",f),ue(uy)}}function hy(){const{currentRun:e,projectSlug:t,currentEntities:r,availableAPIKeys:s,queuedJobCount:a,queueJobs:o,currentlyExecuting:i,historicalRuns:l,isServerOutOfDate:d,serverVersion:u,npmUpdate:p,labs:h,simulationsEnabled:m,isSimulationsReady:f,isAdmin:y,editorMode:g,displayVersion:x}=dt(),{toasts:b,closeToast:v}=fi(),N=Ut(),w=xe(N),C=qr(),k=xe(C.pathname);se(()=>{w.current=N},[N]),se(()=>{k.current=C.pathname},[C.pathname]);const j=C.pathname.startsWith("/entity/")&&C.pathname.includes("/edit/")||C.pathname.startsWith("/dev/")||C.pathname.startsWith("/editor"),A=C.pathname.includes("/fullscreen")||C.pathname.startsWith("/editor");return se(()=>{let _=null,M=null,T=0;function R(){_||(_=new EventSource("/api/events"),_.addEventListener("message",U=>{const W=JSON.parse(U.data);(W.type==="queue"||W.type==="db-change")&&W.type;const V=lf(k.current),F=cf({now:Date.now(),lastRevalidation:T,throttleMs:V});F==="immediate"?(w.current.revalidate(),T=Date.now()):(M&&clearTimeout(M),M=setTimeout(()=>{w.current.revalidate(),T=Date.now(),M=null},F.delayMs))}),_.addEventListener("error",()=>{}))}function D(){M&&(clearTimeout(M),M=null),_&&(_.close(),_=null)}function L(){document.hidden?D():(R(),w.current.revalidate())}return document.hidden||R(),document.addEventListener("visibilitychange",L),()=>{document.removeEventListener("visibilitychange",L),D()}},[]),c(we,{children:[c("div",{className:`min-h-screen ${j?"":"grid"} bg-cygray-10`,style:j?void 0:{gridTemplateColumns:"65px minmax(0, 1fr)"},children:[!j&&n(ff,{labs:h,isAdmin:y,editorMode:g}),c("div",{className:"max-h-screen overflow-auto bg-cygray-10 flex flex-col min-h-screen",children:[d&&n(L0,{serverVersion:u}),p&&p.currentVersion&&n(B0,{currentVersion:p.currentVersion,latestVersion:p.latestVersion}),m&&!g&&s.length===0&&n(tc,{text:"No AI API keys configured. Please provide an AI API key at your earliest convenience.",subtext:"An API key is required for stable, frequent use of CodeYam",linkText:"Configure API Keys",linkTo:"/settings"}),m&&!g&&!f&&n(tc,{text:"Simulations enabled but not yet configured",subtext:"Run /codeyam-setup in Claude Code to install the analyzer and configure your dev server",linkText:"View Labs",linkTo:"/labs"}),n("div",{className:"flex-1",children:n(Id,{})}),n(O0,{version:x})]})]}),n(xf,{toasts:b,onClose:v}),!A&&m&&n(bf,{currentRun:e,projectSlug:t,currentEntities:r,isAnalysisStarting:!1,queuedJobCount:a,queueJobs:o,currentlyExecuting:i,historicalRuns:l})]})}const my=rt(function(){return c("html",{lang:"en",children:[c("head",{children:[n("meta",{charSet:"utf-8"}),n("meta",{name:"viewport",content:"width=device-width,initial-scale=1"}),n(zh,{}),n(Yh,{})]}),c("body",{children:[n(gf,{children:n(hf,{children:n(hy,{})})}),n(Uh,{}),n(Wh,{})]})]})});function fy(e){if(e instanceof TypeError&&/fetch/i.test(e.message)||e instanceof Error&&/fetch/i.test(e.message))return!0;const t=String(e);return/failed to fetch|fetch.*failed|load.*chunk/i.test(t)}const gy=Jh(function(){const t=Hh(),r=!ro(t)&&fy(t),s=ro(t)?t.status:500,a=ro(t)?t.statusText||"Server Error":"Something went wrong";return c("html",{lang:"en",children:[c("head",{children:[n("meta",{charSet:"utf-8"}),n("meta",{name:"viewport",content:"width=device-width,initial-scale=1"}),c("title",{children:[s," - CodeYam"]})]}),n("body",{style:{margin:0,fontFamily:'"IBM Plex Sans", system-ui, -apple-system, sans-serif',backgroundColor:"#1e1e1e",color:"#ffffff",minHeight:"100vh",display:"flex",alignItems:"center"},children:c("div",{style:{maxWidth:700,width:"100%",padding:"64px 80px"},children:[c("div",{style:{fontFamily:'"IBM Plex Mono", monospace',fontSize:32,fontWeight:400,color:"#8E8E8E",lineHeight:1,marginBottom:12},children:["<",s,">"]}),n("h1",{style:{fontSize:42,fontWeight:600,margin:"0 0 20px",color:"#ffffff",lineHeight:1.2},children:r?"Something went wrong :(":a}),r?c("div",{children:[n("p",{style:{fontSize:16,color:"#8E8E8E",lineHeight:1.7,margin:"0 0 28px",maxWidth:480},children:"It looks like the CodeYam server is no longer running. This usually happens when the terminal session that started it was closed."}),c("p",{style:{fontSize:16,color:"#ffffff",margin:0,lineHeight:1.7,display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:["Run"," ",c("button",{id:"copy-cmd-btn",type:"button",style:{display:"inline-flex",alignItems:"center",gap:8,backgroundColor:"#2d2d2d",border:"1px solid #3d3d3d",borderRadius:6,padding:"6px 12px",fontFamily:'"IBM Plex Mono", monospace',fontSize:13,color:"#ffffff",letterSpacing:"0.05em",textTransform:"uppercase",cursor:"pointer",minWidth:172,justifyContent:"center"},children:[n("span",{id:"copy-cmd-label",children:"codeyam editor"}),c("svg",{id:"copy-cmd-icon",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#D7FF63",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[n("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),n("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})]})," ","in your project directory to restart the server. Then refresh this page."]}),n("script",{dangerouslySetInnerHTML:{__html:`
45
45
  document.getElementById('copy-cmd-btn').addEventListener('click', function() {
46
46
  var label = document.getElementById('copy-cmd-label');
@@ -418,7 +418,7 @@ try { window.parent.postMessage({type:'codeyam-server-error',statusCode:${e}},'*
418
418
  `))if(t.includes("[JournalCapture] Visible text: "))return t.replace(/.*\[JournalCapture\] Visible text: /,"");return null}async function rp(e,t,r,s){const a=G.join(e,".codeyam","editor-scenarios","client-errors.json");let o={};try{const i=await Ae.readFile(a,"utf8");o=JSON.parse(i)}catch{}for(const[i,l]of Object.entries(o))i!==t&&l.scenarioName===r&&delete o[i];o[t]={scenarioName:r,capturedAt:new Date().toISOString(),errors:s},await Ae.mkdir(G.dirname(a),{recursive:!0}),await Ae.writeFile(a,JSON.stringify(o,null,2),"utf8")}async function sp(e){const t=G.join(e,".codeyam","editor-scenarios","client-errors.json");try{const r=await Ae.readFile(t,"utf8");return JSON.parse(r)}catch{return{}}}function Ri(e){let r=G.dirname(new URL(e).pathname);for(let s=0;s<5;s++){const a=G.dirname(r);if(G.basename(a)==="webserver"||G.basename(r)==="webserver")return G.basename(r)==="webserver"?r:a;r=a}return r}async function Di(e,t){const r=[G.join(e,"scripts","journalCapture.ts"),G.join(e,"app","lib","journalCapture.ts"),G.join(t,"codeyam-cli","src","webserver","app","lib","journalCapture.ts")];for(const s of r)try{return await Ae.access(s),s}catch{}return r[0]}function Ii(e,t,r){return new Promise(s=>{const a=e.endsWith(".ts"),l=kt(a?"npx":e,a?["tsx",e,t]:[t],{cwd:r,env:{...process.env}});let d="",u="";l.stdout.on("data",p=>{d+=p.toString()}),l.stderr.on("data",p=>{u+=p.toString()}),l.on("close",p=>{s(p===0?{success:!0,output:d}:{success:!1,output:d,error:u||`Process exited with code ${p}`})}),l.on("error",p=>{s({success:!1,output:"",error:p.message})})})}function pb(e){const t=G.join(e,".codeyam","editor-scenarios");let r;try{r=Q.readdirSync(t)}catch{return[]}const s=[];for(const a of r){if(!a.endsWith(".json")||a.endsWith(".seed.json")||a==="client-errors.json")continue;const o=G.join(t,a);try{if(!Q.statSync(o).isFile())continue;const l=JSON.parse(Q.readFileSync(o,"utf8"));if(l._metadata){const d=a.replace(/\.json$/,"");s.push({id:d,metadata:l._metadata})}}catch{}}return s}function ap(e,t,r){const s=G.join(e,".codeyam","editor-scenarios",`${t}.json`);let a={};try{a=JSON.parse(Q.readFileSync(s,"utf8"))}catch{return}a._metadata=r,Q.writeFileSync(s,JSON.stringify(a,null,2),"utf8")}function hb(e,t,r){const s=G.join(e,".codeyam","editor-scenarios",`${t}.json`);let a={};try{a=JSON.parse(Q.readFileSync(s,"utf8"))}catch{return}a._metadata&&typeof a._metadata=="object"&&(a._metadata.screenshotPath=r,a._metadata.updatedAt=new Date().toISOString(),Q.writeFileSync(s,JSON.stringify(a,null,2),"utf8"))}function mb(e,t,r,s={}){const a=G.join(e,".codeyam","editor-scenarios");Q.mkdirSync(a,{recursive:!0});const o=G.join(a,`${t}.json`);let i={};try{i=JSON.parse(Q.readFileSync(o,"utf8"))}catch{}const l={...i,_metadata:r,...s};Q.writeFileSync(o,JSON.stringify(l,null,2),"utf8")}function fb(e,t){const r=G.join(e,".codeyam","editor-scenarios");for(const s of[".json",".seed.json"]){const a=G.join(r,`${t}${s}`);try{Q.unlinkSync(a)}catch{}}}const Oi=globalThis.__codeyamTerminalSessions??(globalThis.__codeyamTerminalSessions=new Set);globalThis.__codeyamDetachedPtys??(globalThis.__codeyamDetachedPtys=new Map);function Li(e,t){const r=JSON.stringify({type:"refresh-preview",...e&&{path:e},...t&&{scenarioId:t}});let s=0;for(const a of Oi)try{a.ws.readyState===pi.OPEN&&(a.ws.send(r),s++)}catch{}return s}function gb(){const e=JSON.stringify({type:"hide-results"});let t=0;for(const r of Oi)try{r.ws.readyState===pi.OPEN&&(r.ws.send(e),t++)}catch{}return t}function Bi(e){const t=JSON.stringify({type:"set-viewport",...e});let r=0;for(const s of Oi)try{s.ws.readyState===pi.OPEN&&(s.ws.send(t),r++)}catch{}return r}const yb=Object.freeze(Object.defineProperty({__proto__:null,broadcastHideResults:gb,broadcastPreviewRefresh:Li,broadcastSetViewport:Bi},Symbol.toStringTag,{value:"Module"}));function xb(e){if(e.dimension)try{Bi({name:e.dimension,width:e.viewport.width,height:e.viewport.height})}catch{}Li(e.refreshPath,e.scenarioId)}function bb(e){const t=e||process.env.CODEYAM_ROOT_PATH||process.cwd();try{const r=Me("git status --porcelain",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"]});return vb(r)}catch{return[]}}function vb(e){const t=e.trim().split(`
419
419
  `).filter(s=>s.length>0),r=[];for(const s of t){const a=s[0],o=s[1];let i=s.slice(2).replace(/^[ \t]+/,""),l,d=!1,u;if(a==="A"||o==="A")l="added",d=a==="A";else if(a==="M"||o==="M")l="modified",d=a==="M";else if(a==="D"||o==="D")l="deleted",d=a==="D";else if(a==="R"||o==="R"){l="renamed",d=a==="R";const p=i.indexOf(" -> ");p!==-1&&(u=i.slice(0,p).trim(),i=i.slice(p+4).trim())}else o==="?"?(l="untracked",d=!1):(l="modified",d=a!==" "&&a!=="?");if(i.endsWith("/")){const p=process.env.CODEYAM_ROOT_PATH||process.cwd(),h=te.join(p,i);try{const m=(y,g)=>{const x=ce.readdirSync(y,{withFileTypes:!0}),b=[];for(const v of x){const N=te.join(y,v.name),w=te.relative(p,N);v.isDirectory()?b.push(...m(N,g)):v.isFile()&&b.push(w)}return b},f=m(h,p);for(const y of f)r.push({path:y,status:l,staged:d,...u&&{oldPath:u}})}catch(m){console.error(`Failed to expand directory ${i}:`,m)}}else r.push({path:i,status:l,staged:d,...u&&{oldPath:u}})}return r}function wb(e){const t=e||process.env.CODEYAM_ROOT_PATH||process.cwd();try{return Me("git branch --show-current",{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim()||null}catch(r){return console.error("Failed to get current branch:",r),null}}function Nb(e){const t=e||process.env.CODEYAM_ROOT_PATH||process.cwd();try{const s=Me('git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null || echo ""',{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim().match(/refs\/remotes\/origin\/(.+)/);if(s)return s[1];try{return Me("git show-ref --verify --quiet refs/heads/main",{cwd:t,stdio:["pipe","pipe","ignore"]}),"main"}catch{try{return Me("git show-ref --verify --quiet refs/heads/master",{cwd:t,stdio:["pipe","pipe","ignore"]}),"master"}catch{return"main"}}}catch(r){return console.error("Failed to get default branch:",r),"main"}}function Sb(e){const t=e||process.env.CODEYAM_ROOT_PATH||process.cwd();try{return Me('git branch --format="%(refname:short)"',{cwd:t,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim().split(`
420
420
  `).filter(s=>s.length>0)}catch(r){return console.error("Failed to get branches:",r),[]}}function br(){const e=Ce();return e?bb(e):[]}function Cb(){const e=Ce();return e?wb(e):null}function kb(){const e=Ce();return e?Nb(e):"main"}function jb(){const e=Ce();return e?Sb(e):[]}function op(e,t){const r=Ce();return r?_b(e,t,r):[]}function _b(e,t,r){const s=r||process.env.CODEYAM_ROOT_PATH||process.cwd();try{return Me(`git diff --name-status ${e}...${t}`,{cwd:s,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim().split(`
421
- `).filter(i=>i.length>0).map(i=>{const l=i.split(" "),d=l[0];let u=l[1],p,h;return d==="A"?h="added":d==="M"?h="modified":d==="D"?h="deleted":d.startsWith("R")?(h="renamed",p=l[1],u=l[2]):h="modified",{path:u,status:h,...p&&{oldPath:p}}})}catch(a){return console.error("Failed to get branch diff:",a),[]}}function ip(e,t){const r=t||process.env.CODEYAM_ROOT_PATH||process.cwd();try{let s="";try{s=Me(`git show HEAD:"${e}"`,{cwd:r,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10})}catch{s=""}let a="";try{a=ce.readFileSync(te.join(r,e),"utf8")}catch(o){console.error(`Failed to read current file ${e}:`,o),a=""}return{oldContent:s,newContent:a,fileName:e}}catch(s){return console.error(`Failed to get diff for ${e}:`,s),{oldContent:"Error loading old content",newContent:"Error loading new content",fileName:e}}}function Eb(e){const t=Ce();return t?ip(e,t):{oldContent:"Error: No project root",newContent:"Error: No project root",fileName:e}}function Pb(e,t,r,s){const a=s||process.env.CODEYAM_ROOT_PATH||process.cwd();try{let o="";try{o=Me(`git show ${t}:"${e}"`,{cwd:a,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10})}catch{o=""}let i="";try{i=Me(`git show ${r}:"${e}"`,{cwd:a,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10})}catch{i=""}return{oldContent:o,newContent:i,fileName:e}}catch(o){return console.error(`Failed to get branch diff for ${e}:`,o),{oldContent:"Error loading old content",newContent:"Error loading new content",fileName:e}}}function zs(e,t,r){const s=Ce();return s?Pb(e,t,r,s):{oldContent:"Error: No project root",newContent:"Error: No project root",fileName:e}}async function Ab(e,t,r){const s=G.join(e,".codeyam","journal"),a=G.join(s,"index.json");G.join(s,"screenshots");let o;try{const l=await Ae.readFile(a,"utf8");o=JSON.parse(l)}catch{return}let i=!1;for(const l of o.entries)if(!l.commitSha&&l.scenarioScreenshots)for(let d=0;d<l.scenarioScreenshots.length;d++){const u=l.scenarioScreenshots[d];if(u.name!==t)continue;const p=G.join(s,u.path);try{await Ae.copyFile(r,p),i=!0,console.log(`[editor-register-scenario] Updated journal screenshot for "${t}" in entry "${l.title}"`)}catch(h){console.warn(`[editor-register-scenario] Failed to update journal screenshot: ${h instanceof Error?h.message:h}`)}}i&&Nt.notifyChange("journal")}const xc=Ti;async function Tb({request:e}){var t,r;if(e.method!=="POST")return new Response("Method not allowed",{status:405});try{const s=await e.json();s.url=s.url||s.path||void 0;const a=qy({componentName:s.componentName,url:s.url,type:s.type});if(!a.valid)return new Response(JSON.stringify({error:a.error}),{status:400,headers:{"Content-Type":"application/json"}});const{name:o,description:i,componentName:l,componentPath:d}=s;if(!o)return new Response(JSON.stringify({error:"name is required"}),{status:400,headers:{"Content-Type":"application/json"}});if(l&&!d)return new Response(JSON.stringify({error:`componentPath is required when componentName is provided. Add "componentPath": "app/components/${l}.tsx" (or the actual file path) to the registration JSON.`}),{status:400,headers:{"Content-Type":"application/json"}});const u=await Be();if(!u)return new Response(JSON.stringify({error:"Project not initialized"}),{status:400,headers:{"Content-Type":"application/json"}});const{project:p}=await Ie(u),h=Fe(),m=process.env.CODEYAM_ROOT_PATH||process.cwd();let f,y,g;if(!s.viewportWidth&&!s.viewportHeight&&!s.dimension&&!s.dimensions){const q=await h.selectFrom("editor_scenarios").selectAll().where("name","=",o).where("project_id","=",p.id).orderBy("created_at","desc").executeTakeFirst();if(q){f=q.viewport_width||void 0,y=q.viewport_height||void 0;try{const J=q.dimensions?JSON.parse(q.dimensions):void 0;Array.isArray(J)&&(g=J)}catch{}}}let x=null;s.dimensions&&s.dimensions.length>0?x=s.dimensions:s.dimension?x=[s.dimension]:g&&g.length>0&&(x=g);const b=(x==null?void 0:x[0])||void 0,v=Ea({bodyWidth:s.viewportWidth||f,bodyHeight:s.viewportHeight||y,dimension:b,codeyamRoot:m});let N=null;if(!l){if(s.pageFilePath)N=s.pageFilePath;else if(s.url){const{scanPageFilePaths:q}=await Promise.resolve().then(()=>$b),J=Ce()||process.cwd(),{allFiles:z}=q(J);if(N=Au(s.url,z),!N){const B=await import("fs"),H=await import("path"),re=["src/App.tsx","src/App.jsx","src/app/App.tsx","src/popup/App.tsx","src/pages/index.tsx","src/pages/index.jsx","src/routes/index.tsx","app/root.tsx"];for(const ae of re)if(B.existsSync(H.join(J,ae))){N=ae;break}}}}let w=null,C=null;const k=d||N;if(k)try{await We();const J=(await nt({})||[]).filter(H=>H.filePath===k),B=J.find(H=>{var re,ae;return((re=H.metadata)==null?void 0:re.notExported)===!1&&((ae=H.metadata)==null?void 0:ae.namedExport)===!1})||J[0];B&&(w=B.sha)}catch{}const j=s.type==="application"||s.type==="user";if(!w&&j&&k){const q=Ce()||process.cwd(),J=Gy({lookupFilePath:k,scenarioType:s.type||null,projectRoot:q});if(!J.valid)return Response.json({error:J.error},{status:400});if(J.needsAnalysis)try{const{runAnalysisForEntities:z}=await import("./analysisRunner-DPUEhrWo.js");await z({projectRoot:q,filePaths:[k],onlyDataStructure:!0});try{const H=(await nt({})||[]).filter(X=>X.filePath===k),ae=H.find(X=>{var oe,me;return((oe=X.metadata)==null?void 0:oe.notExported)===!1&&((me=X.metadata)==null?void 0:me.namedExport)===!1})||H[0];ae&&(w=ae.sha)}catch{}if(w)try{const B=await nt({});await Qy(h,(B||[]).map(H=>{var re,ae;return{sha:H.sha,name:H.name,filePath:H.filePath||"",isDefaultExport:((re=H.metadata)==null?void 0:re.notExported)===!1&&((ae=H.metadata)==null?void 0:ae.namedExport)===!1}}))}catch{}}catch(z){console.warn(`[editor-register-scenario] Auto analyze-imports failed for ${k}: ${z.message}`)}}l?C=l:N&&N.startsWith("app/")?C=Jt(Rt(N)):s.url&&(C=Ct(s.url));const A=await Vy(h,{projectId:p.id,name:o,description:i||null,componentName:l||null,componentPath:d||null,url:s.url||null,type:s.type||null,viewportWidth:v.width,viewportHeight:v.height,dimensions:x,screenshotPaths:null,pageFilePath:N,entitySha:w,displayName:C}),_=A.scenarioId;if(A.cleanedUpIds.length>0&&(Ky(m,A.cleanedUpIds),console.log(`[editor-register-scenario] Cleaned up ${A.cleanedUpIds.length} duplicate(s) for "${o}"`)),s.seedFrom&&!s.seed){const q=await ic(m,h,s.seedFrom);q?(s.seed=q,s.type||(s.type="application"),console.log(`[editor-register-scenario] Resolved seed data from "${s.seedFrom}"`)):console.warn(`[editor-register-scenario] seedFrom "${s.seedFrom}" not found — no seed data will be used`)}else if(s.seedFrom&&s.seed){const q=await ic(m,h,s.seedFrom);q&&(s.seed=cc(q,s.seed),console.log(`[editor-register-scenario] Merged seed data: base from "${s.seedFrom}", overlay from registration`))}const M=s.type==="application"||s.type==="user",T=new Date().toISOString(),R={name:o,description:i||null,componentName:l||null,componentPath:d||null,url:s.url||null,type:s.type||(M?null:"component"),screenshotPath:null,viewportWidth:v.width,viewportHeight:v.height,dimensions:x,screenshotPaths:null,pageFilePath:N,entitySha:w,displayName:C,createdAt:T,updatedAt:T},D={};if(M&&s.seed){let q=s.seed;if(s.type==="user"&&s.baseScenario)try{const z=G.join(m,".codeyam","editor-scenarios",`${s.baseScenario}.json`),B=await Ae.readFile(z,"utf-8"),H=JSON.parse(B);H.seed&&(q=cc(H.seed,s.seed),console.log(`[editor-register-scenario] Merged seed data from base scenario ${s.baseScenario}`))}catch(z){console.warn(`[editor-register-scenario] Could not read base scenario ${s.baseScenario}: ${z instanceof Error?z.message:z}`)}D.type=s.type,D.seed=q,s.externalApis&&(D.externalApis=s.externalApis),s.session&&(D.session=s.session),s.auth&&(D.auth=s.auth),s.localStorage&&(D.localStorage=s.localStorage);const J=G.join(m,".codeyam","editor-scenarios");await Ae.mkdir(J,{recursive:!0}),await Ae.writeFile(G.join(J,`${_}.seed.json`),JSON.stringify(q,null,2))}else(s.mockData||s.localStorage)&&(s.mockData&&Object.assign(D,s.mockData),s.localStorage&&(D.localStorage=s.localStorage));let L=null;if(M&&!s.seed&&Hr(m)){const J=G.join(m,".codeyam","editor-scenarios",`${_}.json`);let z=!1;try{z=!!JSON.parse(await Ae.readFile(J,"utf-8")).seed}catch{}z||(L='WARNING: This application scenario has no seed data. A seed adapter exists — include "seed":{...} in registration so the page has database rows to render. Without seed data, the page will likely be empty.',console.warn(`[editor-register-scenario] ${L}`))}mb(m,_,R,D);let U=null;if(M&&s.seed){const q=Hr(m);if(q){const J=G.join(m,".codeyam","editor-scenarios",`${_}.seed.json`);console.log(`[editor-register-scenario] Running seed adapter: ${q}`);const z=await Ai(q,J);if(U={success:z.success,error:z.error},z.success){console.log(`[editor-register-scenario] Seed adapter completed in ${z.durationMs}ms`);const B=z.sessionCookies&&z.sessionCookies.length>0,H=z.externalApis&&Object.keys(z.externalApis).length>0;if(B||H)try{const re=G.join(m,".codeyam","editor-scenarios",`${_}.json`),ae=JSON.parse(await Ae.readFile(re,"utf-8"));B&&(ae.sessionCookies=z.sessionCookies),H&&(ae.externalApis={...ae.externalApis,...z.externalApis}),await Ae.writeFile(re,JSON.stringify(ae,null,2)),console.log("[editor-register-scenario] Saved seed adapter auth data to scenario")}catch(re){console.warn(`[editor-register-scenario] Failed to save seed adapter auth data: ${re}`)}}else console.warn(`[editor-register-scenario] Seed adapter failed: ${z.error}`)}else console.warn(`[editor-register-scenario] No seed adapter found at ${m}/.codeyam/seed-adapter.ts`),U={success:!1,error:"No seed adapter found. Create .codeyam/seed-adapter.ts to use seed-based scenarios."}}Nt.notifyChange("scenario"),console.log(`[editor-register-scenario] Starting auto-capture for scenario "${o}" (id: ${_})`);const W=s.url&&s.url.startsWith("/"),V=!s.url||W?await $i():null,F=xc(),Y=Ei(s.url||null,V,F);console.log(`[editor-register-scenario] Capture URL resolution: explicit=${s.url||"none"}, isPath=${W}, proxy=${V||"none"}, devServer=${F||"none"} → using ${Y||"none"}`);let P=null,O=null,S=[],$=null,I=null,K={};if(Y){const q=It(o),J=await Pa({scenarioId:_,scenarioSlug:q,scenarioType:s.type||void 0,projectRoot:m});Ln(),!U&&J.seedResult&&(U=J.seedResult),console.log(`[editor-register-scenario] Active scenario set to "${q}" (${_}), type=${J.type}, seeded=${J.seeded}, seedResult=${JSON.stringify(J.seedResult??null)}, cache invalidated`),await new Promise(me=>setTimeout(me,300));const z=(t=s.url)!=null&&t.startsWith("/")?`${xc()||"http://localhost:3113"}${s.url}`:Y;for(let me=0;me<5;me++){try{const ve=await fetch(z,{method:"GET",signal:AbortSignal.timeout(3e3)});if(ve.status<500)break;console.log(`[editor-register-scenario] Route returned ${ve.status}, waiting for HMR (attempt ${me+1}/5)...`)}catch{console.log(`[editor-register-scenario] Route not reachable, waiting for HMR (attempt ${me+1}/5)...`)}await new Promise(ve=>setTimeout(ve,2e3))}const B=G.join(m,".codeyam","editor-scenarios","screenshots");await Ae.mkdir(B,{recursive:!0});const H=Ri(import.meta.url),re=await Di(H,m);console.log(`[editor-register-scenario] Capture script: ${re}`);const ae=Pi(m),X=x&&x.length>0?x:[null];K={};let oe=null;for(let me=0;me<X.length;me++){const ve=X[me];let je=v;if(ve){const ye=ae[ve];ye!=null&&ye.width&&(ye!=null&&ye.height)&&(je={width:ye.width,height:ye.height})}const ne=ve?Fu(ve):null,ke=ne&&X.length>1?`${_}--${ne}.png`:`${_}.png`,Z=G.join(B,ke),pe=`screenshots/${ke}`;me===0&&(I=je,oe=Z);const le=JSON.stringify({url:Y,outputPath:Z,viewportWidth:je.width,viewportHeight:je.height,...l?{selector:"#codeyam-capture"}:{}});console.log(`[editor-register-scenario] Capture ${ve||"default"}: ${je.width}×${je.height} → ${ke}`);const de=Date.now(),he=await Ii(re,le,m),_e=Date.now()-de;console.log(`[editor-register-scenario] Capture ${ve||"default"} ${he.success?"succeeded":"FAILED"} in ${_e}ms`),he.success||(console.warn(`[editor-register-scenario] Capture stdout: ${he.output.slice(0,500)}`),console.warn(`[editor-register-scenario] Capture stderr: ${(he.error||"").slice(0,500)}`)),me===0&&(S=np(he.output),$=ub(he.output),await rp(m,_,o,S),S.length>0&&console.warn(`[editor-register-scenario] ${S.length} client-side error(s) detected:`,S)),he.success?(ve&&(K[ve]=pe),me===0&&(P=pe)):me===0&&(O=he.error||"Unknown capture error",console.warn(`[editor-register-scenario] Screenshot capture failed (non-blocking): ${O}`))}if(P){try{await h.schema.alterTable("editor_scenarios").addColumn("screenshot_path","varchar").execute()}catch{}const me={screenshot_path:P,updated_at:new Date().toISOString().replace("T"," ").replace(/\.\d{3}Z$/,"")};Object.keys(K).length>0&&(me.screenshot_paths=JSON.stringify(K)),await h.updateTable("editor_scenarios").set(me).where("id","=",_).execute(),Nt.notifyChange("scenario"),oe&&await Ab(m,o,oe)}}else console.log("[editor-register-scenario] Skipping screenshot — no capture URL available (dev server not running?)");if(console.log(`[editor-register-scenario] Done: scenario="${o}", screenshot=${P?"captured":"skipped"}`),Y&&P)try{const q=Ce()||process.cwd(),J=G.join(q,".codeyam","editor-step.json");let z=null;try{const B=Q.readFileSync(J,"utf8");z=JSON.parse(B).featureStartedAt||null}catch{}if(z){const B=ns(z),H=await h.selectFrom("editor_scenarios").selectAll().where("project_id","=",p.id).orderBy("created_at","asc").execute(),re=$t(H,X=>`${X.name}::${X.url||"/"}`),ae=br();if(ae.length>0){let X=!1;try{const{execSync:de}=await import("child_process"),he=de("git rev-list --count HEAD",{cwd:q,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim();X=parseInt(he,10)<=1}catch{X=!0}const oe=Tu(ae,X),me={},ve=G.join(q,"app");if(Q.existsSync(ve)){const de=(he,_e)=>{for(const ye of Q.readdirSync(he,{withFileTypes:!0}))if(ye.name!=="isolated-components"){if(ye.isDirectory())de(G.join(he,ye.name),_e?`${_e}/${ye.name}`:ye.name);else if(ye.name==="page.tsx"||ye.name==="page.js"){const De=Ct(_e?`/${_e}`:"/");me[De]=_e?`app/${_e}/${ye.name}`:`app/${ye.name}`}}};de(ve,"")}let je=[];try{await We(),je=await nt({})||[]}catch{}const ne=re.map(de=>({componentName:de.component_name||null,componentPath:de.component_path||null,pageFilePath:de.page_file_path??null,url:de.url??null,displayName:de.display_name??null})),ke=Mu(ne,me,je),Z=$u(oe,ke),pe=re.filter(de=>de.created_at<B),le=new Map;for(const de of pe){const he=tn({componentName:de.component_name,pageFilePath:de.page_file_path,url:de.url});((r=Z[he])==null?void 0:r.status)==="impacted"&&le.set(he,de)}if(le.size>0){console.log(`[editor-register-scenario] Recapturing ${le.size} impacted older scenario(s): ${[...le.keys()].join(", ")}`);const{recaptureScenarios:de}=await Promise.resolve().then(()=>mv),he=[...le.values()].map(ye=>({id:ye.id,name:ye.name,url:ye.url,component_name:ye.component_name,dimensions:ye.dimensions,viewport_width:ye.viewport_width,viewport_height:ye.viewport_height}));await de({scenarios:he,codeyamRoot:m,proxyUrl:V,devUrl:F,db:h,importMetaUrl:import.meta.url});const _e=G.join(m,".codeyam","active-scenario.json");await Ae.writeFile(_e,JSON.stringify({scenarioId:_,scenarioSlug:It(o),type:s.type||null,timestamp:new Date().toISOString()})),Ln(),Nt.notifyChange("scenario")}}}}catch(q){console.warn(`[editor-register-scenario] Recapture of impacted scenarios failed (non-blocking): ${q instanceof Error?q.message:q}`)}try{const q=new Date().toISOString(),J=Object.keys(K).length>0?K:null;ap(m,_,{name:o,description:i||null,componentName:l||null,componentPath:d||null,url:s.url||null,type:s.type||null,screenshotPath:P||null,viewportWidth:v.width,viewportHeight:v.height,dimensions:x,screenshotPaths:J,pageFilePath:N,createdAt:q,updatedAt:q})}catch(q){console.warn(`[editor-register-scenario] Failed to update scenario metadata (non-blocking): ${q instanceof Error?q.message:q}`)}try{xb({dimension:b,viewport:v,refreshPath:s.url||void 0,scenarioId:_})}catch{}return new Response(JSON.stringify({success:!0,scenario:{id:_,name:o,description:i,componentName:l||null,componentPath:d||null,screenshotPath:P,url:s.url||null,type:s.type||null,viewportWidth:v.width,viewportHeight:v.height,dimensions:x,screenshotPaths:Object.keys(K).length>0?K:null},updated:!A.isNew,screenshotCaptured:P!==null,capturedViewport:I,captureError:O,clientErrors:S,...$?{visibleText:$}:{},...U?{seedResult:U}:{},...L?{missingSeedWarning:L}:{}}),{headers:{"Content-Type":"application/json"}})}catch(s){const a=s instanceof Error?s.message:String(s);return console.error("[editor-register-scenario] Error:",s),new Response(JSON.stringify({error:a}),{status:500,headers:{"Content-Type":"application/json"}})}}const Mb=Object.freeze(Object.defineProperty({__proto__:null,action:Tb},Symbol.toStringTag,{value:"Module"}));function zi(e){const t={},r=[],s=G.join(e,"app");if(!Q.existsSync(s))return{map:t,allFiles:r};const a=d=>d.split("/").filter(u=>!u.startsWith("(")).join("/"),o=new Set(["_layout.tsx","_layout.ts","_layout.js","layout.tsx","layout.ts","layout.js"]),i=new Set([".tsx",".ts",".jsx",".js"]),l=(d,u)=>{for(const p of Q.readdirSync(d,{withFileTypes:!0}))if(p.name!=="isolated-components")if(p.isDirectory())l(G.join(d,p.name),u?`${u}/${p.name}`:p.name);else if(p.name==="page.tsx"||p.name==="page.js"){const h=u?`app/${u}/${p.name}`:`app/${p.name}`;r.push(h);const m=a(u);t[Ct(m?`/${m}`:"/")]=h}else{if(o.has(p.name))continue;{const h=G.extname(p.name);if(!i.has(h))continue;const m=G.basename(p.name,h),f=u?`app/${u}/${p.name}`:`app/${p.name}`,y=a(u);let g;m==="index"?g=y?`/${y}`:"/":g=y?`/${y}/${m}`:`/${m}`,r.push(f);const x=Ct(g);t[x]||(t[x]=f)}}};return l(s,""),{map:t,allFiles:r}}function lp(e){try{const t=Me("git rev-list --count HEAD",{cwd:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim();return parseInt(t,10)<=1}catch{return!0}}function cp(e){try{const t=G.join(e,".codeyam","editor-step.json"),r=Q.readFileSync(t,"utf8");return JSON.parse(r).featureStartedAt||null}catch{return null}}function Da(e){try{const t=G.join(e,".codeyam","editor-step.json"),r=Q.readFileSync(t,"utf8");return JSON.parse(r).feature||null}catch{return null}}function Yi(e){try{const t=G.join(e,".codeyam","editor-step.json"),r=Q.readFileSync(t,"utf8"),s=JSON.parse(r);return typeof s.step=="number"&&s.label?{step:s.step,label:s.label}:null}catch{return null}}function Ui(e){try{const t=G.join(e,".codeyam","editor-step.json"),r=Q.readFileSync(t,"utf8"),s=JSON.parse(r);return Array.isArray(s.appFormats)?s.appFormats:null}catch{return null}}function dp(e){try{const t=G.join(e,".codeyam","claude-session-id.txt");return Q.readFileSync(t,"utf8").trim()||null}catch{return null}}function Wi(e){try{const t=G.join(e,".codeyam","editor-user-prompt.txt");return Q.readFileSync(t,"utf8").trim()||null}catch{return null}}function up(e){const t=G.join(e,".codeyam","active-scenario.json");try{return Q.existsSync(t)&&JSON.parse(Q.readFileSync(t,"utf-8")).scenarioId||null}catch{return null}}const $b=Object.freeze(Object.defineProperty({__proto__:null,detectFirstFeature:lp,readEditorAppFormats:Ui,readEditorFeature:Da,readEditorSessionId:dp,readEditorStep:Yi,readEditorUserPrompt:Wi,readFeatureStartedAt:cp,readSavedActiveScenarioId:up,scanPageFilePaths:zi},Symbol.toStringTag,{value:"Module"}));async function vr(e){const{projectRoot:t,scenarioInputs:r,glossaryInputs:s}=e,o=(e.precomputedPageFilePaths??zi(t)).map,i=new Set(Object.keys(o)),l=e.precomputedGitFiles??br();if(l.length===0)return{entityChangeStatus:{},pageEntityNames:i};const d=lp(t),u=Tu(l,d);let p=[];if(e.precomputedEntities)p=e.precomputedEntities;else try{await We(),p=await nt({})||[]}catch{}const h=Mu(r,o,p);let m=h;if(s&&s.length>0){const y=new Set(h.map(x=>x.name)),g=$y(s,y);m=[...h,...g]}return{entityChangeStatus:$u(u,m),pageEntityNames:i}}function Fb(e,t,r,s){const a=s?s.replace("T"," ").replace(/\.\d{3}Z$/,""):null,o=[],i=[],l=new Set;for(const p of e){const h=tn({componentName:p.component_name,pageFilePath:p.page_file_path,url:p.url});if(!h)continue;const m=t[h];if(!m||p.component_name)continue;const f=p.created_at||"",y=p.updated_at||"";(a?f>=a||y>=a:!0)?(i.push({name:p.name,url:p.url,entityName:h}),l.add(h)):o.push({name:p.name,url:p.url,entityName:h,changeStatus:m.status,lastCaptured:f})}const d=[];for(const[p,h]of Object.entries(t)){if(!r.has(p)||l.has(p))continue;o.some(f=>f.entityName===p)||d.push({entityName:p,changeStatus:h.status})}const u=o.length===0&&d.length===0;return{staleScenarios:o,freshScenarios:i,uncoveredPages:d,pass:u}}async function Rb(){const e=Ce()||process.cwd(),t=await Be();if(!t)return Response.json({error:"No project configured"},{status:400});const r=G.join(e,".codeyam","editor-step.json");let s=null;try{const f=Q.readFileSync(r,"utf8");s=JSON.parse(f).featureStartedAt||null}catch{}const{project:a}=await Ie(t),i=await Fe().selectFrom("editor_scenarios").select(["id","name","component_name","component_path","page_file_path","url","type","created_at","updated_at","display_name"]).where("project_id","=",a.id).orderBy("created_at","asc").execute(),l=$t(i,f=>`${f.name}::${f.url||"/"}`),d=l.map(f=>({componentName:f.component_name||null,componentPath:f.component_path||null,pageFilePath:f.page_file_path??null,url:f.url??null,displayName:f.display_name??null}));let u={},p=new Set;try{const f=await vr({projectRoot:e,scenarioInputs:d});u=f.entityChangeStatus,p=f.pageEntityNames}catch{}if(Object.keys(u).length===0)return Response.json({staleScenarios:[],uncoveredPages:[],freshScenarios:[],pass:!0,note:"No entity change data available — cannot determine coverage."});const h=l.map(f=>({name:f.name,component_name:f.component_name,page_file_path:f.page_file_path??null,url:f.url??null,created_at:f.created_at||"",updated_at:f.updated_at||null})),m=Fb(h,u,p,s);return Response.json(m)}const Db=Object.freeze(Object.defineProperty({__proto__:null,loader:Rb},Symbol.toStringTag,{value:"Module"}));function Ib({executionFlows:e,selections:t,onChange:r,disabled:s=!1}){const a=ie(i=>t.some(l=>l.flowId===i),[t]),o=ie(i=>{a(i.id)?r(t.filter(l=>l.flowId!==i.id)):r([...t,{flowId:i.id,flowName:i.name}])},[t,r,a]);return e.length===0?n("div",{className:"text-sm text-gray-500 py-2",children:"No execution flows found."}):n("div",{className:"space-y-3",children:e.map(i=>{const l=a(i.id),d=i.usedInScenarios.length>0;return c("div",{className:"border-b border-gray-100 pb-3 last:border-0 last:pb-0",children:[c("label",{className:"flex items-start gap-2 cursor-pointer",children:[n("input",{type:"checkbox",checked:l,onChange:()=>o(i),disabled:s,className:"mt-0.5 h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"flex items-center gap-2 flex-wrap",children:[n("span",{className:"font-mono text-sm font-medium text-gray-900",children:i.name}),!d&&n("span",{className:"text-xs px-1.5 py-0.5 bg-amber-100 text-amber-700 rounded",children:"uncovered"}),i.blocksOtherFlows&&n("span",{className:"text-xs px-1.5 py-0.5 bg-purple-100 text-purple-700 rounded",children:"blocking"}),i.impact==="high"&&n("span",{className:"text-xs px-1.5 py-0.5 bg-red-100 text-red-700 rounded",children:"high impact"})]}),i.description&&n("p",{className:"text-xs text-gray-500 mt-0.5 m-0",children:i.description})]})]}),l&&i.requiredValues.length>0&&c("div",{className:"ml-6 mt-2 p-2 bg-gray-50 rounded text-xs",children:[n("span",{className:"text-gray-700 font-medium",children:"Required values:"}),n("ul",{className:"m-0 mt-1 pl-4 space-y-0.5",children:i.requiredValues.map((u,p)=>c("li",{className:"text-gray-600",children:[n("code",{className:"bg-gray-100 px-1 rounded",children:u.attributePath})," ",n("span",{className:"text-gray-400",children:u.comparison})," ",n("code",{className:"bg-gray-100 px-1 rounded",children:u.value})]},p))})]})]},i.id)})})}function Ji(e,t){const r=(e||[]).map(d=>({...d,usedInScenarios:[]})),s=new Map;r.forEach(d=>{s.set(d.id,d)});const a=[];t.forEach(d=>{var p;const u=((p=d.metadata)==null?void 0:p.coveredFlows)||[];u.forEach(h=>{const m=s.get(h);m&&m.usedInScenarios.push({id:d.id||"",name:d.name})}),a.push({scenario:d,coveredFlowIds:u})});const o=r.length,i=r.filter(d=>d.usedInScenarios.length>0).length,l=o>0?i/o*100:0;return{executionFlows:r,totalFlows:o,coveredFlows:i,coveragePercentage:l,scenariosWithFlows:a}}function Ob(e){return e.executionFlows.filter(t=>t.usedInScenarios.length===0)}const Lb=({data:e})=>[{title:e!=null&&e.entity?`Create Scenario - ${e.entity.name} - CodeYam`:"Create Scenario - CodeYam"},{name:"description",content:"Create a new scenario"}];async function Bb({params:e}){var i;const{sha:t}=e;if(!t)throw new Response("Entity SHA is required",{status:400});const r=await ya(t,!0),s=r&&r.length>0?r[0]:null;if(!s)throw new Response("Analysis not found",{status:404});const a=(i=s.scenarios)==null?void 0:i.find(l=>l.name===ga);if(!a)throw new Response("Default scenario not found",{status:404});const o=await Be();return ue({analysis:s,defaultScenario:a,entity:s.entity,entitySha:t,projectSlug:o})}function zb(){var Y;const{analysis:e,defaultScenario:t,entity:r,entitySha:s,projectSlug:a}=dt(),o=Yt(),{iframeRef:i}=Fi(),[l,d]=E(""),[u,p]=E(400),[h,m]=E(!1),[f,y]=E(!1),[g,x]=E(!1),[b,v]=E(null),[N,w]=E(null),[C,k]=E([]),j=fe(()=>{var O;return!((O=e==null?void 0:e.metadata)!=null&&O.executionFlows)||!(e!=null&&e.scenarios)?[]:Ji(e.metadata.executionFlows,e.scenarios).executionFlows},[e]),{interactiveServerUrl:A,isStarting:_,isLoading:M,showIframe:T,iframeKey:R,onIframeLoad:D}=Yn({analysisId:e==null?void 0:e.id,scenarioId:t==null?void 0:t.id,scenarioName:t==null?void 0:t.name,projectSlug:a,enabled:!0}),L=ie(async()=>{var P,O,S,$;if(!l.trim()&&C.length===0){v("Please describe how you want to change the scenario or select execution flows");return}y(!0),v(null),w("Generating scenario with AI...");try{const I=await fetch("/api/generate-scenario-data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:l,existingScenarios:e.scenarios,scenariosDataStructure:(P=e.metadata)==null?void 0:P.scenariosDataStructure,flowSelections:C.length>0?C:void 0})}),K=await I.json();if(!I.ok||!K.success)throw new Error(K.error||"Failed to generate scenario data");console.log("[CreateScenario] AI generated scenario:",K.data);const q=K.data;if(!q.name||!q.data)throw new Error("AI response missing required fields (name or data)");w("Saving new scenario..."),x(!0);const J={name:q.name,description:q.description||l,metadata:{data:q.data,interactiveExamplePath:(O=t.metadata)==null?void 0:O.interactiveExamplePath}},z=[...e.scenarios||[],J],B=await fetch("/api/save-scenarios",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({analysis:e,scenarios:z})}),H=await B.json();if(!B.ok||!H.success)throw new Error(H.error||"Failed to save scenario");console.log("[CreateScenario] Scenario saved:",H);const re=($=(S=H.analysis)==null?void 0:S.scenarios)==null?void 0:$.find(ae=>ae.name===q.name);if(!(re!=null&&re.id)){console.warn("[CreateScenario] Could not find saved scenario ID, navigating to entity page"),w("Scenario created! Redirecting..."),setTimeout(()=>void o(`/entity/${s}`),1e3);return}if(A){w("Capturing screenshot...");const ae=await fetch("/api/capture-screenshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:A,scenarioId:re.id,projectId:e.projectId,viewportWidth:1440})}),X=await ae.json();!ae.ok||!X.success?(console.error("[CreateScenario] Capture failed:",X),w("Scenario created! (Screenshot capture failed)")):w("Scenario created and captured!")}else w("Scenario created!");setTimeout(()=>{o(`/entity/${s}/scenarios/${re.id}`)},1e3)}catch(I){console.error("[CreateScenario] Error:",I),v(I instanceof Error?I.message:String(I)),w(null)}finally{y(!1),x(!1)}},[l,C,e,t,s,A,o]),U=f||g,W=ie(()=>{m(!0)},[]),V=ie(P=>{if(!h)return;const O=P.clientX;O>=250&&O<=600&&p(O)},[h]),F=ie(()=>{m(!1)},[]);return se(()=>(h?(document.addEventListener("mousemove",V),document.addEventListener("mouseup",F)):(document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",F)),()=>{document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",F)}),[h,V,F]),c("div",{className:"h-screen bg-white flex flex-col overflow-hidden",children:[n("header",{className:"bg-white border-b border-gray-200 shrink-0 relative h-[54px]",children:c("div",{className:"flex items-end h-full px-6 gap-6",children:[c("div",{className:"flex items-center gap-3 min-w-0 flex-1 pb-[14px]",children:[n("button",{onClick:()=>void o(`/entity/${s}`),className:"no-underline shrink-0 bg-transparent border-none cursor-pointer p-0 flex items-center",title:"Back",children:n("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",children:n("path",{d:"M13 8.5H4M4 8.5L8.5 4M4 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),n("h1",{className:"text-base font-semibold text-black m-0 leading-[20px] shrink-0",children:r==null?void 0:r.name}),n("span",{className:"text-xs text-[#9e9e9e] font-mono font-normal whitespace-nowrap overflow-hidden text-ellipsis min-w-0",title:r==null?void 0:r.filePath,children:r==null?void 0:r.filePath})]}),c("div",{className:"flex items-end gap-8 shrink-0",children:[n(Ee,{to:`/entity/${s}/scenarios`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-medium border-b-2",style:{color:"#005C75",borderColor:"#005C75"},children:c("span",{className:"flex items-center gap-2",children:["Scenarios",n("span",{className:"inline-flex items-center justify-center px-2 py-0.5 text-xs font-semibold rounded-full bg-[#cbf3fa] text-[#005c75]",children:((Y=e==null?void 0:e.scenarios)==null?void 0:Y.length)||0})]})}),n(Ee,{to:`/entity/${s}/related`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"Related Entities"}),n(Ee,{to:`/entity/${s}/code`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"Code"}),n(Ee,{to:`/entity/${s}/data`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"Data Structure"}),n(Ee,{to:`/entity/${s}/history`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"History"})]})]})}),c("div",{className:"flex flex-1 gap-0 min-h-0 relative",children:[c("aside",{className:"bg-white border-r border-gray-200 overflow-y-auto shrink-0 p-6 flex flex-col",style:{width:`${u}px`},children:[c("div",{className:"mb-6",children:[n("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Default Scenario Preview"}),n("p",{className:"text-sm text-gray-600 leading-relaxed",children:"The preview on the right shows the Default Scenario. Select execution flows and/or describe how you'd like to change it."})]}),j.length>0&&c("details",{className:"mb-4 border border-gray-200 rounded-lg",children:[c("summary",{className:"px-3 py-2 text-sm font-medium text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg",children:["Select Execution Flows"," ",C.length>0&&c("span",{className:"text-blue-600",children:["(",C.length," selected)"]})]}),n("div",{className:"px-3 pb-3 pt-1 border-t border-gray-100",children:n(Ib,{executionFlows:j,selections:C,onChange:k,disabled:U})})]}),c("div",{className:"mb-4",children:[n("label",{htmlFor:"prompt",className:"block text-sm font-medium text-gray-700 mb-2",children:"Describe your scenario"}),n("textarea",{id:"prompt",value:l,onChange:P=>d(P.target.value),placeholder:"e.g., Show an empty state with no items...",className:"w-full h-32 px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 text-sm resize-none",disabled:U})]}),c("div",{className:"space-y-2",children:[n("button",{onClick:()=>void L(),disabled:U||!l.trim()&&C.length===0,className:"w-full px-4 py-2 bg-blue-600 text-white rounded-lg text-sm font-medium cursor-pointer transition-colors hover:bg-blue-700 disabled:bg-gray-400 disabled:cursor-not-allowed",children:U?"Creating...":"Create Scenario"}),N&&n("div",{className:"text-xs text-blue-600 bg-blue-50 px-2 py-1.5 rounded",children:N}),b&&n("div",{className:"text-xs text-red-600 bg-red-50 px-2 py-1.5 rounded",children:b})]})]}),c("div",{onMouseDown:W,style:{width:"20px",position:"absolute",top:0,left:`${u-10}px`,bottom:0,cursor:"col-resize",touchAction:"none",userSelect:"none",zIndex:100,pointerEvents:"auto"},children:[n("div",{style:{position:"absolute",left:"10px",top:0,bottom:0,width:"1px",background:h?"#005c75":"rgba(0,0,0,0.1)",transition:"background 0.15s ease"}}),n("div",{style:{position:"absolute",top:"50%",left:"10px",transform:"translate(-50%, -50%)",width:"8px",height:"40px",background:"#fff",border:"1px solid rgba(0,0,0,0.15)",borderRadius:"4px",cursor:"col-resize"}})]}),n("main",{className:"flex-1 overflow-auto flex items-center justify-center min-w-0",style:{backgroundImage:`
421
+ `).filter(i=>i.length>0).map(i=>{const l=i.split(" "),d=l[0];let u=l[1],p,h;return d==="A"?h="added":d==="M"?h="modified":d==="D"?h="deleted":d.startsWith("R")?(h="renamed",p=l[1],u=l[2]):h="modified",{path:u,status:h,...p&&{oldPath:p}}})}catch(a){return console.error("Failed to get branch diff:",a),[]}}function ip(e,t){const r=t||process.env.CODEYAM_ROOT_PATH||process.cwd();try{let s="";try{s=Me(`git show HEAD:"${e}"`,{cwd:r,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10})}catch{s=""}let a="";try{a=ce.readFileSync(te.join(r,e),"utf8")}catch(o){console.error(`Failed to read current file ${e}:`,o),a=""}return{oldContent:s,newContent:a,fileName:e}}catch(s){return console.error(`Failed to get diff for ${e}:`,s),{oldContent:"Error loading old content",newContent:"Error loading new content",fileName:e}}}function Eb(e){const t=Ce();return t?ip(e,t):{oldContent:"Error: No project root",newContent:"Error: No project root",fileName:e}}function Pb(e,t,r,s){const a=s||process.env.CODEYAM_ROOT_PATH||process.cwd();try{let o="";try{o=Me(`git show ${t}:"${e}"`,{cwd:a,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10})}catch{o=""}let i="";try{i=Me(`git show ${r}:"${e}"`,{cwd:a,encoding:"utf8",stdio:["pipe","pipe","ignore"],maxBuffer:1024*1024*10})}catch{i=""}return{oldContent:o,newContent:i,fileName:e}}catch(o){return console.error(`Failed to get branch diff for ${e}:`,o),{oldContent:"Error loading old content",newContent:"Error loading new content",fileName:e}}}function zs(e,t,r){const s=Ce();return s?Pb(e,t,r,s):{oldContent:"Error: No project root",newContent:"Error: No project root",fileName:e}}async function Ab(e,t,r){const s=G.join(e,".codeyam","journal"),a=G.join(s,"index.json");G.join(s,"screenshots");let o;try{const l=await Ae.readFile(a,"utf8");o=JSON.parse(l)}catch{return}let i=!1;for(const l of o.entries)if(!l.commitSha&&l.scenarioScreenshots)for(let d=0;d<l.scenarioScreenshots.length;d++){const u=l.scenarioScreenshots[d];if(u.name!==t)continue;const p=G.join(s,u.path);try{await Ae.copyFile(r,p),i=!0,console.log(`[editor-register-scenario] Updated journal screenshot for "${t}" in entry "${l.title}"`)}catch(h){console.warn(`[editor-register-scenario] Failed to update journal screenshot: ${h instanceof Error?h.message:h}`)}}i&&Nt.notifyChange("journal")}const xc=Ti;async function Tb({request:e}){var t,r;if(e.method!=="POST")return new Response("Method not allowed",{status:405});try{const s=await e.json();s.url=s.url||s.path||void 0;const a=qy({componentName:s.componentName,url:s.url,type:s.type});if(!a.valid)return new Response(JSON.stringify({error:a.error}),{status:400,headers:{"Content-Type":"application/json"}});const{name:o,description:i,componentName:l,componentPath:d}=s;if(!o)return new Response(JSON.stringify({error:"name is required"}),{status:400,headers:{"Content-Type":"application/json"}});if(l&&!d)return new Response(JSON.stringify({error:`componentPath is required when componentName is provided. Add "componentPath": "app/components/${l}.tsx" (or the actual file path) to the registration JSON.`}),{status:400,headers:{"Content-Type":"application/json"}});const u=await Be();if(!u)return new Response(JSON.stringify({error:"Project not initialized"}),{status:400,headers:{"Content-Type":"application/json"}});const{project:p}=await Ie(u),h=Fe(),m=process.env.CODEYAM_ROOT_PATH||process.cwd();let f,y,g;if(!s.viewportWidth&&!s.viewportHeight&&!s.dimension&&!s.dimensions){const q=await h.selectFrom("editor_scenarios").selectAll().where("name","=",o).where("project_id","=",p.id).orderBy("created_at","desc").executeTakeFirst();if(q){f=q.viewport_width||void 0,y=q.viewport_height||void 0;try{const J=q.dimensions?JSON.parse(q.dimensions):void 0;Array.isArray(J)&&(g=J)}catch{}}}let x=null;s.dimensions&&s.dimensions.length>0?x=s.dimensions:s.dimension?x=[s.dimension]:g&&g.length>0&&(x=g);const b=(x==null?void 0:x[0])||void 0,v=Ea({bodyWidth:s.viewportWidth||f,bodyHeight:s.viewportHeight||y,dimension:b,codeyamRoot:m});let N=null;if(!l){if(s.pageFilePath)N=s.pageFilePath;else if(s.url){const{scanPageFilePaths:q}=await Promise.resolve().then(()=>$b),J=Ce()||process.cwd(),{allFiles:z}=q(J);if(N=Au(s.url,z),!N){const B=await import("fs"),H=await import("path"),re=["src/App.tsx","src/App.jsx","src/app/App.tsx","src/popup/App.tsx","src/pages/index.tsx","src/pages/index.jsx","src/routes/index.tsx","app/root.tsx"];for(const ae of re)if(B.existsSync(H.join(J,ae))){N=ae;break}}}}let w=null,C=null;const k=d||N;if(k)try{await We();const J=(await nt({})||[]).filter(H=>H.filePath===k),B=J.find(H=>{var re,ae;return((re=H.metadata)==null?void 0:re.notExported)===!1&&((ae=H.metadata)==null?void 0:ae.namedExport)===!1})||J[0];B&&(w=B.sha)}catch{}const j=s.type==="application"||s.type==="user";if(!w&&j&&k){const q=Ce()||process.cwd(),J=Gy({lookupFilePath:k,scenarioType:s.type||null,projectRoot:q});if(!J.valid)return Response.json({error:J.error},{status:400});if(J.needsAnalysis)try{const{runAnalysisForEntities:z}=await import("./analysisRunner-QgInFGdU.js");await z({projectRoot:q,filePaths:[k],onlyDataStructure:!0});try{const H=(await nt({})||[]).filter(X=>X.filePath===k),ae=H.find(X=>{var oe,me;return((oe=X.metadata)==null?void 0:oe.notExported)===!1&&((me=X.metadata)==null?void 0:me.namedExport)===!1})||H[0];ae&&(w=ae.sha)}catch{}if(w)try{const B=await nt({});await Qy(h,(B||[]).map(H=>{var re,ae;return{sha:H.sha,name:H.name,filePath:H.filePath||"",isDefaultExport:((re=H.metadata)==null?void 0:re.notExported)===!1&&((ae=H.metadata)==null?void 0:ae.namedExport)===!1}}))}catch{}}catch(z){console.warn(`[editor-register-scenario] Auto analyze-imports failed for ${k}: ${z.message}`)}}l?C=l:N&&N.startsWith("app/")?C=Jt(Rt(N)):s.url&&(C=Ct(s.url));const A=await Vy(h,{projectId:p.id,name:o,description:i||null,componentName:l||null,componentPath:d||null,url:s.url||null,type:s.type||null,viewportWidth:v.width,viewportHeight:v.height,dimensions:x,screenshotPaths:null,pageFilePath:N,entitySha:w,displayName:C}),_=A.scenarioId;if(A.cleanedUpIds.length>0&&(Ky(m,A.cleanedUpIds),console.log(`[editor-register-scenario] Cleaned up ${A.cleanedUpIds.length} duplicate(s) for "${o}"`)),s.seedFrom&&!s.seed){const q=await ic(m,h,s.seedFrom);q?(s.seed=q,s.type||(s.type="application"),console.log(`[editor-register-scenario] Resolved seed data from "${s.seedFrom}"`)):console.warn(`[editor-register-scenario] seedFrom "${s.seedFrom}" not found — no seed data will be used`)}else if(s.seedFrom&&s.seed){const q=await ic(m,h,s.seedFrom);q&&(s.seed=cc(q,s.seed),console.log(`[editor-register-scenario] Merged seed data: base from "${s.seedFrom}", overlay from registration`))}const M=s.type==="application"||s.type==="user",T=new Date().toISOString(),R={name:o,description:i||null,componentName:l||null,componentPath:d||null,url:s.url||null,type:s.type||(M?null:"component"),screenshotPath:null,viewportWidth:v.width,viewportHeight:v.height,dimensions:x,screenshotPaths:null,pageFilePath:N,entitySha:w,displayName:C,createdAt:T,updatedAt:T},D={};if(M&&s.seed){let q=s.seed;if(s.type==="user"&&s.baseScenario)try{const z=G.join(m,".codeyam","editor-scenarios",`${s.baseScenario}.json`),B=await Ae.readFile(z,"utf-8"),H=JSON.parse(B);H.seed&&(q=cc(H.seed,s.seed),console.log(`[editor-register-scenario] Merged seed data from base scenario ${s.baseScenario}`))}catch(z){console.warn(`[editor-register-scenario] Could not read base scenario ${s.baseScenario}: ${z instanceof Error?z.message:z}`)}D.type=s.type,D.seed=q,s.externalApis&&(D.externalApis=s.externalApis),s.session&&(D.session=s.session),s.auth&&(D.auth=s.auth),s.localStorage&&(D.localStorage=s.localStorage);const J=G.join(m,".codeyam","editor-scenarios");await Ae.mkdir(J,{recursive:!0}),await Ae.writeFile(G.join(J,`${_}.seed.json`),JSON.stringify(q,null,2))}else(s.mockData||s.localStorage)&&(s.mockData&&Object.assign(D,s.mockData),s.localStorage&&(D.localStorage=s.localStorage));let L=null;if(M&&!s.seed&&Hr(m)){const J=G.join(m,".codeyam","editor-scenarios",`${_}.json`);let z=!1;try{z=!!JSON.parse(await Ae.readFile(J,"utf-8")).seed}catch{}z||(L='WARNING: This application scenario has no seed data. A seed adapter exists — include "seed":{...} in registration so the page has database rows to render. Without seed data, the page will likely be empty.',console.warn(`[editor-register-scenario] ${L}`))}mb(m,_,R,D);let U=null;if(M&&s.seed){const q=Hr(m);if(q){const J=G.join(m,".codeyam","editor-scenarios",`${_}.seed.json`);console.log(`[editor-register-scenario] Running seed adapter: ${q}`);const z=await Ai(q,J);if(U={success:z.success,error:z.error},z.success){console.log(`[editor-register-scenario] Seed adapter completed in ${z.durationMs}ms`);const B=z.sessionCookies&&z.sessionCookies.length>0,H=z.externalApis&&Object.keys(z.externalApis).length>0;if(B||H)try{const re=G.join(m,".codeyam","editor-scenarios",`${_}.json`),ae=JSON.parse(await Ae.readFile(re,"utf-8"));B&&(ae.sessionCookies=z.sessionCookies),H&&(ae.externalApis={...ae.externalApis,...z.externalApis}),await Ae.writeFile(re,JSON.stringify(ae,null,2)),console.log("[editor-register-scenario] Saved seed adapter auth data to scenario")}catch(re){console.warn(`[editor-register-scenario] Failed to save seed adapter auth data: ${re}`)}}else console.warn(`[editor-register-scenario] Seed adapter failed: ${z.error}`)}else console.warn(`[editor-register-scenario] No seed adapter found at ${m}/.codeyam/seed-adapter.ts`),U={success:!1,error:"No seed adapter found. Create .codeyam/seed-adapter.ts to use seed-based scenarios."}}Nt.notifyChange("scenario"),console.log(`[editor-register-scenario] Starting auto-capture for scenario "${o}" (id: ${_})`);const W=s.url&&s.url.startsWith("/"),V=!s.url||W?await $i():null,F=xc(),Y=Ei(s.url||null,V,F);console.log(`[editor-register-scenario] Capture URL resolution: explicit=${s.url||"none"}, isPath=${W}, proxy=${V||"none"}, devServer=${F||"none"} → using ${Y||"none"}`);let P=null,O=null,S=[],$=null,I=null,K={};if(Y){const q=It(o),J=await Pa({scenarioId:_,scenarioSlug:q,scenarioType:s.type||void 0,projectRoot:m});Ln(),!U&&J.seedResult&&(U=J.seedResult),console.log(`[editor-register-scenario] Active scenario set to "${q}" (${_}), type=${J.type}, seeded=${J.seeded}, seedResult=${JSON.stringify(J.seedResult??null)}, cache invalidated`),await new Promise(me=>setTimeout(me,300));const z=(t=s.url)!=null&&t.startsWith("/")?`${xc()||"http://localhost:3113"}${s.url}`:Y;for(let me=0;me<5;me++){try{const ve=await fetch(z,{method:"GET",signal:AbortSignal.timeout(3e3)});if(ve.status<500)break;console.log(`[editor-register-scenario] Route returned ${ve.status}, waiting for HMR (attempt ${me+1}/5)...`)}catch{console.log(`[editor-register-scenario] Route not reachable, waiting for HMR (attempt ${me+1}/5)...`)}await new Promise(ve=>setTimeout(ve,2e3))}const B=G.join(m,".codeyam","editor-scenarios","screenshots");await Ae.mkdir(B,{recursive:!0});const H=Ri(import.meta.url),re=await Di(H,m);console.log(`[editor-register-scenario] Capture script: ${re}`);const ae=Pi(m),X=x&&x.length>0?x:[null];K={};let oe=null;for(let me=0;me<X.length;me++){const ve=X[me];let je=v;if(ve){const ye=ae[ve];ye!=null&&ye.width&&(ye!=null&&ye.height)&&(je={width:ye.width,height:ye.height})}const ne=ve?Fu(ve):null,ke=ne&&X.length>1?`${_}--${ne}.png`:`${_}.png`,Z=G.join(B,ke),pe=`screenshots/${ke}`;me===0&&(I=je,oe=Z);const le=JSON.stringify({url:Y,outputPath:Z,viewportWidth:je.width,viewportHeight:je.height,...l?{selector:"#codeyam-capture"}:{}});console.log(`[editor-register-scenario] Capture ${ve||"default"}: ${je.width}×${je.height} → ${ke}`);const de=Date.now(),he=await Ii(re,le,m),_e=Date.now()-de;console.log(`[editor-register-scenario] Capture ${ve||"default"} ${he.success?"succeeded":"FAILED"} in ${_e}ms`),he.success||(console.warn(`[editor-register-scenario] Capture stdout: ${he.output.slice(0,500)}`),console.warn(`[editor-register-scenario] Capture stderr: ${(he.error||"").slice(0,500)}`)),me===0&&(S=np(he.output),$=ub(he.output),await rp(m,_,o,S),S.length>0&&console.warn(`[editor-register-scenario] ${S.length} client-side error(s) detected:`,S)),he.success?(ve&&(K[ve]=pe),me===0&&(P=pe)):me===0&&(O=he.error||"Unknown capture error",console.warn(`[editor-register-scenario] Screenshot capture failed (non-blocking): ${O}`))}if(P){try{await h.schema.alterTable("editor_scenarios").addColumn("screenshot_path","varchar").execute()}catch{}const me={screenshot_path:P,updated_at:new Date().toISOString().replace("T"," ").replace(/\.\d{3}Z$/,"")};Object.keys(K).length>0&&(me.screenshot_paths=JSON.stringify(K)),await h.updateTable("editor_scenarios").set(me).where("id","=",_).execute(),Nt.notifyChange("scenario"),oe&&await Ab(m,o,oe)}}else console.log("[editor-register-scenario] Skipping screenshot — no capture URL available (dev server not running?)");if(console.log(`[editor-register-scenario] Done: scenario="${o}", screenshot=${P?"captured":"skipped"}`),Y&&P)try{const q=Ce()||process.cwd(),J=G.join(q,".codeyam","editor-step.json");let z=null;try{const B=Q.readFileSync(J,"utf8");z=JSON.parse(B).featureStartedAt||null}catch{}if(z){const B=ns(z),H=await h.selectFrom("editor_scenarios").selectAll().where("project_id","=",p.id).orderBy("created_at","asc").execute(),re=$t(H,X=>`${X.name}::${X.url||"/"}`),ae=br();if(ae.length>0){let X=!1;try{const{execSync:de}=await import("child_process"),he=de("git rev-list --count HEAD",{cwd:q,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim();X=parseInt(he,10)<=1}catch{X=!0}const oe=Tu(ae,X),me={},ve=G.join(q,"app");if(Q.existsSync(ve)){const de=(he,_e)=>{for(const ye of Q.readdirSync(he,{withFileTypes:!0}))if(ye.name!=="isolated-components"){if(ye.isDirectory())de(G.join(he,ye.name),_e?`${_e}/${ye.name}`:ye.name);else if(ye.name==="page.tsx"||ye.name==="page.js"){const De=Ct(_e?`/${_e}`:"/");me[De]=_e?`app/${_e}/${ye.name}`:`app/${ye.name}`}}};de(ve,"")}let je=[];try{await We(),je=await nt({})||[]}catch{}const ne=re.map(de=>({componentName:de.component_name||null,componentPath:de.component_path||null,pageFilePath:de.page_file_path??null,url:de.url??null,displayName:de.display_name??null})),ke=Mu(ne,me,je),Z=$u(oe,ke),pe=re.filter(de=>de.created_at<B),le=new Map;for(const de of pe){const he=tn({componentName:de.component_name,pageFilePath:de.page_file_path,url:de.url});((r=Z[he])==null?void 0:r.status)==="impacted"&&le.set(he,de)}if(le.size>0){console.log(`[editor-register-scenario] Recapturing ${le.size} impacted older scenario(s): ${[...le.keys()].join(", ")}`);const{recaptureScenarios:de}=await Promise.resolve().then(()=>mv),he=[...le.values()].map(ye=>({id:ye.id,name:ye.name,url:ye.url,component_name:ye.component_name,dimensions:ye.dimensions,viewport_width:ye.viewport_width,viewport_height:ye.viewport_height}));await de({scenarios:he,codeyamRoot:m,proxyUrl:V,devUrl:F,db:h,importMetaUrl:import.meta.url});const _e=G.join(m,".codeyam","active-scenario.json");await Ae.writeFile(_e,JSON.stringify({scenarioId:_,scenarioSlug:It(o),type:s.type||null,timestamp:new Date().toISOString()})),Ln(),Nt.notifyChange("scenario")}}}}catch(q){console.warn(`[editor-register-scenario] Recapture of impacted scenarios failed (non-blocking): ${q instanceof Error?q.message:q}`)}try{const q=new Date().toISOString(),J=Object.keys(K).length>0?K:null;ap(m,_,{name:o,description:i||null,componentName:l||null,componentPath:d||null,url:s.url||null,type:s.type||null,screenshotPath:P||null,viewportWidth:v.width,viewportHeight:v.height,dimensions:x,screenshotPaths:J,pageFilePath:N,createdAt:q,updatedAt:q})}catch(q){console.warn(`[editor-register-scenario] Failed to update scenario metadata (non-blocking): ${q instanceof Error?q.message:q}`)}try{xb({dimension:b,viewport:v,refreshPath:s.url||void 0,scenarioId:_})}catch{}return new Response(JSON.stringify({success:!0,scenario:{id:_,name:o,description:i,componentName:l||null,componentPath:d||null,screenshotPath:P,url:s.url||null,type:s.type||null,viewportWidth:v.width,viewportHeight:v.height,dimensions:x,screenshotPaths:Object.keys(K).length>0?K:null},updated:!A.isNew,screenshotCaptured:P!==null,capturedViewport:I,captureError:O,clientErrors:S,...$?{visibleText:$}:{},...U?{seedResult:U}:{},...L?{missingSeedWarning:L}:{}}),{headers:{"Content-Type":"application/json"}})}catch(s){const a=s instanceof Error?s.message:String(s);return console.error("[editor-register-scenario] Error:",s),new Response(JSON.stringify({error:a}),{status:500,headers:{"Content-Type":"application/json"}})}}const Mb=Object.freeze(Object.defineProperty({__proto__:null,action:Tb},Symbol.toStringTag,{value:"Module"}));function zi(e){const t={},r=[],s=G.join(e,"app");if(!Q.existsSync(s))return{map:t,allFiles:r};const a=d=>d.split("/").filter(u=>!u.startsWith("(")).join("/"),o=new Set(["_layout.tsx","_layout.ts","_layout.js","layout.tsx","layout.ts","layout.js"]),i=new Set([".tsx",".ts",".jsx",".js"]),l=(d,u)=>{for(const p of Q.readdirSync(d,{withFileTypes:!0}))if(p.name!=="isolated-components")if(p.isDirectory())l(G.join(d,p.name),u?`${u}/${p.name}`:p.name);else if(p.name==="page.tsx"||p.name==="page.js"){const h=u?`app/${u}/${p.name}`:`app/${p.name}`;r.push(h);const m=a(u);t[Ct(m?`/${m}`:"/")]=h}else{if(o.has(p.name))continue;{const h=G.extname(p.name);if(!i.has(h))continue;const m=G.basename(p.name,h),f=u?`app/${u}/${p.name}`:`app/${p.name}`,y=a(u);let g;m==="index"?g=y?`/${y}`:"/":g=y?`/${y}/${m}`:`/${m}`,r.push(f);const x=Ct(g);t[x]||(t[x]=f)}}};return l(s,""),{map:t,allFiles:r}}function lp(e){try{const t=Me("git rev-list --count HEAD",{cwd:e,encoding:"utf8",stdio:["pipe","pipe","ignore"]}).trim();return parseInt(t,10)<=1}catch{return!0}}function cp(e){try{const t=G.join(e,".codeyam","editor-step.json"),r=Q.readFileSync(t,"utf8");return JSON.parse(r).featureStartedAt||null}catch{return null}}function Da(e){try{const t=G.join(e,".codeyam","editor-step.json"),r=Q.readFileSync(t,"utf8");return JSON.parse(r).feature||null}catch{return null}}function Yi(e){try{const t=G.join(e,".codeyam","editor-step.json"),r=Q.readFileSync(t,"utf8"),s=JSON.parse(r);return typeof s.step=="number"&&s.label?{step:s.step,label:s.label}:null}catch{return null}}function Ui(e){try{const t=G.join(e,".codeyam","editor-step.json"),r=Q.readFileSync(t,"utf8"),s=JSON.parse(r);return Array.isArray(s.appFormats)?s.appFormats:null}catch{return null}}function dp(e){try{const t=G.join(e,".codeyam","claude-session-id.txt");return Q.readFileSync(t,"utf8").trim()||null}catch{return null}}function Wi(e){try{const t=G.join(e,".codeyam","editor-user-prompt.txt");return Q.readFileSync(t,"utf8").trim()||null}catch{return null}}function up(e){const t=G.join(e,".codeyam","active-scenario.json");try{return Q.existsSync(t)&&JSON.parse(Q.readFileSync(t,"utf-8")).scenarioId||null}catch{return null}}const $b=Object.freeze(Object.defineProperty({__proto__:null,detectFirstFeature:lp,readEditorAppFormats:Ui,readEditorFeature:Da,readEditorSessionId:dp,readEditorStep:Yi,readEditorUserPrompt:Wi,readFeatureStartedAt:cp,readSavedActiveScenarioId:up,scanPageFilePaths:zi},Symbol.toStringTag,{value:"Module"}));async function vr(e){const{projectRoot:t,scenarioInputs:r,glossaryInputs:s}=e,o=(e.precomputedPageFilePaths??zi(t)).map,i=new Set(Object.keys(o)),l=e.precomputedGitFiles??br();if(l.length===0)return{entityChangeStatus:{},pageEntityNames:i};const d=lp(t),u=Tu(l,d);let p=[];if(e.precomputedEntities)p=e.precomputedEntities;else try{await We(),p=await nt({})||[]}catch{}const h=Mu(r,o,p);let m=h;if(s&&s.length>0){const y=new Set(h.map(x=>x.name)),g=$y(s,y);m=[...h,...g]}return{entityChangeStatus:$u(u,m),pageEntityNames:i}}function Fb(e,t,r,s){const a=s?s.replace("T"," ").replace(/\.\d{3}Z$/,""):null,o=[],i=[],l=new Set;for(const p of e){const h=tn({componentName:p.component_name,pageFilePath:p.page_file_path,url:p.url});if(!h)continue;const m=t[h];if(!m||p.component_name)continue;const f=p.created_at||"",y=p.updated_at||"";(a?f>=a||y>=a:!0)?(i.push({name:p.name,url:p.url,entityName:h}),l.add(h)):o.push({name:p.name,url:p.url,entityName:h,changeStatus:m.status,lastCaptured:f})}const d=[];for(const[p,h]of Object.entries(t)){if(!r.has(p)||l.has(p))continue;o.some(f=>f.entityName===p)||d.push({entityName:p,changeStatus:h.status})}const u=o.length===0&&d.length===0;return{staleScenarios:o,freshScenarios:i,uncoveredPages:d,pass:u}}async function Rb(){const e=Ce()||process.cwd(),t=await Be();if(!t)return Response.json({error:"No project configured"},{status:400});const r=G.join(e,".codeyam","editor-step.json");let s=null;try{const f=Q.readFileSync(r,"utf8");s=JSON.parse(f).featureStartedAt||null}catch{}const{project:a}=await Ie(t),i=await Fe().selectFrom("editor_scenarios").select(["id","name","component_name","component_path","page_file_path","url","type","created_at","updated_at","display_name"]).where("project_id","=",a.id).orderBy("created_at","asc").execute(),l=$t(i,f=>`${f.name}::${f.url||"/"}`),d=l.map(f=>({componentName:f.component_name||null,componentPath:f.component_path||null,pageFilePath:f.page_file_path??null,url:f.url??null,displayName:f.display_name??null}));let u={},p=new Set;try{const f=await vr({projectRoot:e,scenarioInputs:d});u=f.entityChangeStatus,p=f.pageEntityNames}catch{}if(Object.keys(u).length===0)return Response.json({staleScenarios:[],uncoveredPages:[],freshScenarios:[],pass:!0,note:"No entity change data available — cannot determine coverage."});const h=l.map(f=>({name:f.name,component_name:f.component_name,page_file_path:f.page_file_path??null,url:f.url??null,created_at:f.created_at||"",updated_at:f.updated_at||null})),m=Fb(h,u,p,s);return Response.json(m)}const Db=Object.freeze(Object.defineProperty({__proto__:null,loader:Rb},Symbol.toStringTag,{value:"Module"}));function Ib({executionFlows:e,selections:t,onChange:r,disabled:s=!1}){const a=ie(i=>t.some(l=>l.flowId===i),[t]),o=ie(i=>{a(i.id)?r(t.filter(l=>l.flowId!==i.id)):r([...t,{flowId:i.id,flowName:i.name}])},[t,r,a]);return e.length===0?n("div",{className:"text-sm text-gray-500 py-2",children:"No execution flows found."}):n("div",{className:"space-y-3",children:e.map(i=>{const l=a(i.id),d=i.usedInScenarios.length>0;return c("div",{className:"border-b border-gray-100 pb-3 last:border-0 last:pb-0",children:[c("label",{className:"flex items-start gap-2 cursor-pointer",children:[n("input",{type:"checkbox",checked:l,onChange:()=>o(i),disabled:s,className:"mt-0.5 h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500"}),c("div",{className:"flex-1 min-w-0",children:[c("div",{className:"flex items-center gap-2 flex-wrap",children:[n("span",{className:"font-mono text-sm font-medium text-gray-900",children:i.name}),!d&&n("span",{className:"text-xs px-1.5 py-0.5 bg-amber-100 text-amber-700 rounded",children:"uncovered"}),i.blocksOtherFlows&&n("span",{className:"text-xs px-1.5 py-0.5 bg-purple-100 text-purple-700 rounded",children:"blocking"}),i.impact==="high"&&n("span",{className:"text-xs px-1.5 py-0.5 bg-red-100 text-red-700 rounded",children:"high impact"})]}),i.description&&n("p",{className:"text-xs text-gray-500 mt-0.5 m-0",children:i.description})]})]}),l&&i.requiredValues.length>0&&c("div",{className:"ml-6 mt-2 p-2 bg-gray-50 rounded text-xs",children:[n("span",{className:"text-gray-700 font-medium",children:"Required values:"}),n("ul",{className:"m-0 mt-1 pl-4 space-y-0.5",children:i.requiredValues.map((u,p)=>c("li",{className:"text-gray-600",children:[n("code",{className:"bg-gray-100 px-1 rounded",children:u.attributePath})," ",n("span",{className:"text-gray-400",children:u.comparison})," ",n("code",{className:"bg-gray-100 px-1 rounded",children:u.value})]},p))})]})]},i.id)})})}function Ji(e,t){const r=(e||[]).map(d=>({...d,usedInScenarios:[]})),s=new Map;r.forEach(d=>{s.set(d.id,d)});const a=[];t.forEach(d=>{var p;const u=((p=d.metadata)==null?void 0:p.coveredFlows)||[];u.forEach(h=>{const m=s.get(h);m&&m.usedInScenarios.push({id:d.id||"",name:d.name})}),a.push({scenario:d,coveredFlowIds:u})});const o=r.length,i=r.filter(d=>d.usedInScenarios.length>0).length,l=o>0?i/o*100:0;return{executionFlows:r,totalFlows:o,coveredFlows:i,coveragePercentage:l,scenariosWithFlows:a}}function Ob(e){return e.executionFlows.filter(t=>t.usedInScenarios.length===0)}const Lb=({data:e})=>[{title:e!=null&&e.entity?`Create Scenario - ${e.entity.name} - CodeYam`:"Create Scenario - CodeYam"},{name:"description",content:"Create a new scenario"}];async function Bb({params:e}){var i;const{sha:t}=e;if(!t)throw new Response("Entity SHA is required",{status:400});const r=await ya(t,!0),s=r&&r.length>0?r[0]:null;if(!s)throw new Response("Analysis not found",{status:404});const a=(i=s.scenarios)==null?void 0:i.find(l=>l.name===ga);if(!a)throw new Response("Default scenario not found",{status:404});const o=await Be();return ue({analysis:s,defaultScenario:a,entity:s.entity,entitySha:t,projectSlug:o})}function zb(){var Y;const{analysis:e,defaultScenario:t,entity:r,entitySha:s,projectSlug:a}=dt(),o=Yt(),{iframeRef:i}=Fi(),[l,d]=E(""),[u,p]=E(400),[h,m]=E(!1),[f,y]=E(!1),[g,x]=E(!1),[b,v]=E(null),[N,w]=E(null),[C,k]=E([]),j=fe(()=>{var O;return!((O=e==null?void 0:e.metadata)!=null&&O.executionFlows)||!(e!=null&&e.scenarios)?[]:Ji(e.metadata.executionFlows,e.scenarios).executionFlows},[e]),{interactiveServerUrl:A,isStarting:_,isLoading:M,showIframe:T,iframeKey:R,onIframeLoad:D}=Yn({analysisId:e==null?void 0:e.id,scenarioId:t==null?void 0:t.id,scenarioName:t==null?void 0:t.name,projectSlug:a,enabled:!0}),L=ie(async()=>{var P,O,S,$;if(!l.trim()&&C.length===0){v("Please describe how you want to change the scenario or select execution flows");return}y(!0),v(null),w("Generating scenario with AI...");try{const I=await fetch("/api/generate-scenario-data",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:l,existingScenarios:e.scenarios,scenariosDataStructure:(P=e.metadata)==null?void 0:P.scenariosDataStructure,flowSelections:C.length>0?C:void 0})}),K=await I.json();if(!I.ok||!K.success)throw new Error(K.error||"Failed to generate scenario data");console.log("[CreateScenario] AI generated scenario:",K.data);const q=K.data;if(!q.name||!q.data)throw new Error("AI response missing required fields (name or data)");w("Saving new scenario..."),x(!0);const J={name:q.name,description:q.description||l,metadata:{data:q.data,interactiveExamplePath:(O=t.metadata)==null?void 0:O.interactiveExamplePath}},z=[...e.scenarios||[],J],B=await fetch("/api/save-scenarios",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({analysis:e,scenarios:z})}),H=await B.json();if(!B.ok||!H.success)throw new Error(H.error||"Failed to save scenario");console.log("[CreateScenario] Scenario saved:",H);const re=($=(S=H.analysis)==null?void 0:S.scenarios)==null?void 0:$.find(ae=>ae.name===q.name);if(!(re!=null&&re.id)){console.warn("[CreateScenario] Could not find saved scenario ID, navigating to entity page"),w("Scenario created! Redirecting..."),setTimeout(()=>void o(`/entity/${s}`),1e3);return}if(A){w("Capturing screenshot...");const ae=await fetch("/api/capture-screenshot",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({serverUrl:A,scenarioId:re.id,projectId:e.projectId,viewportWidth:1440})}),X=await ae.json();!ae.ok||!X.success?(console.error("[CreateScenario] Capture failed:",X),w("Scenario created! (Screenshot capture failed)")):w("Scenario created and captured!")}else w("Scenario created!");setTimeout(()=>{o(`/entity/${s}/scenarios/${re.id}`)},1e3)}catch(I){console.error("[CreateScenario] Error:",I),v(I instanceof Error?I.message:String(I)),w(null)}finally{y(!1),x(!1)}},[l,C,e,t,s,A,o]),U=f||g,W=ie(()=>{m(!0)},[]),V=ie(P=>{if(!h)return;const O=P.clientX;O>=250&&O<=600&&p(O)},[h]),F=ie(()=>{m(!1)},[]);return se(()=>(h?(document.addEventListener("mousemove",V),document.addEventListener("mouseup",F)):(document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",F)),()=>{document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",F)}),[h,V,F]),c("div",{className:"h-screen bg-white flex flex-col overflow-hidden",children:[n("header",{className:"bg-white border-b border-gray-200 shrink-0 relative h-[54px]",children:c("div",{className:"flex items-end h-full px-6 gap-6",children:[c("div",{className:"flex items-center gap-3 min-w-0 flex-1 pb-[14px]",children:[n("button",{onClick:()=>void o(`/entity/${s}`),className:"no-underline shrink-0 bg-transparent border-none cursor-pointer p-0 flex items-center",title:"Back",children:n("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",children:n("path",{d:"M13 8.5H4M4 8.5L8.5 4M4 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),n("h1",{className:"text-base font-semibold text-black m-0 leading-[20px] shrink-0",children:r==null?void 0:r.name}),n("span",{className:"text-xs text-[#9e9e9e] font-mono font-normal whitespace-nowrap overflow-hidden text-ellipsis min-w-0",title:r==null?void 0:r.filePath,children:r==null?void 0:r.filePath})]}),c("div",{className:"flex items-end gap-8 shrink-0",children:[n(Ee,{to:`/entity/${s}/scenarios`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-medium border-b-2",style:{color:"#005C75",borderColor:"#005C75"},children:c("span",{className:"flex items-center gap-2",children:["Scenarios",n("span",{className:"inline-flex items-center justify-center px-2 py-0.5 text-xs font-semibold rounded-full bg-[#cbf3fa] text-[#005c75]",children:((Y=e==null?void 0:e.scenarios)==null?void 0:Y.length)||0})]})}),n(Ee,{to:`/entity/${s}/related`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"Related Entities"}),n(Ee,{to:`/entity/${s}/code`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"Code"}),n(Ee,{to:`/entity/${s}/data`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"Data Structure"}),n(Ee,{to:`/entity/${s}/history`,className:"relative pb-[17px] px-2 text-sm transition-colors cursor-pointer no-underline font-normal hover:text-gray-700",style:{color:"#9ca3af"},children:"History"})]})]})}),c("div",{className:"flex flex-1 gap-0 min-h-0 relative",children:[c("aside",{className:"bg-white border-r border-gray-200 overflow-y-auto shrink-0 p-6 flex flex-col",style:{width:`${u}px`},children:[c("div",{className:"mb-6",children:[n("h2",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Default Scenario Preview"}),n("p",{className:"text-sm text-gray-600 leading-relaxed",children:"The preview on the right shows the Default Scenario. Select execution flows and/or describe how you'd like to change it."})]}),j.length>0&&c("details",{className:"mb-4 border border-gray-200 rounded-lg",children:[c("summary",{className:"px-3 py-2 text-sm font-medium text-gray-700 cursor-pointer hover:bg-gray-50 rounded-lg",children:["Select Execution Flows"," ",C.length>0&&c("span",{className:"text-blue-600",children:["(",C.length," selected)"]})]}),n("div",{className:"px-3 pb-3 pt-1 border-t border-gray-100",children:n(Ib,{executionFlows:j,selections:C,onChange:k,disabled:U})})]}),c("div",{className:"mb-4",children:[n("label",{htmlFor:"prompt",className:"block text-sm font-medium text-gray-700 mb-2",children:"Describe your scenario"}),n("textarea",{id:"prompt",value:l,onChange:P=>d(P.target.value),placeholder:"e.g., Show an empty state with no items...",className:"w-full h-32 px-3 py-2 border border-gray-300 rounded-md focus:outline-none focus:ring-1 focus:ring-blue-500 focus:border-blue-500 text-sm resize-none",disabled:U})]}),c("div",{className:"space-y-2",children:[n("button",{onClick:()=>void L(),disabled:U||!l.trim()&&C.length===0,className:"w-full px-4 py-2 bg-blue-600 text-white rounded-lg text-sm font-medium cursor-pointer transition-colors hover:bg-blue-700 disabled:bg-gray-400 disabled:cursor-not-allowed",children:U?"Creating...":"Create Scenario"}),N&&n("div",{className:"text-xs text-blue-600 bg-blue-50 px-2 py-1.5 rounded",children:N}),b&&n("div",{className:"text-xs text-red-600 bg-red-50 px-2 py-1.5 rounded",children:b})]})]}),c("div",{onMouseDown:W,style:{width:"20px",position:"absolute",top:0,left:`${u-10}px`,bottom:0,cursor:"col-resize",touchAction:"none",userSelect:"none",zIndex:100,pointerEvents:"auto"},children:[n("div",{style:{position:"absolute",left:"10px",top:0,bottom:0,width:"1px",background:h?"#005c75":"rgba(0,0,0,0.1)",transition:"background 0.15s ease"}}),n("div",{style:{position:"absolute",top:"50%",left:"10px",transform:"translate(-50%, -50%)",width:"8px",height:"40px",background:"#fff",border:"1px solid rgba(0,0,0,0.15)",borderRadius:"4px",cursor:"col-resize"}})]}),n("main",{className:"flex-1 overflow-auto flex items-center justify-center min-w-0",style:{backgroundImage:`
422
422
  linear-gradient(45deg, #ebebeb 25%, transparent 25%),
423
423
  linear-gradient(-45deg, #ebebeb 25%, transparent 25%),
424
424
  linear-gradient(45deg, transparent 75%, #ebebeb 75%),
@@ -850,4 +850,4 @@ Omit empty categories. After posting, briefly summarize what was detected.`,[h])
850
850
  linear-gradient(-45deg, #333 25%, transparent 25%),
851
851
  linear-gradient(45deg, transparent 75%, #333 75%),
852
852
  linear-gradient(-45deg, transparent 75%, #333 75%)
853
- `,backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px",backgroundColor:"#2d2d2d"},children:nn?n(P3,{preview:nn,viewportWidth:ze.width,viewportHeight:ze.height??900,scale:ln,onDismiss:()=>st(null),onLoadCommit:ut}):bt?n(T3,{preview:bt,viewportWidth:ze.width,viewportHeight:ze.height??900,scale:ln,onDismiss:()=>Qe(null)}):Xn?it?c("div",{className:"relative w-full h-full bg-white",children:[!wr&&!fs&&n("div",{className:"absolute inset-0 flex items-center justify-center z-10",children:c("div",{className:"flex flex-col items-center justify-center gap-6 bg-[#2a2a2a] rounded-lg p-8 w-[500px] h-[300px]",children:[n("div",{className:"mb-4",children:n(Gt,{})}),c("div",{className:"flex flex-col gap-3 text-center",children:[n("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Loading Preview"}),n("p",{className:"text-sm text-gray-400 leading-5 m-0 font-['IBM_Plex_Sans']",children:"Waiting for the app to render"})]})]})}),fs&&n("div",{className:"absolute inset-0 z-20 flex items-center justify-center",style:{backgroundColor:"rgba(0, 0, 0, 0.25)",backdropFilter:"blur(1px)",transition:"opacity 200ms ease-out"},children:c("div",{className:"flex flex-col items-center gap-3 animate-pulse",children:[n("svg",{className:"w-6 h-6 text-white/80 animate-spin",viewBox:"0 0 24 24",fill:"none",children:n("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeDasharray:"50 100"})}),n("span",{className:"text-white/70 text-xs font-['IBM_Plex_Sans']",children:"Switching scenario"})]})}),n("iframe",{ref:$,src:no||Xn,className:"w-full h-full border-none",title:"Editor preview",onLoad:$l,style:{opacity:wr?1:0}},Vn)]}):n("div",{style:{width:`${(Pr?ze.width+Rs.width:ze.width)*ln}px`,height:`${(Pr?(ze.height??900)+Rs.height:ze.height??900)*ln}px`},children:n("div",{className:"origin-top-left",style:{transform:ln<1?`scale(${ln})`:void 0},children:n(c5,{width:ze.width,height:ze.height??900,enabled:Pr,children:c("div",{className:"relative bg-white",style:{width:`${ze.width}px`,height:`${ze.height??900}px`},children:[!wr&&!fs&&n("div",{className:"absolute inset-0 flex items-center justify-center z-10",children:c("div",{className:"flex flex-col items-center justify-center gap-6 bg-[#2a2a2a] rounded-lg p-8 w-[500px] h-[300px]",children:[n("div",{className:"mb-4",children:n(Gt,{})}),c("div",{className:"flex flex-col gap-3 text-center",children:[n("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Loading Preview"}),n("p",{className:"text-sm text-gray-400 leading-5 m-0 font-['IBM_Plex_Sans']",children:"Waiting for the app to render"})]})]})}),fs&&n("div",{className:"absolute inset-0 z-20 flex items-center justify-center",style:{backgroundColor:"rgba(0, 0, 0, 0.25)",backdropFilter:"blur(1px)",transition:"opacity 200ms ease-out"},children:c("div",{className:"flex flex-col items-center gap-3 animate-pulse",children:[n("svg",{className:"w-6 h-6 text-white/80 animate-spin",viewBox:"0 0 24 24",fill:"none",children:n("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeDasharray:"50 100"})}),n("span",{className:"text-white/70 text-xs font-['IBM_Plex_Sans']",children:"Switching scenario"})]})}),n("iframe",{ref:$,src:no||Xn,className:"w-full h-full border-none",title:"Editor preview",onLoad:$l,style:{opacity:wr?1:0}},Vn)]})})})}):n("div",{className:"bg-[#2a2a2a] rounded-lg flex flex-col items-center justify-center",style:{width:`${ze.width*ln}px`,height:`${(ze.height??900)*ln}px`},children:De?c("div",{className:"flex flex-col gap-4 text-center px-8 max-w-[600px]",children:[n("h2",{className:"text-xl font-medium text-red-400 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Dev Server Failed"}),n("pre",{className:"text-xs text-left bg-[#1e1e1e] text-gray-300 p-4 rounded overflow-auto max-h-[300px] w-full font-mono whitespace-pre-wrap",children:De}),n("button",{onClick:gt,className:"mx-auto px-4 py-2 bg-[#005c75] text-white text-sm font-medium rounded hover:bg-[#004d63] transition-colors cursor-pointer",children:"Retry"})]}):ye||wn?c(we,{children:[n("div",{className:"mb-4",children:n(Gt,{})}),c("div",{className:"flex flex-col gap-3 text-center",children:[n("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:wn?"Starting Interactive Mode":"Starting Dev Server"}),n("p",{className:"text-sm text-gray-400 leading-5 m-0 font-['IBM_Plex_Sans']",children:wn?"Loading component preview...":"Your dev server is starting up..."})]})]}):c("div",{className:"flex flex-col gap-3 text-center px-8",children:[n("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Live Preview"}),n("p",{className:"text-sm text-gray-500 leading-5 m-0 font-['IBM_Plex_Sans']",children:"Describe what you want to build in the Build tab"})]})})})]})]})]})}),n(Id,{})]})}),Z3=Object.freeze(Object.defineProperty({__proto__:null,default:Q3,loader:G3,meta:V3,shouldRevalidate:H3},Symbol.toStringTag,{value:"Module"})),X3=rt(function(){return null}),rr=Object.freeze(Object.defineProperty({__proto__:null,default:X3},Symbol.toStringTag,{value:"Module"})),o_={entry:{module:"/assets/entry.client-j1Vi0bco.js",imports:["/assets/jsx-runtime-D_zvdyIk.js","/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/index-vyrZD2g4.js"],css:[]},routes:{root:{id:"root",parentId:void 0,path:"",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!0,module:"/assets/root-CLedrjXQ.js",imports:["/assets/jsx-runtime-D_zvdyIk.js","/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/index-vyrZD2g4.js","/assets/preload-helper-ckwbz45p.js","/assets/cy-logo-cli-Coe5NhbS.js","/assets/ReportIssueModal-DQsceHVv.js","/assets/useReportContext-jkCytuYz.js","/assets/loader-circle-D-q28GLF.js","/assets/createLucideIcon-BwyFiRot.js","/assets/book-open-BFSIqZgO.js","/assets/useToast-BgqkixU9.js","/assets/useLastLogLine-C8QvIe05.js","/assets/LogViewer-C-9zQdXg.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/TruncatedFilePath-CK7-NaPZ.js","/assets/chevron-down-B9fDzFVh.js","/assets/circle-check-DLPObLUx.js","/assets/CopyButton-DTBZZfSk.js","/assets/triangle-alert-D87ekDl8.js","/assets/copy-DXEmO0TD.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha.scenarios.$scenarioId.fullscreen":{id:"routes/entity.$sha.scenarios.$scenarioId.fullscreen",parentId:"root",path:"entity/:sha/scenarios/:scenarioId/fullscreen",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/Spinner-CIil5-gb.js","/assets/useLastLogLine-C8QvIe05.js","/assets/ViewportInspectBar-BqkA9zyZ.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/cy-logo-cli-Coe5NhbS.js","/assets/InlineSpinner-ByaELMbv.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha.scenarios.$scenarioId.dev":{id:"routes/entity.$sha.scenarios.$scenarioId.dev",parentId:"root",path:"entity/:sha/scenarios/:scenarioId/dev",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/Spinner-CIil5-gb.js","/assets/useLastLogLine-C8QvIe05.js","/assets/ViewportInspectBar-BqkA9zyZ.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/cy-logo-cli-Coe5NhbS.js","/assets/InlineSpinner-ByaELMbv.js","/assets/editorPreview-C6fEYHrh.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/preload-helper-ckwbz45p.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.interactive-switch-scenario":{id:"routes/api.interactive-switch-scenario",parentId:"root",path:"api/interactive-switch-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.interactive-switch-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal-screenshot":{id:"routes/api.editor-journal-screenshot",parentId:"root",path:"api/editor-journal-screenshot",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-screenshot-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-save-scenario-data":{id:"routes/api.editor-save-scenario-data",parentId:"root",path:"api/editor-save-scenario-data",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-save-scenario-data-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha_.edit.$scenarioId":{id:"routes/entity.$sha_.edit.$scenarioId",parentId:"root",path:"entity/:sha/edit/:scenarioId",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha_.edit._scenarioId-D_O_ajfZ.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/InteractivePreview-6WjVfhxX.js","/assets/Spinner-CIil5-gb.js","/assets/preload-helper-ckwbz45p.js","/assets/useLastLogLine-C8QvIe05.js","/assets/InlineSpinner-ByaELMbv.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-register-scenario":{id:"routes/api.editor-register-scenario",parentId:"root",path:"api/editor-register-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-register-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenario-coverage":{id:"routes/api.editor-scenario-coverage",parentId:"root",path:"api/editor-scenario-coverage",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenario-coverage-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha_.create-scenario":{id:"routes/entity.$sha_.create-scenario",parentId:"root",path:"entity/:sha/create-scenario",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha_.create-scenario-BTcpgIpC.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/InteractivePreview-6WjVfhxX.js","/assets/Spinner-CIil5-gb.js","/assets/executionFlowCoverage-BWhdfn70.js","/assets/preload-helper-ckwbz45p.js","/assets/useLastLogLine-C8QvIe05.js","/assets/InlineSpinner-ByaELMbv.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-capture-scenario":{id:"routes/api.editor-capture-scenario",parentId:"root",path:"api/editor-capture-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-capture-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenario-image.$":{id:"routes/api.editor-scenario-image.$",parentId:"root",path:"api/editor-scenario-image/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenario-image._-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-database-verify":{id:"routes/api.editor-database-verify",parentId:"root",path:"api/editor-database-verify",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-database-verify-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal-image.$":{id:"routes/api.editor-journal-image.$",parentId:"root",path:"api/editor-journal-image/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-image._-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-recapture-stale":{id:"routes/api.editor-recapture-stale",parentId:"root",path:"api/editor-recapture-stale",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-recapture-stale-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-rename-scenario":{id:"routes/api.editor-rename-scenario",parentId:"root",path:"api/editor-rename-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-rename-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-save-seed-state":{id:"routes/api.editor-save-seed-state",parentId:"root",path:"api/editor-save-seed-state",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-save-seed-state-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenario-prompt":{id:"routes/api.editor-scenario-prompt",parentId:"root",path:"api/editor-scenario-prompt",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenario-prompt-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-switch-scenario":{id:"routes/api.editor-switch-scenario",parentId:"root",path:"api/editor-switch-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-switch-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.generate-scenario-data":{id:"routes/api.generate-scenario-data",parentId:"root",path:"api/generate-scenario-data",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.generate-scenario-data-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-hosting-verify":{id:"routes/api.editor-hosting-verify",parentId:"root",path:"api/editor-hosting-verify",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-hosting-verify-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal-update":{id:"routes/api.editor-journal-update",parentId:"root",path:"api/editor-journal-update",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-update-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-client-errors":{id:"routes/api.editor-client-errors",parentId:"root",path:"api/editor-client-errors",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-client-errors-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-entity-status":{id:"routes/api.editor-entity-status",parentId:"root",path:"api/editor-entity-status",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-entity-status-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-github-verify":{id:"routes/api.editor-github-verify",parentId:"root",path:"api/editor-github-verify",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-github-verify-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal-entry":{id:"routes/api.editor-journal-entry",parentId:"root",path:"api/editor-journal-entry",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-entry-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenario-data":{id:"routes/api.editor-scenario-data",parentId:"root",path:"api/editor-scenario-data",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenario-data-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-verify-routes":{id:"routes/api.editor-verify-routes",parentId:"root",path:"api/editor-verify-routes",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-verify-routes-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.llm-calls.$entitySha":{id:"routes/api.llm-calls.$entitySha",parentId:"root",path:"api/llm-calls/:entitySha",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.llm-calls._entitySha-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-project-info":{id:"routes/api.editor-project-info",parentId:"root",path:"api/editor-project-info",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-project-info-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-test-results":{id:"routes/api.editor-test-results",parentId:"root",path:"api/editor-test-results",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-test-results-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.branch-entity-diff":{id:"routes/api.branch-entity-diff",parentId:"root",path:"api/branch-entity-diff",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.branch-entity-diff-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.capture-screenshot":{id:"routes/api.capture-screenshot",parentId:"root",path:"api/capture-screenshot",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.capture-screenshot-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-load-commit":{id:"routes/api.editor-load-commit",parentId:"root",path:"api/editor-load-commit",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-load-commit-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.recapture-scenario":{id:"routes/api.recapture-scenario",parentId:"root",path:"api/recapture-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.recapture-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.agent-transcripts":{id:"routes/api.agent-transcripts",parentId:"root",path:"api/agent-transcripts",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.agent-transcripts-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-dev-server":{id:"routes/api.editor-dev-server",parentId:"root",path:"api/editor-dev-server",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-dev-server-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.logs.$projectSlug":{id:"routes/api.logs.$projectSlug",parentId:"root",path:"api/logs/:projectSlug",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.logs._projectSlug-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-file-diff":{id:"routes/api.editor-file-diff",parentId:"root",path:"api/editor-file-diff",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-file-diff-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenarios":{id:"routes/api.editor-scenarios",parentId:"root",path:"api/editor-scenarios",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenarios-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.execute-function":{id:"routes/api.execute-function",parentId:"root",path:"api/execute-function",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.execute-function-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.interactive-mode":{id:"routes/api.interactive-mode",parentId:"root",path:"api/interactive-mode",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.interactive-mode-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.delete-scenario":{id:"routes/api.delete-scenario",parentId:"root",path:"api/delete-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.delete-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.dev-mode-events":{id:"routes/api.dev-mode-events",parentId:"root",path:"api/dev-mode-events",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.dev-mode-events-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.generate-report":{id:"routes/api.generate-report",parentId:"root",path:"api/generate-report",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.generate-report-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-handoff":{id:"routes/api.editor-handoff",parentId:"root",path:"api/editor-handoff",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-handoff-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal":{id:"routes/api.editor-journal",parentId:"root",path:"api/editor-journal",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-refresh":{id:"routes/api.editor-refresh",parentId:"root",path:"api/editor-refresh",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-refresh-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-roadmap":{id:"routes/api.editor-roadmap",parentId:"root",path:"api/editor-roadmap",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-roadmap-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-session":{id:"routes/api.editor-session",parentId:"root",path:"api/editor-session",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-session-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.memory-profile":{id:"routes/api.memory-profile",parentId:"root",path:"api/memory-profile",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.memory-profile-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.process-status":{id:"routes/api.process-status",parentId:"root",path:"api/process-status",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.process-status-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.restart-server":{id:"routes/api.restart-server",parentId:"root",path:"api/restart-server",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.restart-server-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.save-scenarios":{id:"routes/api.save-scenarios",parentId:"root",path:"api/save-scenarios",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.save-scenarios-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/agent-transcripts":{id:"routes/agent-transcripts",parentId:"root",path:"agent-transcripts",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/agent-transcripts-B8NCeOrm.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/createLucideIcon-BwyFiRot.js","/assets/terminal-DHemCJIs.js","/assets/search-BooqacKS.js","/assets/chevron-down-B9fDzFVh.js","/assets/book-open-BFSIqZgO.js","/assets/triangle-alert-D87ekDl8.js","/assets/copy-DXEmO0TD.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-commit":{id:"routes/api.editor-commit",parentId:"root",path:"api/editor-commit",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-commit-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-schema":{id:"routes/api.editor-schema",parentId:"root",path:"api/editor-schema",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-schema-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-audit":{id:"routes/api.editor-audit",parentId:"root",path:"api/editor-audit",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-audit-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.kill-process":{id:"routes/api.kill-process",parentId:"root",path:"api/kill-process",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.kill-process-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.save-fixture":{id:"routes/api.save-fixture",parentId:"root",path:"api/save-fixture",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.save-fixture-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.screenshot.$":{id:"routes/api.screenshot.$",parentId:"root",path:"api/screenshot/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.screenshot._-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/activity.($tab)":{id:"routes/activity.($tab)",parentId:"root",path:"activity/:tab?",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/activity.(_tab)-DqM9hbNE.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/LogViewer-C-9zQdXg.js","/assets/useLastLogLine-C8QvIe05.js","/assets/useReportContext-jkCytuYz.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/EntityTypeBadge-CQgyEGV-.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LoadingDots-By5zI316.js","/assets/loader-circle-D-q28GLF.js","/assets/pause-BP6fitdh.js","/assets/createLucideIcon-BwyFiRot.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.debug-setup":{id:"routes/api.debug-setup",parentId:"root",path:"api/debug-setup",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.debug-setup-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-file":{id:"routes/api.editor-file",parentId:"root",path:"api/editor-file",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-file-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.labs-unlock":{id:"routes/api.labs-unlock",parentId:"root",path:"api/labs-unlock",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.labs-unlock-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.recapture":{id:"routes/api.recapture",parentId:"root",path:"api/recapture",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.recapture-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.rule-path":{id:"routes/api.rule-path",parentId:"root",path:"api/rule-path",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.rule-path-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha.$":{id:"routes/entity.$sha.$",parentId:"root",path:"entity/:sha/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha._-pc-vc6wO.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useLastLogLine-C8QvIe05.js","/assets/Spinner-CIil5-gb.js","/assets/InteractivePreview-6WjVfhxX.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LibraryFunctionPreview-ChX-Hp7W.js","/assets/LoadingDots-By5zI316.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/ScenarioViewer-Cl4oOA3A.js","/assets/createLucideIcon-BwyFiRot.js","/assets/executionFlowCoverage-BWhdfn70.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/CopyButton-DTBZZfSk.js","/assets/LogViewer-C-9zQdXg.js","/assets/MiniClaudeChat-Bs2_Oua4.js","/assets/useReportContext-jkCytuYz.js","/assets/preload-helper-ckwbz45p.js","/assets/InlineSpinner-ByaELMbv.js","/assets/ViewportInspectBar-BqkA9zyZ.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/ReportIssueModal-DQsceHVv.js","/assets/circle-check-DLPObLUx.js","/assets/triangle-alert-D87ekDl8.js","/assets/copy-DXEmO0TD.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.analyze":{id:"routes/api.analyze",parentId:"root",path:"api/analyze",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.analyze-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/simulations":{id:"routes/simulations",parentId:"root",path:"simulations",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/simulations-ovy6FjRY.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LoadingDots-By5zI316.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/fileTableUtils-Daa96Fr1.js","/assets/chevron-down-B9fDzFVh.js","/assets/search-BooqacKS.js","/assets/loader-circle-D-q28GLF.js","/assets/createLucideIcon-BwyFiRot.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.events":{id:"routes/api.events",parentId:"root",path:"api/events",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.events-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.health":{id:"routes/api.health",parentId:"root",path:"api/health",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.health-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.memory":{id:"routes/api.memory",parentId:"root",path:"api/memory",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.memory-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.queue":{id:"routes/api.queue",parentId:"root",path:"api/queue",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.queue-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/dev.empty":{id:"routes/dev.empty",parentId:"root",path:"dev/empty",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/dev.empty-iRhRIFlp.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/ScenarioViewer-Cl4oOA3A.js","/assets/InteractivePreview-6WjVfhxX.js","/assets/ViewportInspectBar-BqkA9zyZ.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/LogViewer-C-9zQdXg.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/useLastLogLine-C8QvIe05.js","/assets/Spinner-CIil5-gb.js","/assets/preload-helper-ckwbz45p.js","/assets/ReportIssueModal-DQsceHVv.js","/assets/createLucideIcon-BwyFiRot.js","/assets/circle-check-DLPObLUx.js","/assets/triangle-alert-D87ekDl8.js","/assets/copy-DXEmO0TD.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/InlineSpinner-ByaELMbv.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/settings":{id:"routes/settings",parentId:"root",path:"settings",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/settings-BM0nbryO.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/CopyButton-DTBZZfSk.js","/assets/copy-DXEmO0TD.js","/assets/createLucideIcon-BwyFiRot.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/static.$":{id:"routes/static.$",parentId:"root",path:"static/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/static._-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/_index":{id:"routes/_index",parentId:"root",path:void 0,index:!0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/_index-DnOgyseQ.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useLastLogLine-C8QvIe05.js","/assets/useToast-BgqkixU9.js","/assets/useReportContext-jkCytuYz.js","/assets/LogViewer-C-9zQdXg.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/createLucideIcon-BwyFiRot.js","/assets/circle-check-DLPObLUx.js","/assets/loader-circle-D-q28GLF.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/memory":{id:"routes/memory",parentId:"root",path:"memory",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/memory-CEWIUC4t.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/createLucideIcon-BwyFiRot.js","/assets/terminal-DHemCJIs.js","/assets/copy-DXEmO0TD.js","/assets/CopyButton-DTBZZfSk.js","/assets/chevron-down-B9fDzFVh.js","/assets/search-BooqacKS.js","/assets/pause-BP6fitdh.js","/assets/book-open-BFSIqZgO.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/files":{id:"routes/files",parentId:"root",path:"files",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/files-kuny2Q_s.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/EntityItem-BxclONWq.js","/assets/fileTableUtils-Daa96Fr1.js","/assets/chevron-down-B9fDzFVh.js","/assets/search-BooqacKS.js","/assets/createLucideIcon-BwyFiRot.js","/assets/useToast-BgqkixU9.js","/assets/TruncatedFilePath-CK7-NaPZ.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LibraryFunctionPreview-ChX-Hp7W.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/triangle-alert-D87ekDl8.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/EntityTypeBadge-CQgyEGV-.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/labs":{id:"routes/labs",parentId:"root",path:"labs",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/labs-c3yLxSEp.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/git":{id:"routes/git",parentId:"root",path:"git",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/git-DgCZPMie.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/EntityItem-BxclONWq.js","/assets/LogViewer-C-9zQdXg.js","/assets/index-SqjQKTdH.js","/assets/fileTableUtils-Daa96Fr1.js","/assets/createLucideIcon-BwyFiRot.js","/assets/useToast-BgqkixU9.js","/assets/TruncatedFilePath-CK7-NaPZ.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LibraryFunctionPreview-ChX-Hp7W.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/triangle-alert-D87ekDl8.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/EntityTypeBadge-CQgyEGV-.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/editor.entity.($sha)":{id:"routes/editor.entity.($sha)",parentId:"root",path:"editor",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor.entity.(_sha)-DhtVC4aI.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/editorPreview-C6fEYHrh.js","/assets/CopyButton-DTBZZfSk.js","/assets/MiniClaudeChat-Bs2_Oua4.js","/assets/preload-helper-ckwbz45p.js","/assets/cy-logo-cli-Coe5NhbS.js","/assets/Spinner-CIil5-gb.js","/assets/copy-DXEmO0TD.js","/assets/createLucideIcon-BwyFiRot.js","/assets/useLastLogLine-C8QvIe05.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-index":{id:"editor-tab-index",parentId:"routes/editor.entity.($sha)",path:void 0,index:!0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-build":{id:"editor-tab-build",parentId:"routes/editor.entity.($sha)",path:"build",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-structure":{id:"editor-tab-structure",parentId:"routes/editor.entity.($sha)",path:"structure",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-history":{id:"editor-tab-history",parentId:"routes/editor.entity.($sha)",path:"history",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-settings":{id:"editor-tab-settings",parentId:"routes/editor.entity.($sha)",path:"settings",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-entity":{id:"editor-tab-entity",parentId:"routes/editor.entity.($sha)",path:"entity/:sha",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0}},url:"/assets/manifest-b0d69c06.js",version:"b0d69c06",sri:void 0},i_="build/client",l_="/",c_={unstable_optimizeDeps:!1,unstable_subResourceIntegrity:!1,unstable_trailingSlashAwareDataRequests:!1,unstable_previewServerPrerendering:!1,v8_middleware:!1,v8_splitRouteModules:!1,v8_viteEnvironmentApi:!1},d_=!0,u_=!1,p_=[],h_={mode:"lazy",manifestPath:"/__manifest"},m_="/",f_={module:sf},g_={root:{id:"root",parentId:void 0,path:"",index:void 0,caseSensitive:void 0,module:yy},"routes/entity.$sha.scenarios.$scenarioId.fullscreen":{id:"routes/entity.$sha.scenarios.$scenarioId.fullscreen",parentId:"root",path:"entity/:sha/scenarios/:scenarioId/fullscreen",index:void 0,caseSensitive:void 0,module:Sy},"routes/entity.$sha.scenarios.$scenarioId.dev":{id:"routes/entity.$sha.scenarios.$scenarioId.dev",parentId:"root",path:"entity/:sha/scenarios/:scenarioId/dev",index:void 0,caseSensitive:void 0,module:nx},"routes/api.interactive-switch-scenario":{id:"routes/api.interactive-switch-scenario",parentId:"root",path:"api/interactive-switch-scenario",index:void 0,caseSensitive:void 0,module:Ix},"routes/api.editor-journal-screenshot":{id:"routes/api.editor-journal-screenshot",parentId:"root",path:"api/editor-journal-screenshot",index:void 0,caseSensitive:void 0,module:Lx},"routes/api.editor-save-scenario-data":{id:"routes/api.editor-save-scenario-data",parentId:"root",path:"api/editor-save-scenario-data",index:void 0,caseSensitive:void 0,module:zx},"routes/entity.$sha_.edit.$scenarioId":{id:"routes/entity.$sha_.edit.$scenarioId",parentId:"root",path:"entity/:sha/edit/:scenarioId",index:void 0,caseSensitive:void 0,module:cb},"routes/api.editor-register-scenario":{id:"routes/api.editor-register-scenario",parentId:"root",path:"api/editor-register-scenario",index:void 0,caseSensitive:void 0,module:Mb},"routes/api.editor-scenario-coverage":{id:"routes/api.editor-scenario-coverage",parentId:"root",path:"api/editor-scenario-coverage",index:void 0,caseSensitive:void 0,module:Db},"routes/entity.$sha_.create-scenario":{id:"routes/entity.$sha_.create-scenario",parentId:"root",path:"entity/:sha/create-scenario",index:void 0,caseSensitive:void 0,module:Ub},"routes/api.editor-capture-scenario":{id:"routes/api.editor-capture-scenario",parentId:"root",path:"api/editor-capture-scenario",index:void 0,caseSensitive:void 0,module:Hb},"routes/api.editor-scenario-image.$":{id:"routes/api.editor-scenario-image.$",parentId:"root",path:"api/editor-scenario-image/*",index:void 0,caseSensitive:void 0,module:Kb},"routes/api.editor-database-verify":{id:"routes/api.editor-database-verify",parentId:"root",path:"api/editor-database-verify",index:void 0,caseSensitive:void 0,module:ev},"routes/api.editor-journal-image.$":{id:"routes/api.editor-journal-image.$",parentId:"root",path:"api/editor-journal-image/*",index:void 0,caseSensitive:void 0,module:nv},"routes/api.editor-recapture-stale":{id:"routes/api.editor-recapture-stale",parentId:"root",path:"api/editor-recapture-stale",index:void 0,caseSensitive:void 0,module:gv},"routes/api.editor-rename-scenario":{id:"routes/api.editor-rename-scenario",parentId:"root",path:"api/editor-rename-scenario",index:void 0,caseSensitive:void 0,module:xv},"routes/api.editor-save-seed-state":{id:"routes/api.editor-save-seed-state",parentId:"root",path:"api/editor-save-seed-state",index:void 0,caseSensitive:void 0,module:vv},"routes/api.editor-scenario-prompt":{id:"routes/api.editor-scenario-prompt",parentId:"root",path:"api/editor-scenario-prompt",index:void 0,caseSensitive:void 0,module:Nv},"routes/api.editor-switch-scenario":{id:"routes/api.editor-switch-scenario",parentId:"root",path:"api/editor-switch-scenario",index:void 0,caseSensitive:void 0,module:Cv},"routes/api.generate-scenario-data":{id:"routes/api.generate-scenario-data",parentId:"root",path:"api/generate-scenario-data",index:void 0,caseSensitive:void 0,module:$w},"routes/api.editor-hosting-verify":{id:"routes/api.editor-hosting-verify",parentId:"root",path:"api/editor-hosting-verify",index:void 0,caseSensitive:void 0,module:Dw},"routes/api.editor-journal-update":{id:"routes/api.editor-journal-update",parentId:"root",path:"api/editor-journal-update",index:void 0,caseSensitive:void 0,module:Gw},"routes/api.editor-client-errors":{id:"routes/api.editor-client-errors",parentId:"root",path:"api/editor-client-errors",index:void 0,caseSensitive:void 0,module:Qw},"routes/api.editor-entity-status":{id:"routes/api.editor-entity-status",parentId:"root",path:"api/editor-entity-status",index:void 0,caseSensitive:void 0,module:Xw},"routes/api.editor-github-verify":{id:"routes/api.editor-github-verify",parentId:"root",path:"api/editor-github-verify",index:void 0,caseSensitive:void 0,module:sN},"routes/api.editor-journal-entry":{id:"routes/api.editor-journal-entry",parentId:"root",path:"api/editor-journal-entry",index:void 0,caseSensitive:void 0,module:oN},"routes/api.editor-scenario-data":{id:"routes/api.editor-scenario-data",parentId:"root",path:"api/editor-scenario-data",index:void 0,caseSensitive:void 0,module:lN},"routes/api.editor-verify-routes":{id:"routes/api.editor-verify-routes",parentId:"root",path:"api/editor-verify-routes",index:void 0,caseSensitive:void 0,module:dN},"routes/api.llm-calls.$entitySha":{id:"routes/api.llm-calls.$entitySha",parentId:"root",path:"api/llm-calls/:entitySha",index:void 0,caseSensitive:void 0,module:hN},"routes/api.editor-project-info":{id:"routes/api.editor-project-info",parentId:"root",path:"api/editor-project-info",index:void 0,caseSensitive:void 0,module:gN},"routes/api.editor-test-results":{id:"routes/api.editor-test-results",parentId:"root",path:"api/editor-test-results",index:void 0,caseSensitive:void 0,module:jN},"routes/api.branch-entity-diff":{id:"routes/api.branch-entity-diff",parentId:"root",path:"api/branch-entity-diff",index:void 0,caseSensitive:void 0,module:$N},"routes/api.capture-screenshot":{id:"routes/api.capture-screenshot",parentId:"root",path:"api/capture-screenshot",index:void 0,caseSensitive:void 0,module:RN},"routes/api.editor-load-commit":{id:"routes/api.editor-load-commit",parentId:"root",path:"api/editor-load-commit",index:void 0,caseSensitive:void 0,module:HN},"routes/api.recapture-scenario":{id:"routes/api.recapture-scenario",parentId:"root",path:"api/recapture-scenario",index:void 0,caseSensitive:void 0,module:qN},"routes/api.agent-transcripts":{id:"routes/api.agent-transcripts",parentId:"root",path:"api/agent-transcripts",index:void 0,caseSensitive:void 0,module:d1},"routes/api.editor-dev-server":{id:"routes/api.editor-dev-server",parentId:"root",path:"api/editor-dev-server",index:void 0,caseSensitive:void 0,module:m1},"routes/api.logs.$projectSlug":{id:"routes/api.logs.$projectSlug",parentId:"root",path:"api/logs/:projectSlug",index:void 0,caseSensitive:void 0,module:y1},"routes/api.editor-file-diff":{id:"routes/api.editor-file-diff",parentId:"root",path:"api/editor-file-diff",index:void 0,caseSensitive:void 0,module:b1},"routes/api.editor-scenarios":{id:"routes/api.editor-scenarios",parentId:"root",path:"api/editor-scenarios",index:void 0,caseSensitive:void 0,module:w1},"routes/api.execute-function":{id:"routes/api.execute-function",parentId:"root",path:"api/execute-function",index:void 0,caseSensitive:void 0,module:C1},"routes/api.interactive-mode":{id:"routes/api.interactive-mode",parentId:"root",path:"api/interactive-mode",index:void 0,caseSensitive:void 0,module:_1},"routes/api.delete-scenario":{id:"routes/api.delete-scenario",parentId:"root",path:"api/delete-scenario",index:void 0,caseSensitive:void 0,module:P1},"routes/api.dev-mode-events":{id:"routes/api.dev-mode-events",parentId:"root",path:"api/dev-mode-events",index:void 0,caseSensitive:void 0,module:M1},"routes/api.generate-report":{id:"routes/api.generate-report",parentId:"root",path:"api/generate-report",index:void 0,caseSensitive:void 0,module:U1},"routes/api.editor-handoff":{id:"routes/api.editor-handoff",parentId:"root",path:"api/editor-handoff",index:void 0,caseSensitive:void 0,module:K1},"routes/api.editor-journal":{id:"routes/api.editor-journal",parentId:"root",path:"api/editor-journal",index:void 0,caseSensitive:void 0,module:q1},"routes/api.editor-refresh":{id:"routes/api.editor-refresh",parentId:"root",path:"api/editor-refresh",index:void 0,caseSensitive:void 0,module:sS},"routes/api.editor-roadmap":{id:"routes/api.editor-roadmap",parentId:"root",path:"api/editor-roadmap",index:void 0,caseSensitive:void 0,module:xS},"routes/api.editor-session":{id:"routes/api.editor-session",parentId:"root",path:"api/editor-session",index:void 0,caseSensitive:void 0,module:vS},"routes/api.memory-profile":{id:"routes/api.memory-profile",parentId:"root",path:"api/memory-profile",index:void 0,caseSensitive:void 0,module:kS},"routes/api.process-status":{id:"routes/api.process-status",parentId:"root",path:"api/process-status",index:void 0,caseSensitive:void 0,module:PS},"routes/api.restart-server":{id:"routes/api.restart-server",parentId:"root",path:"api/restart-server",index:void 0,caseSensitive:void 0,module:$S},"routes/api.save-scenarios":{id:"routes/api.save-scenarios",parentId:"root",path:"api/save-scenarios",index:void 0,caseSensitive:void 0,module:RS},"routes/agent-transcripts":{id:"routes/agent-transcripts",parentId:"root",path:"agent-transcripts",index:void 0,caseSensitive:void 0,module:QS},"routes/api.editor-commit":{id:"routes/api.editor-commit",parentId:"root",path:"api/editor-commit",index:void 0,caseSensitive:void 0,module:XS},"routes/api.editor-schema":{id:"routes/api.editor-schema",parentId:"root",path:"api/editor-schema",index:void 0,caseSensitive:void 0,module:rC},"routes/api.editor-audit":{id:"routes/api.editor-audit",parentId:"root",path:"api/editor-audit",index:void 0,caseSensitive:void 0,module:aC},"routes/api.kill-process":{id:"routes/api.kill-process",parentId:"root",path:"api/kill-process",index:void 0,caseSensitive:void 0,module:iC},"routes/api.save-fixture":{id:"routes/api.save-fixture",parentId:"root",path:"api/save-fixture",index:void 0,caseSensitive:void 0,module:hC},"routes/api.screenshot.$":{id:"routes/api.screenshot.$",parentId:"root",path:"api/screenshot/*",index:void 0,caseSensitive:void 0,module:fC},"routes/activity.($tab)":{id:"routes/activity.($tab)",parentId:"root",path:"activity/:tab?",index:void 0,caseSensitive:void 0,module:kC},"routes/api.debug-setup":{id:"routes/api.debug-setup",parentId:"root",path:"api/debug-setup",index:void 0,caseSensitive:void 0,module:EC},"routes/api.editor-file":{id:"routes/api.editor-file",parentId:"root",path:"api/editor-file",index:void 0,caseSensitive:void 0,module:AC},"routes/api.labs-unlock":{id:"routes/api.labs-unlock",parentId:"root",path:"api/labs-unlock",index:void 0,caseSensitive:void 0,module:FC},"routes/api.recapture":{id:"routes/api.recapture",parentId:"root",path:"api/recapture",index:void 0,caseSensitive:void 0,module:DC},"routes/api.rule-path":{id:"routes/api.rule-path",parentId:"root",path:"api/rule-path",index:void 0,caseSensitive:void 0,module:zC},"routes/entity.$sha.$":{id:"routes/entity.$sha.$",parentId:"root",path:"entity/:sha/*",index:void 0,caseSensitive:void 0,module:u2},"routes/api.analyze":{id:"routes/api.analyze",parentId:"root",path:"api/analyze",index:void 0,caseSensitive:void 0,module:m2},"routes/simulations":{id:"routes/simulations",parentId:"root",path:"simulations",index:void 0,caseSensitive:void 0,module:w2},"routes/api.events":{id:"routes/api.events",parentId:"root",path:"api/events",index:void 0,caseSensitive:void 0,module:S2},"routes/api.health":{id:"routes/api.health",parentId:"root",path:"api/health",index:void 0,caseSensitive:void 0,module:k2},"routes/api.memory":{id:"routes/api.memory",parentId:"root",path:"api/memory",index:void 0,caseSensitive:void 0,module:L2},"routes/api.queue":{id:"routes/api.queue",parentId:"root",path:"api/queue",index:void 0,caseSensitive:void 0,module:Y2},"routes/dev.empty":{id:"routes/dev.empty",parentId:"root",path:"dev/empty",index:void 0,caseSensitive:void 0,module:J2},"routes/settings":{id:"routes/settings",parentId:"root",path:"settings",index:void 0,caseSensitive:void 0,module:Z2},"routes/static.$":{id:"routes/static.$",parentId:"root",path:"static/*",index:void 0,caseSensitive:void 0,module:ek},"routes/_index":{id:"routes/_index",parentId:"root",path:void 0,index:!0,caseSensitive:void 0,module:ck},"routes/memory":{id:"routes/memory",parentId:"root",path:"memory",index:void 0,caseSensitive:void 0,module:Fk},"routes/files":{id:"routes/files",parentId:"root",path:"files",index:void 0,caseSensitive:void 0,module:Bk},"routes/labs":{id:"routes/labs",parentId:"root",path:"labs",index:void 0,caseSensitive:void 0,module:Gk},"routes/git":{id:"routes/git",parentId:"root",path:"git",index:void 0,caseSensitive:void 0,module:o5},"routes/editor.entity.($sha)":{id:"routes/editor.entity.($sha)",parentId:"root",path:"editor",index:void 0,caseSensitive:void 0,module:Z3},"editor-tab-index":{id:"editor-tab-index",parentId:"routes/editor.entity.($sha)",path:void 0,index:!0,caseSensitive:void 0,module:rr},"editor-tab-build":{id:"editor-tab-build",parentId:"routes/editor.entity.($sha)",path:"build",index:void 0,caseSensitive:void 0,module:rr},"editor-tab-structure":{id:"editor-tab-structure",parentId:"routes/editor.entity.($sha)",path:"structure",index:void 0,caseSensitive:void 0,module:rr},"editor-tab-history":{id:"editor-tab-history",parentId:"routes/editor.entity.($sha)",path:"history",index:void 0,caseSensitive:void 0,module:rr},"editor-tab-settings":{id:"editor-tab-settings",parentId:"routes/editor.entity.($sha)",path:"settings",index:void 0,caseSensitive:void 0,module:rr},"editor-tab-entity":{id:"editor-tab-entity",parentId:"routes/editor.entity.($sha)",path:"entity/:sha",index:void 0,caseSensitive:void 0,module:rr}},y_=!1;export{Qf as $,Hg as A,Ug as B,Gg as C,Bg as D,Fe as E,dg as F,ug as G,Bn as H,Kj as I,Pf as J,Tf as K,Mf as L,$f as M,Xd as N,Rf as O,Df as P,eu as Q,Of as R,Lf as S,eg as T,tu as U,Uf as V,Jf as W,Hf as X,Vf as Y,Gf as Z,qf as _,Nf as a,Zf as a0,_f as a1,Ef as a2,Xf as a3,Zs as a4,ng as a5,rg as a6,sg as a7,ag as a8,ig as a9,u_ as aA,p_ as aB,h_ as aC,m_ as aD,f_ as aE,g_ as aF,y_ as aG,o_ as aH,og as aa,Xj as ab,wi as ac,e_ as ad,n_ as ae,t_ as af,Zj as ag,a_ as ah,Ie as ai,i0 as aj,a0 as ak,x0 as al,es as am,Gj as an,iu as ao,e0 as ap,t0 as aq,eS as ar,s_ as as,vn as at,qj as au,Qj as av,i_ as aw,l_ as ax,c_ as ay,d_ as az,Dn as b,Rn as c,Zt as d,Xr as e,gi as f,fa as g,Zd as h,vf as i,Cg as j,kg as k,yn as l,Xt as m,xi as n,$g as o,ea as p,nt as q,su as r,au as s,bi as t,hn as u,ou as v,fr as w,lr as x,Ng as y,ql as z};
853
+ `,backgroundSize:"16px 16px",backgroundPosition:"0 0, 0 8px, 8px -8px, -8px 0px",backgroundColor:"#2d2d2d"},children:nn?n(P3,{preview:nn,viewportWidth:ze.width,viewportHeight:ze.height??900,scale:ln,onDismiss:()=>st(null),onLoadCommit:ut}):bt?n(T3,{preview:bt,viewportWidth:ze.width,viewportHeight:ze.height??900,scale:ln,onDismiss:()=>Qe(null)}):Xn?it?c("div",{className:"relative w-full h-full bg-white",children:[!wr&&!fs&&n("div",{className:"absolute inset-0 flex items-center justify-center z-10",children:c("div",{className:"flex flex-col items-center justify-center gap-6 bg-[#2a2a2a] rounded-lg p-8 w-[500px] h-[300px]",children:[n("div",{className:"mb-4",children:n(Gt,{})}),c("div",{className:"flex flex-col gap-3 text-center",children:[n("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Loading Preview"}),n("p",{className:"text-sm text-gray-400 leading-5 m-0 font-['IBM_Plex_Sans']",children:"Waiting for the app to render"})]})]})}),fs&&n("div",{className:"absolute inset-0 z-20 flex items-center justify-center",style:{backgroundColor:"rgba(0, 0, 0, 0.25)",backdropFilter:"blur(1px)",transition:"opacity 200ms ease-out"},children:c("div",{className:"flex flex-col items-center gap-3 animate-pulse",children:[n("svg",{className:"w-6 h-6 text-white/80 animate-spin",viewBox:"0 0 24 24",fill:"none",children:n("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeDasharray:"50 100"})}),n("span",{className:"text-white/70 text-xs font-['IBM_Plex_Sans']",children:"Switching scenario"})]})}),n("iframe",{ref:$,src:no||Xn,className:"w-full h-full border-none",title:"Editor preview",onLoad:$l,style:{opacity:wr?1:0}},Vn)]}):n("div",{style:{width:`${(Pr?ze.width+Rs.width:ze.width)*ln}px`,height:`${(Pr?(ze.height??900)+Rs.height:ze.height??900)*ln}px`},children:n("div",{className:"origin-top-left",style:{transform:ln<1?`scale(${ln})`:void 0},children:n(c5,{width:ze.width,height:ze.height??900,enabled:Pr,children:c("div",{className:"relative bg-white",style:{width:`${ze.width}px`,height:`${ze.height??900}px`},children:[!wr&&!fs&&n("div",{className:"absolute inset-0 flex items-center justify-center z-10",children:c("div",{className:"flex flex-col items-center justify-center gap-6 bg-[#2a2a2a] rounded-lg p-8 w-[500px] h-[300px]",children:[n("div",{className:"mb-4",children:n(Gt,{})}),c("div",{className:"flex flex-col gap-3 text-center",children:[n("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Loading Preview"}),n("p",{className:"text-sm text-gray-400 leading-5 m-0 font-['IBM_Plex_Sans']",children:"Waiting for the app to render"})]})]})}),fs&&n("div",{className:"absolute inset-0 z-20 flex items-center justify-center",style:{backgroundColor:"rgba(0, 0, 0, 0.25)",backdropFilter:"blur(1px)",transition:"opacity 200ms ease-out"},children:c("div",{className:"flex flex-col items-center gap-3 animate-pulse",children:[n("svg",{className:"w-6 h-6 text-white/80 animate-spin",viewBox:"0 0 24 24",fill:"none",children:n("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeDasharray:"50 100"})}),n("span",{className:"text-white/70 text-xs font-['IBM_Plex_Sans']",children:"Switching scenario"})]})}),n("iframe",{ref:$,src:no||Xn,className:"w-full h-full border-none",title:"Editor preview",onLoad:$l,style:{opacity:wr?1:0}},Vn)]})})})}):n("div",{className:"bg-[#2a2a2a] rounded-lg flex flex-col items-center justify-center",style:{width:`${ze.width*ln}px`,height:`${(ze.height??900)*ln}px`},children:De?c("div",{className:"flex flex-col gap-4 text-center px-8 max-w-[600px]",children:[n("h2",{className:"text-xl font-medium text-red-400 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Dev Server Failed"}),n("pre",{className:"text-xs text-left bg-[#1e1e1e] text-gray-300 p-4 rounded overflow-auto max-h-[300px] w-full font-mono whitespace-pre-wrap",children:De}),n("button",{onClick:gt,className:"mx-auto px-4 py-2 bg-[#005c75] text-white text-sm font-medium rounded hover:bg-[#004d63] transition-colors cursor-pointer",children:"Retry"})]}):ye||wn?c(we,{children:[n("div",{className:"mb-4",children:n(Gt,{})}),c("div",{className:"flex flex-col gap-3 text-center",children:[n("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:wn?"Starting Interactive Mode":"Starting Dev Server"}),n("p",{className:"text-sm text-gray-400 leading-5 m-0 font-['IBM_Plex_Sans']",children:wn?"Loading component preview...":"Your dev server is starting up..."})]})]}):c("div",{className:"flex flex-col gap-3 text-center px-8",children:[n("h2",{className:"text-xl font-medium text-gray-200 leading-[28px] m-0 font-['IBM_Plex_Sans']",children:"Live Preview"}),n("p",{className:"text-sm text-gray-500 leading-5 m-0 font-['IBM_Plex_Sans']",children:"Describe what you want to build in the Build tab"})]})})})]})]})]})}),n(Id,{})]})}),Z3=Object.freeze(Object.defineProperty({__proto__:null,default:Q3,loader:G3,meta:V3,shouldRevalidate:H3},Symbol.toStringTag,{value:"Module"})),X3=rt(function(){return null}),rr=Object.freeze(Object.defineProperty({__proto__:null,default:X3},Symbol.toStringTag,{value:"Module"})),o_={entry:{module:"/assets/entry.client-j1Vi0bco.js",imports:["/assets/jsx-runtime-D_zvdyIk.js","/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/index-vyrZD2g4.js"],css:[]},routes:{root:{id:"root",parentId:void 0,path:"",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!0,module:"/assets/root-L2V0jea7.js",imports:["/assets/jsx-runtime-D_zvdyIk.js","/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/index-vyrZD2g4.js","/assets/preload-helper-ckwbz45p.js","/assets/cy-logo-cli-Coe5NhbS.js","/assets/ReportIssueModal-DQsceHVv.js","/assets/useReportContext-jkCytuYz.js","/assets/loader-circle-D-q28GLF.js","/assets/createLucideIcon-BwyFiRot.js","/assets/book-open-BFSIqZgO.js","/assets/useToast-BgqkixU9.js","/assets/useLastLogLine-C8QvIe05.js","/assets/LogViewer-C-9zQdXg.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/TruncatedFilePath-CK7-NaPZ.js","/assets/chevron-down-B9fDzFVh.js","/assets/circle-check-DLPObLUx.js","/assets/CopyButton-DTBZZfSk.js","/assets/triangle-alert-D87ekDl8.js","/assets/copy-DXEmO0TD.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha.scenarios.$scenarioId.fullscreen":{id:"routes/entity.$sha.scenarios.$scenarioId.fullscreen",parentId:"root",path:"entity/:sha/scenarios/:scenarioId/fullscreen",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha.scenarios._scenarioId.fullscreen-DziaVQX1.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/Spinner-CIil5-gb.js","/assets/useLastLogLine-C8QvIe05.js","/assets/ViewportInspectBar-BqkA9zyZ.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/cy-logo-cli-Coe5NhbS.js","/assets/InlineSpinner-ByaELMbv.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha.scenarios.$scenarioId.dev":{id:"routes/entity.$sha.scenarios.$scenarioId.dev",parentId:"root",path:"entity/:sha/scenarios/:scenarioId/dev",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha.scenarios._scenarioId.dev-C8AyYgYT.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/Spinner-CIil5-gb.js","/assets/useLastLogLine-C8QvIe05.js","/assets/ViewportInspectBar-BqkA9zyZ.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/cy-logo-cli-Coe5NhbS.js","/assets/InlineSpinner-ByaELMbv.js","/assets/editorPreview-C6fEYHrh.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/preload-helper-ckwbz45p.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.interactive-switch-scenario":{id:"routes/api.interactive-switch-scenario",parentId:"root",path:"api/interactive-switch-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.interactive-switch-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal-screenshot":{id:"routes/api.editor-journal-screenshot",parentId:"root",path:"api/editor-journal-screenshot",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-screenshot-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-save-scenario-data":{id:"routes/api.editor-save-scenario-data",parentId:"root",path:"api/editor-save-scenario-data",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-save-scenario-data-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha_.edit.$scenarioId":{id:"routes/entity.$sha_.edit.$scenarioId",parentId:"root",path:"entity/:sha/edit/:scenarioId",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha_.edit._scenarioId-D_O_ajfZ.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/InteractivePreview-6WjVfhxX.js","/assets/Spinner-CIil5-gb.js","/assets/preload-helper-ckwbz45p.js","/assets/useLastLogLine-C8QvIe05.js","/assets/InlineSpinner-ByaELMbv.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-register-scenario":{id:"routes/api.editor-register-scenario",parentId:"root",path:"api/editor-register-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-register-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenario-coverage":{id:"routes/api.editor-scenario-coverage",parentId:"root",path:"api/editor-scenario-coverage",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenario-coverage-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha_.create-scenario":{id:"routes/entity.$sha_.create-scenario",parentId:"root",path:"entity/:sha/create-scenario",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha_.create-scenario-BTcpgIpC.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/InteractivePreview-6WjVfhxX.js","/assets/Spinner-CIil5-gb.js","/assets/executionFlowCoverage-BWhdfn70.js","/assets/preload-helper-ckwbz45p.js","/assets/useLastLogLine-C8QvIe05.js","/assets/InlineSpinner-ByaELMbv.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-capture-scenario":{id:"routes/api.editor-capture-scenario",parentId:"root",path:"api/editor-capture-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-capture-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenario-image.$":{id:"routes/api.editor-scenario-image.$",parentId:"root",path:"api/editor-scenario-image/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenario-image._-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-database-verify":{id:"routes/api.editor-database-verify",parentId:"root",path:"api/editor-database-verify",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-database-verify-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal-image.$":{id:"routes/api.editor-journal-image.$",parentId:"root",path:"api/editor-journal-image/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-image._-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-recapture-stale":{id:"routes/api.editor-recapture-stale",parentId:"root",path:"api/editor-recapture-stale",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-recapture-stale-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-rename-scenario":{id:"routes/api.editor-rename-scenario",parentId:"root",path:"api/editor-rename-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-rename-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-save-seed-state":{id:"routes/api.editor-save-seed-state",parentId:"root",path:"api/editor-save-seed-state",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-save-seed-state-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenario-prompt":{id:"routes/api.editor-scenario-prompt",parentId:"root",path:"api/editor-scenario-prompt",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenario-prompt-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-switch-scenario":{id:"routes/api.editor-switch-scenario",parentId:"root",path:"api/editor-switch-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-switch-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.generate-scenario-data":{id:"routes/api.generate-scenario-data",parentId:"root",path:"api/generate-scenario-data",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.generate-scenario-data-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-hosting-verify":{id:"routes/api.editor-hosting-verify",parentId:"root",path:"api/editor-hosting-verify",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-hosting-verify-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal-update":{id:"routes/api.editor-journal-update",parentId:"root",path:"api/editor-journal-update",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-update-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-client-errors":{id:"routes/api.editor-client-errors",parentId:"root",path:"api/editor-client-errors",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-client-errors-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-entity-status":{id:"routes/api.editor-entity-status",parentId:"root",path:"api/editor-entity-status",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-entity-status-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-github-verify":{id:"routes/api.editor-github-verify",parentId:"root",path:"api/editor-github-verify",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-github-verify-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal-entry":{id:"routes/api.editor-journal-entry",parentId:"root",path:"api/editor-journal-entry",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-entry-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenario-data":{id:"routes/api.editor-scenario-data",parentId:"root",path:"api/editor-scenario-data",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenario-data-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-verify-routes":{id:"routes/api.editor-verify-routes",parentId:"root",path:"api/editor-verify-routes",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-verify-routes-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.llm-calls.$entitySha":{id:"routes/api.llm-calls.$entitySha",parentId:"root",path:"api/llm-calls/:entitySha",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.llm-calls._entitySha-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-project-info":{id:"routes/api.editor-project-info",parentId:"root",path:"api/editor-project-info",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-project-info-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-test-results":{id:"routes/api.editor-test-results",parentId:"root",path:"api/editor-test-results",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-test-results-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.branch-entity-diff":{id:"routes/api.branch-entity-diff",parentId:"root",path:"api/branch-entity-diff",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.branch-entity-diff-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.capture-screenshot":{id:"routes/api.capture-screenshot",parentId:"root",path:"api/capture-screenshot",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.capture-screenshot-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-load-commit":{id:"routes/api.editor-load-commit",parentId:"root",path:"api/editor-load-commit",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-load-commit-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.recapture-scenario":{id:"routes/api.recapture-scenario",parentId:"root",path:"api/recapture-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.recapture-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.agent-transcripts":{id:"routes/api.agent-transcripts",parentId:"root",path:"api/agent-transcripts",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.agent-transcripts-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-dev-server":{id:"routes/api.editor-dev-server",parentId:"root",path:"api/editor-dev-server",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-dev-server-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.logs.$projectSlug":{id:"routes/api.logs.$projectSlug",parentId:"root",path:"api/logs/:projectSlug",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.logs._projectSlug-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-file-diff":{id:"routes/api.editor-file-diff",parentId:"root",path:"api/editor-file-diff",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-file-diff-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-scenarios":{id:"routes/api.editor-scenarios",parentId:"root",path:"api/editor-scenarios",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-scenarios-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.execute-function":{id:"routes/api.execute-function",parentId:"root",path:"api/execute-function",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.execute-function-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.interactive-mode":{id:"routes/api.interactive-mode",parentId:"root",path:"api/interactive-mode",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.interactive-mode-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.delete-scenario":{id:"routes/api.delete-scenario",parentId:"root",path:"api/delete-scenario",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.delete-scenario-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.dev-mode-events":{id:"routes/api.dev-mode-events",parentId:"root",path:"api/dev-mode-events",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.dev-mode-events-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.generate-report":{id:"routes/api.generate-report",parentId:"root",path:"api/generate-report",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.generate-report-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-handoff":{id:"routes/api.editor-handoff",parentId:"root",path:"api/editor-handoff",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-handoff-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-journal":{id:"routes/api.editor-journal",parentId:"root",path:"api/editor-journal",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-journal-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-refresh":{id:"routes/api.editor-refresh",parentId:"root",path:"api/editor-refresh",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-refresh-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-roadmap":{id:"routes/api.editor-roadmap",parentId:"root",path:"api/editor-roadmap",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-roadmap-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-session":{id:"routes/api.editor-session",parentId:"root",path:"api/editor-session",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-session-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.memory-profile":{id:"routes/api.memory-profile",parentId:"root",path:"api/memory-profile",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.memory-profile-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.process-status":{id:"routes/api.process-status",parentId:"root",path:"api/process-status",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.process-status-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.restart-server":{id:"routes/api.restart-server",parentId:"root",path:"api/restart-server",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.restart-server-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.save-scenarios":{id:"routes/api.save-scenarios",parentId:"root",path:"api/save-scenarios",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.save-scenarios-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/agent-transcripts":{id:"routes/agent-transcripts",parentId:"root",path:"agent-transcripts",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/agent-transcripts-B8NCeOrm.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/createLucideIcon-BwyFiRot.js","/assets/terminal-DHemCJIs.js","/assets/search-BooqacKS.js","/assets/chevron-down-B9fDzFVh.js","/assets/book-open-BFSIqZgO.js","/assets/triangle-alert-D87ekDl8.js","/assets/copy-DXEmO0TD.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-commit":{id:"routes/api.editor-commit",parentId:"root",path:"api/editor-commit",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-commit-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-schema":{id:"routes/api.editor-schema",parentId:"root",path:"api/editor-schema",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-schema-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-audit":{id:"routes/api.editor-audit",parentId:"root",path:"api/editor-audit",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-audit-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.kill-process":{id:"routes/api.kill-process",parentId:"root",path:"api/kill-process",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.kill-process-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.save-fixture":{id:"routes/api.save-fixture",parentId:"root",path:"api/save-fixture",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.save-fixture-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.screenshot.$":{id:"routes/api.screenshot.$",parentId:"root",path:"api/screenshot/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.screenshot._-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/activity.($tab)":{id:"routes/activity.($tab)",parentId:"root",path:"activity/:tab?",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/activity.(_tab)-DqM9hbNE.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/LogViewer-C-9zQdXg.js","/assets/useLastLogLine-C8QvIe05.js","/assets/useReportContext-jkCytuYz.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/EntityTypeBadge-CQgyEGV-.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LoadingDots-By5zI316.js","/assets/loader-circle-D-q28GLF.js","/assets/pause-BP6fitdh.js","/assets/createLucideIcon-BwyFiRot.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.debug-setup":{id:"routes/api.debug-setup",parentId:"root",path:"api/debug-setup",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.debug-setup-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.editor-file":{id:"routes/api.editor-file",parentId:"root",path:"api/editor-file",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.editor-file-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.labs-unlock":{id:"routes/api.labs-unlock",parentId:"root",path:"api/labs-unlock",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.labs-unlock-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.recapture":{id:"routes/api.recapture",parentId:"root",path:"api/recapture",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.recapture-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.rule-path":{id:"routes/api.rule-path",parentId:"root",path:"api/rule-path",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.rule-path-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/entity.$sha.$":{id:"routes/entity.$sha.$",parentId:"root",path:"entity/:sha/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/entity._sha._-pc-vc6wO.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useLastLogLine-C8QvIe05.js","/assets/Spinner-CIil5-gb.js","/assets/InteractivePreview-6WjVfhxX.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LibraryFunctionPreview-ChX-Hp7W.js","/assets/LoadingDots-By5zI316.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/ScenarioViewer-Cl4oOA3A.js","/assets/createLucideIcon-BwyFiRot.js","/assets/executionFlowCoverage-BWhdfn70.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/CopyButton-DTBZZfSk.js","/assets/LogViewer-C-9zQdXg.js","/assets/MiniClaudeChat-Bs2_Oua4.js","/assets/useReportContext-jkCytuYz.js","/assets/preload-helper-ckwbz45p.js","/assets/InlineSpinner-ByaELMbv.js","/assets/ViewportInspectBar-BqkA9zyZ.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/ReportIssueModal-DQsceHVv.js","/assets/circle-check-DLPObLUx.js","/assets/triangle-alert-D87ekDl8.js","/assets/copy-DXEmO0TD.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.analyze":{id:"routes/api.analyze",parentId:"root",path:"api/analyze",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.analyze-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/simulations":{id:"routes/simulations",parentId:"root",path:"simulations",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/simulations-ovy6FjRY.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LoadingDots-By5zI316.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/fileTableUtils-Daa96Fr1.js","/assets/chevron-down-B9fDzFVh.js","/assets/search-BooqacKS.js","/assets/loader-circle-D-q28GLF.js","/assets/createLucideIcon-BwyFiRot.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.events":{id:"routes/api.events",parentId:"root",path:"api/events",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.events-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.health":{id:"routes/api.health",parentId:"root",path:"api/health",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.health-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.memory":{id:"routes/api.memory",parentId:"root",path:"api/memory",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.memory-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/api.queue":{id:"routes/api.queue",parentId:"root",path:"api/queue",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/api.queue-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/dev.empty":{id:"routes/dev.empty",parentId:"root",path:"dev/empty",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/dev.empty-iRhRIFlp.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/ScenarioViewer-Cl4oOA3A.js","/assets/InteractivePreview-6WjVfhxX.js","/assets/ViewportInspectBar-BqkA9zyZ.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/LogViewer-C-9zQdXg.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/useLastLogLine-C8QvIe05.js","/assets/Spinner-CIil5-gb.js","/assets/preload-helper-ckwbz45p.js","/assets/ReportIssueModal-DQsceHVv.js","/assets/createLucideIcon-BwyFiRot.js","/assets/circle-check-DLPObLUx.js","/assets/triangle-alert-D87ekDl8.js","/assets/copy-DXEmO0TD.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/InlineSpinner-ByaELMbv.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/settings":{id:"routes/settings",parentId:"root",path:"settings",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/settings-BM0nbryO.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/CopyButton-DTBZZfSk.js","/assets/copy-DXEmO0TD.js","/assets/createLucideIcon-BwyFiRot.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/static.$":{id:"routes/static.$",parentId:"root",path:"static/*",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!1,hasErrorBoundary:!1,module:"/assets/static._-l0sNRNKZ.js",imports:[],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/_index":{id:"routes/_index",parentId:"root",path:void 0,index:!0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/_index-DnOgyseQ.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useLastLogLine-C8QvIe05.js","/assets/useToast-BgqkixU9.js","/assets/useReportContext-jkCytuYz.js","/assets/LogViewer-C-9zQdXg.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/createLucideIcon-BwyFiRot.js","/assets/circle-check-DLPObLUx.js","/assets/loader-circle-D-q28GLF.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/memory":{id:"routes/memory",parentId:"root",path:"memory",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/memory-CEWIUC4t.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/createLucideIcon-BwyFiRot.js","/assets/terminal-DHemCJIs.js","/assets/copy-DXEmO0TD.js","/assets/CopyButton-DTBZZfSk.js","/assets/chevron-down-B9fDzFVh.js","/assets/search-BooqacKS.js","/assets/pause-BP6fitdh.js","/assets/book-open-BFSIqZgO.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/files":{id:"routes/files",parentId:"root",path:"files",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/files-kuny2Q_s.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/EntityItem-BxclONWq.js","/assets/fileTableUtils-Daa96Fr1.js","/assets/chevron-down-B9fDzFVh.js","/assets/search-BooqacKS.js","/assets/createLucideIcon-BwyFiRot.js","/assets/useToast-BgqkixU9.js","/assets/TruncatedFilePath-CK7-NaPZ.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LibraryFunctionPreview-ChX-Hp7W.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/triangle-alert-D87ekDl8.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/EntityTypeBadge-CQgyEGV-.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/labs":{id:"routes/labs",parentId:"root",path:"labs",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/labs-c3yLxSEp.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/git":{id:"routes/git",parentId:"root",path:"git",index:void 0,caseSensitive:void 0,hasAction:!0,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/git-DgCZPMie.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useReportContext-jkCytuYz.js","/assets/EntityItem-BxclONWq.js","/assets/LogViewer-C-9zQdXg.js","/assets/index-SqjQKTdH.js","/assets/fileTableUtils-Daa96Fr1.js","/assets/createLucideIcon-BwyFiRot.js","/assets/useToast-BgqkixU9.js","/assets/TruncatedFilePath-CK7-NaPZ.js","/assets/SafeScreenshot-DThcm_9M.js","/assets/LibraryFunctionPreview-ChX-Hp7W.js","/assets/scenarioStatus-B_8jpV3e.js","/assets/triangle-alert-D87ekDl8.js","/assets/EntityTypeIcon-BsnEOJZ_.js","/assets/EntityTypeBadge-CQgyEGV-.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"routes/editor.entity.($sha)":{id:"routes/editor.entity.($sha)",parentId:"root",path:"editor",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!0,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor.entity.(_sha)-DhtVC4aI.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js","/assets/jsx-runtime-D_zvdyIk.js","/assets/useCustomSizes-Dk0Tciqg.js","/assets/editorPreview-C6fEYHrh.js","/assets/CopyButton-DTBZZfSk.js","/assets/MiniClaudeChat-Bs2_Oua4.js","/assets/preload-helper-ckwbz45p.js","/assets/cy-logo-cli-Coe5NhbS.js","/assets/Spinner-CIil5-gb.js","/assets/copy-DXEmO0TD.js","/assets/createLucideIcon-BwyFiRot.js","/assets/useLastLogLine-C8QvIe05.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-index":{id:"editor-tab-index",parentId:"routes/editor.entity.($sha)",path:void 0,index:!0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-build":{id:"editor-tab-build",parentId:"routes/editor.entity.($sha)",path:"build",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-structure":{id:"editor-tab-structure",parentId:"routes/editor.entity.($sha)",path:"structure",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-history":{id:"editor-tab-history",parentId:"routes/editor.entity.($sha)",path:"history",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-settings":{id:"editor-tab-settings",parentId:"routes/editor.entity.($sha)",path:"settings",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0},"editor-tab-entity":{id:"editor-tab-entity",parentId:"routes/editor.entity.($sha)",path:"entity/:sha",index:void 0,caseSensitive:void 0,hasAction:!1,hasLoader:!1,hasClientAction:!1,hasClientLoader:!1,hasClientMiddleware:!1,hasDefaultExport:!0,hasErrorBoundary:!1,module:"/assets/editor._tab-BZPBzV73.js",imports:["/assets/chunk-UVKPFVEO-Bmq2apuh.js"],css:[],clientActionModule:void 0,clientLoaderModule:void 0,clientMiddlewareModule:void 0,hydrateFallbackModule:void 0}},url:"/assets/manifest-79d0d81a.js",version:"79d0d81a",sri:void 0},i_="build/client",l_="/",c_={unstable_optimizeDeps:!1,unstable_subResourceIntegrity:!1,unstable_trailingSlashAwareDataRequests:!1,unstable_previewServerPrerendering:!1,v8_middleware:!1,v8_splitRouteModules:!1,v8_viteEnvironmentApi:!1},d_=!0,u_=!1,p_=[],h_={mode:"lazy",manifestPath:"/__manifest"},m_="/",f_={module:sf},g_={root:{id:"root",parentId:void 0,path:"",index:void 0,caseSensitive:void 0,module:yy},"routes/entity.$sha.scenarios.$scenarioId.fullscreen":{id:"routes/entity.$sha.scenarios.$scenarioId.fullscreen",parentId:"root",path:"entity/:sha/scenarios/:scenarioId/fullscreen",index:void 0,caseSensitive:void 0,module:Sy},"routes/entity.$sha.scenarios.$scenarioId.dev":{id:"routes/entity.$sha.scenarios.$scenarioId.dev",parentId:"root",path:"entity/:sha/scenarios/:scenarioId/dev",index:void 0,caseSensitive:void 0,module:nx},"routes/api.interactive-switch-scenario":{id:"routes/api.interactive-switch-scenario",parentId:"root",path:"api/interactive-switch-scenario",index:void 0,caseSensitive:void 0,module:Ix},"routes/api.editor-journal-screenshot":{id:"routes/api.editor-journal-screenshot",parentId:"root",path:"api/editor-journal-screenshot",index:void 0,caseSensitive:void 0,module:Lx},"routes/api.editor-save-scenario-data":{id:"routes/api.editor-save-scenario-data",parentId:"root",path:"api/editor-save-scenario-data",index:void 0,caseSensitive:void 0,module:zx},"routes/entity.$sha_.edit.$scenarioId":{id:"routes/entity.$sha_.edit.$scenarioId",parentId:"root",path:"entity/:sha/edit/:scenarioId",index:void 0,caseSensitive:void 0,module:cb},"routes/api.editor-register-scenario":{id:"routes/api.editor-register-scenario",parentId:"root",path:"api/editor-register-scenario",index:void 0,caseSensitive:void 0,module:Mb},"routes/api.editor-scenario-coverage":{id:"routes/api.editor-scenario-coverage",parentId:"root",path:"api/editor-scenario-coverage",index:void 0,caseSensitive:void 0,module:Db},"routes/entity.$sha_.create-scenario":{id:"routes/entity.$sha_.create-scenario",parentId:"root",path:"entity/:sha/create-scenario",index:void 0,caseSensitive:void 0,module:Ub},"routes/api.editor-capture-scenario":{id:"routes/api.editor-capture-scenario",parentId:"root",path:"api/editor-capture-scenario",index:void 0,caseSensitive:void 0,module:Hb},"routes/api.editor-scenario-image.$":{id:"routes/api.editor-scenario-image.$",parentId:"root",path:"api/editor-scenario-image/*",index:void 0,caseSensitive:void 0,module:Kb},"routes/api.editor-database-verify":{id:"routes/api.editor-database-verify",parentId:"root",path:"api/editor-database-verify",index:void 0,caseSensitive:void 0,module:ev},"routes/api.editor-journal-image.$":{id:"routes/api.editor-journal-image.$",parentId:"root",path:"api/editor-journal-image/*",index:void 0,caseSensitive:void 0,module:nv},"routes/api.editor-recapture-stale":{id:"routes/api.editor-recapture-stale",parentId:"root",path:"api/editor-recapture-stale",index:void 0,caseSensitive:void 0,module:gv},"routes/api.editor-rename-scenario":{id:"routes/api.editor-rename-scenario",parentId:"root",path:"api/editor-rename-scenario",index:void 0,caseSensitive:void 0,module:xv},"routes/api.editor-save-seed-state":{id:"routes/api.editor-save-seed-state",parentId:"root",path:"api/editor-save-seed-state",index:void 0,caseSensitive:void 0,module:vv},"routes/api.editor-scenario-prompt":{id:"routes/api.editor-scenario-prompt",parentId:"root",path:"api/editor-scenario-prompt",index:void 0,caseSensitive:void 0,module:Nv},"routes/api.editor-switch-scenario":{id:"routes/api.editor-switch-scenario",parentId:"root",path:"api/editor-switch-scenario",index:void 0,caseSensitive:void 0,module:Cv},"routes/api.generate-scenario-data":{id:"routes/api.generate-scenario-data",parentId:"root",path:"api/generate-scenario-data",index:void 0,caseSensitive:void 0,module:$w},"routes/api.editor-hosting-verify":{id:"routes/api.editor-hosting-verify",parentId:"root",path:"api/editor-hosting-verify",index:void 0,caseSensitive:void 0,module:Dw},"routes/api.editor-journal-update":{id:"routes/api.editor-journal-update",parentId:"root",path:"api/editor-journal-update",index:void 0,caseSensitive:void 0,module:Gw},"routes/api.editor-client-errors":{id:"routes/api.editor-client-errors",parentId:"root",path:"api/editor-client-errors",index:void 0,caseSensitive:void 0,module:Qw},"routes/api.editor-entity-status":{id:"routes/api.editor-entity-status",parentId:"root",path:"api/editor-entity-status",index:void 0,caseSensitive:void 0,module:Xw},"routes/api.editor-github-verify":{id:"routes/api.editor-github-verify",parentId:"root",path:"api/editor-github-verify",index:void 0,caseSensitive:void 0,module:sN},"routes/api.editor-journal-entry":{id:"routes/api.editor-journal-entry",parentId:"root",path:"api/editor-journal-entry",index:void 0,caseSensitive:void 0,module:oN},"routes/api.editor-scenario-data":{id:"routes/api.editor-scenario-data",parentId:"root",path:"api/editor-scenario-data",index:void 0,caseSensitive:void 0,module:lN},"routes/api.editor-verify-routes":{id:"routes/api.editor-verify-routes",parentId:"root",path:"api/editor-verify-routes",index:void 0,caseSensitive:void 0,module:dN},"routes/api.llm-calls.$entitySha":{id:"routes/api.llm-calls.$entitySha",parentId:"root",path:"api/llm-calls/:entitySha",index:void 0,caseSensitive:void 0,module:hN},"routes/api.editor-project-info":{id:"routes/api.editor-project-info",parentId:"root",path:"api/editor-project-info",index:void 0,caseSensitive:void 0,module:gN},"routes/api.editor-test-results":{id:"routes/api.editor-test-results",parentId:"root",path:"api/editor-test-results",index:void 0,caseSensitive:void 0,module:jN},"routes/api.branch-entity-diff":{id:"routes/api.branch-entity-diff",parentId:"root",path:"api/branch-entity-diff",index:void 0,caseSensitive:void 0,module:$N},"routes/api.capture-screenshot":{id:"routes/api.capture-screenshot",parentId:"root",path:"api/capture-screenshot",index:void 0,caseSensitive:void 0,module:RN},"routes/api.editor-load-commit":{id:"routes/api.editor-load-commit",parentId:"root",path:"api/editor-load-commit",index:void 0,caseSensitive:void 0,module:HN},"routes/api.recapture-scenario":{id:"routes/api.recapture-scenario",parentId:"root",path:"api/recapture-scenario",index:void 0,caseSensitive:void 0,module:qN},"routes/api.agent-transcripts":{id:"routes/api.agent-transcripts",parentId:"root",path:"api/agent-transcripts",index:void 0,caseSensitive:void 0,module:d1},"routes/api.editor-dev-server":{id:"routes/api.editor-dev-server",parentId:"root",path:"api/editor-dev-server",index:void 0,caseSensitive:void 0,module:m1},"routes/api.logs.$projectSlug":{id:"routes/api.logs.$projectSlug",parentId:"root",path:"api/logs/:projectSlug",index:void 0,caseSensitive:void 0,module:y1},"routes/api.editor-file-diff":{id:"routes/api.editor-file-diff",parentId:"root",path:"api/editor-file-diff",index:void 0,caseSensitive:void 0,module:b1},"routes/api.editor-scenarios":{id:"routes/api.editor-scenarios",parentId:"root",path:"api/editor-scenarios",index:void 0,caseSensitive:void 0,module:w1},"routes/api.execute-function":{id:"routes/api.execute-function",parentId:"root",path:"api/execute-function",index:void 0,caseSensitive:void 0,module:C1},"routes/api.interactive-mode":{id:"routes/api.interactive-mode",parentId:"root",path:"api/interactive-mode",index:void 0,caseSensitive:void 0,module:_1},"routes/api.delete-scenario":{id:"routes/api.delete-scenario",parentId:"root",path:"api/delete-scenario",index:void 0,caseSensitive:void 0,module:P1},"routes/api.dev-mode-events":{id:"routes/api.dev-mode-events",parentId:"root",path:"api/dev-mode-events",index:void 0,caseSensitive:void 0,module:M1},"routes/api.generate-report":{id:"routes/api.generate-report",parentId:"root",path:"api/generate-report",index:void 0,caseSensitive:void 0,module:U1},"routes/api.editor-handoff":{id:"routes/api.editor-handoff",parentId:"root",path:"api/editor-handoff",index:void 0,caseSensitive:void 0,module:K1},"routes/api.editor-journal":{id:"routes/api.editor-journal",parentId:"root",path:"api/editor-journal",index:void 0,caseSensitive:void 0,module:q1},"routes/api.editor-refresh":{id:"routes/api.editor-refresh",parentId:"root",path:"api/editor-refresh",index:void 0,caseSensitive:void 0,module:sS},"routes/api.editor-roadmap":{id:"routes/api.editor-roadmap",parentId:"root",path:"api/editor-roadmap",index:void 0,caseSensitive:void 0,module:xS},"routes/api.editor-session":{id:"routes/api.editor-session",parentId:"root",path:"api/editor-session",index:void 0,caseSensitive:void 0,module:vS},"routes/api.memory-profile":{id:"routes/api.memory-profile",parentId:"root",path:"api/memory-profile",index:void 0,caseSensitive:void 0,module:kS},"routes/api.process-status":{id:"routes/api.process-status",parentId:"root",path:"api/process-status",index:void 0,caseSensitive:void 0,module:PS},"routes/api.restart-server":{id:"routes/api.restart-server",parentId:"root",path:"api/restart-server",index:void 0,caseSensitive:void 0,module:$S},"routes/api.save-scenarios":{id:"routes/api.save-scenarios",parentId:"root",path:"api/save-scenarios",index:void 0,caseSensitive:void 0,module:RS},"routes/agent-transcripts":{id:"routes/agent-transcripts",parentId:"root",path:"agent-transcripts",index:void 0,caseSensitive:void 0,module:QS},"routes/api.editor-commit":{id:"routes/api.editor-commit",parentId:"root",path:"api/editor-commit",index:void 0,caseSensitive:void 0,module:XS},"routes/api.editor-schema":{id:"routes/api.editor-schema",parentId:"root",path:"api/editor-schema",index:void 0,caseSensitive:void 0,module:rC},"routes/api.editor-audit":{id:"routes/api.editor-audit",parentId:"root",path:"api/editor-audit",index:void 0,caseSensitive:void 0,module:aC},"routes/api.kill-process":{id:"routes/api.kill-process",parentId:"root",path:"api/kill-process",index:void 0,caseSensitive:void 0,module:iC},"routes/api.save-fixture":{id:"routes/api.save-fixture",parentId:"root",path:"api/save-fixture",index:void 0,caseSensitive:void 0,module:hC},"routes/api.screenshot.$":{id:"routes/api.screenshot.$",parentId:"root",path:"api/screenshot/*",index:void 0,caseSensitive:void 0,module:fC},"routes/activity.($tab)":{id:"routes/activity.($tab)",parentId:"root",path:"activity/:tab?",index:void 0,caseSensitive:void 0,module:kC},"routes/api.debug-setup":{id:"routes/api.debug-setup",parentId:"root",path:"api/debug-setup",index:void 0,caseSensitive:void 0,module:EC},"routes/api.editor-file":{id:"routes/api.editor-file",parentId:"root",path:"api/editor-file",index:void 0,caseSensitive:void 0,module:AC},"routes/api.labs-unlock":{id:"routes/api.labs-unlock",parentId:"root",path:"api/labs-unlock",index:void 0,caseSensitive:void 0,module:FC},"routes/api.recapture":{id:"routes/api.recapture",parentId:"root",path:"api/recapture",index:void 0,caseSensitive:void 0,module:DC},"routes/api.rule-path":{id:"routes/api.rule-path",parentId:"root",path:"api/rule-path",index:void 0,caseSensitive:void 0,module:zC},"routes/entity.$sha.$":{id:"routes/entity.$sha.$",parentId:"root",path:"entity/:sha/*",index:void 0,caseSensitive:void 0,module:u2},"routes/api.analyze":{id:"routes/api.analyze",parentId:"root",path:"api/analyze",index:void 0,caseSensitive:void 0,module:m2},"routes/simulations":{id:"routes/simulations",parentId:"root",path:"simulations",index:void 0,caseSensitive:void 0,module:w2},"routes/api.events":{id:"routes/api.events",parentId:"root",path:"api/events",index:void 0,caseSensitive:void 0,module:S2},"routes/api.health":{id:"routes/api.health",parentId:"root",path:"api/health",index:void 0,caseSensitive:void 0,module:k2},"routes/api.memory":{id:"routes/api.memory",parentId:"root",path:"api/memory",index:void 0,caseSensitive:void 0,module:L2},"routes/api.queue":{id:"routes/api.queue",parentId:"root",path:"api/queue",index:void 0,caseSensitive:void 0,module:Y2},"routes/dev.empty":{id:"routes/dev.empty",parentId:"root",path:"dev/empty",index:void 0,caseSensitive:void 0,module:J2},"routes/settings":{id:"routes/settings",parentId:"root",path:"settings",index:void 0,caseSensitive:void 0,module:Z2},"routes/static.$":{id:"routes/static.$",parentId:"root",path:"static/*",index:void 0,caseSensitive:void 0,module:ek},"routes/_index":{id:"routes/_index",parentId:"root",path:void 0,index:!0,caseSensitive:void 0,module:ck},"routes/memory":{id:"routes/memory",parentId:"root",path:"memory",index:void 0,caseSensitive:void 0,module:Fk},"routes/files":{id:"routes/files",parentId:"root",path:"files",index:void 0,caseSensitive:void 0,module:Bk},"routes/labs":{id:"routes/labs",parentId:"root",path:"labs",index:void 0,caseSensitive:void 0,module:Gk},"routes/git":{id:"routes/git",parentId:"root",path:"git",index:void 0,caseSensitive:void 0,module:o5},"routes/editor.entity.($sha)":{id:"routes/editor.entity.($sha)",parentId:"root",path:"editor",index:void 0,caseSensitive:void 0,module:Z3},"editor-tab-index":{id:"editor-tab-index",parentId:"routes/editor.entity.($sha)",path:void 0,index:!0,caseSensitive:void 0,module:rr},"editor-tab-build":{id:"editor-tab-build",parentId:"routes/editor.entity.($sha)",path:"build",index:void 0,caseSensitive:void 0,module:rr},"editor-tab-structure":{id:"editor-tab-structure",parentId:"routes/editor.entity.($sha)",path:"structure",index:void 0,caseSensitive:void 0,module:rr},"editor-tab-history":{id:"editor-tab-history",parentId:"routes/editor.entity.($sha)",path:"history",index:void 0,caseSensitive:void 0,module:rr},"editor-tab-settings":{id:"editor-tab-settings",parentId:"routes/editor.entity.($sha)",path:"settings",index:void 0,caseSensitive:void 0,module:rr},"editor-tab-entity":{id:"editor-tab-entity",parentId:"routes/editor.entity.($sha)",path:"entity/:sha",index:void 0,caseSensitive:void 0,module:rr}},y_=!1;export{Qf as $,Hg as A,Ug as B,Gg as C,Bg as D,Fe as E,dg as F,ug as G,Bn as H,Kj as I,Pf as J,Tf as K,Mf as L,$f as M,Xd as N,Rf as O,Df as P,eu as Q,Of as R,Lf as S,eg as T,tu as U,Uf as V,Jf as W,Hf as X,Vf as Y,Gf as Z,qf as _,Nf as a,Zf as a0,_f as a1,Ef as a2,Xf as a3,Zs as a4,ng as a5,rg as a6,sg as a7,ag as a8,ig as a9,u_ as aA,p_ as aB,h_ as aC,m_ as aD,f_ as aE,g_ as aF,y_ as aG,o_ as aH,og as aa,Xj as ab,wi as ac,e_ as ad,n_ as ae,t_ as af,Zj as ag,a_ as ah,Ie as ai,i0 as aj,a0 as ak,x0 as al,es as am,Gj as an,iu as ao,e0 as ap,t0 as aq,eS as ar,s_ as as,vn as at,qj as au,Qj as av,i_ as aw,l_ as ax,c_ as ay,d_ as az,Dn as b,Rn as c,Zt as d,Xr as e,gi as f,fa as g,Zd as h,vf as i,Cg as j,kg as k,yn as l,Xt as m,xi as n,$g as o,ea as p,nt as q,su as r,au as s,bi as t,hn as u,ou as v,fr as w,lr as x,Ng as y,ql as z};