§
    =ÔÀjÛ$  ã                  óz  — U d Z ddlmZ ddlZddlZddlZddlZddlmZm	Z	 ddl
mZ ddlmZmZmZmZ  edd¬¦  «         G d	„ d
¦  «        ¦   «         ZdZded<    edddd¬¦  «         edddd¬¦  «         edddd¬¦  «         edddd¬¦  «         edddd¬¦  «         ed d!d"d¬¦  «         ed#d$d%d¬¦  «         ed&d'd(d¬¦  «         ed)d*d+d,¬¦  «         ed-d.d/d,¬¦  «         ed0d1d2d,¬¦  «         ed3d4d5d¬¦  «         ed6d7d8d¬¦  «        fZd9ed:<    G d;„ d<¦  «        ZdAd?„Zed@k    r e¦   «          dS dS )Bz«
FreeExile Marketing Hub Manager & Pipeline Auditor
Autonomous CLI tool for managing campaigns, auditing 9-language parity,
and monitoring marketing KPIs across channels.
é    )ÚannotationsN)Ú	dataclassÚfield)ÚPath)ÚDictÚListÚOptionalÚTupleT)ÚslotsÚfrozenc                  ó<   — e Zd ZU dZded<   ded<   ded<   ded<   d	S )
ÚMarketingChecklistzChecklist item definition.ÚstrÚnameÚtarget_pathúTuple[str, ...]Úrequired_keywordsÚintÚ	min_linesN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__© ó    ú>C:\Projects\FreeExile\marketing\tools\marketing_hub_manager.pyr   r      s@   € € € € € € à$Ð$Ø€I€I�IØÐÐÑØ&Ð&Ð&Ñ&Ø€N€N�N€N€Nr   r   )	ÚenÚviÚzhÚjaÚkoÚthÚdeÚruÚesr   ÚREQUIRED_LANGUAGESzMarketing Overviewzmarketing/README.md)Ú	FREEEXILEÚ	MARKETINGÚGROWTHé   )r   r   r   r   zAgent Rosterzmarketing/ROSTER.md)Úmarketing_leadÚviral_content_creatorÚarpg_outreach_scoutzGlobal Strategyzmarketing/STRATEGY.md)ÚROADMAPÚWishlistÚSteamé(   zSteam & Storefrontz*marketing/channels/steam_and_storefront.md)r1   ÚCapsuleÚASOzShort-form & Socialz*marketing/channels/shortform_and_social.md)ÚTikTokÚShortsÚViralzInfluencer Outreachz)marketing/channels/influencer_outreach.md)ÚStreamerÚCreatorÚTierzCommunity & Redditz*marketing/channels/community_and_reddit.md)ÚDiscordÚRedditÚDevlogzPress & Mediaz%marketing/channels/press_and_media.md)z	Press KitÚReleasezPC GamerzCampaign 01 - Manifestoz.marketing/campaigns/01_the_savage_manifesto.md)Ú	ManifestoÚP2WÚBarteré   zCampaign 02 - 1500 Nodesz/marketing/campaigns/02_flesh_bone_viral_tree.md)z1,500ÚFleshÚBonezCampaign 03 - Web Demoz.marketing/campaigns/03_instant_zero_install.md)ÚBrowserÚDemoÚInstantzI18N Marketing Guidez.marketing/localization/MARKETING_I18N_GUIDE.md)Ú9ÚLocalesÚNuanceszStore Pitch 9 Languagesú0marketing/localization/store_pitch_9languages.md)ÚENGLISHu   VIá»†Tu   ä¸­æ–‡u	   æ—¥æœ¬èªžu	   í•œêµ­ì–´zTuple[MarketingChecklist, ...]ÚCORE_MARKETING_FILESc                  ó4   — e Zd ZdZddd„Zdd	„Zdd
„Zdd„ZdS )ÚMarketingHubManagerzEManager class for inspecting and validating marketing infrastructure.NÚroot_dirúOptional[Path]ÚreturnÚNonec                ó¢   — |€8t          t          ¦  «                             ¦   «         j        d         | _        d S t          |¦  «        | _        d S )Né   )r   Ú__file__ÚresolveÚparentsrP   )ÚselfrP   s     r   Ú__init__zMarketingHubManager.__init__v   s>   € ØÐÝ ¥™NœN×2Ò2Ñ4Ô4Ô<¸QÔ?ˆDŒMˆMˆMå  ™NœNˆDŒMˆMˆMr   úDict[str, object]c           
     ó�  — g }d}t           D �]Š}| j        |j        z  }d}g }|                     ¦   «         s?d}|                     d¦  «         d}|                     |j        |j        ||ddœ¦  «         Œi	 |                     d¬	¦  «        }|                     ¦   «         }t          |¦  «        }	|	|j	        k     r%d}|                     d
