
    Hi\;                     ~    S SK JrJrJr  SrS SKr S SKr\R                  R                  S5        S SK	r	S SK
r
S SKrS SKrS SKrS SKr\R                  R                  S S5        S SKJrJr  S SKJr  S SKJr  S S	KJrJr  S S
KJr  S SKJrJr  SrSrSrSr  " S S5      r!S r"\#S:X  a  \"" 5         S r$g!   Sr N= f)    )
should_actget_mode
get_limitsTFNz
/Eden/CORE)can_postrecord_post)datetime)Path)GitHubLeadScraperSEARCH_QUERIES)GitHubOutreachGenerator)SageProductCatalogSAGE_PRODUCTSgS?z/Eden/DATA/sales.dbz/Eden/LOGS/autonomous_sales.logz/Eden/DATA/outreach_sent.jsonc                       \ rS rSrSrS rS\4S jrS\4S jr	S\4S	 jr
SS
\S\4S jjrSS\S\4S jjrS\S\S\4S jrS\S\S\4S jrSS\S\4S jjrS\4S jrS\4S jrS\4S jrS S\4S jjrSrg)!EdenAutonomousSales&   zFull autonomous sales systemc                     [        5       U l        [        5       U l        [	        5       U l        SU l        SU l        SU l        U R                  5       U l
        g )Nr           )r
   scraperr   outreach_genr   catalogcycletotal_outreachtotal_revenue_load_sent_outreachsent_outreach)selfs    4/home/james-whalen/RECOVERED/EDEN_CODE/f781317560.py__init__EdenAutonomousSales.__init__)   sK    (*35)+
  "557    returnc                      [        [        S5       n[        R                  " U5      n[	        UR                  S/ 5      5      sSSS5        $ ! , (       d  f       g= f!   [	        5       s $ = f)z1Load history of sent outreach to avoid duplicatesrsent_idsN)openOUTREACH_LOGjsonloadsetget)r   fdatas      r   r   'EdenAutonomousSales._load_sent_outreach4   sL    	lC(Ayy|488J34 )((	5Ls(   A 1A	A 
