
    i7                     \    d dl Z d dlmZ d dlZg dZd Z e j                   e              y)    N)async_playwright)z--no-sandboxz--disable-setuid-sandboxz--disable-dev-shm-usagez1--host-resolver-rules=MAP 100.76.130.39 127.0.0.1c                    K   t               4 d {   } | j                  j                  dt               d {   }|j	                  ddd       d {   }|j                          d {   }|j                  ddd	
       d {    |j                  d       d {    t        d|j                          d {           |j                  dd       d {    t        d       |j                  d       d {   }t        dt        |       d       |D ]N  }|j                          d {   }|s|j                         s/t        d|j                         d d  d       P |j                  d      }|j!                          d {   }t        d|        |dkD  rG|j"                  j%                          d {    |j                  d       d {    t        d       nrt        d       |j'                  d      }	|	j!                          d {   dkD  r;|	j"                  j%                          d {    |j                  d       d {    |j                  dd       d {    t        d       |j)                  d       d {   }
|j'                  d       j"                  }|j!                          d {   dkD  r|j                  d!"       d {    n|j                  d!d       d {    t        d#       |j+                          d {    t        d$t        |
       d%       d&d'd(d)d*d+}i }|
D ]R  }|j-                         D ]=  \  }}||d,   v s|j/                  |d      d-z   ||<   t        d.| d/|d0   d d1          R T t        d2       |j-                         D ]  \  }}t        d3| d4| d5        |
cd d d       d {    S 7 7 7 7 7 |7 f7 K7 -7 7 7 ~7 L7 67 7 7 7 7 7 X7 >7 %7 7 G# 1 d {  7  sw Y   y xY ww)6NT)headlessargsi  i8  )widthheight)viewportz$http://100.76.130.39:8000/dashboard/i0u  domcontentloaded)timeout
wait_untili  zPage title: z8/home/jay/workspace/memory/reports/task-1912-initial.png)path	full_pagezInitial screenshot saved.buttonzFound z	 buttons:z  Button: '(   'u	   조직뷰u   '조직뷰' tab found: r   u   Clicked '조직뷰' tab.uB   WARNING: '조직뷰' tab not found by text. Trying alternatives...u*   [data-tab="org"], [aria-label="조직뷰"]i  z>/home/jay/workspace/memory/reports/task-1912-org-view-full.pngz;Full org-view screenshot saved: task-1912-org-view-full.pngut  () => {
            const results = [];
            const els = document.querySelectorAll('[class]');
            els.forEach(el => {
                const c = el.className || '';
                if (typeof c === 'string' && (
                    c.includes('bg-emerald') ||
                    c.includes('bg-amber') ||
                    c.includes('bg-slate') ||
                    c.includes('bg-violet') ||
                    c.includes('bg-red')
                ) && c.includes('rounded-full')) {
                    // 상위 컨텍스트 - 이름/역할 파악
                    const cardEl = el.closest('[class*="card"], [class*="Card"], [class*="border"], [class*="rounded-lg"]');
                    const nameEl = el.closest('[class*="gap"]');
                    results.push({
                        classes: c.substring(0, 120),
                        cardText: cardEl ? cardEl.textContent.trim().substring(0, 100) : 'N/A',
                        siblingText: nameEl ? nameEl.textContent.trim().substring(0, 80) : 'N/A',
                    });
                }
            });
            return results;
        }z0[class*="grid"], [class*="team"], [class*="org"]z=/home/jay/workspace/memory/reports/task-1912-team-details.png)r   z9Team details screenshot saved: task-1912-team-details.pngu   
=== StatusDot 결과: u   개 발견 ===u   working (초록)u   standby/waiting (노랑)u   idle (회색)u   borrowed (보라)u   error/unknown (빨강))z
bg-emeraldzbg-amberzbg-slatez	bg-violetzbg-redclasses   z  [z] context: siblingTextF   u   
=== 색상별 집계 ===z  z: u   개)r   chromiumlaunchBROWSER_ARGSnew_contextnew_pagegotowait_for_timeoutprinttitle
screenshotquery_selector_alllentext_contentstripget_by_textcountfirstclicklocatorevaluatecloseitemsget)pbrowsercontextpagetabstabtxtorg_tabr%   altdot_infoteam_section	color_mapcolor_countsd	color_keylabelcnts                     :/home/jay/workspace/memory/reports/task-1912-screenshot.pycapture_dashboardr?      sF    ! j jQ

))4l)KK++tt5T+UU%%'' ii>Zlimmm##D)))4::</012 oo#]imonnn)* ,,X66s4yk+, 	9C((**Csyy{CIIK$4#5Q78	9 "";/mmo%'w/019--%%'''''---,-VW,,KLCYY[ 1$iioo'''++D111 oo#cosotttKL  (  4 ||$VW]]##%%)))/n)ooo//T "    	IJmmo 	(X~FG -2',.
	  	A$-OO$5  	5),*6*:*:5!*Dq*HL'Cwk!M2B3B2G1HIJ		 	*,&,,. 	*JE3BugRuC()	* Uj j jKU' 	n)/ 	o 7 + & (- !'1 	u6 &o 	aj j j js  QO;Q%P?O>P?PP?/P0P?PP?$P
%P?P P?#P$#P?P4P?<P=P?P?AP?P4P?PP?)P*?P?)P"*$P?P%P?'P((P?P+#P?&P.'2P?P1P?6P47P?P7"P?5P:6AP??A*P?)Q5P=6Q>P?P?P?P?
P?P?P?P?P?P?P?P?"P?%P?(P?+P?.P?1P?4P?7P?:P?=Q?QQQQ)asyncioplaywright.async_apir   jsonr   r?   run     r>   <module>rF      s0     1 kZ   rE   