| 6772 | `)}async function dLY(q){let K=Ns($Q8(),`${q}.json`);try{let _=await rpK(K,{encoding:"utf-8"}),z=r8(_);if(!tpK(z)){try{await hLY(K)}catch{}return null}return z}catch{return null}}async function cLY(q){try{await y97($Q8(),{recursive:!0})}catch{}let K=Ns($Q8(),`${q.session_id}.json`);await E97(K,g6(q,null,2),{encoding:"utf-8",mode:384})}async function lLY(q){let K=Ns(N97(),`${q}.json`);try{let _=await rpK(K,{encoding:"utf-8"});return r8(_)}catch{return null}}async function nLY(q){try{await y97(N97(),{recursive:!0})}catch{}let K=Ns(N97(),`${q.session_id}.json`);await E97(K,g6(q,null,2),{encoding:"utf-8",mode:384})}async function iLY(q,K){try{let _=await QLY(q),z=`${ILY}${_} |
| 6786 | }`,Y=await OQ8({systemPrompt:iK([]),userPrompt:z,signal:new AbortController().signal,options:{model:opK(),querySource:"insights",agents:[],isNonInteractiveSession:!0,hasAppendSystemPrompt:!1,mcpTools:[],maxOutputTokensOverride:4096}}),A=L3(Y.message.content).match(/\{[\s\S]*\}/);if(!A)return null;let O=r8(A[0]);if(!tpK(O))return null;return{...O,session_id:K}}catch(_){return H6(Error(`Facet extraction failed: ${x1(_).message}`)),null}}function apK(q){let _=[];for(let w of q)for(let j of w.user_message_timestamps)try{let H=new Date(j).getTime();_.push({ts:H,sessionId:w.session_id})}catch{}_.sort((w,j)=>w.ts-j.ts);let z=new Set,Y=new Set,$=0,A=new Map;for(let w=0;w<_.length;w++){let j=_[w];while($<w&&j.ts-_[$].ts>1800000){let J=_[$];if(A.get(J.sessionId)===$)A.delete(J.sessionId);$++}let H=A.get(j.sessionId);if(H!==void 0)for(let J=H+1;J<w;J++){let M=_[J];if(M.sessionId!==j.sessionId){let X=[j.sessionId,M.sessionId].sort().join(":");z.add(X),Y.add(`${_[H].ts}:${j.sessionId}`),Y.add(`${M.ts}:${M.sessionId}`),Y.add(`${j.ts}:${j.sessionId}`);break}}A.set(j.sessionId,w)}let O=new Set;for(let w of z){let[j,H]=w.split(":");if(j)O.add(j);if(H)O.add(H)}return{overlap_events:z.size,sessions_involved:O.size,user_messages_during:Y.size}}function rLY(q,K){let _={total_sessions:q.length,sessions_with_facets:K.size,date_range:{start:"",end:""},total_messages:0,total_duration_hours:0,total_input_tokens:0,total_output_tokens:0,tool_counts:{},languages:{},git_commits:0,git_pushes:0,projects:{},goal_categories:{},outcomes:{},satisfaction:{},helpfulness:{},session_types:{},friction:{},success:{},session_summaries:[],total_interruptions:0,total_tool_errors:0,tool_error_categories:{},user_response_times:[],median_response_time:0,avg_response_time:0,sessions_using_task_agent:0,sessions_using_mcp:0,sessions_using_web_search:0,sessions_using_web_fetch:0,total_lines_added:0,total_lines_removed:0,total_files_modified:0,days_active:0,messages_per_day:0,message_hours:[],multi_clauding:{overlap_events:0,sessions_involved:0,user_messages_during:0}},z=[],Y=[],$=[];for(let O of q){z.push(O.start_time),_.total_messages+=O.user_message_count,_.total_duration_hours+=O.duration_minutes/60,_.total_input_tokens+=O.input_tokens,_.total_output_tokens+=O.output_tokens,_.git_commits+=O.git_commits,_.git_pushes+=O.git_pushes,_.total_interruptions+=O.user_interruptions,_.total_tool_errors+=O.tool_errors;for(let[j,H]of Object.entries(O.tool_error_categories))_.tool_error_categories[j]=(_.tool_error_categories[j]||0)+H;if(Y.push(...O.user_response_times),O.uses_task_agent)_.sessions_using_task_agent++;if(O.uses_mcp)_.sessions_using_mcp++;if(O.uses_web_search)_.sessions_using_web_search++;if(O.uses_web_fetch)_.sessions_using_web_fetch++;_.total_lines_added+=O.lines_added,_.total_lines_removed+=O.lines_removed,_.total_files_modified+=O.files_modified,$.push(...O.message_hours);for(let[j,H]of Object.entries(O.tool_counts))_.tool_counts[j]=(_.tool_counts[j]||0)+H;for(let[j,H]of Object.entries(O.languages))_.languages[j]=(_.languages[j]||0)+H;if(O.project_path)_.projects[O.project_path]=(_.projects[O.project_path]||0)+1;let w=K.get(O.session_id);if(w){for(let[j,H]of mS6(w.goal_categories))if(H>0)_.goal_categories[j]=(_.goal_categories[j]||0)+H;_.outcomes[w.outcome]=(_.outcomes[w.outcome]||0)+1;for(let[j,H]of mS6(w.user_satisfaction_counts))if(H>0)_.satisfaction[j]=(_.satisfaction[j]||0)+H;_.helpfulness[w.claude_helpfulness]=(_.helpfulness[w.claude_helpfulness]||0)+1,_.session_types[w.session_type]=(_.session_types[w.session_type]||0)+1;for(let[j,H]of mS6(w.friction_counts))if(H>0)_.friction[j]=(_.friction[j]||0)+H;if(w.primary_success!=="none")_.success[w.primary_success]=(_.success[w.primary_success]||0)+1}if(_.session_summaries.length<50)_.session_summaries.push({id:O.session_id.slice(0,8),date:O.start_time.split("T")[0]||"",summary:O.summary||O.first_prompt.slice(0,100),goal:w?.underlying_goal})}if(z.sort(),_.date_range.start=z[0]?.split("T")[0]||"",_.date_range.end=z[z.length-1]?.split("T")[0]||"",_.user_response_times=Y,Y.length>0){let O=[...Y].sort((w,j)=>w-j);_.median_response_time=O[Math.floor(O.length/2)]||0,_.avg_response_time=Y.reduce((w,j)=>w+j,0)/Y.length}let A=new Set(z.map((O)=>O.split("T")[0]));return _.days_active=A.size,_.messages_per_day=_.days_active>0?Math.round(_.total_messages/_.days_active*10)/10:0,_.message_hours=$,_.multi_clauding=apK(q),_}async function ipK(q,K){try{let _=await OQ8({systemPrompt:iK([]),userPrompt:q.prompt+` |