From 11c482841ee2d0f13fb56d5ed5ea9a571f0155bb Mon Sep 17 00:00:00 2001 From: Aston Klingon Date: Thu, 20 Nov 2025 04:48:38 +0000 Subject: [PATCH 1/2] Add NLG prompt templates and dynamic filling functions --- backend/app/services/nlg/prompt_templates.py | 77 ++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 backend/app/services/nlg/prompt_templates.py diff --git a/backend/app/services/nlg/prompt_templates.py b/backend/app/services/nlg/prompt_templates.py new file mode 100644 index 00000000..7261c44e --- /dev/null +++ b/backend/app/services/nlg/prompt_templates.py @@ -0,0 +1,77 @@ +""" +This module contains prompt templates for various report sections and a utility function +to dynamically fill these templates with data. +""" + +def get_template(section_id: str) -> str: + """ + Retrieves a prompt template based on the section ID. + """ + templates = { + "tokenomics": """ + Analyze the following tokenomics data and provide a comprehensive summary, + highlighting key aspects such as token distribution, vesting schedules, + inflation/deflation mechanisms, and any potential risks or advantages. + Focus on how these factors impact the long-term value and stability of the token. + + Tokenomics Data: + {data} + """, + "onchain_metrics": """ + Examine the provided on-chain metrics and generate an insightful analysis. + Cover aspects like active addresses, transaction volume, whale activity, + and network growth. Explain the implications of these metrics for the + project's health and adoption. + + On-chain Metrics Data: + {data} + """, + "sentiment": """ + Review the social sentiment data and summarize the overall market perception + of the project. Identify key themes, positive or negative trends, and + any significant events influencing sentiment. Discuss the potential impact + of this sentiment on the project's future. + + Sentiment Data: + {data} + """, + "team_analysis": """ + Analyze the team's background, experience, and contributions based on the + provided data. Assess the team's capability to execute the project roadmap + and highlight any strengths or weaknesses. + + Team Analysis Data: + {data} + """, + "documentation": """ + Evaluate the quality and completeness of the project's documentation. + Identify areas of excellence and areas needing improvement. Discuss how + effective documentation contributes to user adoption and developer engagement. + + Documentation Data: + {data} + """, + "code_audit": """ + Summarize the findings from the code audit report. Highlight critical + vulnerabilities, security best practices followed, and overall code quality. + Explain the implications of these findings for the project's security and reliability. + + Code Audit Data: + {data} + """, + "risk_factors": """ + Based on the provided data, identify and elaborate on the key risk factors + associated with the project. Categorize risks (e.g., technical, market, regulatory) + and discuss their potential impact and mitigation strategies. + + Risk Factors Data: + {data} + """ + } + return templates.get(section_id, "No template found for this section ID.") + +def fill_template(template: str, data: str) -> str: + """ + Fills a given template with the provided data. + """ + return template.format(data=data) From 4c17f72d21d277e824d6ec46665dca1157e6cc1c Mon Sep 17 00:00:00 2001 From: Aston Klingon Date: Thu, 20 Nov 2025 05:25:28 +0000 Subject: [PATCH 2/2] Fix KeyError in fill_template by using format_map --- .../api/v1/__pycache__/routes.cpython-313.pyc | Bin 5759 -> 5759 bytes .../__pycache__/orchestrator.cpython-313.pyc | Bin 19226 -> 19392 bytes backend/app/core/orchestrator.py | 27 +- .../report_processor.cpython-313.pyc | Bin 3157 -> 3157 bytes .../code_audit_agent.cpython-313.pyc | Bin 18276 -> 19345 bytes .../__pycache__/onchain_agent.cpython-313.pyc | Bin 9950 -> 9899 bytes .../social_sentiment_agent.cpython-313.pyc | Bin 8758 -> 8655 bytes ...e_audit_agent.cpython-313-pytest-8.4.2.pyc | Bin 56931 -> 57147 bytes ...onchain_agent.cpython-313-pytest-8.4.2.pyc | Bin 54493 -> 54141 bytes ...ntiment_agent.cpython-313-pytest-8.4.2.pyc | Bin 50900 -> 50889 bytes ...eam_doc_agent.cpython-313-pytest-8.4.2.pyc | Bin 19832 -> 19817 bytes .../agents/tests/test_code_audit_agent.py | 14 +- .../agents/tests/test_onchain_agent.py | 18 +- .../__pycache__/llm_client.cpython-313.pyc | Bin 4634 -> 4634 bytes backend/app/services/nlg/prompt_templates.py | 7 +- ...st_llm_client.cpython-313-pytest-8.4.2.pyc | Bin 11899 -> 11899 bytes backend/logs/app.log | 1183 +++++++++++++++++ ...r_integration.cpython-313-pytest-8.4.2.pyc | Bin 18875 -> 19341 bytes .../tests/test_orchestrator_integration.py | 14 +- 19 files changed, 1227 insertions(+), 36 deletions(-) diff --git a/backend/app/api/v1/__pycache__/routes.cpython-313.pyc b/backend/app/api/v1/__pycache__/routes.cpython-313.pyc index 3e831183d338d9f748bccbedfa5204cd4e5f07aa..487d259ddf716d7835418b1952570d001cb08ec8 100644 GIT binary patch delta 20 acmeyb^IwPiGcPX}0}z}$B(jmaL<|5+R|aDM delta 20 acmeyb^IwPiGcPX}0}%Xr%e|4iL<|5;U`1e31nTR-art{;t!t!q=42A{@D4P!7`+s zKYsUjzQ=ie-*?Wv@IyL(j+*WpjXJ^__phy^iI$H{LmK)yeCFB)?`l4!(=etTFoi5= zfGwyAWq=~)+VzA4R6$JxlZDlU^nEADI~d=S5>N*<0m04n4YEF%t88^CLEc0HnjmGU ztyb4i9EcDr>6#%#&%QxHBr(oPVtiB;<%fxeboUgIkOp3>E`Yr{3tVWi*li@B>#MBc zpEw8f0Ykv}pLs|j>AFlvC=Y(D%SZF)nYrnI%|lx@T-heHPu8$`fB=bVz1pt7vyCO$ zFdZgMd?6X89)6fQQ=vfLlq976 zbf)P>W1~@KA03P&R70bKQ{XdPqCN1yaGV<9m~pG)bIX?V!#^FmZ7E%`l+I}``)*dW z-Vt5r+s}60E3cpTt%$o%cb@5j9~iCqX(Yd7Z7VTnpE7-YUm|HI>AH^O?WbQoFo9wW z_a9)3n62-qpjVu2HNwYI9-~)@y{(D6YNu@t!c~V?!#WG)2BuhOpvar5I?B|GpCo-XiQm@jggTo3Lf5vwt?YM%d?aAo-c^SuS3VEth=zgV>EgAiI%nhtt{Pr5med(gYul zo=6DC!(-Etm|TyNl$o#`9gV&qr=V9Cl;nuC8@h5{qzB@cbN0{xF0k9FlLM&lK?ox3 zN9aXpM^GWK0wVG;ggylHltqN(DnrN+df;GQBMrsR<@p6V0{5)>!UXCjffn`BZ^410 zKWg7(1=7qF6DzE%?eNHz86UR&h^krchX|Z$DFB<8p~19|3VZ6IQFN%Krz)M44zEah zqp-O=;1^=kCij7|G`&7xPL7bmMi8YdX+5$c_JiOOjpd%jV#U{cv$bzU zJOCb7ae60D7qqmKsupx@wX7q*0b{PC^j`ckR{=+D@Wr;;fzAg3M>O*^1`vP+#6fpMz87$AsTALF}9Gb$LC@_U#q7Jjdu=L*Z?Mbi*Ji z_Wep)mw0!!8oCP?yAps*X~Ak=+h% zx>%t_Ugzkr^GjBNNtWztCRr*)Z6XWaDbIrS$}G;M0>#x6KV0<}j%I?lrV{2_%rINy z%nMlXgkxMGVdraQ(P#B$+GU5wjDAmjvo?7P{1! z=d+P(SsK5EUfW8MTa#$3@|*eV861;e&(b06mE7vDBJ zZThDr9G&;@bWq#j(%>9kemVTOG46^xut-`%oyD8E4yJXQ`|wN zcVN{VPWmmjEz<>`a%db~dy=j}?jdsxau`46_&D|nThZ%9eiMBkj&$s$CirDXgU3X# z*j>gdG8Sn>^! zOK{7%2+2G01hSI||9wf4k8(24FERytg2qul!yuuWkOxQPH?V&m;RA%z6Pgv9n?3| Q!gZE@g%5Ue@Nk#(Z}0q@^#A|> delta 2548 zcmZ`*eQZ&9j6>2HCw&f3 z*dJ_Ew9~pFx-+$Clx~xTMg@~7W-Y7G2IO;7TRkWhS(HutXZvfDLSb4bGHLg`fcBy7 z%KF`NfA^ew&pYSdbA9V=`h&Nq`H{(FB&>Ziy?L^~`+f64J@*q1&NNoT5A`3@IHV2x zO)*VeAJf)xBgslaz-cKD3US^{V!AkGsBhA?P+Wo#CmGm7$R^gu1&L%iC&}^|O@<#Q zdNSDTBBOfvSw$(FH5Sm#aCdWIg<+(jg@0xnGsZT>#HZU32N^g=$fylgjU^k}yG;M7 zJ-TJXl90IJnFs%FA0rt<$T09JAsf;-9VcD9gN)MvKTf@7*t@A~vmrTkcsiY$NgaHT zTM@D|iJ2o=xVGt_#>>ggP%QeW2_j-IyenRzLFhLftu~mVbk*T`;HbansK2VYIq{%- z=q~#?;t#gO&kD=ct+#}`&fc@SH%*{3J4+0tq-xDZtVQ24|NT)J$vZ(G8cFdm{qnH@ zJ?6x|5%v|Q+9Ota(;F@nZo7+_c!zkxW!xPP4VMUaDyx`0YY`bgTS8GTYmAt*a~7U4 zbNL38ODZFJ?K~$iW?rvl%)AL_<#3L(XsExL?IAZJv@q~$WIf7-2<;43gd@`j6Ei8V zR(2s5hE}UgL-3yUh7>{qb0k+GXb@@;vBfBPnE&mMNox7Mn$ZOCUuon#!sjdasXiy$z$g;rI`Q-?V+V;@Bkh5J2pvH=2 zIw8+YCemZsBgteco88cs_p-Sx$H3{7?W~jcA&fB?gLjG~VLuKJz(P?cZ35nYxO&53 z#;)**%<&cBXd-{aQH1a?;Jg*~aeNZ_Ce9S_%nw1)P)e1V7CPyMpk( zR7oWy*$MuKRL=P+RJgmI>a9x_eayl%bxiYu`>7`UzSayzx9HM6yHBVQ7vj2DUL7al zEqlJ;5AdduR&=VQoL~}^+_gQ!}TU5Fz{K^pyJ&H13sVLU8B_P zP^5l1$)?>kSCUF&__Mm_6e$8%eHHo9ZFJT^qg|R=W4M_OxQycGyJ)>2uWR?n_8i^?iJw;^zb`yxo%oeJ#GU} zeJ|~VOnoWsf;Z|*3;*kDwyB>4H|qyz6pa3_2_G^ddmO&*Z>Kxq1OMkI_s~_*@j!In z6WxkuSQ$y&7Y{7E12-y_@Q@OWE7I^?(Y2;0R=1*;9_xs8%Ok=Wc5YaC?}=W;w?}#5 zz{031U?4i>_sh#LS+o>Cj|7i&x>4H&R2dw1qp!ZHb1#)VL*3LuUh& z5wk%RI~pQhey)aRdUN##l-oQJiJ#vpFlJuTGG^Y(X5q!gdg{r2x3P_9HF=?>fjZ&K zmNvVe`e~MP5Q&UB*@kMmon$#?DNb6jFtX+(G2i-=2 z^`3yB#{V(|!==I%Tp4Ke)mXL*#Mi%o$6W1rwMT-GtyQfdXFLqOu zw`m!VxnOxQ@N9*}=*uUutgmPeOiiWLqP_7F;=hlL0(TUpV+j8${ptg&p4y+X3HD~Z zg!6b*Ry0#`azcI`$8RBAMEE(vb%fIhuQABtA2TOw@L{h@`w<&V<$l-e;vMLYtZrX| klKPn3KnZo^VJPdj(>ZAE|LUf8>Uc;PJbs13`F{650h3~U>;M1& diff --git a/backend/app/core/orchestrator.py b/backend/app/core/orchestrator.py index 87ae3c5e..f36d86dc 100644 --- a/backend/app/core/orchestrator.py +++ b/backend/app/core/orchestrator.py @@ -52,7 +52,12 @@ async def execute_agents(self, report_id: str, token_id: str) -> Dict[str, Any]: for name, task in tasks.items(): try: result = await asyncio.wait_for(task, timeout=settings.AGENT_TIMEOUT) # Added timeout - results[name] = {"status": "completed", "data": result} + orchestrator_logger.debug(f"Agent {name} task result: {result}") + # Check if the agent itself returned a status + if isinstance(result, dict) and "status" in result: + results[name] = result + else: + results[name] = {"status": "completed", "data": result} orchestrator_logger.info(f"Agent {name} completed for report {report_id}.") except asyncio.TimeoutError: # Handle timeout specifically orchestrator_logger.exception("Agent %s timed out for report %s", name, report_id) @@ -159,17 +164,17 @@ async def onchain_data_agent(report_id: str, token_id: str) -> Dict[str, Any]: # Handle individual task results and exceptions if isinstance(onchain_metrics_result, asyncio.TimeoutError): orchestrator_logger.error("Onchain metrics fetch timed out for report %s", report_id) - onchain_metrics_result = {"error": "Onchain metrics fetch timed out"} + onchain_metrics_result = {"status": "failed", "error": "Onchain metrics fetch timed out"} elif isinstance(onchain_metrics_result, Exception): orchestrator_logger.error("Onchain metrics fetch failed for report %s", report_id) - onchain_metrics_result = {"error": str(onchain_metrics_result)} + onchain_metrics_result = {"status": "failed", "error": str(onchain_metrics_result)} if isinstance(tokenomics_result, asyncio.TimeoutError): orchestrator_logger.error("Tokenomics fetch timed out for report %s", report_id) - tokenomics_result = {"error": "Tokenomics fetch timed out"} + tokenomics_result = {"status": "failed", "error": "Tokenomics fetch timed out"} elif isinstance(tokenomics_result, Exception): orchestrator_logger.error("Tokenomics fetch failed for report %s", report_id) - tokenomics_result = {"error": str(tokenomics_result)} + tokenomics_result = {"status": "failed", "error": str(tokenomics_result)} return { "onchain_metrics": onchain_metrics_result, @@ -197,10 +202,10 @@ async def social_sentiment_agent_func(report_id: str, token_id: str) -> Dict[str orchestrator_logger.info(f"Social Sentiment Agent completed for report {report_id}.") except asyncio.TimeoutError: orchestrator_logger.error("Social Sentiment Agent timed out for report %s", report_id) - social_sentiment_data = {"social_sentiment": {"error": "Agent timed out"}} + social_sentiment_data = {"social_sentiment": {"status": "failed", "error": "Agent timed out"}} except Exception as e: orchestrator_logger.exception("Social Sentiment Agent failed for report %s", report_id) - social_sentiment_data = {"social_sentiment": {"error": str(e)}} + social_sentiment_data = {"social_sentiment": {"status": "failed", "error": str(e)}} return social_sentiment_data orch.register_agent('social_sentiment_agent', social_sentiment_agent_func) @@ -239,10 +244,10 @@ async def team_documentation_agent(report_id: str, token_id: str) -> Dict[str, A except asyncio.TimeoutError: orchestrator_logger.error("Team and Documentation Agent timed out for report %s", report_id) - return {"team_documentation": {"error": "Agent timed out"}} + return {"team_documentation": {"status": "failed", "error": "Agent timed out"}} except Exception as e: orchestrator_logger.exception("Team and Documentation Agent failed for report %s", report_id) - return {"team_documentation": {"error": str(e)}} + return {"team_documentation": {"status": "failed", "error": str(e)}} return { "team_documentation": { @@ -287,10 +292,10 @@ async def code_audit_agent_func(report_id: str, token_id: str) -> Dict[str, Any] except asyncio.TimeoutError: orchestrator_logger.error("Code/Audit Agent timed out for report %s", report_id) - return {"code_audit": {"error": "Agent timed out", "code_metrics": code_metrics_data, "audit_summary": audit_summary_data}} + return {"code_audit": {"status": "failed", "error": "Agent timed out", "code_metrics": code_metrics_data, "audit_summary": audit_summary_data}} except Exception as e: orchestrator_logger.exception("Code/Audit Agent failed for report %s", report_id) - return {"code_audit": {"error": str(e), "code_metrics": code_metrics_data, "audit_summary": audit_summary_data}} + return {"code_audit": {"status": "failed", "error": str(e), "code_metrics": code_metrics_data, "audit_summary": audit_summary_data}} return { "code_audit": { diff --git a/backend/app/services/__pycache__/report_processor.cpython-313.pyc b/backend/app/services/__pycache__/report_processor.cpython-313.pyc index 896073a9f2684733d92a8110f119b2988f95c93c..deeb0c9f2468c1a8b8cd9ab5eb931619f1fa1595 100644 GIT binary patch delta 20 acmcaAaaDr*GcPX}0}vdK5ZTD>#RC98Km|eo delta 20 acmcaAaaDr*GcPX}0}urB@NMMw;sF3UE(Cl4 diff --git a/backend/app/services/agents/__pycache__/code_audit_agent.cpython-313.pyc b/backend/app/services/agents/__pycache__/code_audit_agent.cpython-313.pyc index 23caf55d8c3f526072ce3980965be3abc9eace55..d67c5fb605be690c470ff42f9c7cb997ddd96d1b 100644 GIT binary patch delta 1675 zcmaKsUu;uV7{JfzZF~D?TcPc`KeqJ925FbA;DoR(OxLyJ&twH!y9Y*GF70i5p}lvU zd&@vg>YtdPCI)gtP!j_fV}@b~_Q8n{!iFz~hmDy)8Z?;jAWs4Yjr!tu?m878Jjwap z?|$ERzVm(GIrrXu2cJBRn|^6*bRZb1uh&R>wq9ylXUEs|P41_KSf1Vlr{PpQ}r_AMFxdo91!N{b|%kMzv{1Y{wh;hYPJlOG$|t#>F3ON ziQ$v#TZ0vhFIOGUp2p5Z&88`bM0rxm>gR@hL(iBH>OcgYLTMZVcQ&$4geLH^3`OD1 zby>t|Q|2((V9oMKn)SUN59amnhx}HVOLIvZQ|KRT@M2Eyiwv};Eh|w4A3|wM%FHTF zHtKs_o*qley15=pHtja0c-b`JT8W*;DO*35ts9WcuR&>~zv}YpKMyr}Oa*A$5qyeE zSQ?OQO{1hocSVC8kL&q~C;pCPP4lUSep51_FLbnbbt2V7V9MqkvZ2HP%#J6~1navo zcqBm1vTeerUs@fg*weTPr5tG!(3!S1p{K1Y4IwCqQYP6JwIveE&m7L7K`w}Lcng=q z;YQ&+^vs{;-KW95WNNY!X~fIJWGQWmb0 zl#@jIKT(VXVvuE&B^J%Y5*rDLk$j|^==+?c5;5XWQRSeR(I#b~BpQ2=mq|jA#rjr; zTFDt%)?FiHXU=fxCQ$ISR4kGMBFTyrO3jiSRZ52UO5#vWQq;;+t{0S*GTH!%k_ru^^4|(}&mZp0esc#hy~48*IF4v z-JqFk_QpbJE{tQH=DDs`kmpS}w%$C?nVHN7z-PV_GkLwikR#sC&G)W}H*?okS-^U& z*#eqt?OZ&dUx?kpyY)BXBRqW$HVymq!<<+DG2Xk*IJQ~PQRCOWfl2HXYi4#w>2>zL zq@Uzk_1z;)cus#|t>#D(PeBc^&ZiuLwwU*OyNjcu>H PvS!@z5HV8tbE3Zh=kvwy delta 761 zcmYL`O-xfk5XWb_@Ac7^wm@4z!j~yT>H!iyg4Loa1`8Y-_2peG36|1Ajj3jf9`t}p zOgw4GYPcB_G58e~YeGmcu_PoOj3*DK@#sNrAbM42isB^uoBz&#-|p<&`33xX8$CO2 zw-YG3Q@-rjp=D3I1J_lrV=?F&GfXcHW2~mvZdNzIIZgV^ng)=5(31GrS!2p2@- zYpR6wQbkH;XR@i}dAZC>UNN2&?hec%t`_{q7BG^cBlf~UYL3QEB?1JY74AWT)NWX4 zVito8})L-nh(&L%8%JyV=0Gb!m(Bq}DL%*4}EQis&S}=t9=+GQG}06vchb(TFJa>+D8!s;r|J)YQk= zXAG;Q;USEx?cw3J^6gjX7^yS580DYAx0f4?4{Bc2tIH!ETvInk9yD%6Ds|^$a|Y`-5jcn^kOd1wX0ZqjTQ4hQaT^l(n?YA4PSmCIA2c diff --git a/backend/app/services/agents/__pycache__/onchain_agent.cpython-313.pyc b/backend/app/services/agents/__pycache__/onchain_agent.cpython-313.pyc index 687c83aae123960d20e9d587e46949d7bb7b9456..489076a4f92024c1db94f06b5ea6c20cb1138751 100644 GIT binary patch delta 1424 zcmb7^PfQy}6vk(Ey=&vFAvOjZ+u${Slwb;hK+=#zi3o$Y?32}2s)YJSJyz-g3R0!EQv2Sng4#n5wY1;& zy*F=0tDT?x!^qPS+o8>7CGa~sXi8oG*!H8vS`F3P@Ekg}tge1)nlO#I*`L(IX58Nk zpIb=u!>xga>y*C7RvJ3kC!QHOMq^GBsV2Raa}>`aL?+X{Mj|9u$2z?^my?jRdHUt! zZv6!A;Mk)RPUiIuZoO2!!S{H(AP+B4>J%d; zbE%hx&r78~338d3;naEl#r=UFgK`5vdC31yAne^b5Xa|@oqx1i$40GUi$R9zA1w91 zn2NdnMa=+pZ{6|z!kN_(n0RxLePQonL4Um%g|fYoec<=x#v!U^lnInclsHNPWeQ}E z&uXd~#Bv(tHp(58yC^d#2#-385{Ti2^UA80%A{30HWk(_pSGqU zj>41O1^j0D+N$VQQGTBybsKcjpeKRU#knMMhNf4GMzx3|OWf;d_Y8|0@J$-l>B(4=RmseIq^m4IzNqg#kZ?|ak-q`!R$0sd delta 1641 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 delta 1473 zcmZuxOKcle6n)S0@jvz?cH>`VhvtKk^J&^B&4)Cxt)f;{3braLYRR40<7mJcS9d0u zfS^^25L8GsdJ>2t1dA3?cF2f*?5x<(N=OlAK?NJwA$6H9xX(!_N&2L@bKkk=p8Is~ zoB28OW7hlF>va)a_dZwj2kYK2{dj%o)idXO;7gDK%_Vqj|9XxTlnJ_nK{s*+_s97T zIW+e?qe_og%F9!>1j*YY1cK|2hOVU!(+hHL^e!)4%$@BzFvAR1ubQ*X2WZa;Y z%er+?> zApsvfoZ}{kCTaiQd>m@E+UW?SG1R6SoaMY%(3o~KI4!;)#Qy5e&_0&x`Od!ODL?d- zx7n{f!|0bDdP>{O8Ax5*@~96y>LXw8hraE9?9{nLpP2Vih^7r8^z4)Kd1 zdfx}qvt&b}>1lC84st&h$c&JUF`7w<8^?p_H)R{W8oEHr0bnWWH?!LwC$&-(MO!1TY)ojK3TJzTO+`k0vsXf7 zGlrbT?}4ucI>WAqQb(ro;BEV=@rF^W8%YuP9%fiG^j@&jQ-#NcWz7P9SD?%;h7+gf zIVeGG)hH+3J6(Q_LoQP@EPVxy2}KTwx}~ka40j!>p;p&S-2|Qe5Pq448d7AFy7_+r zhPg?xU!t>gj4835Ts%3$`v}$Q)v3Q?Agi}J?@ZS{- zvg@(GrE6! zJJ+o3#73O2EiY>TZz8jE?b_}o)znLwno-f0+v3^9GZ!GtzDyh+d7D!@$GOF21z0uU iU5@>C*tTPKrB+_8YIE=zdy*Is>szGG2Kv4cIpts2KtCn` diff --git a/backend/app/services/agents/tests/__pycache__/test_code_audit_agent.cpython-313-pytest-8.4.2.pyc b/backend/app/services/agents/tests/__pycache__/test_code_audit_agent.cpython-313-pytest-8.4.2.pyc index 374159c42c289285c5226a1009945ffdf016503a..10486b569cd777ad0ac07f0510cc249f2d82a5bd 100644 GIT binary patch delta 4694 zcmcgvdu&tJ8Nb)B+&FfwALQWx_Dx7|9P+XQAy5niQdW`_mRua-Cd`DyG-ioyjvY$E zN}w7PSj%9irLanCCQ-C>Xia5xLxVD*Ax)$FVJASq>9$JirctRADu1A{b=vvvb*^tp zELCEgb^Y`AKHoW?&v(xK^A+Xgt4jStyGdN`%ban)dR!df?hCPT#P#A-7bK?^eZ z;nlRQtuT{zo~Vp0swI;jevd>g%A}nqs#X?tVJ1IZq_DLu%A}nqs!kSlaV9@}f<(1u z(#{h#R~FTl$qzqP*gCmP+IgZHWKoM>q#eflV6?@dOfv2MNH`RX_>)=f{=Gx~NHq3} zQbp4m{Hp2{H86OhtLbXe4WYRWuas8Az&}wY9aV5WE-Svz1=D z1bXa#tlfJ2A$_{7@k!tI1f z=By77`+6b~KZ?3gC)jv#d~I8aFteg4DYkF^@JC}C*G=ST4uDGq{zvn-7YHTa2SJtL z;X0upBX~#4j$($$94aLKCBXg%01X7j>7*hMbl{nmXA2!l(Lz$D%7+_Tn{ptm=(Zfc z+FGGG4*Vt@{>ZL*9Y_X$*2?t@1v~}(34p@{2!iFw8u05~CJ)Spn`QmCtm4>2%TE2u|f=>nW@HsDs!}@~q z@Ntitx2j1{z7&uQL9c!;(-39C5KB7`%ZH##@#zB`K2&DJFL&%>OEZtQD14l^|Mw@c zMwo;h(husoY~)AycyudhkqT<~^3WZRUYOY5rL~)$UAug~%#%yj&e1st6BC{Iiqy39 z_&4pPv=wvP+<8_}M^Uq(x6;Ip>nO(ht_pncx7j$qYZ<$&S|uzu%UAMM9u^<BMXv9Z9UV(;-XDDO+z2fBL&@%zjLge4&zd z3aK12X!Wj46<36RkK2A;Krh4Zo9yPgEr=ykLPh`sfC+!mRiar4C++rY{La1H<( zs@Ovh0hMk)VxL(qwiswO@~%{m-UMstJV_mNW6|1K8-cQOCV3MA8tL%Azhlww>Pi&2CK{#+nx~D;$26a@ma|LGmrk+vIAg!V+NYU0PlB<(HX_O9a-#SS zV?Vo8ZXx3&i}R(D#V83f%id<}@%e_l%PuC_jO8a}%1Oq4?4TIsR+^N;64_Y3#E~&% zoFtxN>~}}myi>shTQ;^Q!8+rNd!jSJx~G}cGs(E)tW#uf$!N)d2q!uvE-{Cb#8Zs> zF3ZK4im^=zwqlw|J(EmDoUP$R{uVGPTCyO*u}u<}01m&iD1X#!i5D$Pm@DIq>$OPS zTsg&75pu#PK!SBmGpT2iamCpxi4}?4;3dftX^tpJFi|rl^Ca|yQF54OMpMy={assG zeCf)Bt>Ka}VSDD%mV~V(&a}jBEeW<|nn^vAOv|zFNt{UBo+C@7Iieu$U$Z7GF?nR8 zvyBjH{z`d0+@>nj#-J^gmmB5#@U`byecqPgC%t(Y+PEZIbHuY?A= zOzW-7x>u9st;b)v3Stwz+w>cRU1%Z^kQrbBf%|We0|tq`5@c}npd|qC3WUl4ps5Re zOuR~Vigz#&3QeXSsJT~3;THK=xuvEteU(J(!LAX2Cos?50e`T!MtyQ>L?-RQp#?BmRGFSV+WhcOS0Aa;<0o4bv8=xN`eP!SN6v>P0JU{|Ic^xOqY{myJ z8V&u?XxQgRD1^`l#PUMy!a2^=kWTbxkk2^4djJ;!{)Z|50^(;#x&NX|9V7ZHv3D*; z4YK!|%}=pNJlMiHP=4Z;t!MN|I6^@*f+y+ACYlC zCtq|K0J3nDB$-`9fq`fs7(vhBlQVTzc)v<&!o%=Jkjxc-$(z)0us0Aw8}OfIEcmOL zno)AGr-b)3!~m5IURk>X`=dk1FBBxH8tg&eO=iuy?f|nOz)^s=0N}7k7XV<}34dt> z{}}|;L9k*7avrB15~RcuGHV7yeM9O2|624hp7?}QITMr<-}+?Sm`AtL50#W6?|}ly O2i5rG9}=n?#PdIcD={Ge delta 4482 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 diff --git a/backend/app/services/agents/tests/__pycache__/test_onchain_agent.cpython-313-pytest-8.4.2.pyc b/backend/app/services/agents/tests/__pycache__/test_onchain_agent.cpython-313-pytest-8.4.2.pyc index 5f5ea520bbc1c2c1065b43b72d87930c75fb1b11..43b9382b77a6b7a798a02ee39f3d7609d1b6fd04 100644 GIT binary patch delta 2491 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 hL_AoI;LJ58%wn5{w9T01~?ciG2Wx{R4?@ zz=Y77fnaZ5z_eVFQDn1+j5Z^q=;jhxenv*A$t`jp7^OFt$_p_vDopNB_{XTYxn1!n zBO}{pU*%k3Mw7|A&3-VNPTpd^m(grmNLAI7MmZs?c-zg*t{TgD=%Z@ z=CI^k9>%QANAit$7^^pbuV!Lr?A!dSX}U1ujLnm#{ZeJzvblGUKF8#vN76WNu_qQ+ j<|Sw5Pu4yfB;d`+!0>^Yk&*E}149c#GwJw delta 457 zcmX@v%Y3DmnfEgglR_trr72gOv@!1MK?RhXfra3ZO)P9XJnL~TqE~^QD$?lybvR!;^YQ} ze~e0->lKeOGO}-WRn8S=G@ZQJ?8oFx3;xNw%-1uTZ_cs^WMov?yvI_8m(gmGd$4)(<2%Dm*v{K=b-q)%2p8YJw;$iVP{nURt4J_ADwLo@Gf2ENU$M_m{J D0_$pJ diff --git a/backend/app/services/agents/tests/__pycache__/test_team_doc_agent.cpython-313-pytest-8.4.2.pyc b/backend/app/services/agents/tests/__pycache__/test_team_doc_agent.cpython-313-pytest-8.4.2.pyc index bcc24dc8dd481a754979e0ab3f4e240148f7e2f3..8ffc85688a5d363e6631a38268d9608bcc7af11b 100644 GIT binary patch delta 1996 zcmb7_-%nd*7{|}sUzGkXqtF7D3gySaRa^Ou1r#ZCzzAENUdUGKIAbh>vgZ^9rWWVM zg*cP?nwTv62hhZub77)h$b~ar>4jHSH)D(mUd`x*F`D>(Pk|xX64rzd&v~C8`M%Hl zyyyINgKghn&Oe+^nS-9!!cBRT{Byy*$f}T{lpf_a`teCcnGewE_{~ z2`;-wnTua?x3MAZruzrRy!?bYpuOk4Zp=3!q*-8-tyVO(F0RC6HPqi9g4rRfn+B4F zvuG4gf4efOs!&e%b;&9gyXYtign`FV#X=phaU|3QbOTQTae+;%z6a{Zf)MJHXh4`n z`_qdn=~DT28swVqF`@X5FTy4@XH~b)hZC$ z`RT_{Y~bFYpGRx$Y)XsQ*6r4(x*67`C!-_xt^c5^+!5?yCwU@xnR&IXVA8~zxveq9 zM);Y=T2{ta8(YKon$m;vy+9wZuSfh=qb$zxZlljK4cBRI4+kqJgsGMb>}~^N*B@?S z^IQr4D$cVI4`@nLhcW*gl63Vi!Yb8(bq2@)BLcF$G>S7=P=LdTL)@&uK`COX*p^e& zT$=mkW|rlH@;5u8THAg$i#ubFHj9Ql8SSrzqD>Q}QA-BefFxg!1|K~I^FF6qG%G|| zq8R@&8p-Q-=$`Obk#tD)n+`gU@DOkT&>J);to$@S_(OXDao z!PjCw3odst%nQjH$N5}tFxcO;J)t+S199D4ay|c~&&$@eulv3ds9U2kYzx~fEK>q(Tgs&^(1_3*ZPkfrVsTiODXi=*XJ)0` ztXi>&Atvn?W5bI+ne+{_2|P%mzUZSd@o7TDCzHOB_+sLV=RXT=LrMah^tWff?|f(e z=X~c(SMQ2{?+W!FRjpC@)05ts`Fc@}iQS8d?&MgIf~|_K=$`SKu@Hq^Ta1S(yj^Km zbZ?WQ`}(SIPEkmm_RD*xwkxpg|Y_*2ZYjlUkn2I{AS z93<2yDgpG`CZ(@pD%9}YUSz{w<8)9aMQrQ#OG1mT;>4s@<#;Cw=_~TA_}L%k6;jJP zt4twOIqyk?Yk9@OV_GR9?|Wv|I<~bcQsEhv1KyLpTVOUaoO;8s?3A5J8!6kS%!QI| zT86R0Ilv_X1YF4Py-j|1F(7~U9_$KX)d#cyYwk|1ZKiU@#R5mXWae#ZlLvf_qD~f~ zvGRG}QgB}z`#TL*Dp$;!#?{Li+bpJvCKarvsCVnr58q(0c~8xoywr=mhzvK}koTLHIq9h#x5R*Z zHo;q)hJR5|_IG-afNY633tbMxZ*af|@e!{`EOqERhY=91zKS`~gi~#2a%Q1qYhen= zV#l7&^(r2PZ$B^qY$&RH*rDxkZ#$Udb~P^Bxvb+YQP!e!aD88j&UkEsO)JQFmNU04 z|8m;oVs}%}Dy7q=Wl>(f*ZDVVd~Mf+XYOsBc9WilRS5>m04@N?KnqoR*TljM@G`35 zcbT!7rY@ci+mOrs^|C{YilXe(eq&L-uK#>Id?LA9B;=mtu|_Cb@zQz3>H_uxqw;1l z-gXw|CcWVJOrio&kNhFIPj`oIUHB{xy`=h;FlFHGcJmcjZh?m6KzF=%l7ClvdZs|R zlzo)Y<#YycZvyX=wVPmrJMd0-mzXa<=zfS%vwPq2pZgH*?gdcpTIXcFAwf{Nlx-{{h-5t{4CS diff --git a/backend/app/services/agents/tests/test_code_audit_agent.py b/backend/app/services/agents/tests/test_code_audit_agent.py index 0edae180..563a895b 100644 --- a/backend/app/services/agents/tests/test_code_audit_agent.py +++ b/backend/app/services/agents/tests/test_code_audit_agent.py @@ -108,12 +108,14 @@ async def test_audit_codebase(code_audit_agent): respx.get(f"https://api.github.com/search/issues?q=repo%3A{owner}%2F{repo}%2Btype%3Aissue&per_page=1").mock(return_value=Response(200, json={'total_count': 20})) respx.get(f"https://api.github.com/repos/{owner}/{repo}/pulls?state=all&per_page=1").mock(return_value=Response(200, headers={'link': '; rel="next", ; rel="last"'}, json=[])) - result = await code_audit_agent.audit_codebase(repo_url, project_name) - - assert isinstance(result, CodeAuditResult) - assert result.code_metrics.repo_url == repo_url - assert len(result.audit_summaries) == 2 - assert project_name in result.audit_summaries[0].report_title + result = await code_audit_agent.fetch_data(repo_url, project_name) + + assert isinstance(result, dict) + assert "code_metrics" in result + assert result["code_metrics"]["repo_url"] == repo_url + assert "audit_summaries" in result + assert len(result["audit_summaries"]) == 2 + assert project_name in result["audit_summaries"][0]["report_title"] @pytest.mark.asyncio async def test_fetch_github_repo_metrics_http_error(code_audit_agent): diff --git a/backend/app/services/agents/tests/test_onchain_agent.py b/backend/app/services/agents/tests/test_onchain_agent.py index 2999922b..583aed36 100644 --- a/backend/app/services/agents/tests/test_onchain_agent.py +++ b/backend/app/services/agents/tests/test_onchain_agent.py @@ -141,7 +141,7 @@ async def test_fetch_tokenomics_retry_on_rate_limit(mock_async_client): with patch.object(fetch_tokenomics.retry, 'wait', new=wait_fixed(0.01)), \ patch.object(fetch_tokenomics.retry, 'stop', new=stop_after_attempt(3)): - result = await fetch_tokenomics(url="http://test.com/tokenomics") + result = await fetch_tokenomics(url="http://test.com/tokenomics", token_id="test_token") assert result == {"data": "tokenomics"} assert mock_client_instance.get.call_count == 3 @@ -161,7 +161,7 @@ async def test_fetch_tokenomics_retry_on_timeout(mock_async_client): with patch.object(fetch_tokenomics.retry, 'wait', new=wait_fixed(0.01)), \ patch.object(fetch_tokenomics.retry, 'stop', new=stop_after_attempt(3)): - result = await fetch_tokenomics(url="http://test.com/tokenomics") + result = await fetch_tokenomics(url="http://test.com/tokenomics", token_id="test_token") assert result == {"data": "tokenomics"} assert mock_client_instance.get.call_count == 3 @@ -182,7 +182,7 @@ async def test_fetch_tokenomics_max_retries_exceeded(mock_async_client): patch.object(fetch_tokenomics.retry, 'stop', new=stop_after_attempt(3)): with pytest.raises(OnchainAgentNetworkError): - await fetch_tokenomics(url="http://test.com/tokenomics") + await fetch_tokenomics(url="http://test.com/tokenomics", token_id="test_token") assert mock_client_instance.get.call_count == 3 @pytest.mark.asyncio @@ -234,7 +234,7 @@ async def test_fetch_tokenomics_http_error_raises_onchainagenthttperror(mock_asy with patch.object(fetch_tokenomics.retry, 'wait', new=wait_fixed(0.01)), \ patch.object(fetch_tokenomics.retry, 'stop', new=stop_after_attempt(3)): with pytest.raises(OnchainAgentHTTPError) as excinfo: - await fetch_tokenomics(url="http://test.com/tokenomics") + await fetch_tokenomics(url="http://test.com/tokenomics", token_id="test_token") assert excinfo.value.status_code == 403 assert mock_client_instance.get.call_count == 3 # Retries should still happen @@ -252,7 +252,7 @@ async def test_fetch_tokenomics_unexpected_error_raises_onchainagentexception(mo with patch.object(fetch_tokenomics.retry, 'wait', new=wait_fixed(0.01)), \ patch.object(fetch_tokenomics.retry, 'stop', new=stop_after_attempt(3)): with pytest.raises(OnchainAgentException): - await fetch_tokenomics(url="http://test.com/tokenomics") + await fetch_tokenomics(url="http://test.com/tokenomics", token_id="test_token") assert mock_client_instance.get.call_count == 3 # Retries should still happen # --- New tests for successful fetching and schema validation --- @@ -297,7 +297,7 @@ async def test_fetch_tokenomics_success_and_schema(mock_async_client): } mock_client_instance.get.return_value = create_mock_response(200, expected_tokenomics) - result = await fetch_tokenomics(url="http://test.com/tokenomics") + result = await fetch_tokenomics(url="http://test.com/tokenomics", token_id="test_token") assert result == expected_tokenomics assert "total_supply" in result assert "circulating_supply" in result @@ -346,7 +346,7 @@ async def test_fetch_tokenomics_missing_fields(mock_async_client): } mock_client_instance.get.return_value = create_mock_response(200, incomplete_tokenomics) - result = await fetch_tokenomics(url="http://test.com/tokenomics") + result = await fetch_tokenomics(url="http://test.com/tokenomics", token_id="test_token") assert result == incomplete_tokenomics assert "total_supply" in result assert "circulating_supply" not in result @@ -381,5 +381,5 @@ async def test_fetch_tokenomics_invalid_token_id(mock_async_client): mock_client_instance.get.return_value = create_mock_response(404, error_response_data) with pytest.raises(OnchainAgentHTTPError) as excinfo: - await fetch_tokenomics(url="http://test.com/tokenomics", params={"token_id": "nonexistent"}) - assert excinfo.value.status_code == 404 \ No newline at end of file + await fetch_tokenomics(url="http://test.com/tokenomics", params={"token_id": "nonexistent"}, token_id="test_token") + assert excinfo.value.status_code == 404 diff --git a/backend/app/services/nlg/__pycache__/llm_client.cpython-313.pyc b/backend/app/services/nlg/__pycache__/llm_client.cpython-313.pyc index c83c6abd12c4bd085f2ebff6740dba7e29eae8e1..13b071a62e045a0886443a1a5b32506386b01bbe 100644 GIT binary patch delta 19 ZcmbQGGE0T)GcPX}0}y=qxRFah2mm*i1z-RG delta 19 ZcmbQGGE0T)GcPX}0}w>M*~ldz1OPMK1i%0Q diff --git a/backend/app/services/nlg/prompt_templates.py b/backend/app/services/nlg/prompt_templates.py index 7261c44e..349c3477 100644 --- a/backend/app/services/nlg/prompt_templates.py +++ b/backend/app/services/nlg/prompt_templates.py @@ -70,8 +70,9 @@ def get_template(section_id: str) -> str: } return templates.get(section_id, "No template found for this section ID.") -def fill_template(template: str, data: str) -> str: +def fill_template(template: str, **kwargs) -> str: """ - Fills a given template with the provided data. + Fills a given template with the provided data using keyword arguments. + This allows for flexible placeholder names in the template. """ - return template.format(data=data) + return template.format(**kwargs) diff --git a/backend/app/services/nlg/tests/__pycache__/test_llm_client.cpython-313-pytest-8.4.2.pyc b/backend/app/services/nlg/tests/__pycache__/test_llm_client.cpython-313-pytest-8.4.2.pyc index 531421f98c67e1f678618339d8918c7e3f4c3ec7..6838bcdba133e9e240a895de8f60c8a5426b822e 100644 GIT binary patch delta 19 Zcmewz^E-y?GcPX}0}y=qxRI++4**Sx2M+)M delta 19 Zcmewz^E-y?GcPX}0}w2HvyrP%4**Mk2DbnJ diff --git a/backend/logs/app.log b/backend/logs/app.log index 8190d0e2..6663cfb8 100644 --- a/backend/logs/app.log +++ b/backend/logs/app.log @@ -4364,3 +4364,1186 @@ AttributeError: 'coroutine' object has no attribute 'update' 2025-11-12 18:07:54,129 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. 2025-11-12 18:07:54,129 - orchestrator - INFO - Aggregating results from executed agents. 2025-11-12 18:07:54,129 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:12:07,826 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:12:07,827 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:12:07,827 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:12:07,827 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:12:07,827 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:12:07,827 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:12:07,827 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:12:07,827 - orchestrator - INFO - Registering agent: AgentTwo +2025-11-20 11:12:08,225 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:08,226 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:12:08,236 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:08,237 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:12:08,247 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:08,248 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:12:09,254 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:09,254 - services - ERROR - [Token ID: test_token_id] Network error fetching on-chain metrics from http://test.com/onchain: Network error +2025-11-20 11:12:09,265 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:09,265 - services - ERROR - [Token ID: test_token_id] Network error fetching on-chain metrics from http://test.com/onchain: Network error +2025-11-20 11:12:09,276 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:09,285 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:12:10,320 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:10,321 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 500. Response text truncated: +2025-11-20 11:12:10,337 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:10,338 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 500. Response text truncated: +2025-11-20 11:12:10,350 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:10,351 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:12:11,358 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:11,358 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:12:11,369 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:11,369 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:12:11,380 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:11,380 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:12:11,390 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:11,391 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 429. Response text truncated: Too Many Requests +2025-11-20 11:12:11,402 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:11,402 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 429. Response text truncated: Too Many Requests +2025-11-20 11:12:11,414 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:11,415 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:12:12,631 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:12,634 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:12:12,645 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:12,645 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:12:12,656 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:12,656 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:12:12,661 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:12,672 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:12,683 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:12,792 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:12,794 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:12:13,851 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:13,852 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:12:14,902 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:14,902 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:12:15,904 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:15,904 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:12:17,905 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:17,906 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:12:21,910 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:21,911 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:12:29,919 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:12:29,920 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:12:32,048 - orchestrator - ERROR - Error scraping http://example.com/team/404: HTTP Error: 404 +2025-11-20 11:12:32,049 - orchestrator - ERROR - Error scraping http://example.com/team/network-error: Network is unreachable +2025-11-20 11:12:32,051 - orchestrator - ERROR - Error scraping http://example.com/team/404: HTTP Error: 404 +2025-11-20 11:12:32,051 - orchestrator - ERROR - Error scraping http://example.com/team/connection-refused: Connection refused +2025-11-20 11:12:32,124 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:12:32,124 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:12:32,124 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:12:32,124 - orchestrator - INFO - Executing agents for report_id: test_report_1, token_id: test_token_1 +2025-11-20 11:12:32,125 - orchestrator - INFO - Agent price_agent completed for report test_report_1. +2025-11-20 11:12:32,125 - orchestrator - INFO - Agent trend_agent completed for report test_report_1. +2025-11-20 11:12:32,125 - orchestrator - INFO - Agent volume_agent completed for report test_report_1. +2025-11-20 11:12:32,125 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:12:32,131 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:12:32,131 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:12:32,131 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:12:32,131 - orchestrator - INFO - Executing agents for report_id: test_report_3, token_id: test_token_3 +2025-11-20 11:12:32,131 - orchestrator - ERROR - Agent price_agent failed for report test_report_3 +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/core/orchestrator.py", line 54, in execute_agents + result = await asyncio.wait_for(task, timeout=settings.AGENT_TIMEOUT) # Added timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/asyncio/tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2321, in _execute_mock_call + raise effect +Exception: Agent error +2025-11-20 11:12:32,232 - orchestrator - INFO - Agent trend_agent completed for report test_report_3. +2025-11-20 11:12:32,232 - orchestrator - INFO - Agent volume_agent completed for report test_report_3. +2025-11-20 11:12:32,232 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:12:32,246 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:12:32,246 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:12:32,246 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:12:32,246 - orchestrator - INFO - Executing agents for report_id: concurrent_report, token_id: concurrent_token +2025-11-20 11:12:32,250 - orchestrator - INFO - Agent price_agent completed for report concurrent_report. +2025-11-20 11:12:32,251 - orchestrator - INFO - Agent trend_agent completed for report concurrent_report. +2025-11-20 11:12:32,251 - orchestrator - INFO - Agent volume_agent completed for report concurrent_report. +2025-11-20 11:12:32,251 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:12:32,255 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:12:32,255 - orchestrator - INFO - Registering agent: AgentTwo +2025-11-20 11:12:32,255 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_id_success, token_id: test_token_id +2025-11-20 11:12:32,255 - orchestrator - INFO - Executing agents for report_id: test_report_id_success, token_id: test_token_id +2025-11-20 11:12:32,255 - orchestrator - INFO - Agent AgentOne completed for report test_report_id_success. +2025-11-20 11:12:32,255 - orchestrator - INFO - Agent AgentTwo completed for report test_report_id_success. +2025-11-20 11:12:32,255 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:12:32,255 - orchestrator - INFO - Report test_report_id_success status updated to completed. +2025-11-20 11:12:32,258 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:12:32,258 - orchestrator - INFO - Registering agent: AgentFailing +2025-11-20 11:12:32,259 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_id_failure, token_id: test_token_id +2025-11-20 11:12:32,259 - orchestrator - INFO - Executing agents for report_id: test_report_id_failure, token_id: test_token_id +2025-11-20 11:12:32,259 - orchestrator - INFO - Agent AgentOne completed for report test_report_id_failure. +2025-11-20 11:12:32,259 - orchestrator - ERROR - Agent AgentFailing failed for report test_report_id_failure +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/core/orchestrator.py", line 54, in execute_agents + result = await asyncio.wait_for(task, timeout=settings.AGENT_TIMEOUT) # Added timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/asyncio/tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2321, in _execute_mock_call + raise effect +Exception: Agent failed +2025-11-20 11:12:32,260 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:12:32,260 - orchestrator - ERROR - Report test_report_id_failure failed due to one or more agent failures. +2025-11-20 11:12:32,260 - orchestrator - INFO - Report test_report_id_failure status updated to failed. +2025-11-20 11:12:32,262 - orchestrator - INFO - Registering agent: a +2025-11-20 11:12:32,264 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:12:32,264 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:12:32,264 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:12:32,264 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:12:32,264 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:12:32,264 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:12:32,265 - orchestrator - INFO - Registering agent: dummy_agent +2025-11-20 11:12:32,265 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:12:32,265 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:12:32,265 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:12:32,265 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:12:32,266 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:12:32,266 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:12:32,294 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:12:32,294 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:12:32,294 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:12:32,294 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:12:32,294 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,294 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,294 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,295 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,295 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:12:32,295 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,295 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:12:32,297 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,310 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:12:32,311 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:12:32,311 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:12:32,312 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:12:32,312 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:12:32,313 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:12:32,313 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:12:32,313 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:12:32,313 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:12:32,313 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:12:32,313 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:12:32,313 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:12:32,320 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:12:32,320 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:12:32,320 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:12:32,320 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:12:32,320 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,321 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,321 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,321 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,321 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:12:32,321 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,321 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:12:32,322 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,334 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:12:32,334 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:12:32,334 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:12:32,337 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:12:32,337 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:12:32,337 - orchestrator - ERROR - Onchain metrics fetch timed out for report test_report_123 +2025-11-20 11:12:32,337 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:12:32,337 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:12:32,338 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:12:32,338 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:12:32,338 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:12:32,338 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:12:32,338 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:12:32,353 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:12:32,353 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:12:32,353 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:12:32,353 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:12:32,353 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,353 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,353 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,354 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,354 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:12:32,354 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,354 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:12:32,354 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:12:32,368 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:12:32,369 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:12:32,369 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:12:32,370 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:12:32,370 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:12:32,371 - orchestrator - ERROR - Tokenomics fetch failed for report test_report_123 +2025-11-20 11:12:32,371 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:12:32,371 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:12:32,371 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:12:32,371 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:12:32,371 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:12:32,371 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:12:32,371 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:12:32,385 - api - INFO - Received report generation request for token_id: test_token +2025-11-20 11:12:32,385 - services - INFO - Generating new report for token_id: test_token +2025-11-20 11:12:32,387 - api - INFO - Received data request for report_id: bebbb35c-62e2-4946-911f-1b8dcc0dd392 +2025-11-20 11:12:32,388 - services - INFO - Attempting to retrieve data for report_id: bebbb35c-62e2-4946-911f-1b8dcc0dd392 +2025-11-20 11:12:32,388 - services - INFO - Report bebbb35c-62e2-4946-911f-1b8dcc0dd392 is in status: processing, returning status only. +2025-11-20 11:12:32,388 - api - WARNING - Report bebbb35c-62e2-4946-911f-1b8dcc0dd392 is still processing. +2025-11-20 11:12:32,393 - api - INFO - Received report generation request for token_id: test_token +2025-11-20 11:12:32,393 - services - INFO - Generating new report for token_id: test_token +2025-11-20 11:12:32,394 - orchestrator - INFO - Executing agents concurrently for report_id: 85434bc4-0af4-4ec7-a670-7ad37f7f20af, token_id: test_token +2025-11-20 11:12:32,394 - orchestrator - INFO - Executing agents for report_id: 85434bc4-0af4-4ec7-a670-7ad37f7f20af, token_id: test_token +2025-11-20 11:12:32,394 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: 85434bc4-0af4-4ec7-a670-7ad37f7f20af, token_id: test_token +2025-11-20 11:12:32,394 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: 85434bc4-0af4-4ec7-a670-7ad37f7f20af, token_id: test_token +2025-11-20 11:12:32,394 - orchestrator - INFO - Scraping team profiles for token test_token from URLs: [] +2025-11-20 11:12:32,394 - orchestrator - INFO - Team profile scraping completed for token test_token. +2025-11-20 11:12:32,394 - orchestrator - WARNING - No whitepaper text source provided for token test_token. Skipping whitepaper analysis. +2025-11-20 11:12:35,399 - orchestrator - INFO - Social Sentiment Agent completed for report 85434bc4-0af4-4ec7-a670-7ad37f7f20af. +2025-11-20 11:12:35,400 - orchestrator - INFO - Agent social_sentiment_agent completed for report 85434bc4-0af4-4ec7-a670-7ad37f7f20af. +2025-11-20 11:12:35,400 - orchestrator - INFO - Agent team_documentation_agent completed for report 85434bc4-0af4-4ec7-a670-7ad37f7f20af. +2025-11-20 11:12:35,400 - orchestrator - INFO - Agent AgentOne completed for report 85434bc4-0af4-4ec7-a670-7ad37f7f20af. +2025-11-20 11:12:35,400 - orchestrator - INFO - Agent AgentTwo completed for report 85434bc4-0af4-4ec7-a670-7ad37f7f20af. +2025-11-20 11:12:35,400 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:12:35,400 - orchestrator - INFO - Report 85434bc4-0af4-4ec7-a670-7ad37f7f20af status updated to completed. +2025-11-20 11:12:35,402 - api - INFO - Received status request for report_id: 85434bc4-0af4-4ec7-a670-7ad37f7f20af +2025-11-20 11:12:35,402 - services - INFO - Retrieving status for report_id: 85434bc4-0af4-4ec7-a670-7ad37f7f20af from memory. +2025-11-20 11:12:35,403 - api - INFO - Received data request for report_id: 85434bc4-0af4-4ec7-a670-7ad37f7f20af +2025-11-20 11:12:35,403 - services - INFO - Attempting to retrieve data for report_id: 85434bc4-0af4-4ec7-a670-7ad37f7f20af +2025-11-20 11:12:35,403 - services - INFO - Report 85434bc4-0af4-4ec7-a670-7ad37f7f20af is completed, returning data. +2025-11-20 11:12:35,403 - api - INFO - Returning data for report_id: 85434bc4-0af4-4ec7-a670-7ad37f7f20af +2025-11-20 11:12:35,411 - api - INFO - Received data request for report_id: non_existent_report +2025-11-20 11:12:35,411 - services - INFO - Attempting to retrieve data for report_id: non_existent_report +2025-11-20 11:12:35,411 - services - WARNING - Report with id non_existent_report not found when attempting to retrieve data. +2025-11-20 11:12:35,411 - api - ERROR - Report with id non_existent_report not found or not completed for data request. +2025-11-20 11:12:35,411 - api - ERROR - ReportNotFoundException: Report not found or not completed +2025-11-20 11:16:52,017 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:16:52,018 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:16:52,018 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:16:52,018 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:16:52,018 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:16:52,018 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:16:52,018 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:16:52,018 - orchestrator - INFO - Registering agent: AgentTwo +2025-11-20 11:16:52,263 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:52,264 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:16:52,274 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:52,275 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:16:52,285 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:52,286 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:16:53,292 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:53,293 - services - ERROR - [Token ID: test_token_id] Network error fetching on-chain metrics from http://test.com/onchain: Network error +2025-11-20 11:16:53,304 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:53,304 - services - ERROR - [Token ID: test_token_id] Network error fetching on-chain metrics from http://test.com/onchain: Network error +2025-11-20 11:16:53,323 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:53,324 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:16:54,332 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:54,332 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 500. Response text truncated: +2025-11-20 11:16:54,343 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:54,343 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 500. Response text truncated: +2025-11-20 11:16:54,354 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:54,355 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:16:55,360 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:55,361 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:16:55,371 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:55,372 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:16:55,382 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:55,383 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:16:55,389 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:55,390 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 429. Response text truncated: Too Many Requests +2025-11-20 11:16:55,400 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:55,401 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 429. Response text truncated: Too Many Requests +2025-11-20 11:16:55,411 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:55,412 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:16:56,421 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:56,421 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 429. Response text truncated: Too Many Requests +2025-11-20 11:16:56,432 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:56,432 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 429. Response text truncated: Too Many Requests +2025-11-20 11:16:56,443 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:56,443 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 22 bytes +2025-11-20 11:16:57,449 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:57,450 - services - ERROR - [Token ID: test_token] Timeout fetching tokenomics data from http://test.com/tokenomics: Read timeout +2025-11-20 11:16:57,461 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:57,461 - services - ERROR - [Token ID: test_token] Timeout fetching tokenomics data from http://test.com/tokenomics: Read timeout +2025-11-20 11:16:57,472 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:57,472 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 22 bytes +2025-11-20 11:16:58,477 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:58,478 - services - ERROR - [Token ID: test_token] Network error fetching tokenomics data from http://test.com/tokenomics: Network error +2025-11-20 11:16:58,489 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:58,489 - services - ERROR - [Token ID: test_token] Network error fetching tokenomics data from http://test.com/tokenomics: Network error +2025-11-20 11:16:58,499 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:58,500 - services - ERROR - [Token ID: test_token] Network error fetching tokenomics data from http://test.com/tokenomics: Network error +2025-11-20 11:16:58,507 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:58,508 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:16:58,519 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:58,519 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:16:58,530 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:58,530 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:16:58,535 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:58,546 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:58,557 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:58,563 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:58,564 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 403. Response text truncated: +2025-11-20 11:16:58,574 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:58,574 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 403. Response text truncated: +2025-11-20 11:16:58,586 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:58,586 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 403. Response text truncated: +2025-11-20 11:16:58,590 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:58,590 - services - ERROR - [Token ID: test_token] An unexpected error occurred while fetching tokenomics data from http://test.com/tokenomics +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/services/agents/onchain_agent.py", line 111, in fetch_tokenomics + response = await client.get(url, params=params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2330, in _execute_mock_call + raise result +Exception: Another unexpected error +2025-11-20 11:16:58,602 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:58,602 - services - ERROR - [Token ID: test_token] An unexpected error occurred while fetching tokenomics data from http://test.com/tokenomics +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/services/agents/onchain_agent.py", line 111, in fetch_tokenomics + response = await client.get(url, params=params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2330, in _execute_mock_call + raise result +Exception: Another unexpected error +2025-11-20 11:16:58,613 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:58,614 - services - ERROR - [Token ID: test_token] An unexpected error occurred while fetching tokenomics data from http://test.com/tokenomics +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/services/agents/onchain_agent.py", line 111, in fetch_tokenomics + response = await client.get(url, params=params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2330, in _execute_mock_call + raise result +Exception: Another unexpected error +2025-11-20 11:16:58,619 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:16:58,620 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:16:59,626 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:16:59,626 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 167 bytes +2025-11-20 11:17:00,633 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:17:00,635 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:17:01,640 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:17:01,641 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 56 bytes +2025-11-20 11:17:02,646 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:17:02,647 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:17:03,648 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:17:03,649 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:17:05,652 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:17:05,653 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:17:09,657 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:17:09,658 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:17:17,659 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:17:17,659 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:17:17,664 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:17:17,664 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:17:18,666 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:17:18,666 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:17:20,669 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:17:20,669 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:17:24,673 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:17:24,674 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:17:32,682 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:17:32,683 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:17:34,767 - orchestrator - ERROR - Error scraping http://example.com/team/404: HTTP Error: 404 +2025-11-20 11:17:34,768 - orchestrator - ERROR - Error scraping http://example.com/team/network-error: Network is unreachable +2025-11-20 11:17:34,769 - orchestrator - ERROR - Error scraping http://example.com/team/404: HTTP Error: 404 +2025-11-20 11:17:34,770 - orchestrator - ERROR - Error scraping http://example.com/team/connection-refused: Connection refused +2025-11-20 11:17:34,815 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:17:34,815 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:17:34,815 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:17:34,815 - orchestrator - INFO - Executing agents for report_id: test_report_1, token_id: test_token_1 +2025-11-20 11:17:34,816 - orchestrator - INFO - Agent price_agent completed for report test_report_1. +2025-11-20 11:17:34,816 - orchestrator - INFO - Agent trend_agent completed for report test_report_1. +2025-11-20 11:17:34,816 - orchestrator - INFO - Agent volume_agent completed for report test_report_1. +2025-11-20 11:17:34,816 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:17:34,819 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:17:34,819 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:17:34,819 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:17:34,819 - orchestrator - INFO - Executing agents for report_id: test_report_3, token_id: test_token_3 +2025-11-20 11:17:34,819 - orchestrator - ERROR - Agent price_agent failed for report test_report_3 +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/core/orchestrator.py", line 54, in execute_agents + result = await asyncio.wait_for(task, timeout=settings.AGENT_TIMEOUT) # Added timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/asyncio/tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2321, in _execute_mock_call + raise effect +Exception: Agent error +2025-11-20 11:17:34,920 - orchestrator - INFO - Agent trend_agent completed for report test_report_3. +2025-11-20 11:17:34,921 - orchestrator - INFO - Agent volume_agent completed for report test_report_3. +2025-11-20 11:17:34,921 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:17:34,929 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:17:34,929 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:17:34,929 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:17:34,929 - orchestrator - INFO - Executing agents for report_id: concurrent_report, token_id: concurrent_token +2025-11-20 11:17:34,931 - orchestrator - INFO - Agent price_agent completed for report concurrent_report. +2025-11-20 11:17:34,932 - orchestrator - INFO - Agent trend_agent completed for report concurrent_report. +2025-11-20 11:17:34,932 - orchestrator - INFO - Agent volume_agent completed for report concurrent_report. +2025-11-20 11:17:34,932 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:17:34,934 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:17:34,934 - orchestrator - INFO - Registering agent: AgentTwo +2025-11-20 11:17:34,934 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_id_success, token_id: test_token_id +2025-11-20 11:17:34,934 - orchestrator - INFO - Executing agents for report_id: test_report_id_success, token_id: test_token_id +2025-11-20 11:17:34,934 - orchestrator - INFO - Agent AgentOne completed for report test_report_id_success. +2025-11-20 11:17:34,934 - orchestrator - INFO - Agent AgentTwo completed for report test_report_id_success. +2025-11-20 11:17:34,934 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:17:34,934 - orchestrator - INFO - Report test_report_id_success status updated to completed. +2025-11-20 11:17:34,936 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:17:34,936 - orchestrator - INFO - Registering agent: AgentFailing +2025-11-20 11:17:34,936 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_id_failure, token_id: test_token_id +2025-11-20 11:17:34,936 - orchestrator - INFO - Executing agents for report_id: test_report_id_failure, token_id: test_token_id +2025-11-20 11:17:34,937 - orchestrator - INFO - Agent AgentOne completed for report test_report_id_failure. +2025-11-20 11:17:34,937 - orchestrator - ERROR - Agent AgentFailing failed for report test_report_id_failure +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/core/orchestrator.py", line 54, in execute_agents + result = await asyncio.wait_for(task, timeout=settings.AGENT_TIMEOUT) # Added timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/asyncio/tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2321, in _execute_mock_call + raise effect +Exception: Agent failed +2025-11-20 11:17:34,937 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:17:34,937 - orchestrator - ERROR - Report test_report_id_failure failed due to one or more agent failures. +2025-11-20 11:17:34,937 - orchestrator - INFO - Report test_report_id_failure status updated to failed. +2025-11-20 11:17:34,939 - orchestrator - INFO - Registering agent: a +2025-11-20 11:17:34,940 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:17:34,940 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:17:34,940 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:17:34,940 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:17:34,940 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:17:34,940 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:17:34,941 - orchestrator - INFO - Registering agent: dummy_agent +2025-11-20 11:17:34,941 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:17:34,942 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:17:34,942 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:17:34,942 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:17:34,942 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:17:34,942 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:17:34,959 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:17:34,960 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:17:34,960 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:17:34,960 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:17:34,960 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,960 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,960 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,960 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,960 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:17:34,960 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,960 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:17:34,961 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,974 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:17:34,974 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:17:34,975 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:17:34,977 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:17:34,977 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:17:34,977 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:17:34,977 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:17:34,978 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:17:34,978 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:17:34,978 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:17:34,978 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:17:34,978 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:17:34,985 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:17:34,986 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:17:34,986 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:17:34,986 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:17:34,986 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,986 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,986 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,986 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,986 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:17:34,986 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:34,986 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:17:34,987 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:35,001 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:17:35,002 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:17:35,002 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:17:35,003 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:17:35,003 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:17:35,003 - orchestrator - ERROR - Onchain metrics fetch timed out for report test_report_123 +2025-11-20 11:17:35,003 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:17:35,004 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:17:35,004 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:17:35,004 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:17:35,004 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:17:35,004 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:17:35,004 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:17:35,060 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:17:35,060 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:17:35,060 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:17:35,060 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:17:35,060 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:35,060 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:35,060 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:35,060 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:35,060 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:17:35,060 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:35,061 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:17:35,061 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:17:35,070 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:17:35,071 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:17:35,071 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:17:35,072 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:17:35,072 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:17:35,072 - orchestrator - ERROR - Tokenomics fetch failed for report test_report_123 +2025-11-20 11:17:35,072 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:17:35,072 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:17:35,073 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:17:35,073 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:17:35,073 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:17:35,073 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:17:35,073 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:17:35,085 - api - INFO - Received report generation request for token_id: test_token +2025-11-20 11:17:35,085 - services - INFO - Generating new report for token_id: test_token +2025-11-20 11:17:35,088 - api - INFO - Received data request for report_id: 0d2a7c75-0dad-4183-9c53-89a2a0e25401 +2025-11-20 11:17:35,088 - services - INFO - Attempting to retrieve data for report_id: 0d2a7c75-0dad-4183-9c53-89a2a0e25401 +2025-11-20 11:17:35,088 - services - INFO - Report 0d2a7c75-0dad-4183-9c53-89a2a0e25401 is in status: processing, returning status only. +2025-11-20 11:17:35,088 - api - WARNING - Report 0d2a7c75-0dad-4183-9c53-89a2a0e25401 is still processing. +2025-11-20 11:17:35,094 - api - INFO - Received report generation request for token_id: test_token +2025-11-20 11:17:35,094 - services - INFO - Generating new report for token_id: test_token +2025-11-20 11:17:35,094 - orchestrator - INFO - Executing agents concurrently for report_id: 00875027-84cc-4fe1-9ef6-088bcec58cf6, token_id: test_token +2025-11-20 11:17:35,094 - orchestrator - INFO - Executing agents for report_id: 00875027-84cc-4fe1-9ef6-088bcec58cf6, token_id: test_token +2025-11-20 11:17:35,094 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: 00875027-84cc-4fe1-9ef6-088bcec58cf6, token_id: test_token +2025-11-20 11:17:35,094 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: 00875027-84cc-4fe1-9ef6-088bcec58cf6, token_id: test_token +2025-11-20 11:17:35,094 - orchestrator - INFO - Scraping team profiles for token test_token from URLs: [] +2025-11-20 11:17:35,095 - orchestrator - INFO - Team profile scraping completed for token test_token. +2025-11-20 11:17:35,095 - orchestrator - WARNING - No whitepaper text source provided for token test_token. Skipping whitepaper analysis. +2025-11-20 11:17:38,100 - orchestrator - INFO - Social Sentiment Agent completed for report 00875027-84cc-4fe1-9ef6-088bcec58cf6. +2025-11-20 11:17:38,101 - orchestrator - INFO - Agent social_sentiment_agent completed for report 00875027-84cc-4fe1-9ef6-088bcec58cf6. +2025-11-20 11:17:38,101 - orchestrator - INFO - Agent team_documentation_agent completed for report 00875027-84cc-4fe1-9ef6-088bcec58cf6. +2025-11-20 11:17:38,101 - orchestrator - INFO - Agent AgentOne completed for report 00875027-84cc-4fe1-9ef6-088bcec58cf6. +2025-11-20 11:17:38,101 - orchestrator - INFO - Agent AgentTwo completed for report 00875027-84cc-4fe1-9ef6-088bcec58cf6. +2025-11-20 11:17:38,101 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:17:38,101 - orchestrator - INFO - Report 00875027-84cc-4fe1-9ef6-088bcec58cf6 status updated to completed. +2025-11-20 11:17:38,103 - api - INFO - Received status request for report_id: 00875027-84cc-4fe1-9ef6-088bcec58cf6 +2025-11-20 11:17:38,103 - services - INFO - Retrieving status for report_id: 00875027-84cc-4fe1-9ef6-088bcec58cf6 from memory. +2025-11-20 11:17:38,104 - api - INFO - Received data request for report_id: 00875027-84cc-4fe1-9ef6-088bcec58cf6 +2025-11-20 11:17:38,104 - services - INFO - Attempting to retrieve data for report_id: 00875027-84cc-4fe1-9ef6-088bcec58cf6 +2025-11-20 11:17:38,104 - services - INFO - Report 00875027-84cc-4fe1-9ef6-088bcec58cf6 is completed, returning data. +2025-11-20 11:17:38,104 - api - INFO - Returning data for report_id: 00875027-84cc-4fe1-9ef6-088bcec58cf6 +2025-11-20 11:17:38,111 - api - INFO - Received data request for report_id: non_existent_report +2025-11-20 11:17:38,111 - services - INFO - Attempting to retrieve data for report_id: non_existent_report +2025-11-20 11:17:38,111 - services - WARNING - Report with id non_existent_report not found when attempting to retrieve data. +2025-11-20 11:17:38,111 - api - ERROR - Report with id non_existent_report not found or not completed for data request. +2025-11-20 11:17:38,111 - api - ERROR - ReportNotFoundException: Report not found or not completed +2025-11-20 11:21:41,393 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:21:41,393 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:21:41,394 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:21:41,394 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:21:41,394 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:21:41,394 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:21:41,394 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:21:41,394 - orchestrator - INFO - Registering agent: AgentTwo +2025-11-20 11:21:41,657 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:41,657 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:21:41,668 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:41,668 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:21:41,679 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:41,680 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:21:42,687 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:42,687 - services - ERROR - [Token ID: test_token_id] Network error fetching on-chain metrics from http://test.com/onchain: Network error +2025-11-20 11:21:42,698 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:42,699 - services - ERROR - [Token ID: test_token_id] Network error fetching on-chain metrics from http://test.com/onchain: Network error +2025-11-20 11:21:42,716 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:42,716 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:21:43,723 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:43,724 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 500. Response text truncated: +2025-11-20 11:21:43,734 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:43,735 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 500. Response text truncated: +2025-11-20 11:21:43,745 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:43,746 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:21:44,751 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:44,752 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:21:44,762 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:44,763 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:21:44,773 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:44,774 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:21:44,779 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:44,780 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 429. Response text truncated: Too Many Requests +2025-11-20 11:21:44,791 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:44,791 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 429. Response text truncated: Too Many Requests +2025-11-20 11:21:44,802 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:44,803 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:21:45,810 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:45,811 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 429. Response text truncated: Too Many Requests +2025-11-20 11:21:45,821 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:45,822 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 429. Response text truncated: Too Many Requests +2025-11-20 11:21:45,833 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:45,834 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 22 bytes +2025-11-20 11:21:46,840 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:46,840 - services - ERROR - [Token ID: test_token] Timeout fetching tokenomics data from http://test.com/tokenomics: Read timeout +2025-11-20 11:21:46,851 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:46,851 - services - ERROR - [Token ID: test_token] Timeout fetching tokenomics data from http://test.com/tokenomics: Read timeout +2025-11-20 11:21:46,862 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:46,862 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 22 bytes +2025-11-20 11:21:47,867 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:47,868 - services - ERROR - [Token ID: test_token] Network error fetching tokenomics data from http://test.com/tokenomics: Network error +2025-11-20 11:21:47,878 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:47,879 - services - ERROR - [Token ID: test_token] Network error fetching tokenomics data from http://test.com/tokenomics: Network error +2025-11-20 11:21:47,889 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:47,890 - services - ERROR - [Token ID: test_token] Network error fetching tokenomics data from http://test.com/tokenomics: Network error +2025-11-20 11:21:47,897 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:47,897 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:21:47,909 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:47,910 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:21:47,920 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:47,920 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:21:47,924 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:47,935 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:47,946 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:47,952 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:47,952 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 403. Response text truncated: +2025-11-20 11:21:47,963 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:47,963 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 403. Response text truncated: +2025-11-20 11:21:47,974 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:47,975 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 403. Response text truncated: +2025-11-20 11:21:47,978 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:47,978 - services - ERROR - [Token ID: test_token] An unexpected error occurred while fetching tokenomics data from http://test.com/tokenomics +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/services/agents/onchain_agent.py", line 111, in fetch_tokenomics + response = await client.get(url, params=params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2330, in _execute_mock_call + raise result +Exception: Another unexpected error +2025-11-20 11:21:47,992 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:47,992 - services - ERROR - [Token ID: test_token] An unexpected error occurred while fetching tokenomics data from http://test.com/tokenomics +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/services/agents/onchain_agent.py", line 111, in fetch_tokenomics + response = await client.get(url, params=params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2330, in _execute_mock_call + raise result +Exception: Another unexpected error +2025-11-20 11:21:48,003 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:48,004 - services - ERROR - [Token ID: test_token] An unexpected error occurred while fetching tokenomics data from http://test.com/tokenomics +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/services/agents/onchain_agent.py", line 111, in fetch_tokenomics + response = await client.get(url, params=params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2330, in _execute_mock_call + raise result +Exception: Another unexpected error +2025-11-20 11:21:48,008 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:48,010 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:21:49,015 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:49,015 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 167 bytes +2025-11-20 11:21:50,023 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:50,025 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:21:51,030 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:21:51,030 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 56 bytes +2025-11-20 11:21:52,036 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:52,036 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:21:53,038 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:53,039 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:21:55,043 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:55,044 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:21:59,257 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:21:59,446 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:22:07,462 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:22:07,466 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:22:07,486 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:22:07,487 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:22:08,490 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:22:08,490 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:22:10,493 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:22:10,493 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:22:14,498 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:22:14,498 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:22:22,507 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:22:22,507 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:22:24,615 - orchestrator - ERROR - Error scraping http://example.com/team/404: HTTP Error: 404 +2025-11-20 11:22:24,616 - orchestrator - ERROR - Error scraping http://example.com/team/network-error: Network is unreachable +2025-11-20 11:22:24,618 - orchestrator - ERROR - Error scraping http://example.com/team/404: HTTP Error: 404 +2025-11-20 11:22:24,618 - orchestrator - ERROR - Error scraping http://example.com/team/connection-refused: Connection refused +2025-11-20 11:22:24,683 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:22:24,683 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:22:24,683 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:22:24,683 - orchestrator - INFO - Executing agents for report_id: test_report_1, token_id: test_token_1 +2025-11-20 11:22:24,683 - orchestrator - INFO - Agent price_agent completed for report test_report_1. +2025-11-20 11:22:24,683 - orchestrator - INFO - Agent trend_agent completed for report test_report_1. +2025-11-20 11:22:24,683 - orchestrator - INFO - Agent volume_agent completed for report test_report_1. +2025-11-20 11:22:24,683 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:22:24,687 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:22:24,687 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:22:24,687 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:22:24,687 - orchestrator - INFO - Executing agents for report_id: test_report_3, token_id: test_token_3 +2025-11-20 11:22:24,687 - orchestrator - ERROR - Agent price_agent failed for report test_report_3 +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/core/orchestrator.py", line 54, in execute_agents + result = await asyncio.wait_for(task, timeout=settings.AGENT_TIMEOUT) # Added timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/asyncio/tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2321, in _execute_mock_call + raise effect +Exception: Agent error +2025-11-20 11:22:24,788 - orchestrator - INFO - Agent trend_agent completed for report test_report_3. +2025-11-20 11:22:24,788 - orchestrator - INFO - Agent volume_agent completed for report test_report_3. +2025-11-20 11:22:24,788 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:22:24,797 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:22:24,797 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:22:24,797 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:22:24,797 - orchestrator - INFO - Executing agents for report_id: concurrent_report, token_id: concurrent_token +2025-11-20 11:22:24,800 - orchestrator - INFO - Agent price_agent completed for report concurrent_report. +2025-11-20 11:22:24,800 - orchestrator - INFO - Agent trend_agent completed for report concurrent_report. +2025-11-20 11:22:24,800 - orchestrator - INFO - Agent volume_agent completed for report concurrent_report. +2025-11-20 11:22:24,800 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:22:24,804 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:22:24,805 - orchestrator - INFO - Registering agent: AgentTwo +2025-11-20 11:22:24,805 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_id_success, token_id: test_token_id +2025-11-20 11:22:24,805 - orchestrator - INFO - Executing agents for report_id: test_report_id_success, token_id: test_token_id +2025-11-20 11:22:24,805 - orchestrator - INFO - Agent AgentOne completed for report test_report_id_success. +2025-11-20 11:22:24,805 - orchestrator - INFO - Agent AgentTwo completed for report test_report_id_success. +2025-11-20 11:22:24,805 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:22:24,805 - orchestrator - INFO - Report test_report_id_success status updated to completed. +2025-11-20 11:22:24,807 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:22:24,807 - orchestrator - INFO - Registering agent: AgentFailing +2025-11-20 11:22:24,807 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_id_failure, token_id: test_token_id +2025-11-20 11:22:24,807 - orchestrator - INFO - Executing agents for report_id: test_report_id_failure, token_id: test_token_id +2025-11-20 11:22:24,808 - orchestrator - INFO - Agent AgentOne completed for report test_report_id_failure. +2025-11-20 11:22:24,808 - orchestrator - ERROR - Agent AgentFailing failed for report test_report_id_failure +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/core/orchestrator.py", line 54, in execute_agents + result = await asyncio.wait_for(task, timeout=settings.AGENT_TIMEOUT) # Added timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/asyncio/tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2321, in _execute_mock_call + raise effect +Exception: Agent failed +2025-11-20 11:22:24,808 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:22:24,808 - orchestrator - ERROR - Report test_report_id_failure failed due to one or more agent failures. +2025-11-20 11:22:24,808 - orchestrator - INFO - Report test_report_id_failure status updated to failed. +2025-11-20 11:22:24,810 - orchestrator - INFO - Registering agent: a +2025-11-20 11:22:24,811 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:22:24,811 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:22:24,811 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:22:24,811 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:22:24,811 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:22:24,811 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:22:24,812 - orchestrator - INFO - Registering agent: dummy_agent +2025-11-20 11:22:24,812 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:22:24,812 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:22:24,812 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:22:24,812 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:22:24,812 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:22:24,812 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:22:24,833 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:22:24,833 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:22:24,833 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:22:24,833 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:22:24,833 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,833 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,834 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,834 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,834 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:22:24,834 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,834 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:22:24,838 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,847 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:22:24,848 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:22:24,848 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:22:24,850 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:22:24,850 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:22:24,850 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:22:24,850 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:22:24,851 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:22:24,851 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:22:24,851 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:22:24,851 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:22:24,851 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:22:24,856 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:22:24,856 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:22:24,856 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:22:24,856 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:22:24,856 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,856 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,856 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,856 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,856 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:22:24,856 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,856 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:22:24,857 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,866 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:22:24,866 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:22:24,866 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:22:24,868 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:22:24,868 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:22:24,868 - orchestrator - ERROR - Onchain metrics fetch timed out for report test_report_123 +2025-11-20 11:22:24,868 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:22:24,868 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:22:24,868 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:22:24,868 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:22:24,868 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:22:24,868 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:22:24,868 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:22:24,982 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:22:24,982 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:22:24,983 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:22:24,983 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:22:24,983 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,983 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,983 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,983 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,983 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:22:24,983 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,983 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:22:24,983 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:22:24,993 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:22:24,994 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:22:24,994 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:22:24,995 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:22:24,995 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:22:24,995 - orchestrator - ERROR - Tokenomics fetch failed for report test_report_123 +2025-11-20 11:22:24,996 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:22:24,996 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:22:24,996 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:22:24,996 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:22:24,996 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:22:24,996 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:22:24,996 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:22:25,018 - api - INFO - Received report generation request for token_id: test_token +2025-11-20 11:22:25,018 - services - INFO - Generating new report for token_id: test_token +2025-11-20 11:22:25,022 - api - INFO - Received data request for report_id: cc4a9eff-5ff3-4b95-bae4-ed7906fd8486 +2025-11-20 11:22:25,022 - services - INFO - Attempting to retrieve data for report_id: cc4a9eff-5ff3-4b95-bae4-ed7906fd8486 +2025-11-20 11:22:25,022 - services - INFO - Report cc4a9eff-5ff3-4b95-bae4-ed7906fd8486 is in status: processing, returning status only. +2025-11-20 11:22:25,022 - api - WARNING - Report cc4a9eff-5ff3-4b95-bae4-ed7906fd8486 is still processing. +2025-11-20 11:22:25,030 - api - INFO - Received report generation request for token_id: test_token +2025-11-20 11:22:25,030 - services - INFO - Generating new report for token_id: test_token +2025-11-20 11:22:25,030 - orchestrator - INFO - Executing agents concurrently for report_id: 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea, token_id: test_token +2025-11-20 11:22:25,031 - orchestrator - INFO - Executing agents for report_id: 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea, token_id: test_token +2025-11-20 11:22:25,031 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea, token_id: test_token +2025-11-20 11:22:25,031 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea, token_id: test_token +2025-11-20 11:22:25,031 - orchestrator - INFO - Scraping team profiles for token test_token from URLs: [] +2025-11-20 11:22:25,031 - orchestrator - INFO - Team profile scraping completed for token test_token. +2025-11-20 11:22:25,031 - orchestrator - WARNING - No whitepaper text source provided for token test_token. Skipping whitepaper analysis. +2025-11-20 11:22:28,038 - orchestrator - INFO - Social Sentiment Agent completed for report 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea. +2025-11-20 11:22:28,038 - orchestrator - INFO - Agent social_sentiment_agent completed for report 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea. +2025-11-20 11:22:28,038 - orchestrator - INFO - Agent team_documentation_agent completed for report 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea. +2025-11-20 11:22:28,038 - orchestrator - INFO - Agent AgentOne completed for report 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea. +2025-11-20 11:22:28,038 - orchestrator - INFO - Agent AgentTwo completed for report 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea. +2025-11-20 11:22:28,038 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:22:28,040 - orchestrator - INFO - Report 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea status updated to completed. +2025-11-20 11:22:28,043 - api - INFO - Received status request for report_id: 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea +2025-11-20 11:22:28,043 - services - INFO - Retrieving status for report_id: 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea from memory. +2025-11-20 11:22:28,044 - api - INFO - Received data request for report_id: 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea +2025-11-20 11:22:28,044 - services - INFO - Attempting to retrieve data for report_id: 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea +2025-11-20 11:22:28,044 - services - INFO - Report 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea is completed, returning data. +2025-11-20 11:22:28,044 - api - INFO - Returning data for report_id: 3a6cf24e-793d-4cf5-8826-f0c69d3a70ea +2025-11-20 11:22:28,051 - api - INFO - Received data request for report_id: non_existent_report +2025-11-20 11:22:28,051 - services - INFO - Attempting to retrieve data for report_id: non_existent_report +2025-11-20 11:22:28,051 - services - WARNING - Report with id non_existent_report not found when attempting to retrieve data. +2025-11-20 11:22:28,051 - api - ERROR - Report with id non_existent_report not found or not completed for data request. +2025-11-20 11:22:28,051 - api - ERROR - ReportNotFoundException: Report not found or not completed +2025-11-20 11:23:09,880 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:23:09,881 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:23:09,881 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:23:09,881 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:23:09,881 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:23:09,881 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:23:09,881 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:23:09,881 - orchestrator - INFO - Registering agent: AgentTwo +2025-11-20 11:23:10,136 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:10,136 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:23:10,147 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:10,147 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:23:10,158 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:10,159 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:23:11,165 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:11,165 - services - ERROR - [Token ID: test_token_id] Network error fetching on-chain metrics from http://test.com/onchain: Network error +2025-11-20 11:23:11,176 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:11,176 - services - ERROR - [Token ID: test_token_id] Network error fetching on-chain metrics from http://test.com/onchain: Network error +2025-11-20 11:23:11,195 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:11,195 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:23:12,203 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:12,203 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 500. Response text truncated: +2025-11-20 11:23:12,214 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:12,214 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 500. Response text truncated: +2025-11-20 11:23:12,225 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:12,226 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:23:13,232 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:13,232 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:23:13,243 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:13,243 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:23:13,254 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:13,254 - services - ERROR - [Token ID: test_token_id] Timeout fetching on-chain metrics from http://test.com/onchain: Read timeout +2025-11-20 11:23:13,261 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:13,262 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 429. Response text truncated: Too Many Requests +2025-11-20 11:23:13,273 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:13,273 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 429. Response text truncated: Too Many Requests +2025-11-20 11:23:13,284 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:13,285 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:23:14,294 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:14,294 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 429. Response text truncated: Too Many Requests +2025-11-20 11:23:14,305 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:14,305 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 429. Response text truncated: Too Many Requests +2025-11-20 11:23:14,316 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:14,317 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 22 bytes +2025-11-20 11:23:15,323 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:15,323 - services - ERROR - [Token ID: test_token] Timeout fetching tokenomics data from http://test.com/tokenomics: Read timeout +2025-11-20 11:23:15,334 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:15,334 - services - ERROR - [Token ID: test_token] Timeout fetching tokenomics data from http://test.com/tokenomics: Read timeout +2025-11-20 11:23:15,345 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:15,345 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 22 bytes +2025-11-20 11:23:16,351 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:16,352 - services - ERROR - [Token ID: test_token] Network error fetching tokenomics data from http://test.com/tokenomics: Network error +2025-11-20 11:23:16,363 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:16,363 - services - ERROR - [Token ID: test_token] Network error fetching tokenomics data from http://test.com/tokenomics: Network error +2025-11-20 11:23:16,374 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:16,374 - services - ERROR - [Token ID: test_token] Network error fetching tokenomics data from http://test.com/tokenomics: Network error +2025-11-20 11:23:16,383 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:16,383 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:23:16,394 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:16,394 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:23:16,405 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:16,405 - services - ERROR - [Token ID: test_token_id] HTTP error fetching on-chain metrics from http://test.com/onchain: 404. Response text truncated: +2025-11-20 11:23:16,410 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:16,421 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:16,432 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:16,438 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:16,439 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 403. Response text truncated: +2025-11-20 11:23:16,450 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:16,450 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 403. Response text truncated: +2025-11-20 11:23:16,461 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:16,461 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 403. Response text truncated: +2025-11-20 11:23:16,465 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:16,466 - services - ERROR - [Token ID: test_token] An unexpected error occurred while fetching tokenomics data from http://test.com/tokenomics +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/services/agents/onchain_agent.py", line 111, in fetch_tokenomics + response = await client.get(url, params=params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2330, in _execute_mock_call + raise result +Exception: Another unexpected error +2025-11-20 11:23:16,480 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:16,480 - services - ERROR - [Token ID: test_token] An unexpected error occurred while fetching tokenomics data from http://test.com/tokenomics +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/services/agents/onchain_agent.py", line 111, in fetch_tokenomics + response = await client.get(url, params=params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2330, in _execute_mock_call + raise result +Exception: Another unexpected error +2025-11-20 11:23:16,491 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:16,492 - services - ERROR - [Token ID: test_token] An unexpected error occurred while fetching tokenomics data from http://test.com/tokenomics +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/services/agents/onchain_agent.py", line 111, in fetch_tokenomics + response = await client.get(url, params=params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2330, in _execute_mock_call + raise result +Exception: Another unexpected error +2025-11-20 11:23:16,497 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:16,498 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:23:17,506 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:17,507 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 167 bytes +2025-11-20 11:23:18,513 - services - INFO - [Token ID: test_token_id] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:18,514 - services - INFO - [Token ID: test_token_id] API call to http://test.com/onchain successful. Status: 200, Response size: 0 bytes +2025-11-20 11:23:19,521 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {} +2025-11-20 11:23:19,522 - services - INFO - [Token ID: test_token] API call to http://test.com/tokenomics successful. Status: 200, Output size: 56 bytes +2025-11-20 11:23:20,528 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:20,529 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:23:21,530 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:21,531 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:23:23,534 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:23,535 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:23:27,539 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:27,540 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:23:35,549 - services - INFO - [Token ID: invalid] Initiating API call to http://test.com/onchain with params: {} +2025-11-20 11:23:35,549 - services - ERROR - [Token ID: invalid] HTTP error fetching on-chain metrics from http://test.com/onchain: 400. Response text truncated: +2025-11-20 11:23:35,554 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:23:35,554 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:23:36,556 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:23:36,556 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:23:38,559 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:23:38,559 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:23:42,564 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:23:42,565 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:23:50,573 - services - INFO - [Token ID: test_token] Initiating API call to http://test.com/tokenomics with params: {'token_id': 'nonexistent'} +2025-11-20 11:23:50,574 - services - ERROR - [Token ID: test_token] HTTP error fetching tokenomics data from http://test.com/tokenomics: 404. Response text truncated: +2025-11-20 11:23:52,651 - orchestrator - ERROR - Error scraping http://example.com/team/404: HTTP Error: 404 +2025-11-20 11:23:52,653 - orchestrator - ERROR - Error scraping http://example.com/team/network-error: Network is unreachable +2025-11-20 11:23:52,655 - orchestrator - ERROR - Error scraping http://example.com/team/404: HTTP Error: 404 +2025-11-20 11:23:52,655 - orchestrator - ERROR - Error scraping http://example.com/team/connection-refused: Connection refused +2025-11-20 11:23:52,701 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:23:52,701 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:23:52,701 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:23:52,701 - orchestrator - INFO - Executing agents for report_id: test_report_1, token_id: test_token_1 +2025-11-20 11:23:52,702 - orchestrator - INFO - Agent price_agent completed for report test_report_1. +2025-11-20 11:23:52,702 - orchestrator - INFO - Agent trend_agent completed for report test_report_1. +2025-11-20 11:23:52,702 - orchestrator - INFO - Agent volume_agent completed for report test_report_1. +2025-11-20 11:23:52,702 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:23:52,706 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:23:52,706 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:23:52,706 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:23:52,706 - orchestrator - INFO - Executing agents for report_id: test_report_3, token_id: test_token_3 +2025-11-20 11:23:52,706 - orchestrator - ERROR - Agent price_agent failed for report test_report_3 +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/core/orchestrator.py", line 54, in execute_agents + result = await asyncio.wait_for(task, timeout=settings.AGENT_TIMEOUT) # Added timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/asyncio/tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2321, in _execute_mock_call + raise effect +Exception: Agent error +2025-11-20 11:23:52,807 - orchestrator - INFO - Agent trend_agent completed for report test_report_3. +2025-11-20 11:23:52,808 - orchestrator - INFO - Agent volume_agent completed for report test_report_3. +2025-11-20 11:23:52,808 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:23:52,817 - orchestrator - INFO - Registering agent: price_agent +2025-11-20 11:23:52,817 - orchestrator - INFO - Registering agent: trend_agent +2025-11-20 11:23:52,817 - orchestrator - INFO - Registering agent: volume_agent +2025-11-20 11:23:52,817 - orchestrator - INFO - Executing agents for report_id: concurrent_report, token_id: concurrent_token +2025-11-20 11:23:52,820 - orchestrator - INFO - Agent price_agent completed for report concurrent_report. +2025-11-20 11:23:52,820 - orchestrator - INFO - Agent trend_agent completed for report concurrent_report. +2025-11-20 11:23:52,820 - orchestrator - INFO - Agent volume_agent completed for report concurrent_report. +2025-11-20 11:23:52,820 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:23:52,823 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:23:52,824 - orchestrator - INFO - Registering agent: AgentTwo +2025-11-20 11:23:52,824 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_id_success, token_id: test_token_id +2025-11-20 11:23:52,824 - orchestrator - INFO - Executing agents for report_id: test_report_id_success, token_id: test_token_id +2025-11-20 11:23:52,824 - orchestrator - INFO - Agent AgentOne completed for report test_report_id_success. +2025-11-20 11:23:52,824 - orchestrator - INFO - Agent AgentTwo completed for report test_report_id_success. +2025-11-20 11:23:52,824 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:23:52,824 - orchestrator - INFO - Report test_report_id_success status updated to completed. +2025-11-20 11:23:52,826 - orchestrator - INFO - Registering agent: AgentOne +2025-11-20 11:23:52,826 - orchestrator - INFO - Registering agent: AgentFailing +2025-11-20 11:23:52,826 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_id_failure, token_id: test_token_id +2025-11-20 11:23:52,826 - orchestrator - INFO - Executing agents for report_id: test_report_id_failure, token_id: test_token_id +2025-11-20 11:23:52,826 - orchestrator - INFO - Agent AgentOne completed for report test_report_id_failure. +2025-11-20 11:23:52,826 - orchestrator - ERROR - Agent AgentFailing failed for report test_report_id_failure +Traceback (most recent call last): + File "/home/repositories/LumintelAnalytics/ChainReport-API/backend/app/core/orchestrator.py", line 54, in execute_agents + result = await asyncio.wait_for(task, timeout=settings.AGENT_TIMEOUT) # Added timeout + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/usr/lib/python3.13/asyncio/tasks.py", line 507, in wait_for + return await fut + ^^^^^^^^^ + File "/usr/lib/python3.13/unittest/mock.py", line 2321, in _execute_mock_call + raise effect +Exception: Agent failed +2025-11-20 11:23:52,827 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:23:52,827 - orchestrator - ERROR - Report test_report_id_failure failed due to one or more agent failures. +2025-11-20 11:23:52,827 - orchestrator - INFO - Report test_report_id_failure status updated to failed. +2025-11-20 11:23:52,828 - orchestrator - INFO - Registering agent: a +2025-11-20 11:23:52,830 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:23:52,830 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:23:52,830 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:23:52,830 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:23:52,830 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:23:52,830 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:23:52,831 - orchestrator - INFO - Registering agent: dummy_agent +2025-11-20 11:23:52,831 - orchestrator - WARNING - Configuration Error: ONCHAIN_METRICS_URL is missing. Skipping agent registration. +2025-11-20 11:23:52,831 - orchestrator - WARNING - Onchain Data Agent will not be registered due to invalid configuration. +2025-11-20 11:23:52,831 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:23:52,831 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:23:52,831 - orchestrator - WARNING - Configuration Error: CODE_AUDIT_REPO_URL is missing. Skipping agent registration. +2025-11-20 11:23:52,831 - orchestrator - WARNING - Code/Audit Agent will not be registered due to invalid CODE_AUDIT_REPO_URL configuration. +2025-11-20 11:23:52,851 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:23:52,851 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:23:52,851 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:23:52,851 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:23:52,851 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,851 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,851 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,852 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,852 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:23:52,852 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,852 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:23:52,853 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,862 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:23:52,862 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:23:52,863 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:23:52,864 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:23:52,864 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:23:52,864 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:23:52,864 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:23:52,865 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:23:52,865 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:23:52,865 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:23:52,865 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:23:52,865 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:23:52,871 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:23:52,871 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:23:52,871 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:23:52,871 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:23:52,871 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,871 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,871 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,871 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,871 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:23:52,871 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,871 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:23:52,872 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,881 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:23:52,881 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:23:52,881 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:23:52,883 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:23:52,883 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:23:52,883 - orchestrator - ERROR - Onchain metrics fetch timed out for report test_report_123 +2025-11-20 11:23:52,883 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:23:52,883 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:23:52,883 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:23:52,883 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:23:52,883 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:23:52,883 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:23:52,883 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:23:52,932 - orchestrator - INFO - Registering agent: onchain_data_agent +2025-11-20 11:23:52,932 - orchestrator - INFO - Registering agent: social_sentiment_agent +2025-11-20 11:23:52,932 - orchestrator - INFO - Registering agent: team_documentation_agent +2025-11-20 11:23:52,932 - orchestrator - INFO - Registering agent: code_audit_agent +2025-11-20 11:23:52,932 - orchestrator - INFO - Executing agents concurrently for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,932 - orchestrator - INFO - Executing agents for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,932 - orchestrator - INFO - Calling Onchain Data Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,932 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,932 - orchestrator - INFO - Social Sentiment Agent completed for report test_report_123. +2025-11-20 11:23:52,932 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,932 - orchestrator - INFO - Scraping team profiles for token ethereum from URLs: ['http://mock-team-profile.com'] +2025-11-20 11:23:52,933 - orchestrator - INFO - Calling Code/Audit Agent for report_id: test_report_123, token_id: ethereum +2025-11-20 11:23:52,942 - orchestrator - INFO - Fetching repository metrics for http://mock-code-audit.com/repo +2025-11-20 11:23:52,942 - orchestrator - INFO - Analyzing code activity for http://mock-code-audit.com/repo +2025-11-20 11:23:52,942 - orchestrator - INFO - Searching and summarizing audit reports for http://mock-code-audit.com/repo +2025-11-20 11:23:52,944 - orchestrator - INFO - Team profile scraping completed for token ethereum. +2025-11-20 11:23:52,944 - orchestrator - INFO - Analyzing whitepaper for token ethereum from source: mock whitepaper text +2025-11-20 11:23:52,944 - orchestrator - ERROR - Tokenomics fetch failed for report test_report_123 +2025-11-20 11:23:52,944 - orchestrator - INFO - Agent onchain_data_agent completed for report test_report_123. +2025-11-20 11:23:52,944 - orchestrator - INFO - Agent social_sentiment_agent completed for report test_report_123. +2025-11-20 11:23:52,944 - orchestrator - INFO - Whitepaper analysis completed for token ethereum. +2025-11-20 11:23:52,945 - orchestrator - INFO - Agent team_documentation_agent completed for report test_report_123. +2025-11-20 11:23:52,945 - orchestrator - INFO - Agent code_audit_agent completed for report test_report_123. +2025-11-20 11:23:52,945 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:23:52,945 - orchestrator - INFO - Report test_report_123 status updated to completed. +2025-11-20 11:23:52,958 - api - INFO - Received report generation request for token_id: test_token +2025-11-20 11:23:52,958 - services - INFO - Generating new report for token_id: test_token +2025-11-20 11:23:52,959 - api - INFO - Received data request for report_id: 1a94b0ce-54fd-4117-828d-dc7e8da23d48 +2025-11-20 11:23:52,959 - services - INFO - Attempting to retrieve data for report_id: 1a94b0ce-54fd-4117-828d-dc7e8da23d48 +2025-11-20 11:23:52,960 - services - INFO - Report 1a94b0ce-54fd-4117-828d-dc7e8da23d48 is in status: processing, returning status only. +2025-11-20 11:23:52,960 - api - WARNING - Report 1a94b0ce-54fd-4117-828d-dc7e8da23d48 is still processing. +2025-11-20 11:23:52,965 - api - INFO - Received report generation request for token_id: test_token +2025-11-20 11:23:52,965 - services - INFO - Generating new report for token_id: test_token +2025-11-20 11:23:52,966 - orchestrator - INFO - Executing agents concurrently for report_id: 6bac1c91-0a77-4a15-beed-8b30599ed31d, token_id: test_token +2025-11-20 11:23:52,966 - orchestrator - INFO - Executing agents for report_id: 6bac1c91-0a77-4a15-beed-8b30599ed31d, token_id: test_token +2025-11-20 11:23:52,966 - orchestrator - INFO - Calling Social Sentiment Agent for report_id: 6bac1c91-0a77-4a15-beed-8b30599ed31d, token_id: test_token +2025-11-20 11:23:52,966 - orchestrator - INFO - Calling Team and Documentation Agent for report_id: 6bac1c91-0a77-4a15-beed-8b30599ed31d, token_id: test_token +2025-11-20 11:23:52,966 - orchestrator - INFO - Scraping team profiles for token test_token from URLs: [] +2025-11-20 11:23:52,966 - orchestrator - INFO - Team profile scraping completed for token test_token. +2025-11-20 11:23:52,966 - orchestrator - WARNING - No whitepaper text source provided for token test_token. Skipping whitepaper analysis. +2025-11-20 11:23:55,971 - orchestrator - INFO - Social Sentiment Agent completed for report 6bac1c91-0a77-4a15-beed-8b30599ed31d. +2025-11-20 11:23:55,971 - orchestrator - INFO - Agent social_sentiment_agent completed for report 6bac1c91-0a77-4a15-beed-8b30599ed31d. +2025-11-20 11:23:55,971 - orchestrator - INFO - Agent team_documentation_agent completed for report 6bac1c91-0a77-4a15-beed-8b30599ed31d. +2025-11-20 11:23:55,971 - orchestrator - INFO - Agent AgentOne completed for report 6bac1c91-0a77-4a15-beed-8b30599ed31d. +2025-11-20 11:23:55,971 - orchestrator - INFO - Agent AgentTwo completed for report 6bac1c91-0a77-4a15-beed-8b30599ed31d. +2025-11-20 11:23:55,971 - orchestrator - INFO - Aggregating results from executed agents. +2025-11-20 11:23:55,971 - orchestrator - INFO - Report 6bac1c91-0a77-4a15-beed-8b30599ed31d status updated to completed. +2025-11-20 11:23:55,973 - api - INFO - Received status request for report_id: 6bac1c91-0a77-4a15-beed-8b30599ed31d +2025-11-20 11:23:55,973 - services - INFO - Retrieving status for report_id: 6bac1c91-0a77-4a15-beed-8b30599ed31d from memory. +2025-11-20 11:23:55,974 - api - INFO - Received data request for report_id: 6bac1c91-0a77-4a15-beed-8b30599ed31d +2025-11-20 11:23:55,975 - services - INFO - Attempting to retrieve data for report_id: 6bac1c91-0a77-4a15-beed-8b30599ed31d +2025-11-20 11:23:55,975 - services - INFO - Report 6bac1c91-0a77-4a15-beed-8b30599ed31d is completed, returning data. +2025-11-20 11:23:55,975 - api - INFO - Returning data for report_id: 6bac1c91-0a77-4a15-beed-8b30599ed31d +2025-11-20 11:23:55,983 - api - INFO - Received data request for report_id: non_existent_report +2025-11-20 11:23:55,983 - services - INFO - Attempting to retrieve data for report_id: non_existent_report +2025-11-20 11:23:55,983 - services - WARNING - Report with id non_existent_report not found when attempting to retrieve data. +2025-11-20 11:23:55,983 - api - ERROR - Report with id non_existent_report not found or not completed for data request. +2025-11-20 11:23:55,983 - api - ERROR - ReportNotFoundException: Report not found or not completed diff --git a/backend/tests/__pycache__/test_orchestrator_integration.cpython-313-pytest-8.4.2.pyc b/backend/tests/__pycache__/test_orchestrator_integration.cpython-313-pytest-8.4.2.pyc index 43bd9d57e5e4ff5f6f17e03a6631e809a4e938a8..24527f3511e60fc0cf497f7b37c01cb0901b90ef 100644 GIT binary patch delta 3637 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