|	› d|j	        › d�¦  «         d}|j
        D ]G}
|
                     ¦   «         |                     ¦   «         vrd}|                     d|
› d�¦  «         d}ŒH|                     |j        |j        |||	dœ¦  «         �ŒI# t          $ r6}d}|                     |j        |j        dd|› �gddœ¦  «         Y d}~�Œ„d}~ww xY w|t          t           ¦  «        t          d„ |D ¦   «         ¦  «        |dœS )zAAudit all marketing documents for existence, length and keywords.TÚPASSÚFAILzFile not found on diskFr   )r   ÚpathÚstatusÚerrorsÚ
line_countúutf-8©ÚencodingzLine count too short (z < ú)zMissing required keyword: 'ú'zRead error: Nc              3  ó2   K  — | ]}|d          dk    ¯dV — ŒdS )r`   r]   é   Nr   )Ú.0Úrs     r   ú	<genexpr>z6MarketingHubManager.audit_documents.<locals>.<genexpr>·   s0   è è € ÐLÐL a°a¸´kÀVÒ6KÐ6K Ð6KÐ6KÐ6KÐ6KÐLÐLr   )Ú
all_passedÚtotal_itemsÚpassed_itemsÚdetails)rM   rP   r   ÚexistsÚappendr   Ú	read_textÚ
splitlinesÚlenr   r   ÚlowerÚ	ExceptionÚsum)rY   Úresultsrm   ÚitemÚ	file_pathr`   ra   ÚcontentÚlinesrb   ÚkwÚexcs               r   Úaudit_documentsz#MarketingHubManager.audit_documents|   s^  € à+-ˆØˆ
å(ð 1	ñ 1	ˆDØœ¨Ô(8Ñ8ˆIØˆFØ "ˆFà×#Ò#Ñ%Ô%ð Ø�Ø—’Ð6Ñ7Ô7Ð7Ø"�
Ø—’Ø œIØ Ô,Ø$Ø$Ø"#ð ð  ñ ô ð ð ðØ#×-Ò-°wÐ-Ñ?Ô?�Ø×*Ò*Ñ,Ô,�Ý  ™ZœZ�
à ¤Ò.Ð.Ø#�FØ—M’MÐ"[¸:Ð"[Ð"[È$Ì.Ð"[Ð"[Ð"[Ñ\Ô\Ð\Ø!&�JàÔ0ð +ð +�BØ—x’x‘z”z¨¯ª©¬Ð8Ð8Ø!'˜ØŸšÐ&IÀBÐ&IÐ&IÐ&IÑJÔJÐJØ%*˜
øà—’Ø œIØ Ô,Ø$Ø$Ø",ð ð  ñ ô ð ñ øõ ð ð ð Ø"�
Ø—’Ø œIØ Ô,Ø$Ø3¨cÐ3Ð3Ð4Ø"#ð ð  ñ ô ð ð ð ð ð ñ øøøøðøøøð %ÝÕ3Ñ4Ô4ÝÐLÐL¨7ÐLÑLÔLÑLÔLØð	
ð 
ð 	
s   Á6CEÅ
FÅ+FÆFc                ó´  — | j         dz  }g }|                     ¦   «         sddt          t          ¦  «        dœS |                     d¬¦  «                             ¦   «         }t          D ]%}d|› d�}||vr||vr|                     |¦  «         Œ&t          |¦  «        dk    t          t          ¦  «        |t          t          ¦  «        t          |¦  «        z
  d	œS )