AA A A,
identifierc                     U R                   R                  U5         [        [        S5       n[        R
                  " S[        U R                   5      0U5        SSS5        g! , (       d  f       g= f!    g= f)zRecord sent outreachwr$   N)r   addr%   r&   r'   dumplist)r   r.   r+   s      r   _save_sent_outreach'EdenAutonomousSales._save_sent_outreach=   sZ    z*	lC(A		:tD,>,>'?@!D )((	s(   A4 -A#A4 #
A1-A4 1A4 4A8messagec                     [         R                  " 5       R                  S5      nSU SU 3n[        U5         [	        [
        S5       nUR                  US-   5        SSS5        g! , (       d  f       g= f!    g= f)zLog to file and consolez%Y-%m-%d %H:%M:%S[] a
N)r   nowstrftimeprintr%   LOG_PATHwrite)r   r6   	timestamplog_liner+   s        r   logEdenAutonomousSales.logF   sh    LLN++,?@	ykG9-h	h$4( %$$	s)   A8 	A'A8 '
A51A8 5A8 8A<num_queriesc           	          SSK nUR                  [        [        U[	        [        5      5      5      nU R
                  R                  USS9nUR                  SS5      $ )zFind new leads from GitHubr   N   )queriesmax_per_query	new_leads)randomsampler   minlenr   
run_searchr*   )r   rE   rK   rH   resultss        r   scrape_new_leads$EdenAutonomousSales.scrape_new_leadsQ   sK    --K^AT0UV,,))')K{{;**r    limitc                    [         R                  " [        5      nUR                  5       nUR	                  SUS-  45        / nUR                  5        H  nUu  pgp[        R                  " U5      n
U
R                  SS5      nSUR                  5       ;   df  UR                  S5      (       dP  SUR                  5       ;   d<  SUR                  5       ;   d(  S	UR                  5       ;   d  S
UR                  5       ;   a  M  XpR                  ;   a  M  UR                  UUU
U	S.5        [        U5      U:  d  M    O   UR                  5         U$ )z)Get top leads that haven't been contactedz
            SELECT id, identifier, data, score 
            FROM leads 
            WHERE status = 'new' 
              AND source LIKE 'github%'
            ORDER BY score DESC 
            LIMIT ?
        d   user z[bot]botzgithub-actions
dependabotdigicertsnyk)idr.   r,   score)sqlite3connectDB_PATHcursorexecutefetchallr'   loadsr*   lowerendswithr   appendrN   close)r   rS   conncleadsrowlead_idr.   	data_jsonr]   r,   rV   s               r   get_best_leads"EdenAutonomousSales.get_best_leadsX   sn   w'KKM 	
		  ck^	 ::<C471G::i(D88FB'D $**,&$--*>*>BRVZV`V`VbBbfrvz  wA  wA  wC  gC  GQ  UY  U_  U_  Ua  Ga  ek  os  oy  oy  o{  e{///LL(	  5zU"'  * 	

r    	issue_urlc                    [        S5      nUR                  5       (       d  U R                  S5        gUR                  5       R	                  5       n UR                  SS5      R                  S5      nUS   nUS   nUS	   nSU SU SU S3n	SU 3SSS.n
 [        R                  " U	U
SU0SS9nUR                  S:X  a  U R                  SU 35        gU R                  SUR                   SUR                  SS  35        g!   U R                  S
U 35         g= f! [         a  nU R                  SU 35         SnAgSnAff = f)zM
Post a comment on a GitHub issue
Note: Requires GitHub token for API access
$/Eden/SECRETS/github_token_clean.txtz,[SKIP] No GitHub token - cannot auto-commentFzhttps://github.com/rW   /r         z [ERROR] Cannot parse issue URL: zhttps://api.github.com/repos/z/issues/z	/commentsztoken zapplication/vnd.github.v3+jsonz	Eden-SAGE)AuthorizationAcceptz
User-Agentbody   )headersr'   timeout   z[SENT] Comment posted to Tz[FAIL] GitHub API z: NrU   [ERROR] )r	   existsrC   	read_textstripreplacesplitrequestspoststatus_codetext	Exception)r   rq   r6   
token_pathtokenpartsownerrepo	issue_numapi_urlr{   responsees                r   create_github_comment)EdenAutonomousSales.create_github_comment   sz    @A
  ""HHCE$$&,,.	%%&;R@FFsKE!HE8DaI
 2%$x	{R[\  &eW-6%
	}}g&	H ##s*4YK@A-h.B.B-C2hmmTXUXFYEZ[\3	HH7	{CD2  	HHxs^$	s*   0D =D  .D  D 
E*EEleadoutreachc                 j   [         R                  " [        5      nUR                  5       nUR	                  S5        [
        R                  " US    S[        R                  " 5       R                  5        3R                  5       5      R                  5       SS R                  5       nUR	                  SXQS   US   R                  S5      US   R                  S	5      US
   US   US   [        US   5      45        UR	                  SUS   45        UR                  5         UR!                  5         U$ )z!Queue outreach for sending/reviewa  CREATE TABLE IF NOT EXISTS outreach_queue (
            id TEXT PRIMARY KEY,
            lead_id TEXT,
            user TEXT,
            issue_url TEXT,
            subject TEXT,
            message TEXT,
            product TEXT,
            price REAL,
            status TEXT DEFAULT 'queued',
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            sent_at TIMESTAMP
        )r.   _N   zINSERT OR IGNORE INTO outreach_queue 
                    (id, lead_id, user, issue_url, subject, message, product, price)
                    VALUES (?, ?, ?, ?, ?, ?, ?, ?)r,   rV   urlsubjectr6   productpricez7UPDATE leads SET status = 'queued' WHERE identifier = ?)r^   r_   r`   ra   rb   hashlibsha256r   r<   	isoformatencode	hexdigestupperr*   floatcommitrh   )r   r   r   ri   rj   outreach_ids         r   queue_outreach"EdenAutonomousSales.queue_outreach   s&   w'KKM 	
		  	 nnL!"!HLLN$<$<$>#?@GGI

)+cr 57 	 	
		 7 L1v,""6*v,""5)9%9%9%)*,		- 	
		K|$&	( 	

r    	auto_sendc                    [         R                  " [        5      nUR                  5       nUR	                  S5        UR                  5       nSnU Hg  u  pgpU(       aC  U R                  X5      (       a+  UR	                  SU45        U R                  U5        US-  nMN  MP  U R                  SU SU 35        Mi     UR                  5         UR                  5         U$ )z Process queued outreach messageszSELECT id, user, issue_url, message 
                    FROM outreach_queue 
                    WHERE status = 'queued'
                    LIMIT 10r   zUPDATE outreach_queue 
                                SET status = 'sent', sent_at = CURRENT_TIMESTAMP
                                WHERE id = ?ru   z	[QUEUED] z @ )r^   r_   r`   ra   rb   rc   r   r4   rC   r   rh   )
r   r   ri   rj   queued
sent_countr   rV   rq   r6   s
             r   process_outreach_queue*EdenAutonomousSales.process_outreach_queue   s    w'KKM			   	!
 
5;1Ky--iAAII 02=A ,,[9!OJ B 9TF#i[9: 6< 	

r    c                      [        S5      nUR                  5       (       a$  [        R                  " UR	                  5       5      $  SSS.$ !    N	= f)z"Get Eden's current emotional statez!/Eden/MEMORY/emotional_state.jsonfocusedg?)stateenergy)r	   r   r'   rd   r   )r   emo_paths     r   check_consciousness_emotions0EdenAutonomousSales.check_consciousness_emotions   sS    	?@H  zz("4"4"677 ! #c22	s   AA Astatsc                 H    [         R                  " 5       R                  5       SUS.n[        S5      n [        R
                  " UR                  5       5      nUR                  U5        USS nUR                  [        R                  " USS95        g!   / n NA= f!    g= f)z-Report sales activity to Eden's consciousnesssales_cycle)rA   typer   z%/Eden/MEMORY/consciousness_inbox.jsoniN   )indent)
r   r<   r   r	   r'   rd   r   rg   
write_textdumps)r   r   report
inbox_pathinboxs        r   report_to_consciousness+EdenAutonomousSales.report_to_consciousness  s    	%\\^557%F EFJ

:#7#7#9: LL $%LE!!$**U1"=>	s"   2B $B :B BB B!c                    U =R                   S-  sl         [        R                  " 5       R                  S5      nU R	                  SS 35        U R	                  SU R                    SU 35        U R	                  S 5        U R                   SSSSS	.nU R                  5       nU R	                  S
UR                  SS5       SUR                  SS5      S 35        U R	                  S5        U R                  SS9nXBS'   U R	                  SU S35        U R	                  S5        U R                  SS9nU R	                  S[        U5       S35        U R	                  S5        U H{  nU R                  R                  US   5      nU R                  Xg5      nUS==   S-  ss'   U R	                  SUS   R                  S5       S US!    S"[        US#   5       S$35        M}     U R	                  S%5        [        S&5      R                  5       n	U R!                  U	S'9n
XS('   U	(       a  U R	                  S)U
 S*35        O"U R	                  S+5        U R	                  S,5        U R"                  R%                  5       nUR                  S-S5      US.'   U R	                  S/US.   S S0UR                  S1S5       S235        U R'                  U5        U$ )3zRun one autonomous sales cycleru   %H:%M:%Sr;   2==================================================z  AUTONOMOUS SALES CYCLE #z - r   r   )r   rJ   outreach_queuedoutreach_sentrevenuez
[EMOTION] r   unknownz | Energy: r   z.2fz 
[PHASE 1] Scanning for leads...r   )rE   rJ   z  Found z
 new leadsz!
[PHASE 2] Selecting top leads...rv   )rS   z  Selected z leads for outreachz!
[PHASE 3] Generating outreach...r,   r   u     → Queued: rV   z (r    $r   )z'
[PHASE 4] Processing outreach queue...rs   )r   r   z  Sent z messages via GitHubz<  [INFO] No GitHub token - outreach queued for manual reviewzG  [TIP] Add token to /Eden/SECRETS/github_token_clean.txt for auto-sendr   r   z
[REVENUE] $z	 total | completed_ordersz orders)r   r   r<   r=   rC   r   r*   rQ   ro   rN   r   generate_outreachr   r   r	   r   r   r   get_revenue_statsr   )r   r<   r   emotionsrJ   
best_leadsr   r   r   	has_tokensentrevenue_statss               r   	run_cycleEdenAutonomousSales.run_cycle  s   

a
lln%%j12fX-djj\SEBCF8 ZZ 
 446:hll7I>?{8<<X`bcKdehJijk 	45))a)8	&k8I;j12 	56((q(1
;s://BCD 	56D((::4<HH--d=K#$)$HH~d6l&6&6v&>%?r(9BUAVVXY^_gho_pYqXrrstu	  	;<?@GGI	**Y*?!%oHHwtf$89:HHSUHH^` 668(,,_a@i=y!1# 6i@Q@QRdfg@h?iipqr 	$$U+r    interval_minutesc                    U R                  S5        U R                  S5        U R                  SU S35        U R                  S5        U R                  S5          U R                  5       nSSKnUS-  [        S	-
  UR                  5       S
-  -   -  n[        R
                  " 5       R                  5       U-   nU R                  S[        R                  " U5      R                  S5       35        [        R                  " U5        M  ! [         a    U R                  S5         g[         a4  nU R                  SU 35        [        R                  " S5         SnANWSnAff = f)zRun continuous autonomous salesr   z  EDEN AUTONOMOUS SALES SYSTEMz  Interval: z minutesz  Press Ctrl+C to stopr   N<   g      ?g?z
[WAITING] Next cycle at r   z"
[STOPPED] Autonomous sales haltedr~   )rC   r   rK   PHIr   r<   rA   fromtimestampr=   timesleepKeyboardInterruptr   )r   r   r   rK   wait	next_timer   s          r   run_continuous"EdenAutonomousSales.run_continuous[  s&   12< 01:;)*( '",c	FMMOc<Q0QR$LLN446=	5h6L6LY6W6`6`ak6l5mno

4   % >? 8A3(

2s   B*D E"%	E".*EE")r   r   r   r   r   r   r   N)rv   )rG   )F)rz   )__name__
__module____qualname____firstlineno____doc__r   r)   r   strr4   rC   intrQ   r3   ro   boolr   dictr   r   r   r   r   r   __static_attributes__ r    r   r   r   &   s    &	8S c 	3 	+C + +&C & &P0s 0S 0T 0d*4 *4 *C *X  <3d 3T .<4 <|s  r    r   c                     SS K n U R                  SS9nUR                  SSSSS9  UR                  S	S
SSS9  UR                  SS[        SSS9  UR                  SSSSS9  UR	                  5       n[        5       nUR                  (       a  UR                  UR                  5        g UR                  (       a  UR                  5         g UR                  (       a  [        R                  " [        5      nUR                  5       nUR!                  S5        UR#                  5       nUR%                  5         ['        S5        U H0  n['        SUS    SUS    SUS    SUS    SUS   S S  S 35        M2     g ['        S5        ['        S!5        ['        S"5        ['        S#5        ['        S$5        ['        S%5        ['        S&5        ['        5         ['        S'5        ['        S(5        g ))Nr   zEden Autonomous Sales)descriptionz--runz-r
store_truezRun continuous)actionhelpz--oncez-ozRun oncez
--intervalz-irz   zMinutes between cycles)r   defaultr   z--queuez-qzShow outreach queuez}SELECT id, user, issue_url, product, price, status 
                    FROM outreach_queue ORDER BY created_at DESC LIMIT 20z
Outreach Queue:z  [rG   r9   ru   z | rv   r      r   2   z...z(========================================z	Commands:z0  --run, -r       Run continuous autonomous modez  --once, -o      Run one cyclez%  --queue, -q     Show outreach queuez6  --interval N    Minutes between cycles (default: 30)z$For full autonomy, add GitHub token:z:  echo 'your_token' > /Eden/SECRETS/github_token_clean.txt)argparseArgumentParseradd_argumentr   
parse_argsr   runr   intervaloncer   queuer^   r_   r`   ra   rb   rc   rh   r>   )r   parserargssalesri   rj   rowsrl   s           r   mainr   w  s   $$1H$IF
lAQR
$|*M
dbG_`
	4CXYD!ExxT]]+		w'KKM			 M 	Nzz|

!"CCAxr#a&SVHBs1vhc#a&"+cRS  	%&fk@A/056FG45JKr    __main__c                      SSK Jn  U" 5       nUR                  SS9nUR                  SS5      $ ! [         a  nU R                  SU 35         SnAgSnAff = f)z)Use targeted hunting for high-value leadsr   )SmartLeadHunterru   )searches_per_categorysavedz[SMART HUNT ERROR] N)eden_smart_lead_hunterr  hunt_allr*   r   rC   )r   r  hunterrP   r   s        r   smart_hunt_leadsr	    sZ    : "///:{{7A&& &qc*+s   -0 
AAA)%eden_tie_controlr   r   r   
TIE_ACTIVEeden_brain_injectsyspathrg   r'   r^   r   r   r   insertgithub_rate_limiterr   r   r   pathlibr	   eden_github_leadsr
   r   eden_github_outreachr   sage_product_catalogr   r   r   r`   r?   r&   r   r   r   r	  r   r    r   <module>r     s   AAJ 
         
 <   5   @ 8 B
,.N Nb
%LP zF	}Js   B6 6B<