
    Hi9                        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	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)    Nz
/Eden/CORE)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    5/home/james-whalen/RECOVERED/EDEN_CODE/f1531704184.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_outreach+   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_outreach4   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   r1   	timestamplog_liner&   s        r   logEdenAutonomousSales.log=   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   r@   rF   rC   resultss        r   scrape_new_leads$EdenAutonomousSales.scrape_new_leadsH   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       ;   d  UR                  S5      (       a  M\  XpR                  ;   a  Mm  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 ?
           user z[bot]bot)idr)   r'   score)sqlite3connectDB_PATHcursorexecutefetchallr"   loadsr%   lowerendswithr   appendrI   close)r   rN   conncleadsrowlead_idr)   	data_jsonrU   r'   rQ   s               r   get_best_leads"EdenAutonomousSales.get_best_leadsO   s    w'KKM 	
		  ai\	 ::<C471G::i(D88FB'D $**,&$--*>*>///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/rR   /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: Nd   [ERROR] )r   existsr>   	read_textstripreplacesplitrequestspoststatus_codetext	Exception)r   ri   r1   
token_pathtokenpartsownerrepo	issue_numapi_urlrs   responsees                r   create_github_comment)EdenAutonomousSales.create_github_commentw   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                 X   [         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   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'   rQ   urlsubjectr1   productpricez7UPDATE leads SET status = 'queued' WHERE identifier = ?)rV   rW   rX   rY   rZ   hashlibsha256r   r7   	isoformatencode	hexdigestupperr%   commitr`   )r   r   r   ra   rb   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%7#%		& 	
		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 = ?rm   z	[QUEUED] z @ )rV   rW   rX   rY   rZ   r[   r   r/   r>   r   r`   )
r   r   ra   rb   queued
sent_countr   rQ   ri   r1   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   rx   r"   r\   ry   )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)r<   typer   z%/Eden/MEMORY/consciousness_inbox.jsoniNrP   )indent)
r   r7   r   r   r"   r\   ry   r_   
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 Hr  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#    S$35        Mt     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 cyclerm   %H:%M:%Sr6   2==================================================z  AUTONOMOUS SALES CYCLE #z - r   r   )r   rE   outreach_queuedoutreach_sentrevenuez
[EMOTION] r   unknownz | Energy: r   z.2fz 
[PHASE 1] Scanning for leads...rP   )r@   rE   z  Found z
 new leadsz!
[PHASE 2] Selecting top leads...rn   )rN   z  Selected z leads for outreachz!
[PHASE 3] Generating outreach...r'   r   u     → Queued: rQ   z (r    $r   )z'
[PHASE 4] Processing outreach queue...rk   )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   r7   r8   r>   r   r%   rL   rg   rI   r   generate_outreachr   r   rx   r   r   get_revenue_statsr   )r   r7   r   emotionsrE   
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(9BUAVVXYabiYjXkklmn	  	;<?@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 haltedrw   )r>   r   rF   PHIr   r7   r<   fromtimestampr8   timesleepKeyboardInterruptr   )r   r   r   rF   wait	next_timer   s          r   run_continuous"EdenAutonomousSales.run_continuousR  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)rn   )rB   )F)rr   )__name__
__module____qualname____firstlineno____doc__r   r$   r   strr/   r>   intrL   r.   rg   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-irr   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  [rB   r4   rm   z | rn   r      rP   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   queuerV   rW   rX   rY   rZ   r[   r`   r9   )r   parserargssalesra   rb   rowsrd   s           r   mainr   n  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   )SmartLeadHunterrm   )searches_per_categorysavedz[SMART HUNT ERROR] N)eden_smart_lead_hunterr   hunt_allr%   r   r>   )r   r   hunterrK   r   s        r   smart_hunt_leadsr     sZ    : "///:{{7A&& &qc*+s   -0 
AAA)eden_brain_injectsyspathr_   r"   rV   r   r   r}   r   pathlibr   eden_github_leadsr   r   eden_github_outreachr   sage_product_catalogr   r	   r   rX   r:   r!   r   r   r   r   r   r   r   <module>r     s    
           @ 8 B
,.N Nb
%LP zF	r   