zCVerify that all 9 languages are fully represented in store pitches.rK   Fz(store_pitch_9languages.md does not exist)ÚsuccessÚerrorÚmissing_languagesrc   rd   ú`r   )r‚   Úrequired_languagesr„   Úlanguages_found)rP   rq   Úlistr'   rs   rv   rr   ru   )rY   Ú
store_pathÚmissing_langsr|   ÚlangÚtags         r   Úverify_localization_parityz.MarketingHubManager.verify_localization_parity»   sü   € à”]Ð%WÑWˆ
Ø#%ˆà× Ò Ñ"Ô"ð 	à ØCÝ%)Õ*<Ñ%=Ô%=ðð ð ð ×&Ò&°Ð&Ñ8Ô8×>Ò>Ñ@Ô@ˆÝ&ð 	+ð 	+ˆDØ�d�+�+�+ˆCØ˜'Ð!Ð! d°'Ð&9Ð&9Ø×$Ò$ TÑ*Ô*Ð*øõ ˜=Ñ)Ô)¨QÒ.Ý"&Õ'9Ñ":Ô":Ø!.Ý"Õ#5Ñ6Ô6½¸]Ñ9KÔ9KÑKð	
ð 
ð 	
r   r   c           
     ó*  — t          d¦  «         t          d¦  «         t          d¦  «         |                      ¦   «         }|                      ¦   «         }t          d|d         › �¦  «         t          d|d         › d|d         › �¦  «         t          d|d	         › dt          t          ¦  «        › �¦  «         t          d
¦  «         t          dd›ddd›ddd›d�¦  «         t          d
¦  «         |d         D ]V}|d         rd                     |d         ¦  «        nd}t          |d         d›d|d         d›d|d         d›d|› �¦  «         ŒWt          d¦  «         |d         r|d         rt          d¦  «         dS t          d¦  «         dS )z9Render a clean terminal dashboard of marketing readiness.zH========================================================================z1  FREEEXILE AUTONOMOUS MARKETING STUDIO DASHBOARDz$[*] Total Core Marketing Documents: rn   z#[*] Documents Passing Audit:       ro   z / z#[*] 9-Language Parity Coverage:    r‡   zH------------------------------------------------------------------------zDocument Namez<30z | ÚStatusz<6ÚLinesz | Notesrp   ra   z, ÚOKr   r`   rb   rm   r‚   zD>>> STATUS: MARKETING PIPELINE IS 100% OPERATIONAL & DEPLOYABLE! <<<r   zA>>> STATUS: MARKETING AUDIT FOUND ISSUES REQUIRING ATTENTION. <<<ri   )Úprintr€   r�   ru   r'   Újoin)rY   Ú	audit_resÚloc_resrz   Úerr_strs        r   Úprint_dashboardz#MarketingHubManager.print_dashboardÔ   sÐ  € åˆh‰ŒˆÝÐAÑBÔBÐBÝˆh‰Œˆà×(Ò(Ñ*Ô*ˆ	Ø×1Ò1Ñ3Ô3ˆåÐO°Y¸}Ô5MÐOÐOÑPÔPÐPÝÐl°I¸nÔ4MÐlÐlÐR[Ð\iÔRjÐlÐlÑmÔmÐmÝÐl°GÐ<MÔ4NÐlÐlÕSVÕWiÑSjÔSjÐlÐlÑmÔmÐmåˆh‰ŒˆÝ�ÐMÐMÐM¨ÐMÐMÐM¸ÐMÐMÐMÐMÑNÔNÐNÝˆh‰ŒˆØ˜iÔ(ð 	eð 	eˆDØ37¸´>ÐK�d—i’i  X¤Ñ/Ô/Ð/ÀtˆGÝ�T˜&”\ÐcÐcÐc¨$¨x¬.ÐcÐcÐcÀÀ\Ô@RÐcÐcÐcÐZaÐcÐcÑdÔdÐdÐdåˆh‰ŒˆØ�\Ô"ð 	 w¨yÔ'9ð 	ÝÐXÑYÔYÐYØ�1åÐUÑVÔVÐVØ�1r   )N)rP   rQ   rR   rS   )rR   r[   )rR   r   )r   r   r   r   rZ   r€   r�   r—   r   r   r   rO   rO   s   sp   € € € € € ØOÐOð+ð +ð +ð +ð +ð=
ð =
ð =
ð =
ð~
ð 
ð 
ð 
ð2ð ð ð ð ð r   rO   rR   rS   c                 ó>  — t          j        d¬¦  «        } |                      ddd¬¦  «         |                      ddd¬¦  «         |                      ¦   «         }t	          ¦   «         }|j        r†|                     ¦   «         }|                     ¦   «         }|||d	         r
|d
         rdnddœ}t          t          j	        |dd¬¦  «        ¦  «         t          j        |d         dk    rdnd¦  «         |                     ¦   «         }t          j        |¦  «         dS )zCLI entrypoint.zFreeExile Marketing Hub Manager)Údescriptionz--jsonÚ
store_truezOutput results in JSON format)ÚactionÚhelpz--check-onlyzRun audit and return exit coderm   r‚   ÚOPERATIONALÚFAILED)Ú	documentsÚlocalizationr`   rU   T)ÚindentÚensure_asciir`   r   ri   N)ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsrO   Újsonr€   r�   r’   ÚdumpsÚsysÚexitr—   )ÚparserÚargsÚmanagerÚ	doc_auditÚ	loc_auditÚpayloadÚcodes          r   Úmainr²   ñ   s+  € åÔ$Ð1RÐSÑSÔS€FØ
×Ò˜¨Ð<[ÐÑ\Ô\Ð\Ø
×Ò˜¨|ÐBbÐÑcÔcÐcØ×ÒÑÔ€Då!Ñ#Ô#€GØ„yð 	AØ×+Ò+Ñ-Ô-ˆ	Ø×6Ò6Ñ8Ô8ˆ	à"Ø%Ø(1°,Ô(?ÐgÀIÈiÔDXÐg�m�mÐ_gð
ð 
ˆõ
 	�dŒj˜¨¸Ð>Ñ>Ô>Ñ?Ô?Ð?ÝŒ�g˜hÔ'¨=Ò8Ð8��¸aÑ@Ô@Ð@à×"Ò"Ñ$Ô$€DÝ„HˆT�N„N€N€N€Nr   Ú__main__)rR   rS   )r   Ú
__future__r   r£   r§   Úosr©   Údataclassesr   r   Úpathlibr   Útypingr   r   r	   r
   r   r'   r   rM   rO   r²   r   r   r   r   ú<module>r¹      sM  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .ð €�˜dÐ#Ñ#Ô#ðð ð ð ð ñ ô ñ $Ô#ðð'Ð ð ð ð ñ ð
 ÐØ!Ø)Ø>Øð	ñ ô ð ÐØØ)Ø\Øð	ñ ô ð ÐØØ+Ø:Øð	ñ ô ð ÐØ!Ø@Ø5Øð	ñ ô ð ÐØ"Ø@Ø7Øð	ñ ô ð ÐØ"Ø?Ø9Øð	ñ ô ð ÐØ!Ø@Ø9Øð	ñ ô ð ÐØØ;Ø>Øð	ñ ô ð ÐØ&ØDØ8Øð	ñ ô ð ÐØ'ØEØ4Øð	ñ ô ð ÐØ%ØDØ8Øð	ñ ô ð ÐØ#ØDØ5Øð	ñ ô ð ÐØ&ØFØSØð	ñ ô ðSO8Ð ð Oð Oð Oñ Oðd{ð {ð {ð {ð {ñ {ô {ð {ð|ð ð ð ð. ˆzÒÐØ€D�F„F€F€F€Fð Ðr   