@sparrowai/sparrow-mcp 1.1.3 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scripts/mcp-test/mcp-client.js +1 -1
- package/dist/scripts/test-runner/check-failed-tests.js +1 -1
- package/dist/scripts/test-runner/compare-responses.js +1 -1
- package/dist/scripts/test-runner/standalone-test-fixed-header.js +1 -1
- package/dist/scripts/test-runner/standalone-test.js +1 -1
- package/dist/src/config/appConfig.js +1 -1
- package/dist/src/config/constants.js +1 -1
- package/dist/src/controllers/__tests__/analysis.controller.test.js +1 -1
- package/dist/src/controllers/__tests__/sast.controller.test.js +1 -1
- package/dist/src/controllers/__tests__/sca.controller.test.js +1 -1
- package/dist/src/controllers/__tests__/security.controller.test.js +1 -1
- package/dist/src/controllers/__tests__/system.controller.test.js +1 -1
- package/dist/src/controllers/analysis.controller.js +1 -1
- package/dist/src/controllers/sast.controller.js +1 -1
- package/dist/src/controllers/sca.controller.js +1 -1
- package/dist/src/controllers/security.controller.js +1 -1
- package/dist/src/controllers/system.controller.js +1 -1
- package/dist/src/schemas/tool.schemas.js +1 -1
- package/dist/src/server.js +1 -1
- package/dist/src/services/__tests__/checker.service.test.js +1 -1
- package/dist/src/services/__tests__/llm.service.test.js +1 -1
- package/dist/src/services/__tests__/s3.service.test.js +1 -1
- package/dist/src/services/__tests__/sparrow.service.test.js +1 -1
- package/dist/src/services/analysis.service.js +1 -1
- package/dist/src/services/checker.service.js +1 -1
- package/dist/src/services/llm/AnthropicProvider.js +1 -1
- package/dist/src/services/llm/BedrockProvider.js +1 -1
- package/dist/src/services/llm/GeminiProvider.js +1 -1
- package/dist/src/services/llm/LLMFactory.js +1 -1
- package/dist/src/services/llm/LLMProvider.js +1 -1
- package/dist/src/services/llm/OllamaProvider.js +1 -1
- package/dist/src/services/llm/OpenAIProvider.js +1 -1
- package/dist/src/services/llm.service.js +1 -1
- package/dist/src/services/s3.service.js +1 -1
- package/dist/src/services/sparrow.service.js +1 -1
- package/dist/src/types/types.js +1 -1
- package/dist/src/utils/__tests__/crypto.util.test.js +1 -1
- package/dist/src/utils/__tests__/diff.util.test.js +1 -1
- package/dist/src/utils/__tests__/fileManager.test.js +1 -1
- package/dist/src/utils/__tests__/fileManagerSecure.test.js +1 -1
- package/dist/src/utils/__tests__/logger.test.js +1 -1
- package/dist/src/utils/crypto.util.js +1 -1
- package/dist/src/utils/diff.util.js +1 -1
- package/dist/src/utils/fileManager.js +1 -1
- package/dist/src/utils/fileManagerSecure.js +1 -1
- package/dist/src/utils/logger.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const a4_0x2d0472=a4_0x54cc;(function(_0x511719,_0x1f9f11){const _0x54667b=a4_0x54cc,_0x2d4b54=_0x511719();while(!![]){try{const _0x578e4e=parseInt(_0x54667b(0x1ec))/0x1*(-parseInt(_0x54667b(0x238))/0x2)+parseInt(_0x54667b(0x351))/0x3*(parseInt(_0x54667b(0x1de))/0x4)+-parseInt(_0x54667b(0x2b1))/0x5*(parseInt(_0x54667b(0x3c5))/0x6)+parseInt(_0x54667b(0x323))/0x7*(parseInt(_0x54667b(0x388))/0x8)+-parseInt(_0x54667b(0x3df))/0x9+parseInt(_0x54667b(0x439))/0xa+-parseInt(_0x54667b(0x1fe))/0xb;if(_0x578e4e===_0x1f9f11)break;else _0x2d4b54['push'](_0x2d4b54['shift']());}catch(_0x4e01ef){_0x2d4b54['push'](_0x2d4b54['shift']());}}}(a4_0x5e32,0xe9810));const a4_0x4286d9=(function(){let _0x542ab7=!![];return function(_0x1d9e79,_0x25e886){const _0x430cd2=_0x542ab7?function(){const _0x15fa08=a4_0x54cc;if(_0x25e886){const _0x506453=_0x25e886[_0x15fa08(0x3f4)](_0x1d9e79,arguments);return _0x25e886=null,_0x506453;}}:function(){};return _0x542ab7=![],_0x430cd2;};}()),a4_0x1609cf=a4_0x4286d9(this,function(){const _0x32c1d4=a4_0x54cc;return a4_0x1609cf['toString']()[_0x32c1d4(0x228)](_0x32c1d4(0x366)+'+$')[_0x32c1d4(0x2cf)]()[_0x32c1d4(0x3fc)+'r'](a4_0x1609cf)[_0x32c1d4(0x228)](_0x32c1d4(0x366)+'+$');});function a4_0x5e32(){const _0x3491d6=['(((.+)+)+)','대용량\x20ZIP\x20파일','mended)','상태\x20반환','━━━━━━━━━━','s\x20retrieva','Multi-file','filter','ncy\x20projec','analysisId','ts:\x20','CVE,\x20CVSS,','AIL\x20handli','uxbpQ','all','\x20ID\x20추적','1.\x20취약점\x20있는\x20','1.\x20취약점\x20목록\x20','\x20ID','TC026','ity\x20detail','TC050','node','ller.java\x20','Size\x20limit','TC001','le)','ss\x20UserCon','src','SCA\x20result','entries','mulate\x20LLM','rned\x20as\x20ex','\x20\x20\x201.\x20실행\x20폴','184xuTTux','TC053','1.\x20ZIP\x20파일\x20','⚠️\x20\x20경고:\x20SPA','1.\x20존재하지\x20않는','판단근거','r\x20containi','존재하지\x20않는\x20SC','utf-8','TC047','TC013','request','\x20분석','.json\x20파일\x20경','lable\x20-\x20sk','N/A\x20-\x20Manu','lder_sast','\x20analysis\x20','수정된\x20코드\x20반환','jFDuD','track_anal','fileName:\x20','TC055','passed','크플로우','validation','p_sast','.\x20analysis','ndows:\x20$en','Large\x20ZIP\x20','rolAzure.j','TC006','pped','const\x20expr','TC019','TC042',']\x20ERROR\x20(','\x20+\x20\x22\x27\x22;\x0a\x20\x20','TC023','trieved:\x20','as\x20accepte','잘못된\x20섹션\x20입력\x20','onst\x20query','TC015','ended)','STOP','alysisId\x20f','1.\x20빈\x20배열\x20입력','1초)','\x20void\x20logi','racking\x20ve','TC004','...','ZIP\x20파일\x20없음','ire(\x27expre','컴포넌트\x20및\x20취약점','TC016','ZIP\x20파일\x20SCA','+\x20username','nalysis','lities','8682bkYztF','bmit\x20inval','더에\x20.env\x20파일','public\x20cla','폴더\x20경로\x20없음','TC056','\x20반환\x0astatus','기본\x20가이드\x20반환','_API_KEY\x20미','러리만\x20사용','TC040','배열\x201개)','1.\x20폴더에서\x20자동','les_sast','\x20JavaScrip','ble\x20-\x20skip','rned:\x20','ied','지원\x20언어\x20확인\x20-','sparrow-mc','for\x20','\x20도구\x20실행','TC009','sort','or\x20SCA','analyze_fi','1911456gxQSjX','\x20\x20\x20\x20\x20\x20-\x20Wi','COMPLETE\x20반','Polling\x20ti','e\x20or\x20error','name','HZoFn','filePath','╔═════════','rval\x20polli','t\x20verified','Clean\x20code','존재하지\x20않는\x20파일','al\x20test\x20re','TC010','r\x20not\x20avai','TC032','demand.spa','map','\x20\x20\x20\x20\x20\x20Stri','warn','apply','컴포넌트\x20정보\x20확인','get_analys','\x20생성:\x20SPARR','toLowerCas','file\x20analy','입력\x0a3.\x20도구\x20실','https://on','constructo','is_results','TC020','PGnYV','Error\x20retu','단계별\x20알림','TC049','Error/Warn','없는\x20폴더\x20SCA','1.\x20SPARROW','1.\x20확장자\x20없는\x20','Failed\x20to\x20','n(String\x20u','Name에\x20.js\x20','ing\x20return','cted','ified\x20(man','les_sca','미완료\x20분석으로\x20코','오류\x20또는\x20경고','오류\x20메시지\x20반환','으로\x20의존성\x20파일\x20','.id;\x0a\x20\x20\x20\x20c','ual\x20test\x20w','══════════','\x20completed','정상동작','sast','SCA','테스트데이터','ped','\x20테스트\x20(MCP\x20','CommandInj','is\x20','ZIP\x20size\x20v','Id로\x20상태\x20조회','TC018','tList/anal','ge.json\x20wi','fileName','/타임아웃','ccepted\x20fo','로\x20배열\x20입력\x0a2.','eEkgS','════╝\x0a','1.\x20.txt\x20파일','TC036','1.\x20안전한\x20라이브','1.\x20취약점\x20없는\x20','\x20오류','테스트ID','30분\x20이상\x20소요\x20','s\x20verified','\x20=\x20\x22SELECT','존재하지\x20않는\x20분석','\x20증가','troller\x20{\x0a','\x20SCA','경계조건','TC030','분석\x20성공','10914370esnLfs','완료\x0a2.\x20결과\x20조','1.\x20분석\x20진행\x20중','존재하지\x20않는\x20폴더','severity,\x20','TC029','\x20경로','1.\x20분석\x20시작\x0a2','writeFileS','통합테스트','\x20파일','cessfully\x20','1.\x20ANALYSI','행률\x20확인','tatus\x20retu','d\x20verify\x20F','Error\x20dete','y\x20or\x20error','TC054','oxvBk','p_sca','analysisLi','us:\x20','AqZAx','SCA\x20결과\x20조회\x20','ation\x20veri','의존성\x20파일\x20자동\x20','id\x20code\x20an','\x22your-key\x22','le_sast','\x0a2.\x20도구\x20실행','\x20E2E\x20verif','LLM\x20서비스\x20장애','able\x20-\x20ski','크기\x20제한\x20처리','계\x20진행률\x20업데이트','rationale','s\x20accepted','FtsLW','tool','nt/file.ja','Incomplete','expected','4MBrquZ','1.\x20의존성\x20파일\x20','분석\x20링크','quired:\x20un','.\x20도구\x20실행','연결\x20종료','도구명','is_status','ults','TC017','오류\x20또는\x20즉시\x20반','zipFilePat','-\x20skipped','Real\x20Execu','41621QjGTtF','TC034','ysis_progr','취약점\x20없는\x20분석\x20','Single-ite','\x20\x20\x20통과:\x20','API\x20키\x20없음\x20오','테스트분류','nual\x20test\x20','TC044','Folder\x20SCA','\x20vulnerabi','1.\x20여러\x20파일\x20경','\x0a=========','index.js','결\x20성공\x0a','API_KEY\x20=\x20','ERROR:\x20','17058239aNjVYJ','TC039','/nonexiste','er\x20ZIP\x20cre','여러\x20파일\x20SCA\x20','ysisId\x20반환','Stage\x20noti','1.\x20SCA\x20완료\x0a','1.\x20package','\x20심각도\x20정보','quired\x20(si','t\x20app\x20=\x20ex','드\x20생성','석\x20→\x20결과','includes','대용량\x20폴더\x20ZIP','2.\x20결과\x20조회','1.\x20대용량\x20폴더\x20','Large\x20fold','BUkqK','readFileSy','find','\x0a━━━━━━━━━','rieved\x20suc','ess\x20=\x20requ','ied\x20(MCP):','with\x20folde','Vulnerable','======','get_sparro','\x20\x20\x20설정\x20방법:','t\x20userId\x20=','TC043','내장\x20테스트\x20케이스','\x20시작\x0a','TC037','ess','ZIP\x20파일\x20SAS','Diff\x20forma','FPLxn','server.js','미완료\x20분석\x20결과\x20','search','분석\x0a2.\x20코드\x20생','프로젝트','분석\x0a2.\x20결과\x20조','Test\x20folde','빈\x20파일\x20경로\x20배열','lder_sca','ontent\x20입력','\x20\x20\x20Sparrow','\x20경로\x20입력\x0a2.\x20','ed:\x20','파일명\x20입력\x0a2.\x20','\x20분석\x20시도','stop','.\x20Found\x20','=your-key','38ENZHYx','.\x20diff\x20필드\x20','\x20\x20\x20\x20public','d\x20(manual\x20','/ko/reques','TC048','ng\x20query\x20=','빈\x20파일\x20내용\x20분석','TC041','안전한\x20코드\x20생성\x20','ZIP\x20파일\x20없음\x20','\x20verified','resolve','meout\x20hand','1.\x20컴포넌트\x20목록','tent에\x20Java','ROW_API_KE','COMPLETE','TC007','-files/qa_','미완료\x20SCA\x20분석','계\x20진행률\x20확인','SCA\x20Analys','\x0a📄\x20결과\x20저장:\x20','\x20확인','immediatel','1.\x20잘못된\x20ID로','.java','filePaths','\x20ZIP\x20경로','dirname','replace','id=\x22\x20+\x20use','테스트절차','analyze_fo','now','TC059','\x20조회','TC022','S\x20단계\x20진입\x0a2.','1.\x20분석\x20완료\x0a2','nux/Mac:\x20e','Error\x20hand','get_sca_an','\x20error','procedure','TC045','isError','\x20폴링','on\x20verifie','ing\x20verifi','\x20\x22SELECT\x20*','1.\x20여러\x20의존성\x20','\x20코드\x20입력\x0a2.\x20','ng)','1.\x20실패한\x20분석\x20','폴더\x20경로\x20없음\x20S','ied\x20for\x20cl','Auto-disco','전체\x20워크플로우\x20테','TC033','입력\x0a2.\x20file','Unified\x20Di','join','folderPath','1.\x20분석\x20완료\x20대','w_mcp_guid','OW_API_KEY','ery);\x0a});','Vulnerabil','v:SPARROW_','error','rror\x20but\x20s','1.\x20잘못된\x20ana','ecure_code','n:\x20','우선순위','NALYSIS\x20→\x20','Analysis\x20a','message','\x20SCA\x20handl','tools/call','with\x20ZIP\x20f','ling)','and\x20verify','progress\x20값','rId;\x0a\x20\x20\x20\x20r','았습니다.','\x20req.query','Y=\x22your-ke','yarnpkg/pa','확장자\x20없는\x20파일명','빈\x20취약점\x20목록','TC051','Content','priority','ng\x20package','SUCCESS','cked\x20for\x20','Diff\x20형식\x20확인','n\x20포함','No-depende','nt.zip','Antigravit','text','\x20\x20\x20\x20\x20\x20-\x20Li','✅\x20테스트\x20완료','analyze_zi','1.\x20JavaScr','\x20파일\x20경로\x20입력\x0a','전체\x20흐름\x20성공','pdates\x20ver','ean\x20code','ckage.json','\x20FROM\x20user','tc/big_fil','분석\x20상태\x20조회\x20성','ide\x20behavi','개\x20TC)\x20====','t:\x20Java\x20co','\x20attempts','3905tozNhT','타임아웃\x20처리','alidation\x20','\x20Analysis\x20','TC024','existsSync','y\x22\x0a','SCA\x20분석\x20결과\x20','ss\x27);\x0acons','{\x0a\x20\x20\x20\x20cons','pected:\x20','사전조건','완료된\x20분석\x20상태\x20','TC027','Test\x20file\x20','.\x20진행\x20추적','package.js','MCP\x20서버:\x20','AccessCont','Progress\x20t','alysis\x20ver','\x20initiated','ling\x20verif','1.\x20대용량\x20분석\x20','\x20반환','\x20포함','match','단계별\x20알림\x20확인','.\x20세부정보\x20확인','rror\x20but\x20a','toString','\x20진행률\x20확인','rror','확장자\x20사용','로\x20입력','최대\x20대기\x20시간:\x20','테스트명','ipt\x20파일\x20내용\x20','es)','log','ROCESS\x20→\x20A','1.\x20폴더\x20경로\x20입','lysis\x20','le_sca','\x20validatio','push','❌\x20테스트\x20실행\x20실','content','==========','ipped','폴더\x20전체\x20SCA\x20','폴더\x20전체\x20SAST','Short\x20inte','extract\x20an','ZIP\x20SCA\x20an','Real\x20Ex\x20Ve','values','alysis_res','d\x20(guide\x20t','취약점\x20정보\x20확인','press();\x0aa','도구\x20실행','NullReturn','jJJXV','W_API_KEY\x20','경로\x20입력\x0a2.\x20도','Test.java','오류처리','BUInA','1.\x20분석\x20→\x20추적','quired\x20(cr','rified','1.\x20여러\x20파일\x20분','generate_s','Client)\x20\x20\x20','1.\x20결과\x20조회\x0a2','이름,\x20버전,\x20라이','.\x20상태\x20조회로\x20진','TC052','../../test','TC012','JwFhv','est\x20recomm','exit','.\x20결과\x20조회','력\x0a2.\x20도구\x20실행','1.\x20잘못된\x20섹션으','Expected\x20e','on\x20SCA\x20분석','start','\x20needed)','\x20\x20\x202.\x20환경변수','not\x20availa','2.\x20도구\x20실행','1.\x20LLM\x20서비스','Empty.java','analysis\x20','ff\x20형식','quired\x20(su','word)\x20{\x0a\x20\x20','Progress\x20u','eate\x20packa','ied\x20(test\x20','arguments','status','al\x20test\x20if',':\x20INIT','오류\x20메시지','════╗','\x20SAST\x20분석\x20성','Results\x20re','ername=\x27\x22\x20','TC046','결과\x20조회','553497MNaaSO','E2E','\x20추적\x20시도','verified','length','🧪\x20Sparrow\x20','\x20분석\x20성공','../../..','nalysis\x20ve','TC002','단일\x20파일\x20분석\x20(','EXECUTION\x20','.json)','sca','스\x20사용','TC028','\x20병렬\x20실행\x20완료\x20','ng\x20verifie','rom\x20result','readme.txt','ync','meout\x20afte','Tested\x20-\x20m','tring\x20pass','xrdXl','기대결과','structured','sis\x20','설정\x0a2.\x20도구\x20실','로\x20가이드\x20요청','ser\x27,\x20(req','999999999','FAIL\x20상태\x20처리','1.\x20빈\x20경로\x20입력','\x20\x20\x20\x20\x20\x20\x20║','1.\x20진행\x20추적\x20시','TC025','║\x20\x20\x20\x20\x20\x20\x20\x20\x20','toFixed','약점\x20정보','Status\x20ret','1.\x20코드\x20생성\x0a2','AhuoS','fileConten','s):','rror\x20but\x20w','5191203qBOTFV','ller','pp.get(\x27/u','취약점\x20없는\x20오픈소','.\x20Componen','sername,\x20S','분석\x20실패\x20상태\x20조','\x20반환\x20또는\x20크기\x20','L\x20injectio','tion\x20Verif','lities.','0개\x20컴포넌트\x20또는','ith\x20ZIP\x20fi','r\x20.txt\x20fil','구\x20실행','\x0a✅\x20MCP\x20서버\x20','TC008','파일\x20경로\x20입력\x0a2','ETTest.asp','의존성\x20파일\x20없는\x20','=\x20병렬\x20실행\x20시작'];a4_0x5e32=function(){return _0x3491d6;};return a4_0x5e32();}a4_0x1609cf();import'dotenv/config';import{McpClient}from'../mcp-test/mcp-client.js';import a4_0x2deaee from'fs';import a4_0x54bae8 from'path';function a4_0x54cc(_0x407c45,_0x11cca8){_0x407c45=_0x407c45-0x1c8;const _0x3d39fb=a4_0x5e32();let _0x1609cf=_0x3d39fb[_0x407c45];return _0x1609cf;}import{fileURLToPath}from'url';const __filename=fileURLToPath(import.meta.url),__dirname=a4_0x54bae8[a4_0x2d0472(0x256)](__filename),SPARROW_BASE_URL=process.env.SPARROW_API_URL||a4_0x2d0472(0x3fb)+a4_0x2d0472(0x3f0)+'rrowcloud.'+'ai',MAX_POLL_ATTEMPTS=0x12c,POLL_INTERVAL_MS=0xbb8;function getAnalysisLink(_0x1b8eb4){const _0x382d00=a4_0x2d0472;return SPARROW_BASE_URL+(_0x382d00(0x23c)+_0x382d00(0x421)+'ysis/')+_0x1b8eb4;}async function pollUntilComplete(_0x128cd8,_0x57e967){const _0x10545d=a4_0x2d0472,_0x422396={};_0x422396[_0x10545d(0x225)]=_0x10545d(0x249);const _0x5da850=_0x422396;let _0x532a88=0x0;while(_0x532a88<MAX_POLL_ATTEMPTS){const _0xd1cc06={};_0xd1cc06['analysisId']=_0x57e967;const _0x5bfd1b={};_0x5bfd1b[_0x10545d(0x3e4)]=_0x10545d(0x3f6)+_0x10545d(0x1e5),_0x5bfd1b[_0x10545d(0x318)]=_0xd1cc06;const _0x3ced48=await _0x128cd8[_0x10545d(0x393)](_0x10545d(0x289),_0x5bfd1b),_0x5598f9=String(_0x3ced48[_0x10545d(0x2e0)][0x0][_0x10545d(0x2a0)])['toUpperCas'+'e']();if(_0x5598f9['includes'](_0x5da850[_0x10545d(0x225)])||_0x5598f9[_0x10545d(0x20c)](_0x10545d(0x299))||_0x5598f9['includes']('FAIL')||_0x5598f9[_0x10545d(0x20c)](_0x10545d(0x3b5))){const _0x42ba19={};return _0x42ba19[_0x10545d(0x319)]=_0x10545d(0x249),_0x42ba19['result']=_0x3ced48[_0x10545d(0x2e0)][0x0][_0x10545d(0x2a0)],_0x42ba19;}await new Promise(_0x3e86b4=>setTimeout(_0x3e86b4,POLL_INTERVAL_MS)),_0x532a88++;}throw new Error(_0x10545d(0x3e2)+_0x10545d(0x338)+'r\x20'+_0x532a88+_0x10545d(0x2b0));}function isErrorResponse(_0x50b5a1){const _0x1a731f=a4_0x2d0472,_0x14545c={};_0x14545c[_0x1a731f(0x427)]=_0x1a731f(0x3a1);const _0xd95b07=_0x14545c;if(_0x50b5a1[_0x1a731f(0x267)]===!![])return!![];if(_0x50b5a1[_0x1a731f(0x33d)+_0x1a731f(0x296)]?.['error'])return!![];const _0x1ddd3d=_0x50b5a1[_0x1a731f(0x2e0)]?.[0x0]?.[_0x1a731f(0x2a0)]?.[_0x1a731f(0x3f8)+'e']()||'';return _0x1ddd3d[_0x1a731f(0x20c)]('error')||_0x1ddd3d[_0x1a731f(0x20c)](_0xd95b07['eEkgS']);}function escapeTsvField(_0x557151,_0x246966=![]){const _0x25c4cd=a4_0x2d0472;if(!_0x557151)return'\x22\x22';let _0x1e3954=_0x557151;return _0x246966?(_0x1e3954=_0x1e3954[_0x25c4cd(0x257)](/\r\n/g,'\x0a'),_0x1e3954=_0x1e3954['replace'](/\t/g,'\x20')):(_0x1e3954=_0x1e3954['replace'](/\r?\n/g,'\x20'),_0x1e3954=_0x1e3954[_0x25c4cd(0x257)](/\t/g,'\x20'),_0x1e3954=_0x1e3954[_0x25c4cd(0x257)](/\s+/g,'\x20'),_0x1e3954=_0x1e3954['trim']()),_0x1e3954=_0x1e3954[_0x25c4cd(0x257)](/"/g,'\x22\x22'),'\x22'+_0x1e3954+'\x22';}function saveTsv(_0x14f05f,_0x30502b){const _0x211144=a4_0x2d0472,_0x2c2de9={};_0x2c2de9['jFDuD']=_0x211144(0x390);const _0x292b8c=_0x2c2de9,_0x912274=[_0x211144(0x42e),_0x211144(0x1e4),_0x211144(0x1f3),_0x211144(0x2d5),_0x211144(0x2bc),_0x211144(0x259),_0x211144(0x33c),_0x211144(0x419),_0x211144(0x284),'상태','담당자','결과',_0x211144(0x38d),_0x211144(0x1e0),'비고'],_0x181b90=[_0x912274['map'](_0x120e55=>escapeTsvField(_0x120e55))[_0x211144(0x277)]('\x09')],_0xea8d5d=Object[_0x211144(0x384)](_0x14f05f)[_0x211144(0x3dc)]((_0x462a71,_0x58e3bf)=>{const _0x1f5bf6=_0x211144,_0xaeaa1f=parseInt(_0x462a71[0x0][_0x1f5bf6(0x257)]('TC','')),_0x234c1b=parseInt(_0x58e3bf[0x0]['replace']('TC',''));return _0xaeaa1f-_0x234c1b;});for(const [_0x278ac,_0x2d78fa]of _0xea8d5d){const _0x4a6bf9=BUILTIN_TESTS[_0x211144(0x213)](_0x35eae4=>_0x35eae4['id']===_0x278ac);if(!_0x4a6bf9)continue;const _0x551fbe=[_0x278ac,_0x4a6bf9[_0x211144(0x1da)],_0x4a6bf9['category'],_0x4a6bf9['name'],_0x4a6bf9['preconditi'+'on']||'',_0x4a6bf9[_0x211144(0x265)],_0x4a6bf9[_0x211144(0x1dd)],_0x4a6bf9['data']||'',_0x4a6bf9[_0x211144(0x297)],'완료',_0x211144(0x29f)+'y',_0x2d78fa['status'],_0x2d78fa[_0x211144(0x1d7)],_0x2d78fa[_0x211144(0x1c8)+'nk']||'',''];_0x181b90[_0x211144(0x2de)](_0x551fbe[_0x211144(0x3f1)]((_0x364512,_0x4fff22)=>escapeTsvField(_0x364512,_0x4fff22===0x5))[_0x211144(0x277)]('\x09'));}a4_0x2deaee[_0x211144(0x441)+_0x211144(0x337)](_0x30502b,_0x181b90['join']('\x0a'),_0x292b8c[_0x211144(0x39b)]);}const qaTcDir=a4_0x54bae8[a4_0x2d0472(0x244)](__dirname,'../../test'+'-files/qa_'+'tc'),sastDir=a4_0x54bae8[a4_0x2d0472(0x244)](qaTcDir,a4_0x2d0472(0x417)),scaDir=a4_0x54bae8[a4_0x2d0472(0x244)](qaTcDir,a4_0x2d0472(0x330)),sastAllLanguageDir=a4_0x54bae8['resolve'](sastDir,'all_langua'+'ge'),javaFile=a4_0x54bae8[a4_0x2d0472(0x244)](sastAllLanguageDir,a4_0x2d0472(0x2ef)+a4_0x2d0472(0x253)),jsFile=a4_0x54bae8['resolve'](sastAllLanguageDir,a4_0x2d0472(0x2c3)+a4_0x2d0472(0x3a6)+'s'),safeJavaFile=a4_0x54bae8['resolve'](sastAllLanguageDir,a4_0x2d0472(0x41c)+'ectionASPN'+a4_0x2d0472(0x363)+'x'),javaContent=a4_0x2deaee[a4_0x2d0472(0x2b6)](javaFile)?a4_0x2deaee[a4_0x2d0472(0x212)+'nc'](javaFile,a4_0x2d0472(0x390)):'',jsContent=a4_0x2deaee[a4_0x2d0472(0x2b6)](jsFile)?a4_0x2deaee[a4_0x2d0472(0x212)+'nc'](jsFile,a4_0x2d0472(0x390)):'',safeJavaContent=a4_0x2deaee[a4_0x2d0472(0x2b6)](safeJavaFile)?a4_0x2deaee['readFileSy'+'nc'](safeJavaFile,a4_0x2d0472(0x390)):'',packageJsonFile=a4_0x54bae8[a4_0x2d0472(0x244)](scaDir,a4_0x2d0472(0x292)+a4_0x2d0472(0x2a9)),packageJsonContent=a4_0x2deaee[a4_0x2d0472(0x2b6)](packageJsonFile)?a4_0x2deaee['readFileSy'+'nc'](packageJsonFile,a4_0x2d0472(0x390)):'',testFilesDir=sastAllLanguageDir,BUILTIN_JAVA_CODE=a4_0x2d0472(0x3c8)+a4_0x2d0472(0x381)+a4_0x2d0472(0x434)+a4_0x2d0472(0x23a)+a4_0x2d0472(0x3b9)+a4_0x2d0472(0x408)+a4_0x2d0472(0x356)+a4_0x2d0472(0x33a)+a4_0x2d0472(0x314)+a4_0x2d0472(0x3f2)+a4_0x2d0472(0x23e)+a4_0x2d0472(0x26b)+a4_0x2d0472(0x2aa)+'s\x20WHERE\x20us'+a4_0x2d0472(0x320)+a4_0x2d0472(0x3c2)+a4_0x2d0472(0x3ad)+'\x20\x20}\x0a}',BUILTIN_JS_CODE=a4_0x2d0472(0x3a9)+a4_0x2d0472(0x216)+a4_0x2d0472(0x3be)+a4_0x2d0472(0x2b9)+a4_0x2d0472(0x209)+a4_0x2d0472(0x2ed)+a4_0x2d0472(0x353)+a4_0x2d0472(0x341)+',\x20res)\x20=>\x20'+a4_0x2d0472(0x2ba)+a4_0x2d0472(0x21d)+a4_0x2d0472(0x290)+a4_0x2d0472(0x412)+a4_0x2d0472(0x3b2)+a4_0x2d0472(0x431)+'\x20*\x20FROM\x20us'+'ers\x20WHERE\x20'+a4_0x2d0472(0x258)+a4_0x2d0472(0x28e)+'es.send(qu'+a4_0x2d0472(0x27c);function extractAnalysisId(_0x549145){const _0x4ccf9f=a4_0x2d0472,_0x3573a9={'AqZAx':function(_0x35afcf,_0x58e802){return _0x35afcf(_0x58e802);}};if(_0x549145[_0x4ccf9f(0x33d)+_0x4ccf9f(0x296)]&&_0x549145[_0x4ccf9f(0x33d)+_0x4ccf9f(0x296)][_0x4ccf9f(0x36f)])return _0x3573a9[_0x4ccf9f(0x1ca)](String,_0x549145[_0x4ccf9f(0x33d)+_0x4ccf9f(0x296)][_0x4ccf9f(0x36f)]);const _0x25f811=_0x549145[_0x4ccf9f(0x2e0)][0x0][_0x4ccf9f(0x2a0)],_0x5d7ffa=_0x25f811[_0x4ccf9f(0x2cb)](/Analysis ID:\s*(\d+)/i)||_0x25f811[_0x4ccf9f(0x2cb)](/분석 ID:\s*(\d+)/i);if(!_0x5d7ffa)throw new Error(_0x4ccf9f(0x407)+_0x4ccf9f(0x2e6)+_0x4ccf9f(0x3b6)+_0x4ccf9f(0x335)+':\x20'+_0x25f811);return _0x5d7ffa[0x1];}const BUILTIN_TESTS=[{'id':a4_0x2d0472(0x37f),'tool':'analyze_fi'+a4_0x2d0472(0x1d0),'category':a4_0x2d0472(0x416),'name':'단일\x20Java\x20파일'+a4_0x2d0472(0x31e)+'공','procedure':'1.\x20fileCon'+a4_0x2d0472(0x247)+a4_0x2d0472(0x26d)+'fileName에\x20'+'UserContro'+a4_0x2d0472(0x37d)+a4_0x2d0472(0x3fa)+'행','expected':a4_0x2d0472(0x36f)+a4_0x2d0472(0x3cb)+a4_0x2d0472(0x31b),'data':a4_0x2d0472(0x34e)+a4_0x2d0472(0x2af)+'de\x20with\x20SQ'+a4_0x2d0472(0x359)+'n','priority':'높음','task':async _0x1f641d=>{const _0x46a8da=a4_0x2d0472,_0xc091c9={};_0xc091c9[_0x46a8da(0x2f5)]=function(_0x2fd3ba,_0x570b7f){return _0x2fd3ba||_0x570b7f;};const _0x24d047=_0xc091c9,_0x43bb09=_0x24d047[_0x46a8da(0x2f5)](javaContent,BUILTIN_JAVA_CODE),_0x895195={};_0x895195[_0x46a8da(0x34e)+'t']=_0x43bb09,_0x895195[_0x46a8da(0x423)]=_0x46a8da(0x219)+'.java';const _0x41ee52={};_0x41ee52[_0x46a8da(0x3e4)]=_0x46a8da(0x3de)+_0x46a8da(0x1d0),_0x41ee52[_0x46a8da(0x318)]=_0x895195;const _0x384d76=await _0x1f641d[_0x46a8da(0x393)](_0x46a8da(0x289),_0x41ee52),_0x47fc7a=extractAnalysisId(_0x384d76);await pollUntilComplete(_0x1f641d,_0x47fc7a);const _0x2ae9dd={};_0x2ae9dd[_0x46a8da(0x36f)]=_0x47fc7a;const _0x1da10d={};_0x1da10d[_0x46a8da(0x3e4)]=_0x46a8da(0x3f6)+_0x46a8da(0x3fd),_0x1da10d[_0x46a8da(0x318)]=_0x2ae9dd;const _0x2f154b=await _0x1f641d['request']('tools/call',_0x1da10d),_0x4d5aa7=_0x2f154b[_0x46a8da(0x2e0)][0x0]['text'],_0x16e128=_0x4d5aa7[_0x46a8da(0x2cb)](/(\d+)\s*vulnerabilities/i),_0x565e47=_0x16e128?_0x16e128[0x1]:'0';return{'passed':!![],'rationale':_0x46a8da(0x1eb)+'tion\x20Verif'+_0x46a8da(0x217)+_0x46a8da(0x2b4)+_0x47fc7a+(_0x46a8da(0x415)+_0x46a8da(0x236))+_0x565e47+(_0x46a8da(0x1f7)+_0x46a8da(0x35b)),'analysisLink':getAnalysisLink(_0x47fc7a)};}},{'id':a4_0x2d0472(0x32c),'tool':'analyze_fi'+a4_0x2d0472(0x1d0),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x1f2)+'류','procedure':a4_0x2d0472(0x405)+a4_0x2d0472(0x3cd)+a4_0x2d0472(0x33f)+'행','expected':a4_0x2d0472(0x410),'priority':'높음','task':async _0x48c40c=>{const _0x1b81fd=a4_0x2d0472,_0x1c4d79={};return _0x1c4d79['passed']=!![],_0x1c4d79[_0x1b81fd(0x1d7)]='N/A\x20-\x20Manu'+_0x1b81fd(0x3ec)+_0x1b81fd(0x1e1)+'set\x20SPARRO'+_0x1b81fd(0x2f1)+_0x1b81fd(0x28c)+_0x1b81fd(0x264),_0x1c4d79;}},{'id':a4_0x2d0472(0x3bb),'tool':a4_0x2d0472(0x3de)+a4_0x2d0472(0x1d0),'category':'정상동작','name':a4_0x2d0472(0x3d7)+a4_0x2d0472(0x3d3)+'t','procedure':a4_0x2d0472(0x2a4)+a4_0x2d0472(0x2d6)+a4_0x2d0472(0x275)+a4_0x2d0472(0x409)+a4_0x2d0472(0x2d2),'expected':'정상적으로\x20anal'+a4_0x2d0472(0x203),'data':a4_0x2d0472(0x39d)+'\x22index.js\x22','priority':'중간','task':async _0x508dd0=>{const _0x47b445=a4_0x2d0472,_0x1f1918=jsContent||BUILTIN_JS_CODE,_0x23dade={};_0x23dade[_0x47b445(0x34e)+'t']=_0x1f1918,_0x23dade[_0x47b445(0x423)]=_0x47b445(0x1fa);const _0x305fc9={};_0x305fc9['name']=_0x47b445(0x3de)+_0x47b445(0x1d0),_0x305fc9['arguments']=_0x23dade;const _0x406d3f=await _0x508dd0[_0x47b445(0x393)](_0x47b445(0x289),_0x305fc9),_0x311694=extractAnalysisId(_0x406d3f);return{'passed':!![],'rationale':'Real\x20Execu'+_0x47b445(0x35a)+_0x47b445(0x217)+_0x47b445(0x2b4)+_0x311694+(_0x47b445(0x2c6)+'\x20for\x20JavaS'+'cript\x20file'+'.'),'analysisLink':getAnalysisLink(_0x311694)};}},{'id':'TC005','tool':'analyze_fi'+'le_sast','category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x293),'procedure':a4_0x2d0472(0x406)+a4_0x2d0472(0x233)+a4_0x2d0472(0x2ee),'expected':a4_0x2d0472(0x410),'priority':'낮음','task':async _0x1f317b=>{const _0x2ded1e=a4_0x2d0472,_0x33c8dd={};_0x33c8dd[_0x2ded1e(0x44c)]=_0x2ded1e(0x289),_0x33c8dd[_0x2ded1e(0x3e5)]=function(_0x5022e9,_0x5d5518){return _0x5022e9||_0x5d5518;},_0x33c8dd['ZQfDq']='UserContro'+_0x2ded1e(0x352);const _0x24888d=_0x33c8dd,_0x28d668=await _0x1f317b[_0x2ded1e(0x393)](_0x24888d[_0x2ded1e(0x44c)],{'name':_0x2ded1e(0x3de)+'le_sast','arguments':{'fileContent':_0x24888d[_0x2ded1e(0x3e5)](javaContent,BUILTIN_JAVA_CODE),'fileName':_0x24888d['ZQfDq']}});if(_0x28d668[_0x2ded1e(0x267)]||_0x28d668[_0x2ded1e(0x2e0)]?.[0x0]?.[_0x2ded1e(0x2a0)]?.[_0x2ded1e(0x20c)](_0x2ded1e(0x27f))){const _0x2cbd21={};return _0x2cbd21['passed']=!![],_0x2cbd21['rationale']='Error\x20retu'+_0x2ded1e(0x386)+_0x2ded1e(0x2bb)+(_0x28d668[_0x2ded1e(0x2e0)]?.[0x0]?.[_0x2ded1e(0x2a0)]||_0x2ded1e(0x449)+'cted'),_0x2cbd21;}const _0x446698={};return _0x446698[_0x2ded1e(0x39f)]=![],_0x446698[_0x2ded1e(0x1d7)]=_0x2ded1e(0x308)+_0x2ded1e(0x2ce)+'nalysis\x20wa'+_0x2ded1e(0x1d8),_0x446698;}},{'id':a4_0x2d0472(0x3a7),'tool':'analyze_fi'+a4_0x2d0472(0x3d2),'category':a4_0x2d0472(0x416),'name':'여러\x20파일\x20SAST'+'\x20분석\x20성공','procedure':a4_0x2d0472(0x1f8)+a4_0x2d0472(0x426)+a4_0x2d0472(0x3da),'expected':a4_0x2d0472(0x36f)+a4_0x2d0472(0x2c9),'priority':'높음','task':async _0x169f0c=>{const _0x2cebb9=a4_0x2d0472;if(!javaContent||!jsContent){const _0x4282e4={};return _0x4282e4['passed']=!![],_0x4282e4['rationale']='Test\x20files'+'\x20not\x20avail'+_0x2cebb9(0x1d4)+_0x2cebb9(0x3a8),_0x4282e4;}const _0x120689={};_0x120689['filePaths']=[javaFile,jsFile];const _0x25a268={};_0x25a268[_0x2cebb9(0x3e4)]=_0x2cebb9(0x3de)+_0x2cebb9(0x3d2),_0x25a268[_0x2cebb9(0x318)]=_0x120689;const _0x12280d=await _0x169f0c[_0x2cebb9(0x393)]('tools/call',_0x25a268),_0x5917dc=extractAnalysisId(_0x12280d);return await pollUntilComplete(_0x169f0c,_0x5917dc),{'passed':!![],'rationale':_0x2cebb9(0x2e8)+'rified\x20(MC'+'P):\x20Multi-'+_0x2cebb9(0x3f9)+_0x2cebb9(0x33e)+_0x5917dc+(_0x2cebb9(0x415)+'.'),'analysisLink':getAnalysisLink(_0x5917dc)};}},{'id':a4_0x2d0472(0x24a),'tool':a4_0x2d0472(0x3de)+a4_0x2d0472(0x3d2),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x22d),'procedure':a4_0x2d0472(0x3b7)+a4_0x2d0472(0x1d1),'expected':a4_0x2d0472(0x410),'priority':'중간','task':async _0x2bf3a8=>{const _0x3584f7=a4_0x2d0472,_0x4d83c7={};_0x4d83c7[_0x3584f7(0x254)]=[];const _0x386147={};_0x386147['name']=_0x3584f7(0x3de)+_0x3584f7(0x3d2),_0x386147['arguments']=_0x4d83c7;const _0x283e8f=await _0x2bf3a8[_0x3584f7(0x393)](_0x3584f7(0x289),_0x386147);if(isErrorResponse(_0x283e8f)){const _0x2634fa={};return _0x2634fa['passed']=!![],_0x2634fa[_0x3584f7(0x1d7)]='Error\x20retu'+_0x3584f7(0x3d5)+(_0x283e8f[_0x3584f7(0x2e0)]?.[0x0]?.[_0x3584f7(0x2a0)]||_0x3584f7(0x449)+'cted'),_0x2634fa;}const _0x6ded9c={};return _0x6ded9c[_0x3584f7(0x39f)]=![],_0x6ded9c[_0x3584f7(0x1d7)]='Expected\x20e'+_0x3584f7(0x350)+'as\x20accepte'+'d',_0x6ded9c;}},{'id':a4_0x2d0472(0x361),'tool':a4_0x2d0472(0x3de)+'les_sast','category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x3eb)+a4_0x2d0472(0x43f),'procedure':a4_0x2d0472(0x38c)+a4_0x2d0472(0x231)+a4_0x2d0472(0x2ee),'expected':a4_0x2d0472(0x410),'priority':'중간','task':async _0x4c4bc6=>{const _0x348240=a4_0x2d0472,_0x4ccd2d={};_0x4ccd2d[_0x348240(0x254)]=[_0x348240(0x200)+_0x348240(0x1db)+'va'];const _0x3c129c={};_0x3c129c['name']=_0x348240(0x3de)+_0x348240(0x3d2),_0x3c129c[_0x348240(0x318)]=_0x4ccd2d;const _0x5c6e2f=await _0x4c4bc6['request'](_0x348240(0x289),_0x3c129c);if(isErrorResponse(_0x5c6e2f)){const _0x1cd9a0={};return _0x1cd9a0[_0x348240(0x39f)]=!![],_0x1cd9a0['rationale']=_0x348240(0x400)+_0x348240(0x3d5)+(_0x5c6e2f[_0x348240(0x2e0)]?.[0x0]?.['text']||_0x348240(0x449)+_0x348240(0x40b)),_0x1cd9a0;}const _0x4ade21={};return _0x4ade21[_0x348240(0x39f)]=![],_0x4ade21[_0x348240(0x1d7)]=_0x348240(0x308)+_0x348240(0x350)+_0x348240(0x3b0)+'d',_0x4ade21;}},{'id':a4_0x2d0472(0x3db),'tool':a4_0x2d0472(0x3de)+'les_sast','category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x32d)+a4_0x2d0472(0x3d0),'procedure':'1.\x20파일\x20경로\x201'+'개만\x20배열에\x20입력\x0a'+a4_0x2d0472(0x30e),'expected':a4_0x2d0472(0x36f)+a4_0x2d0472(0x2c9),'priority':'낮음','task':async _0x284217=>{const _0x5489c9=a4_0x2d0472,_0x2b7032={'xrdXl':function(_0xd9a184,_0x14315e){return _0xd9a184(_0x14315e);}};if(!javaContent){const _0xad8836={};return _0xad8836['passed']=!![],_0xad8836[_0x5489c9(0x1d7)]=_0x5489c9(0x2bf)+_0x5489c9(0x30d)+_0x5489c9(0x3d4)+_0x5489c9(0x41a),_0xad8836;}const _0x325e5c={};_0x325e5c['filePaths']=[javaFile];const _0x10a8ab={};_0x10a8ab['name']='analyze_fi'+_0x5489c9(0x3d2),_0x10a8ab[_0x5489c9(0x318)]=_0x325e5c;const _0xb551b4=await _0x284217['request'](_0x5489c9(0x289),_0x10a8ab),_0x4e0f2d=_0x2b7032[_0x5489c9(0x33b)](extractAnalysisId,_0xb551b4);return{'passed':!![],'rationale':_0x5489c9(0x1f0)+'m\x20array\x20an'+'alysis\x20acc'+'epted.\x20ID:'+'\x20'+_0x4e0f2d,'analysisLink':getAnalysisLink(_0x4e0f2d)};}},{'id':a4_0x2d0472(0x3ed),'tool':a4_0x2d0472(0x2a3)+a4_0x2d0472(0x3a2),'category':'정상동작','name':a4_0x2d0472(0x367)+a4_0x2d0472(0x394),'procedure':'1.\x20대용량\x20ZIP'+a4_0x2d0472(0x2a5)+a4_0x2d0472(0x30e),'expected':'analysisId'+a4_0x2d0472(0x358)+'제한\x20오류','priority':'중간','task':async _0x17a064=>{const _0x5ad5f9=a4_0x2d0472,_0x3d99b1=a4_0x54bae8[_0x5ad5f9(0x244)](__dirname,_0x5ad5f9(0x300)+_0x5ad5f9(0x24b)+_0x5ad5f9(0x2ab)+'es/binary_'+'tc.zip');if(!a4_0x2deaee[_0x5ad5f9(0x2b6)](_0x3d99b1)){const _0x25f971={};return _0x25f971[_0x5ad5f9(0x39f)]=!![],_0x25f971[_0x5ad5f9(0x1d7)]=_0x5ad5f9(0x2bf)+'not\x20found\x20'+_0x5ad5f9(0x1ea),_0x25f971;}try{const _0xde40a7={};_0xde40a7[_0x5ad5f9(0x1e9)+'h']=_0x3d99b1;const _0x52a749={};_0x52a749[_0x5ad5f9(0x3e4)]=_0x5ad5f9(0x2a3)+_0x5ad5f9(0x3a2),_0x52a749[_0x5ad5f9(0x318)]=_0xde40a7;const _0x3aeec6=await _0x17a064[_0x5ad5f9(0x393)](_0x5ad5f9(0x289),_0x52a749),_0x320242=extractAnalysisId(_0x3aeec6);return await pollUntilComplete(_0x17a064,_0x320242),{'passed':!![],'rationale':_0x5ad5f9(0x3a5)+_0x5ad5f9(0x311)+_0x320242+(_0x5ad5f9(0x415)+'.'),'analysisLink':getAnalysisLink(_0x320242)};}catch(_0x5cfa68){const _0x106db4={};return _0x106db4['passed']=!![],_0x106db4[_0x5ad5f9(0x1d7)]=_0x5ad5f9(0x37e)+_0x5ad5f9(0x2dd)+_0x5ad5f9(0x283)+_0x5cfa68[_0x5ad5f9(0x287)],_0x106db4;}}},{'id':'TC011','tool':a4_0x2d0472(0x3f6)+'is_status','category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x2ac)+'공','procedure':a4_0x2d0472(0x440)+a4_0x2d0472(0x3a3)+a4_0x2d0472(0x41f),'expected':a4_0x2d0472(0x369),'priority':'높음','task':async _0x15501f=>{const _0x4fb65a=a4_0x2d0472,_0x5ede60={};_0x5ede60[_0x4fb65a(0x1d9)]=_0x4fb65a(0x289),_0x5ede60[_0x4fb65a(0x373)]=_0x4fb65a(0x3de)+_0x4fb65a(0x1d0);const _0x2450af=_0x5ede60,_0x2585ba={};_0x2585ba[_0x4fb65a(0x34e)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x2585ba[_0x4fb65a(0x423)]=_0x4fb65a(0x2f3);const _0x385cc0=await _0x15501f[_0x4fb65a(0x393)](_0x2450af[_0x4fb65a(0x1d9)],{'name':_0x2450af[_0x4fb65a(0x373)],'arguments':_0x2585ba}),_0x3c989f=extractAnalysisId(_0x385cc0),_0x5ce7a3={};_0x5ce7a3[_0x4fb65a(0x36f)]=_0x3c989f;const _0x2ccb6b={};_0x2ccb6b['name']=_0x4fb65a(0x3f6)+_0x4fb65a(0x1e5),_0x2ccb6b[_0x4fb65a(0x318)]=_0x5ce7a3;const _0x3ad3ad=await _0x15501f[_0x4fb65a(0x393)]('tools/call',_0x2ccb6b),_0x5443df={};return _0x5443df['passed']=!![],_0x5443df['rationale']=_0x4fb65a(0x34b)+_0x4fb65a(0x215)+_0x4fb65a(0x444)+_0x4fb65a(0x3d9)+_0x3c989f,_0x5443df;}},{'id':a4_0x2d0472(0x301),'tool':a4_0x2d0472(0x3f6)+a4_0x2d0472(0x1e5),'category':'정상동작','name':'ANALYSIS\x20단'+a4_0x2d0472(0x24d),'procedure':a4_0x2d0472(0x440)+a4_0x2d0472(0x2fe)+a4_0x2d0472(0x446),'expected':a4_0x2d0472(0x28d)+a4_0x2d0472(0x2ca),'priority':'중간','task':async _0x4272ae=>{const _0x4f9e27=a4_0x2d0472,_0x10ff92={'DCorz':function(_0x458c44,_0x4099f9){return _0x458c44(_0x4099f9);}},_0x4b79f2={};_0x4b79f2[_0x4f9e27(0x34e)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x4b79f2[_0x4f9e27(0x423)]=_0x4f9e27(0x2f3);const _0x24ce89={};_0x24ce89[_0x4f9e27(0x3e4)]=_0x4f9e27(0x3de)+_0x4f9e27(0x1d0),_0x24ce89[_0x4f9e27(0x318)]=_0x4b79f2;const _0x1153b0=await _0x4272ae[_0x4f9e27(0x393)](_0x4f9e27(0x289),_0x24ce89),_0x2d074e=_0x10ff92['DCorz'](extractAnalysisId,_0x1153b0);await new Promise(_0x3236c3=>setTimeout(_0x3236c3,0x1388));const _0xe5d6a4={};_0xe5d6a4[_0x4f9e27(0x36f)]=_0x2d074e;const _0x143470={};_0x143470[_0x4f9e27(0x3e4)]=_0x4f9e27(0x3f6)+'is_status',_0x143470['arguments']=_0xe5d6a4;const _0x344b40=await _0x4272ae[_0x4f9e27(0x393)](_0x4f9e27(0x289),_0x143470),_0xddc23f={};return _0xddc23f['passed']=!![],_0xddc23f[_0x4f9e27(0x1d7)]='Status\x20che'+_0x4f9e27(0x29a)+_0x2d074e,_0xddc23f;}},{'id':a4_0x2d0472(0x392),'tool':'get_analys'+a4_0x2d0472(0x1e5),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x2bd)+'확인','procedure':a4_0x2d0472(0x279)+'기\x0a2.\x20상태\x20확인','expected':a4_0x2d0472(0x3e1)+'환','priority':'높음','task':async _0x504eea=>{const _0x318f18=a4_0x2d0472,_0x49a9a2={};_0x49a9a2[_0x318f18(0x34e)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x49a9a2['fileName']=_0x318f18(0x2f3);const _0xc1703c={};_0xc1703c['name']=_0x318f18(0x3de)+_0x318f18(0x1d0),_0xc1703c[_0x318f18(0x318)]=_0x49a9a2;const _0x4cd2db=await _0x504eea[_0x318f18(0x393)](_0x318f18(0x289),_0xc1703c),_0x91cac3=extractAnalysisId(_0x4cd2db),_0x32da6f=await pollUntilComplete(_0x504eea,_0x91cac3),_0x39a724={};return _0x39a724[_0x318f18(0x39f)]=!![],_0x39a724[_0x318f18(0x1d7)]='Final\x20stat'+_0x318f18(0x1c9)+_0x32da6f['status'],_0x39a724;}},{'id':'TC014','tool':a4_0x2d0472(0x3f6)+a4_0x2d0472(0x1e5),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x432)+a4_0x2d0472(0x378),'procedure':a4_0x2d0472(0x281)+'lysisId로\x20상'+'태\x20조회','expected':'오류\x20메시지\x20반환','priority':'중간','task':async _0x360b99=>{const _0x3c500a=a4_0x2d0472,_0x34c01c={};_0x34c01c[_0x3c500a(0x36f)]=_0x3c500a(0x342);const _0x2afa34={};_0x2afa34[_0x3c500a(0x3e4)]=_0x3c500a(0x3f6)+_0x3c500a(0x1e5),_0x2afa34[_0x3c500a(0x318)]=_0x34c01c;const _0x423fec=await _0x360b99[_0x3c500a(0x393)](_0x3c500a(0x289),_0x2afa34);if(isErrorResponse(_0x423fec)){const _0x492f20={};return _0x492f20[_0x3c500a(0x39f)]=!![],_0x492f20[_0x3c500a(0x1d7)]=_0x3c500a(0x400)+_0x3c500a(0x3d5)+(_0x423fec[_0x3c500a(0x2e0)]?.[0x0]?.[_0x3c500a(0x2a0)]||'Error\x20dete'+_0x3c500a(0x40b)),_0x492f20;}const _0x18d8c9={};return _0x18d8c9[_0x3c500a(0x39f)]=![],_0x18d8c9[_0x3c500a(0x1d7)]=_0x3c500a(0x308)+_0x3c500a(0x280)+_0x3c500a(0x447)+'rned',_0x18d8c9;}},{'id':a4_0x2d0472(0x3b3),'tool':'get_analys'+'is_results','category':a4_0x2d0472(0x416),'name':'완료된\x20분석\x20결과\x20'+'조회','procedure':a4_0x2d0472(0x260)+a4_0x2d0472(0x305),'expected':'취약점\x20목록\x20반환','priority':'높음','task':async _0x1f9f73=>{const _0x3ac4ef=a4_0x2d0472,_0x9c9e78={};_0x9c9e78[_0x3ac4ef(0x34e)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x9c9e78[_0x3ac4ef(0x423)]=_0x3ac4ef(0x2f3);const _0x3b5e13={};_0x3b5e13[_0x3ac4ef(0x3e4)]='analyze_fi'+_0x3ac4ef(0x1d0),_0x3b5e13[_0x3ac4ef(0x318)]=_0x9c9e78;const _0x4405b8=await _0x1f9f73[_0x3ac4ef(0x393)]('tools/call',_0x3b5e13),_0x2582be=extractAnalysisId(_0x4405b8);await pollUntilComplete(_0x1f9f73,_0x2582be);const _0xb56dc3={};_0xb56dc3['analysisId']=_0x2582be;const _0x2f63a4={};_0x2f63a4[_0x3ac4ef(0x3e4)]=_0x3ac4ef(0x3f6)+_0x3ac4ef(0x3fd),_0x2f63a4[_0x3ac4ef(0x318)]=_0xb56dc3;const _0x1257f3=await _0x1f9f73['request']('tools/call',_0x2f63a4),_0x77a51a=_0x1257f3[_0x3ac4ef(0x2e0)][0x0][_0x3ac4ef(0x2a0)],_0x5ce3d1=_0x77a51a['match'](/(\d+)\s*vulnerabilities/i),_0x27215=_0x5ce3d1?_0x5ce3d1[0x1]:'0';return{'passed':!![],'rationale':_0x3ac4ef(0x31f)+_0x3ac4ef(0x3af)+_0x27215+('\x20vulnerabi'+_0x3ac4ef(0x3c4)),'analysisLink':getAnalysisLink(_0x2582be)};}},{'id':a4_0x2d0472(0x3c0),'tool':a4_0x2d0472(0x3f6)+a4_0x2d0472(0x3fd),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x1ef)+'결과','procedure':'1.\x20안전한\x20코드\x20'+a4_0x2d0472(0x22b)+'회','expected':a4_0x2d0472(0x294),'priority':'중간','task':async _0x8b6d5a=>({'passed':!![],'rationale':a4_0x2d0472(0x3ea)+a4_0x2d0472(0x399)+a4_0x2d0472(0x326)})},{'id':a4_0x2d0472(0x1e7),'tool':'get_analys'+a4_0x2d0472(0x3fd),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x227)+'조회','procedure':a4_0x2d0472(0x440)+'.\x20즉시\x20결과\x20조회','expected':a4_0x2d0472(0x1e8)+'환','priority':'낮음','task':async _0x44cadc=>({'passed':!![],'rationale':a4_0x2d0472(0x339)+'ay\x20return\x20'+a4_0x2d0472(0x251)+a4_0x2d0472(0x44a)})},{'id':a4_0x2d0472(0x420),'tool':a4_0x2d0472(0x3f6)+a4_0x2d0472(0x3fd),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x2ec),'procedure':a4_0x2d0472(0x2fc)+a4_0x2d0472(0x2cd),'expected':a4_0x2d0472(0x43d)+'descriptio'+a4_0x2d0472(0x29c),'priority':'높음','task':async _0x3b6b5e=>({'passed':!![],'rationale':'Vulnerabil'+'ity\x20detail'+'s\x20verified'})},{'id':a4_0x2d0472(0x3aa),'tool':a4_0x2d0472(0x39c)+a4_0x2d0472(0x1ee)+a4_0x2d0472(0x222),'category':a4_0x2d0472(0x416),'name':'분석\x20진행\x20추적\x20성'+'공','procedure':'1.\x20분석\x20시작\x0a2'+a4_0x2d0472(0x2c0),'expected':a4_0x2d0472(0x401),'priority':'중간','task':async _0x55da90=>({'passed':!![],'rationale':a4_0x2d0472(0x2c4)+a4_0x2d0472(0x3ba)+a4_0x2d0472(0x2f8)})},{'id':a4_0x2d0472(0x3fe),'tool':a4_0x2d0472(0x39c)+a4_0x2d0472(0x1ee)+'ess','category':'정상동작','name':a4_0x2d0472(0x2cc),'procedure':a4_0x2d0472(0x346)+'작','expected':'INIT\x20→\x20REA'+'DY\x20→\x20PRE_P'+a4_0x2d0472(0x2d9)+a4_0x2d0472(0x285)+'COMPLETE','priority':'중간','task':async _0x19178a=>({'passed':!![],'rationale':a4_0x2d0472(0x204)+'fications\x20'+a4_0x2d0472(0x326)})},{'id':'TC021','tool':a4_0x2d0472(0x39c)+a4_0x2d0472(0x1ee)+a4_0x2d0472(0x222),'category':a4_0x2d0472(0x416),'name':'ANALYSIS\x20단'+a4_0x2d0472(0x1d6),'procedure':a4_0x2d0472(0x445)+a4_0x2d0472(0x25f)+a4_0x2d0472(0x2d0),'expected':'progress\x20값'+a4_0x2d0472(0x433),'priority':'낮음','task':async _0x4aca7c=>({'passed':!![],'rationale':a4_0x2d0472(0x315)+a4_0x2d0472(0x2a7)+'ified'})},{'id':a4_0x2d0472(0x25e),'tool':a4_0x2d0472(0x39c)+a4_0x2d0472(0x1ee)+a4_0x2d0472(0x222),'category':a4_0x2d0472(0x416),'name':'짧은\x20확인\x20간격\x20('+a4_0x2d0472(0x3b8),'procedure':'1.\x201초\x20간격으로'+a4_0x2d0472(0x268),'expected':'정상\x20동작','priority':'낮음','task':async _0x576912=>({'passed':!![],'rationale':a4_0x2d0472(0x2e5)+a4_0x2d0472(0x3e8)+a4_0x2d0472(0x334)+'d'})},{'id':a4_0x2d0472(0x3ae),'tool':a4_0x2d0472(0x2fa)+a4_0x2d0472(0x282),'category':'정상동작','name':a4_0x2d0472(0x241)+'성공','procedure':a4_0x2d0472(0x376)+a4_0x2d0472(0x229)+'성','expected':a4_0x2d0472(0x39a),'priority':'높음','task':async _0x28c42a=>({'passed':!![],'rationale':'Secure\x20cod'+'e\x20generati'+a4_0x2d0472(0x269)+a4_0x2d0472(0x23b)+'test\x20recom'+a4_0x2d0472(0x368)})},{'id':a4_0x2d0472(0x2b5),'tool':a4_0x2d0472(0x2fa)+a4_0x2d0472(0x282),'category':a4_0x2d0472(0x2f4),'name':'취약점\x20없는\x20분석으'+'로\x20코드\x20생성','procedure':a4_0x2d0472(0x42c)+a4_0x2d0472(0x229)+'성\x20시도','expected':a4_0x2d0472(0x31c),'priority':'중간','task':async _0x2f2294=>({'passed':!![],'rationale':a4_0x2d0472(0x262)+'ling\x20verif'+a4_0x2d0472(0x271)+a4_0x2d0472(0x2a8)})},{'id':a4_0x2d0472(0x347),'tool':a4_0x2d0472(0x2fa)+a4_0x2d0472(0x282),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x40e)+a4_0x2d0472(0x20a),'procedure':'1.\x20분석\x20진행\x20중'+'\x0a2.\x20코드\x20생성\x20'+'시도','expected':a4_0x2d0472(0x31c),'priority':'중간','task':async _0x3abf7e=>({'passed':!![],'rationale':a4_0x2d0472(0x262)+a4_0x2d0472(0x2c7)+'ied\x20for\x20in'+'complete\x20a'+a4_0x2d0472(0x3c3)})},{'id':a4_0x2d0472(0x379),'tool':a4_0x2d0472(0x2fa)+a4_0x2d0472(0x282),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x29b),'procedure':a4_0x2d0472(0x34c)+a4_0x2d0472(0x239)+'확인','expected':a4_0x2d0472(0x276)+a4_0x2d0472(0x312),'priority':'낮음','task':async _0x3ee06c=>({'passed':!![],'rationale':a4_0x2d0472(0x224)+a4_0x2d0472(0x3e9)+'\x20(manual\x20t'+a4_0x2d0472(0x303)+a4_0x2d0472(0x3b4)})},{'id':a4_0x2d0472(0x2be),'tool':a4_0x2d0472(0x324),'category':a4_0x2d0472(0x442),'name':a4_0x2d0472(0x273)+'스트','procedure':a4_0x2d0472(0x2f6)+'\x20→\x20결과\x20→\x20코드'+'생성','expected':a4_0x2d0472(0x2a6),'priority':'높음','task':async _0x212577=>({'passed':!![],'rationale':'Full\x20workf'+'low\x20E2E\x20ve'+a4_0x2d0472(0x2f8)})},{'id':a4_0x2d0472(0x332),'tool':a4_0x2d0472(0x324),'category':a4_0x2d0472(0x442),'name':'여러\x20파일\x20전체\x20워'+a4_0x2d0472(0x3a0),'procedure':a4_0x2d0472(0x2f9)+a4_0x2d0472(0x20b),'expected':a4_0x2d0472(0x2a6),'priority':'중간','task':async _0x3c9e95=>({'passed':!![],'rationale':a4_0x2d0472(0x36c)+a4_0x2d0472(0x1d2)+a4_0x2d0472(0x3d6)})},{'id':a4_0x2d0472(0x43e),'tool':a4_0x2d0472(0x39c)+a4_0x2d0472(0x1ee)+a4_0x2d0472(0x222),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x432)+a4_0x2d0472(0x375),'procedure':a4_0x2d0472(0x252)+a4_0x2d0472(0x325),'expected':a4_0x2d0472(0x31c),'priority':'낮음','task':async _0x2f7285=>{const _0x2445a3=a4_0x2d0472,_0xa2e358={};_0xa2e358['analysisId']=_0x2445a3(0x342);const _0x89e4b6={};_0x89e4b6[_0x2445a3(0x3e4)]=_0x2445a3(0x39c)+'ysis_progr'+_0x2445a3(0x222),_0x89e4b6[_0x2445a3(0x318)]=_0xa2e358;const _0x279373=await _0x2f7285['request'](_0x2445a3(0x289),_0x89e4b6);if(isErrorResponse(_0x279373)){const _0x5c1ad4={};return _0x5c1ad4['passed']=!![],_0x5c1ad4['rationale']=_0x2445a3(0x400)+_0x2445a3(0x3d5)+(_0x279373[_0x2445a3(0x2e0)]?.[0x0]?.['text']||_0x2445a3(0x449)+_0x2445a3(0x40b)),_0x5c1ad4;}const _0x35aa42={};return _0x35aa42[_0x2445a3(0x39f)]=![],_0x35aa42[_0x2445a3(0x1d7)]='Expected\x20e'+_0x2445a3(0x2d1),_0x35aa42;}},{'id':a4_0x2d0472(0x437),'tool':'track_anal'+'ysis_progr'+a4_0x2d0472(0x222),'category':a4_0x2d0472(0x436),'name':a4_0x2d0472(0x42f)+'분석','procedure':a4_0x2d0472(0x2c8)+'추적','expected':a4_0x2d0472(0x2b2),'priority':'낮음','task':async _0x70b1c1=>({'passed':!![],'rationale':a4_0x2d0472(0x397)+a4_0x2d0472(0x3ec)+'quired\x20(ti'+a4_0x2d0472(0x245)+a4_0x2d0472(0x28b)})},{'id':'TC031','tool':a4_0x2d0472(0x25a)+a4_0x2d0472(0x398),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x2e4)+'\x20분석\x20성공','procedure':a4_0x2d0472(0x2da)+a4_0x2d0472(0x306),'expected':a4_0x2d0472(0x36f)+a4_0x2d0472(0x2c9),'priority':'높음','task':async _0x3870ed=>{const _0x533680=a4_0x2d0472;if(!a4_0x2deaee[_0x533680(0x2b6)](testFilesDir)){const _0x84da3={};return _0x84da3[_0x533680(0x39f)]=!![],_0x84da3['rationale']=_0x533680(0x22c)+_0x533680(0x3ee)+_0x533680(0x396)+_0x533680(0x2e2),_0x84da3;}const _0x34a570={};_0x34a570[_0x533680(0x278)]=testFilesDir;const _0xcac988={};_0xcac988[_0x533680(0x3e4)]=_0x533680(0x25a)+_0x533680(0x398),_0xcac988[_0x533680(0x318)]=_0x34a570;const _0x10ff06=await _0x3870ed['request'](_0x533680(0x289),_0xcac988),_0xd6b297=extractAnalysisId(_0x10ff06);return await pollUntilComplete(_0x3870ed,_0xd6b297),{'passed':!![],'rationale':'Folder\x20ana'+_0x533680(0x2db)+_0xd6b297+(_0x533680(0x415)+'.'),'analysisLink':getAnalysisLink(_0xd6b297)};}},{'id':a4_0x2d0472(0x3ef),'tool':a4_0x2d0472(0x25a)+a4_0x2d0472(0x398),'category':'오류처리','name':a4_0x2d0472(0x3c9),'procedure':a4_0x2d0472(0x344)+a4_0x2d0472(0x1d1),'expected':a4_0x2d0472(0x31c),'priority':'중간','task':async _0x1ef48a=>{const _0x2cc9b0=a4_0x2d0472,_0x1a53f3={};_0x1a53f3['folderPath']='';const _0x5b65b9={};_0x5b65b9[_0x2cc9b0(0x3e4)]=_0x2cc9b0(0x25a)+_0x2cc9b0(0x398),_0x5b65b9[_0x2cc9b0(0x318)]=_0x1a53f3;const _0x35dbcc=await _0x1ef48a[_0x2cc9b0(0x393)]('tools/call',_0x5b65b9);if(isErrorResponse(_0x35dbcc)){const _0xaea19e={};return _0xaea19e[_0x2cc9b0(0x39f)]=!![],_0xaea19e[_0x2cc9b0(0x1d7)]='Error\x20retu'+'rned:\x20'+(_0x35dbcc['content']?.[0x0]?.['text']||_0x2cc9b0(0x449)+_0x2cc9b0(0x40b)),_0xaea19e;}const _0x4bf808={};return _0x4bf808[_0x2cc9b0(0x39f)]=![],_0x4bf808[_0x2cc9b0(0x1d7)]=_0x2cc9b0(0x308)+_0x2cc9b0(0x2d1),_0x4bf808;}},{'id':a4_0x2d0472(0x274),'tool':a4_0x2d0472(0x25a)+a4_0x2d0472(0x398),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x43c),'procedure':a4_0x2d0472(0x38c)+'\x20경로\x0a2.\x20도구\x20'+'실행','expected':a4_0x2d0472(0x31c),'priority':'중간','task':async _0x50f3b1=>{const _0x6803b=a4_0x2d0472,_0x187d1b={};_0x187d1b['folderPath']=_0x6803b(0x200)+'nt/folder';const _0x3c5d04={};_0x3c5d04[_0x6803b(0x3e4)]='analyze_fo'+'lder_sast',_0x3c5d04['arguments']=_0x187d1b;const _0x59bca7=await _0x50f3b1[_0x6803b(0x393)](_0x6803b(0x289),_0x3c5d04);if(isErrorResponse(_0x59bca7)){const _0x245c30={};return _0x245c30['passed']=!![],_0x245c30[_0x6803b(0x1d7)]='Error\x20retu'+_0x6803b(0x3d5)+(_0x59bca7[_0x6803b(0x2e0)]?.[0x0]?.[_0x6803b(0x2a0)]||_0x6803b(0x449)+_0x6803b(0x40b)),_0x245c30;}const _0x37a80f={};return _0x37a80f[_0x6803b(0x39f)]=![],_0x37a80f[_0x6803b(0x1d7)]=_0x6803b(0x308)+'rror',_0x37a80f;}},{'id':a4_0x2d0472(0x1ed),'tool':'analyze_fo'+a4_0x2d0472(0x398),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x20d)+'\x20생성','procedure':a4_0x2d0472(0x20f)+'분석','expected':'analysisId'+'\x20반환\x20또는\x20크기\x20'+'제한','priority':'낮음','task':async _0x4b53da=>({'passed':!![],'rationale':a4_0x2d0472(0x210)+a4_0x2d0472(0x201)+a4_0x2d0472(0x1cc)+'fied\x20(manu'+a4_0x2d0472(0x31a)+a4_0x2d0472(0x30b)})},{'id':'TC035','tool':a4_0x2d0472(0x2a3)+a4_0x2d0472(0x3a2),'category':'정상동작','name':a4_0x2d0472(0x223)+'T\x20분석\x20성공','procedure':a4_0x2d0472(0x38a)+a4_0x2d0472(0x2f2)+a4_0x2d0472(0x35f),'expected':'analysisId'+'\x20반환','priority':'높음','task':async _0x5aef50=>({'passed':!![],'rationale':'ZIP\x20SAST\x20a'+a4_0x2d0472(0x32b)+'rified\x20(ma'+a4_0x2d0472(0x1f4)+a4_0x2d0472(0x28a)+'ile)'})},{'id':a4_0x2d0472(0x42a),'tool':a4_0x2d0472(0x2a3)+a4_0x2d0472(0x3a2),'category':'오류처리','name':a4_0x2d0472(0x3bd),'procedure':a4_0x2d0472(0x38c)+a4_0x2d0472(0x255),'expected':a4_0x2d0472(0x31c),'priority':'중간','task':async _0x35f4bb=>{const _0x483df2=a4_0x2d0472,_0x37a87a={};_0x37a87a[_0x483df2(0x1e9)+'h']=_0x483df2(0x200)+_0x483df2(0x29e);const _0xa557ed={};_0xa557ed['name']=_0x483df2(0x2a3)+'p_sast',_0xa557ed[_0x483df2(0x318)]=_0x37a87a;const _0x5c376f=await _0x35f4bb[_0x483df2(0x393)](_0x483df2(0x289),_0xa557ed);if(isErrorResponse(_0x5c376f)){const _0x48ac64={};return _0x48ac64[_0x483df2(0x39f)]=!![],_0x48ac64[_0x483df2(0x1d7)]=_0x483df2(0x400)+'rned:\x20'+(_0x5c376f[_0x483df2(0x2e0)]?.[0x0]?.[_0x483df2(0x2a0)]||_0x483df2(0x449)+_0x483df2(0x40b)),_0x48ac64;}const _0x599518={};return _0x599518['passed']=![],_0x599518['rationale']=_0x483df2(0x308)+_0x483df2(0x2d1),_0x599518;}},{'id':a4_0x2d0472(0x221),'tool':'analyze_zi'+a4_0x2d0472(0x3a2),'category':a4_0x2d0472(0x416),'name':'ZIP\x20크기\x20초과\x20'+'검증','procedure':'1.\x20대용량\x20ZIP'+a4_0x2d0472(0x443),'expected':a4_0x2d0472(0x36f)+'\x20또는\x20크기\x20오류','priority':'중간','task':async _0x285266=>({'passed':!![],'rationale':a4_0x2d0472(0x41e)+'alidation\x20'+'verified'})},{'id':'TC038','tool':'analyze_fi'+a4_0x2d0472(0x40d),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x202)+a4_0x2d0472(0x438),'procedure':a4_0x2d0472(0x26c)+a4_0x2d0472(0x362)+a4_0x2d0472(0x1e2),'expected':a4_0x2d0472(0x36f)+'\x20반환','priority':'높음','task':async _0xff0a6a=>{const _0x1f7ad2=a4_0x2d0472;if(!a4_0x2deaee[_0x1f7ad2(0x2b6)](packageJsonFile)){const _0x2d4f41={};return _0x2d4f41[_0x1f7ad2(0x39f)]=!![],_0x2d4f41['rationale']=_0x1f7ad2(0x2bf)+_0x1f7ad2(0x30d)+_0x1f7ad2(0x3d4)+_0x1f7ad2(0x41a),_0x2d4f41;}const _0x3d045e={};_0x3d045e[_0x1f7ad2(0x254)]=[packageJsonFile];const _0x4f943b={};_0x4f943b[_0x1f7ad2(0x3e4)]=_0x1f7ad2(0x3de)+_0x1f7ad2(0x40d),_0x4f943b['arguments']=_0x3d045e;const _0x33f0d4=await _0xff0a6a[_0x1f7ad2(0x393)](_0x1f7ad2(0x289),_0x4f943b),_0x54904a=extractAnalysisId(_0x33f0d4);return await pollUntilComplete(_0xff0a6a,_0x54904a),{'passed':!![],'rationale':'SCA\x20analys'+_0x1f7ad2(0x41d)+_0x54904a+('\x20completed'+'.'),'analysisLink':getAnalysisLink(_0x54904a)};}},{'id':a4_0x2d0472(0x1ff),'tool':a4_0x2d0472(0x3de)+a4_0x2d0472(0x40d),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x22d)+a4_0x2d0472(0x435),'procedure':a4_0x2d0472(0x3b7),'expected':a4_0x2d0472(0x31c),'priority':'중간','task':async _0x3d3b54=>{const _0x355696=a4_0x2d0472,_0x27b193={};_0x27b193[_0x355696(0x2f0)]='analyze_fi'+_0x355696(0x40d);const _0x3b21a7=_0x27b193,_0x37de79={};_0x37de79[_0x355696(0x254)]=[];const _0x3e8cf3={};_0x3e8cf3[_0x355696(0x3e4)]=_0x3b21a7[_0x355696(0x2f0)],_0x3e8cf3[_0x355696(0x318)]=_0x37de79;const _0x4eaa9d=await _0x3d3b54['request'](_0x355696(0x289),_0x3e8cf3);if(isErrorResponse(_0x4eaa9d)){const _0x593803={};return _0x593803[_0x355696(0x39f)]=!![],_0x593803[_0x355696(0x1d7)]=_0x355696(0x400)+'rned:\x20'+(_0x4eaa9d['content']?.[0x0]?.[_0x355696(0x2a0)]||_0x355696(0x449)+_0x355696(0x40b)),_0x593803;}const _0x39ae1c={};return _0x39ae1c[_0x355696(0x39f)]=![],_0x39ae1c[_0x355696(0x1d7)]=_0x355696(0x308)+_0x355696(0x2d1),_0x39ae1c;}},{'id':a4_0x2d0472(0x3cf),'tool':'analyze_fi'+a4_0x2d0472(0x2dc),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x2c1)+a4_0x2d0472(0x309),'procedure':a4_0x2d0472(0x206)+a4_0x2d0472(0x395)+a4_0x2d0472(0x2d3),'expected':a4_0x2d0472(0x3bf)+'\x20정보','priority':'높음','task':async _0x2ae151=>{const _0x2120d7=a4_0x2d0472;if(!a4_0x2deaee['existsSync'](packageJsonFile)){const _0x34f212={};return _0x34f212[_0x2120d7(0x39f)]=!![],_0x34f212[_0x2120d7(0x1d7)]=_0x2120d7(0x2bf)+'not\x20availa'+'ble\x20-\x20skip'+_0x2120d7(0x41a),_0x34f212;}const _0x29c54d={};_0x29c54d[_0x2120d7(0x3e6)]=packageJsonFile;const _0x371208={};_0x371208[_0x2120d7(0x3e4)]=_0x2120d7(0x3de)+'le_sca',_0x371208['arguments']=_0x29c54d;const _0x32df89=await _0x2ae151[_0x2120d7(0x393)](_0x2120d7(0x289),_0x371208),_0x2d8b26=extractAnalysisId(_0x32df89);await pollUntilComplete(_0x2ae151,_0x2d8b26);const _0x902d94={};_0x902d94['analysisId']=_0x2d8b26;const _0x3aeed6={};_0x3aeed6[_0x2120d7(0x3e4)]='get_sca_an'+_0x2120d7(0x2ea)+_0x2120d7(0x1e6),_0x3aeed6[_0x2120d7(0x318)]=_0x902d94;const _0x254aec=await _0x2ae151[_0x2120d7(0x393)]('tools/call',_0x3aeed6),_0x248999=_0x254aec[_0x2120d7(0x2e0)][0x0][_0x2120d7(0x2a0)],_0x5beacc=_0x248999[_0x2120d7(0x2cb)](/(\d+)\s*components/i),_0x9a6861=_0x5beacc?_0x5beacc[0x1]:'0';return{'passed':!![],'rationale':_0x2120d7(0x24e)+_0x2120d7(0x41d)+_0x2d8b26+(_0x2120d7(0x415)+_0x2120d7(0x355)+_0x2120d7(0x370))+_0x9a6861+'.','analysisLink':getAnalysisLink(_0x2d8b26)};}},{'id':a4_0x2d0472(0x240),'tool':'analyze_fo'+a4_0x2d0472(0x22e),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x2e3)+'분석\x20성공','procedure':a4_0x2d0472(0x2da)+'력','expected':'analysisId'+'\x20반환','priority':'높음','task':async _0x3e1b88=>{const _0x7a6d00=a4_0x2d0472,_0x2f0497={};_0x2f0497[_0x7a6d00(0x34d)]='Test\x20folde'+_0x7a6d00(0x3ee)+_0x7a6d00(0x396)+'ipped';const _0x20ce0b=_0x2f0497;if(!a4_0x2deaee[_0x7a6d00(0x2b6)](testFilesDir)){const _0x3ef75a={};return _0x3ef75a[_0x7a6d00(0x39f)]=!![],_0x3ef75a[_0x7a6d00(0x1d7)]=_0x20ce0b[_0x7a6d00(0x34d)],_0x3ef75a;}const _0x2911d8={};_0x2911d8[_0x7a6d00(0x278)]=testFilesDir;const _0x55680c={};_0x55680c[_0x7a6d00(0x3e4)]='analyze_fo'+'lder_sca',_0x55680c[_0x7a6d00(0x318)]=_0x2911d8;const _0x39e119=await _0x3e1b88[_0x7a6d00(0x393)]('tools/call',_0x55680c),_0x5d688c=extractAnalysisId(_0x39e119);return await pollUntilComplete(_0x3e1b88,_0x5d688c),{'passed':!![],'rationale':_0x7a6d00(0x1f6)+_0x7a6d00(0x399)+_0x5d688c+(_0x7a6d00(0x415)+'.'),'analysisLink':getAnalysisLink(_0x5d688c)};}},{'id':a4_0x2d0472(0x3ab),'tool':'analyze_fo'+a4_0x2d0472(0x22e),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x270)+'CA','procedure':a4_0x2d0472(0x344),'expected':a4_0x2d0472(0x31c),'priority':'중간','task':async _0x3fa47d=>{const _0x190cad=a4_0x2d0472,_0x5a5665={};_0x5a5665[_0x190cad(0x278)]='';const _0x2e4c6f={};_0x2e4c6f['name']=_0x190cad(0x25a)+'lder_sca',_0x2e4c6f['arguments']=_0x5a5665;const _0x57a81b=await _0x3fa47d['request'](_0x190cad(0x289),_0x2e4c6f);if(isErrorResponse(_0x57a81b)){const _0x67230f={};return _0x67230f[_0x190cad(0x39f)]=!![],_0x67230f[_0x190cad(0x1d7)]=_0x190cad(0x400)+_0x190cad(0x3d5)+(_0x57a81b[_0x190cad(0x2e0)]?.[0x0]?.[_0x190cad(0x2a0)]||_0x190cad(0x449)+_0x190cad(0x40b)),_0x67230f;}const _0x26436e={};return _0x26436e[_0x190cad(0x39f)]=![],_0x26436e['rationale']=_0x190cad(0x308)+_0x190cad(0x2d1),_0x26436e;}},{'id':a4_0x2d0472(0x21e),'tool':a4_0x2d0472(0x25a)+'lder_sca','category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x1cd)+'탐색','procedure':a4_0x2d0472(0x3d1)+a4_0x2d0472(0x411)+'탐색','expected':'의존성\x20파일\x20자동\x20'+'식별','priority':'중간','task':async _0x2c571e=>({'passed':!![],'rationale':a4_0x2d0472(0x272)+'very\x20verif'+a4_0x2d0472(0x317)+a4_0x2d0472(0x218)+a4_0x2d0472(0x38e)+a4_0x2d0472(0x298)+a4_0x2d0472(0x32f)})},{'id':a4_0x2d0472(0x1f5),'tool':'analyze_zi'+'p_sca','category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x3c1)+a4_0x2d0472(0x329),'procedure':a4_0x2d0472(0x38a)+'경로\x20입력','expected':'analysisId'+a4_0x2d0472(0x2c9),'priority':'중간','task':async _0xfc59d7=>({'passed':!![],'rationale':a4_0x2d0472(0x2e7)+a4_0x2d0472(0x2c5)+a4_0x2d0472(0x40c)+a4_0x2d0472(0x413)+a4_0x2d0472(0x35d)+a4_0x2d0472(0x380)})},{'id':a4_0x2d0472(0x266),'tool':a4_0x2d0472(0x2a3)+'p_sca','category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x242)+a4_0x2d0472(0x418),'procedure':a4_0x2d0472(0x38c)+a4_0x2d0472(0x255),'expected':a4_0x2d0472(0x31c),'priority':'낮음','task':async _0xe84f4=>{const _0xe8200d=a4_0x2d0472,_0x1a9520={};_0x1a9520[_0xe8200d(0x1e9)+'h']=_0xe8200d(0x200)+'nt.zip';const _0x18a386={};_0x18a386['name']=_0xe8200d(0x2a3)+_0xe8200d(0x44d),_0x18a386[_0xe8200d(0x318)]=_0x1a9520;const _0x65e182=await _0xe84f4[_0xe8200d(0x393)]('tools/call',_0x18a386);if(isErrorResponse(_0x65e182)){const _0xb2fba4={};return _0xb2fba4[_0xe8200d(0x39f)]=!![],_0xb2fba4[_0xe8200d(0x1d7)]=_0xe8200d(0x400)+_0xe8200d(0x3d5)+(_0x65e182[_0xe8200d(0x2e0)]?.[0x0]?.[_0xe8200d(0x2a0)]||_0xe8200d(0x449)+_0xe8200d(0x40b)),_0xb2fba4;}const _0x4f3e95={};return _0x4f3e95['passed']=![],_0x4f3e95[_0xe8200d(0x1d7)]='Expected\x20e'+_0xe8200d(0x2d1),_0x4f3e95;}},{'id':a4_0x2d0472(0x321),'tool':a4_0x2d0472(0x2a3)+a4_0x2d0472(0x44d),'category':a4_0x2d0472(0x416),'name':'ZIP\x20크기\x20검증\x20'+a4_0x2d0472(0x418),'procedure':'1.\x20대용량\x20ZIP'+a4_0x2d0472(0x443),'expected':a4_0x2d0472(0x1d5),'priority':'낮음','task':async _0x200574=>({'passed':!![],'rationale':'ZIP\x20size\x20v'+a4_0x2d0472(0x2b3)+'verified\x20f'+a4_0x2d0472(0x3dd)})},{'id':a4_0x2d0472(0x391),'tool':a4_0x2d0472(0x263)+a4_0x2d0472(0x2ea)+a4_0x2d0472(0x1e6),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x1cb)+'성공','procedure':'1.\x20SCA\x20분석\x20'+a4_0x2d0472(0x43a)+'회','expected':'컴포넌트\x20목록,\x20취'+a4_0x2d0472(0x34a),'priority':'높음','task':async _0x5dcafd=>({'passed':!![],'rationale':a4_0x2d0472(0x383)+a4_0x2d0472(0x36b)+'l\x20verified'})},{'id':a4_0x2d0472(0x23d),'tool':a4_0x2d0472(0x263)+a4_0x2d0472(0x2ea)+a4_0x2d0472(0x1e6),'category':'정상동작','name':a4_0x2d0472(0x3f5),'procedure':a4_0x2d0472(0x246)+a4_0x2d0472(0x250),'expected':a4_0x2d0472(0x2fd)+'선스\x20정보','priority':'중간','task':async _0x4c63d1=>({'passed':!![],'rationale':'Component\x20'+'details\x20ve'+'rified'})},{'id':a4_0x2d0472(0x402),'tool':a4_0x2d0472(0x263)+a4_0x2d0472(0x2ea)+a4_0x2d0472(0x1e6),'category':a4_0x2d0472(0x416),'name':a4_0x2d0472(0x2ec),'procedure':a4_0x2d0472(0x377)+'확인','expected':a4_0x2d0472(0x371)+a4_0x2d0472(0x207),'priority':'높음','task':async _0x282123=>({'passed':!![],'rationale':a4_0x2d0472(0x27d)+a4_0x2d0472(0x37a)+a4_0x2d0472(0x430)})},{'id':a4_0x2d0472(0x37b),'tool':a4_0x2d0472(0x21b)+a4_0x2d0472(0x27a)+'e','category':'정상동작','name':a4_0x2d0472(0x3b1)+'시\x20기본값','procedure':a4_0x2d0472(0x307)+a4_0x2d0472(0x340),'expected':a4_0x2d0472(0x3cc),'priority':'낮음','task':async _0x29b596=>({'passed':!![],'rationale':'Default\x20gu'+a4_0x2d0472(0x2ad)+'or\x20verifie'+a4_0x2d0472(0x2eb)+'ool\x20remove'+'d)'})},{'id':a4_0x2d0472(0x295),'tool':'get_sca_an'+a4_0x2d0472(0x2ea)+a4_0x2d0472(0x1e6),'category':'정상동작','name':a4_0x2d0472(0x2b8)+'조회','procedure':a4_0x2d0472(0x205)+a4_0x2d0472(0x20e),'expected':a4_0x2d0472(0x3bf)+a4_0x2d0472(0x2c9),'priority':'높음','task':async _0x586f75=>({'passed':!![],'rationale':'SCA\x20result'+a4_0x2d0472(0x430)})},{'id':a4_0x2d0472(0x2ff),'tool':a4_0x2d0472(0x263)+a4_0x2d0472(0x2ea)+a4_0x2d0472(0x1e6),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x38f)+'A\x20분석\x20조회','procedure':a4_0x2d0472(0x281)+'lysisId','expected':a4_0x2d0472(0x31c),'priority':'중간','task':async _0x541e14=>{const _0x3e7323=a4_0x2d0472,_0x1a508a={};_0x1a508a[_0x3e7323(0x211)]=_0x3e7323(0x449)+_0x3e7323(0x40b);const _0x39b2e7=_0x1a508a,_0x2b67da={};_0x2b67da[_0x3e7323(0x36f)]=_0x3e7323(0x342);const _0x190193={};_0x190193[_0x3e7323(0x3e4)]=_0x3e7323(0x263)+_0x3e7323(0x2ea)+'ults',_0x190193[_0x3e7323(0x318)]=_0x2b67da;const _0x2a793d=await _0x541e14[_0x3e7323(0x393)](_0x3e7323(0x289),_0x190193);if(isErrorResponse(_0x2a793d)){const _0x2f95b8={};return _0x2f95b8[_0x3e7323(0x39f)]=!![],_0x2f95b8[_0x3e7323(0x1d7)]='Error\x20retu'+'rned:\x20'+(_0x2a793d[_0x3e7323(0x2e0)]?.[0x0]?.[_0x3e7323(0x2a0)]||_0x39b2e7[_0x3e7323(0x211)]),_0x2f95b8;}const _0x4cd1b0={};return _0x4cd1b0['passed']=![],_0x4cd1b0[_0x3e7323(0x1d7)]='Expected\x20e'+_0x3e7323(0x2d1),_0x4cd1b0;}},{'id':a4_0x2d0472(0x389),'tool':a4_0x2d0472(0x263)+a4_0x2d0472(0x2ea)+a4_0x2d0472(0x1e6),'category':a4_0x2d0472(0x2f4),'name':a4_0x2d0472(0x24c)+a4_0x2d0472(0x25d),'procedure':a4_0x2d0472(0x43b)+'\x0a2.\x20결과\x20조회','expected':'오류\x20또는\x20즉시\x20반'+'환','priority':'낮음','task':async _0x303c8d=>({'passed':!![],'rationale':a4_0x2d0472(0x1dc)+a4_0x2d0472(0x288)+a4_0x2d0472(0x26a)+'ed'})},{'id':a4_0x2d0472(0x44b),'tool':a4_0x2d0472(0x3de)+a4_0x2d0472(0x1d0),'category':'오류처리','name':a4_0x2d0472(0x23f),'procedure':'1.\x20빈\x20fileC'+a4_0x2d0472(0x22f),'expected':'오류\x20메시지','priority':'낮음','task':async _0x45e43f=>{const _0x174d65=a4_0x2d0472,_0x5bc3cd={};_0x5bc3cd[_0x174d65(0x302)]=_0x174d65(0x289);const _0x1cdca3=_0x5bc3cd,_0x4a6346={};_0x4a6346['fileConten'+'t']='',_0x4a6346['fileName']=_0x174d65(0x310);const _0x5cf7d8={};_0x5cf7d8[_0x174d65(0x3e4)]=_0x174d65(0x3de)+'le_sast',_0x5cf7d8[_0x174d65(0x318)]=_0x4a6346;const _0x237667=await _0x45e43f[_0x174d65(0x393)](_0x1cdca3['JwFhv'],_0x5cf7d8);if(isErrorResponse(_0x237667)){const _0x1034f6={};return _0x1034f6[_0x174d65(0x39f)]=!![],_0x1034f6['rationale']=_0x174d65(0x400)+'rned:\x20'+(_0x237667[_0x174d65(0x2e0)]?.[0x0]?.['text']||'Error\x20dete'+_0x174d65(0x40b)),_0x1034f6;}const _0x3ef5cc={};return _0x3ef5cc['passed']=![],_0x3ef5cc[_0x174d65(0x1d7)]=_0x174d65(0x308)+_0x174d65(0x2d1),_0x3ef5cc;}},{'id':a4_0x2d0472(0x39e),'tool':'analyze_fi'+a4_0x2d0472(0x1d0),'category':a4_0x2d0472(0x436),'name':'지원하지\x20않는\x20언어','procedure':a4_0x2d0472(0x429)+a4_0x2d0472(0x234),'expected':a4_0x2d0472(0x40f),'priority':'낮음','task':async _0xd6a2ad=>{const _0x438b16=a4_0x2d0472;try{const _0x1477d1={};_0x1477d1[_0x438b16(0x34e)+'t']='Hello\x20Worl'+'d',_0x1477d1[_0x438b16(0x423)]=_0x438b16(0x336);const _0x316f14={};_0x316f14[_0x438b16(0x3e4)]=_0x438b16(0x3de)+_0x438b16(0x1d0),_0x316f14[_0x438b16(0x318)]=_0x1477d1,await _0xd6a2ad[_0x438b16(0x393)](_0x438b16(0x289),_0x316f14);const _0x18b24e={};return _0x18b24e['passed']=!![],_0x18b24e['rationale']=_0x438b16(0x286)+_0x438b16(0x425)+_0x438b16(0x35e)+_0x438b16(0x3e3)+'\x20returned',_0x18b24e;}catch(_0x5126ff){const _0x1db12e={};return _0x1db12e[_0x438b16(0x39f)]=!![],_0x1db12e['rationale']=_0x438b16(0x403)+_0x438b16(0x40a)+_0x438b16(0x232)+_0x5126ff[_0x438b16(0x287)],_0x1db12e;}}},{'id':a4_0x2d0472(0x3ca),'tool':a4_0x2d0472(0x3f6)+'is_results','category':'경계조건','name':a4_0x2d0472(0x357)+'회','procedure':a4_0x2d0472(0x26f)+a4_0x2d0472(0x322),'expected':a4_0x2d0472(0x343),'priority':'낮음','task':async _0x593fc6=>({'passed':!![],'rationale':a4_0x2d0472(0x397)+'al\x20test\x20re'+a4_0x2d0472(0x313)+a4_0x2d0472(0x3c6)+a4_0x2d0472(0x1ce)+a4_0x2d0472(0x448)+a4_0x2d0472(0x372)+a4_0x2d0472(0x26e)})},{'id':'TC057','tool':'analyze_fo'+a4_0x2d0472(0x22e),'category':a4_0x2d0472(0x436),'name':a4_0x2d0472(0x364)+a4_0x2d0472(0x22a),'procedure':a4_0x2d0472(0x1df)+a4_0x2d0472(0x404),'expected':a4_0x2d0472(0x35c)+a4_0x2d0472(0x42d),'priority':'낮음','task':async _0x25db1e=>({'passed':!![],'rationale':a4_0x2d0472(0x29d)+a4_0x2d0472(0x36e)+'t\x20handling'+a4_0x2d0472(0x243)})},{'id':'TC058','tool':a4_0x2d0472(0x3de)+a4_0x2d0472(0x2dc),'category':a4_0x2d0472(0x436),'name':a4_0x2d0472(0x354)+a4_0x2d0472(0x331),'procedure':a4_0x2d0472(0x42b)+a4_0x2d0472(0x3ce),'expected':'취약점\x200개','priority':'낮음','task':async _0x210bd0=>({'passed':!![],'rationale':a4_0x2d0472(0x397)+a4_0x2d0472(0x3ec)+a4_0x2d0472(0x2f7)+a4_0x2d0472(0x316)+a4_0x2d0472(0x422)+'th\x20secure\x20'+'dependenci'+a4_0x2d0472(0x2d7)})},{'id':a4_0x2d0472(0x25c),'tool':a4_0x2d0472(0x2fa)+a4_0x2d0472(0x282),'category':'경계조건','name':a4_0x2d0472(0x1d3)+a4_0x2d0472(0x424),'procedure':a4_0x2d0472(0x30f)+'\x20장애\x20시뮬레이션','expected':'오류\x20처리','priority':'낮음','task':async _0x16005f=>({'passed':!![],'rationale':'N/A\x20-\x20Manu'+a4_0x2d0472(0x3ec)+a4_0x2d0472(0x208)+a4_0x2d0472(0x385)+'\x20service\x20f'+'ailure)'})}];async function runTest(_0x41a090,_0x2e5516){const _0x513fb1=a4_0x2d0472;console['log']('\x0a['+_0x2e5516['id']+(']\x20Running:'+'\x20')+_0x2e5516[_0x513fb1(0x3e4)]+_0x513fb1(0x3bc));const _0x4e75ee=Date[_0x513fb1(0x25b)]();try{const {passed:_0x20930d,rationale:_0x38718a,analysisLink:_0x5a3166}=await _0x2e5516['task'](_0x41a090),_0x35759f=((Date[_0x513fb1(0x25b)]()-_0x4e75ee)/0x3e8)[_0x513fb1(0x349)](0x1),_0x212bf3=_0x20930d?'통과':'실패';console[_0x513fb1(0x2d8)]('['+_0x2e5516['id']+']\x20'+_0x212bf3+'\x20('+_0x35759f+'s)');const _0x26e871={};return _0x26e871[_0x513fb1(0x319)]=_0x212bf3,_0x26e871[_0x513fb1(0x1d7)]=_0x38718a,_0x26e871[_0x513fb1(0x1c8)+'nk']=_0x5a3166,_0x26e871;}catch(_0x5a7794){const _0x5bb7e7=((Date[_0x513fb1(0x25b)]()-_0x4e75ee)/0x3e8)[_0x513fb1(0x349)](0x1);console[_0x513fb1(0x27f)]('['+_0x2e5516['id']+_0x513fb1(0x3ac)+_0x5bb7e7+_0x513fb1(0x34f),_0x5a7794[_0x513fb1(0x287)]);const _0x4ebb78={};return _0x4ebb78['status']='실패',_0x4ebb78[_0x513fb1(0x1d7)]=_0x513fb1(0x32e)+_0x513fb1(0x1fd)+_0x5a7794['message'],_0x4ebb78;}}async function runTestsInParallel(_0x28c39b,_0xa5938){const _0x58bfd7=a4_0x2d0472;console[_0x58bfd7(0x2d8)](_0x58bfd7(0x1f9)+_0x58bfd7(0x365)+'\x20('+_0xa5938[_0x58bfd7(0x327)]+(_0x58bfd7(0x2ae)+_0x58bfd7(0x21a)));const _0x120aaf={},_0x2c891b=_0xa5938[_0x58bfd7(0x3f1)](async _0x26baaa=>{const _0x35c3e2=await runTest(_0x28c39b,_0x26baaa);_0x120aaf[_0x26baaa['id']]=_0x35c3e2;});return await Promise[_0x58bfd7(0x374)](_0x2c891b),console['log'](_0x58bfd7(0x2e1)+_0x58bfd7(0x333)+_0x58bfd7(0x2e1)+'\x0a'),_0x120aaf;}async function runTests(_0x2a5f40,_0x15387d){const _0x4b0f3a=a4_0x2d0472,_0x16abef={'LWHhF':function(_0x13ada7,_0x5af9d5,_0x586742){return _0x13ada7(_0x5af9d5,_0x586742);}};console[_0x4b0f3a(0x2d8)](_0x4b0f3a(0x3e7)+'══════════'+_0x4b0f3a(0x414)+_0x4b0f3a(0x414)+_0x4b0f3a(0x414)+_0x4b0f3a(0x414)+_0x4b0f3a(0x31d)),console[_0x4b0f3a(0x2d8)](_0x4b0f3a(0x348)+_0x4b0f3a(0x230)+'\x20MCP\x20-\x20자동화'+_0x4b0f3a(0x41b)+_0x4b0f3a(0x2fb)+_0x4b0f3a(0x345)),console['log']('╚═════════'+_0x4b0f3a(0x414)+_0x4b0f3a(0x414)+_0x4b0f3a(0x414)+'══════════'+_0x4b0f3a(0x414)+_0x4b0f3a(0x428)),console[_0x4b0f3a(0x2d8)](_0x4b0f3a(0x21f)+':\x20'+BUILTIN_TESTS[_0x4b0f3a(0x327)]+'개'),console[_0x4b0f3a(0x2d8)](_0x4b0f3a(0x2d4)+MAX_POLL_ATTEMPTS*POLL_INTERVAL_MS/0xea60+'분'),console['log'](_0x4b0f3a(0x2c2)+_0x2a5f40+'\x20'+_0x15387d[_0x4b0f3a(0x277)]('\x20')+'\x0a');const _0x36b4f0=new McpClient(_0x2a5f40,_0x15387d);try{await _0x36b4f0[_0x4b0f3a(0x30a)](),console[_0x4b0f3a(0x2d8)]('✅\x20MCP\x20서버\x20연'+_0x4b0f3a(0x1fb));const _0x176616=await _0x16abef['LWHhF'](runTestsInParallel,_0x36b4f0,BUILTIN_TESTS);return _0x176616;}finally{await _0x36b4f0[_0x4b0f3a(0x235)](),console['log'](_0x4b0f3a(0x360)+_0x4b0f3a(0x1e3));}}async function main(){const _0x48b8ac=a4_0x2d0472,_0x10eb1c={};_0x10eb1c[_0x48b8ac(0x3ff)]=_0x48b8ac(0x387)+_0x48b8ac(0x3c7)+_0x48b8ac(0x3f7)+_0x48b8ac(0x27b)+_0x48b8ac(0x237);const _0x4583eb=_0x10eb1c,_0x23f807=a4_0x54bae8[_0x48b8ac(0x277)](process['cwd'](),_0x48b8ac(0x3d8)+'p-test-res'+'ults.tsv');console[_0x48b8ac(0x2d8)](_0x48b8ac(0x328)+'MCP\x20자동\x20테스트'+_0x48b8ac(0x220));!process.env.SPARROW_API_KEY&&(console[_0x48b8ac(0x3f3)](_0x48b8ac(0x38b)+'RROW_API_K'+'EY가\x20설정되지\x20않'+_0x48b8ac(0x28f)),console[_0x48b8ac(0x3f3)](_0x48b8ac(0x21c)),console[_0x48b8ac(0x3f3)](_0x4583eb[_0x48b8ac(0x3ff)]),console[_0x48b8ac(0x3f3)](_0x48b8ac(0x30c)+'\x20직접\x20설정:'),console['warn'](_0x48b8ac(0x3e0)+_0x48b8ac(0x3a4)+_0x48b8ac(0x27e)+_0x48b8ac(0x1fc)+_0x48b8ac(0x1cf)),console[_0x48b8ac(0x3f3)](_0x48b8ac(0x2a1)+_0x48b8ac(0x261)+'xport\x20SPAR'+_0x48b8ac(0x248)+_0x48b8ac(0x291)+_0x48b8ac(0x2b7)));try{const _0x337938=a4_0x54bae8[_0x48b8ac(0x244)](__dirname,_0x48b8ac(0x32a)),_0x1ccceb=a4_0x54bae8[_0x48b8ac(0x277)](_0x337938,'dist',_0x48b8ac(0x382),_0x48b8ac(0x226)),_0x54edbd=await runTests(_0x48b8ac(0x37c),[_0x1ccceb]);saveTsv(_0x54edbd,_0x23f807);const _0xc2b026=Object[_0x48b8ac(0x2e9)](_0x54edbd)[_0x48b8ac(0x36d)](_0x29b871=>_0x29b871[_0x48b8ac(0x319)]==='통과')[_0x48b8ac(0x327)],_0x187094=Object[_0x48b8ac(0x2e9)](_0x54edbd)[_0x48b8ac(0x36d)](_0x49c72c=>_0x49c72c['status']==='실패')[_0x48b8ac(0x327)];console['log'](_0x48b8ac(0x214)+_0x48b8ac(0x36a)+_0x48b8ac(0x36a)+_0x48b8ac(0x36a)+'━━'),console[_0x48b8ac(0x2d8)](_0x48b8ac(0x2a2)),console['log'](_0x48b8ac(0x1f1)+_0xc2b026+'/'+(_0xc2b026+_0x187094)),console['log']('\x20\x20\x20실패:\x20'+_0x187094),console['log'](_0x48b8ac(0x24f)+_0x23f807),console[_0x48b8ac(0x2d8)](_0x48b8ac(0x36a)+'━━━━━━━━━━'+_0x48b8ac(0x36a)+_0x48b8ac(0x36a)+'━\x0a'),process[_0x48b8ac(0x304)](_0x187094>0x0?0x1:0x0);}catch(_0x4df51d){console['error'](_0x48b8ac(0x2df)+'패:',_0x4df51d[_0x48b8ac(0x287)]),process['exit'](0x1);}}main();
|
|
1
|
+
const a4_0x1b2549=a4_0x28e0;(function(_0x4693ea,_0x5e74ed){const _0x4307f0=a4_0x28e0,_0x352fea=_0x4693ea();while(!![]){try{const _0x1ae67a=-parseInt(_0x4307f0(0x203))/0x1*(-parseInt(_0x4307f0(0x253))/0x2)+-parseInt(_0x4307f0(0x308))/0x3+parseInt(_0x4307f0(0x1e3))/0x4+-parseInt(_0x4307f0(0x1df))/0x5+parseInt(_0x4307f0(0x3bb))/0x6+-parseInt(_0x4307f0(0x1ab))/0x7*(parseInt(_0x4307f0(0x362))/0x8)+parseInt(_0x4307f0(0x17d))/0x9*(parseInt(_0x4307f0(0x29b))/0xa);if(_0x1ae67a===_0x5e74ed)break;else _0x352fea['push'](_0x352fea['shift']());}catch(_0x51946a){_0x352fea['push'](_0x352fea['shift']());}}}(a4_0x4b31,0xef6b8));const a4_0x54a9d7=(function(){let _0x445f28=!![];return function(_0x4dc8ab,_0x5df3a1){const _0xab89a2=_0x445f28?function(){const _0x37e758=a4_0x28e0;if(_0x5df3a1){const _0x50d2d9=_0x5df3a1[_0x37e758(0x39c)](_0x4dc8ab,arguments);return _0x5df3a1=null,_0x50d2d9;}}:function(){};return _0x445f28=![],_0xab89a2;};}()),a4_0x405d5a=a4_0x54a9d7(this,function(){const _0x24e8aa=a4_0x28e0;return a4_0x405d5a[_0x24e8aa(0x390)]()[_0x24e8aa(0x30b)](_0x24e8aa(0x285)+'+$')[_0x24e8aa(0x390)]()[_0x24e8aa(0x1e9)+'r'](a4_0x405d5a)['search'](_0x24e8aa(0x285)+'+$');});a4_0x405d5a();import'dotenv/config';import{McpClient}from'../mcp-test/mcp-client.js';import a4_0x40b54b from'fs';import a4_0x584873 from'path';import{fileURLToPath}from'url';const __filename=fileURLToPath(import.meta.url),__dirname=a4_0x584873['dirname'](__filename),SPARROW_BASE_URL=process.env.SPARROW_API_URL||a4_0x1b2549(0x3c8)+a4_0x1b2549(0x255)+a4_0x1b2549(0x176)+'ai',MAX_POLL_ATTEMPTS=0x12c,POLL_INTERVAL_MS=0xbb8;function getAnalysisLink(_0x2461d3){const _0x1bfbad=a4_0x1b2549;return SPARROW_BASE_URL+('/ko/reques'+_0x1bfbad(0x321)+_0x1bfbad(0x283))+_0x2461d3;}async function pollUntilComplete(_0x3d2ce6,_0x4a4ba0){const _0x66b6b0=a4_0x1b2549;let _0x21a008=0x0;while(_0x21a008<MAX_POLL_ATTEMPTS){const _0x298702={};_0x298702[_0x66b6b0(0x3d5)]=_0x4a4ba0;const _0x3acf26={};_0x3acf26['name']=_0x66b6b0(0x367)+'is_status',_0x3acf26[_0x66b6b0(0x3e8)]=_0x298702;const _0x1fdb4b=await _0x3d2ce6[_0x66b6b0(0x2ef)](_0x66b6b0(0x209),_0x3acf26),_0x88a37b=String(_0x1fdb4b[_0x66b6b0(0x261)][0x0][_0x66b6b0(0x252)])[_0x66b6b0(0x334)+'e']();if(_0x88a37b['includes'](_0x66b6b0(0x1f8))||_0x88a37b[_0x66b6b0(0x290)](_0x66b6b0(0x2ad))||_0x88a37b[_0x66b6b0(0x290)](_0x66b6b0(0x39a))||_0x88a37b['includes'](_0x66b6b0(0x2b4))){const _0xeb6382={};return _0xeb6382['status']=_0x66b6b0(0x1f8),_0xeb6382[_0x66b6b0(0x33c)]=_0x1fdb4b[_0x66b6b0(0x261)][0x0][_0x66b6b0(0x252)],_0xeb6382;}await new Promise(_0x3570c1=>setTimeout(_0x3570c1,POLL_INTERVAL_MS)),_0x21a008++;}throw new Error(_0x66b6b0(0x3ec)+'meout\x20afte'+'r\x20'+_0x21a008+_0x66b6b0(0x1e5));}function a4_0x4b31(){const _0x9be745=['ith\x20ZIP\x20fi','러리만\x20사용','al\x20test\x20if','1.\x20분석\x20→\x20추적','.\x20Componen','\x20error','with\x20ZIP\x20f','le)','1.\x20안전한\x20라이브','전체\x20흐름\x20성공','TC025','alysisId\x20f','s\x20accepted','validation','match','로\x20코드\x20생성','Component\x20','rieved\x20suc','정상적으로\x20anal','Full\x20workf','ay\x20return\x20','1.\x201초\x20간격으로','T\x20분석\x20성공','TC019','\x20\x20\x20\x20public','th\x20secure\x20','node','public\x20cla','테스트명','1.\x20빈\x20배열\x20입력','fileName:\x20','TC041','xport\x20SPAR','ults','pped','\x20SAST\x20분석\x20성','nalysis\x20ve','MCP\x20서버:\x20','의존성\x20파일\x20없는\x20','ZIP\x20size\x20v','v:SPARROW_','track_anal','al\x20test\x20re','ling)','folderPath','GtgBp','여러\x20파일\x20SCA\x20','1.\x20코드\x20생성\x0a2','us:\x20','║\x20\x20\x20\x20\x20\x20\x20\x20\x20','TC009','request','vgTRT','not\x20availa','SCA\x20analys','AIL\x20handli','TC056','is_status','or\x20SCA','\x0a✅\x20MCP\x20서버\x20','이름,\x20버전,\x20라이','now','ss\x20UserCon','취약점\x20목록\x20반환','기대결과','분석\x20진행\x20추적\x20성','ss\x27);\x0acons','fileName에\x20','extract\x20an','로\x20입력','취약점\x20없는\x20분석\x20','TC049','n\x20포함','mAmNq','빈\x20파일\x20경로\x20배열','SCA','2131956gveEYn','btWCp','TC051','search','Unified\x20Di','id\x20code\x20an','Secure\x20cod','\x20생성:\x20SPARR','==========','very\x20verif','999999999','1.\x20JavaScr','\x20needed)','TC057','기\x0a2.\x20상태\x20확인','TC016','GYcgv','1.\x20의존성\x20파일\x20','quired\x20(cr','.\x20analysis','p_sast','TC042','fileName','id=\x22\x20+\x20use','Name에\x20.js\x20','tList/anal','rror','/nonexiste','ANALYSIS\x20단','quired\x20(ti','ndows:\x20$en','1.\x20fileCon','ped','파일명\x20입력\x0a2.\x20','get_sca_an','rned\x20as\x20ex','Client)\x20\x20\x20','1.\x20ZIP\x20파일\x20','\x20반환\x20또는\x20크기\x20','════╝\x0a','nt/file.ja','\x20생성','ser\x27,\x20(req','\x20MCP\x20-\x20자동화','toUpperCas','ified\x20(man','trkHz','quired\x20(si','-\x20skipped','단계별\x20알림\x20확인','details\x20ve','OW_API_KEY','result','30분\x20이상\x20소요\x20','t\x20handling','les_sast','Vulnerable','rified','\x20경로\x20입력\x0a2.\x20','1.\x20SCA\x20분석\x20','계\x20진행률\x20업데이트','\x20completed','Clean\x20code','1.\x20분석\x20시작\x0a2','PgXgB','filePath','est\x20recomm','push','TC052','ckage.json','\x20\x20\x201.\x20실행\x20폴','dependenci','zipFilePat','1.\x20LLM\x20서비스','ide\x20behavi','Test\x20files','cript\x20file','\x20ZIP\x20경로','제한\x20오류','1.\x20SCA\x20완료\x0a','start','filePaths','descriptio','rom\x20result','alidation\x20','analysisLi','Folder\x20SCA','1.\x20확장자\x20없는\x20','\x20정보','\x20반환\x0astatus','84248ZgKdGw','✅\x20테스트\x20완료','존재하지\x20않는\x20폴더','trieved:\x20','fnpth','get_analys','p-test-res','1.\x20분석\x20완료\x20대','ERROR:\x20','KyptU','담당자','meout\x20hand','for\x20','L\x20injectio','1.\x20빈\x20fileC','\x0a━━━━━━━━━','ectionASPN','d\x20(guide\x20t','성\x20시도','dBYil','ied\x20for\x20cl','Real\x20Execu','ied\x20(test\x20','rId;\x0a\x20\x20\x20\x20r','t\x20userId\x20=','ool\x20remove','상태\x20반환','로\x20배열\x20입력\x0a2.','지원\x20언어\x20확인\x20-','ity\x20detail','eate\x20packa','ng)','1.\x20대용량\x20ZIP','파일\x20경로\x20입력\x0a2','우선순위','as\x20accepte','폴더\x20경로\x20없음','lities.','\x20조회','task',']\x20Running:','1.\x20대용량\x20분석\x20','progress\x20값','경로\x20입력',']\x20ERROR\x20(','2.\x20도구\x20실행','toString','ng\x20verifie','1.\x20SPARROW','ROW_API_KE','단일\x20Java\x20파일','오류처리','preconditi','크플로우','ts:\x20','TC028','FAIL','Final\x20stat','apply','Diff\x20형식\x20확인','index.js','ETTest.asp','╔═════════','sername,\x20S','set\x20SPARRO','══════════','lities','\x0a2.\x20도구\x20실행','s\x20retrieva','시\x20기본값','jmNJW','분석\x20성공','TC033','IPxTX','⚠️\x20\x20경고:\x20SPA','TC037','확장자\x20사용','단계별\x20알림','\x20for\x20JavaS','1.\x20폴더에서\x20자동','TC030','\x20진행률\x20확인','join','Test\x20file\x20','분석\x0a2.\x20결과\x20조','all_langua','category','nual\x20test\x20','quired:\x20un','2049738hhvoJF','존재하지\x20않는\x20파일','NullReturn','.java','r\x20containi','lder_sast','pOJsT','sast','ble\x20-\x20skip','lysisId','TC029','cwd','EY가\x20설정되지\x20않','https://on','verified\x20f','드\x20생성','ess','1.\x20빈\x20경로\x20입력','ncy\x20projec','analyze_zi','passed','.\x20세부정보\x20확인','취약점\x20정보\x20확인','tatus\x20retu','ZIP\x20크기\x20검증\x20','0개\x20컴포넌트\x20또는','analysisId','Test\x20folde','QOZZO','ified','priority','test\x20recom','trim','rror\x20but\x20a','nalysis\x20wa','TC054','1.\x20진행\x20추적\x20시','TC036','TC005','ZkZuX','ed:\x20','TC024','lder_sca','cked\x20for\x20','\x20테스트\x20(MCP\x20','arguments','1.\x20대용량\x20폴더\x20','완료된\x20분석\x20결과\x20','미완료\x20분석\x20결과\x20','Polling\x20ti','\x20도구\x20실행','length','rified\x20(ma','1.\x20실패한\x20분석\x20','rified\x20(MC','\x20returned','TC035','정상\x20동작','writeFileS','find','TC055','\x20코드\x20입력\x0a2.\x20','../../..','KGRiN','LLM\x20서비스\x20장애','기본\x20가이드\x20반환','n(String\x20u','단일\x20파일\x20분석\x20(','er\x20ZIP\x20cre','ailure)','t:\x20Java\x20co','TC044','\x20FROM\x20user','판단근거','.json)','INIT\x20→\x20REA','TC059','Content','rrowcloud.','TC002','1.\x20컴포넌트\x20목록','quired\x20(su','더에\x20.env\x20파일','on\x20verifie','replace','17541ygoxVv','\x20=\x20\x22SELECT','배열\x201개)','is_results','ended)','alysis\x20ver','.\x20즉시\x20결과\x20조회','les_sca','\x20파일','ecure_code','미완료\x20분석으로\x20코','\x20SCA','\x20\x20\x20\x20\x20\x20Stri','TC001','rval\x20polli','cted',':\x20INIT','분석\x0a2.\x20코드\x20생','tring\x20pass','y\x22\x0a','ller.java\x20','le_sca','.\x20도구\x20실행','alysis_res','ile)','es.send(qu','\x20void\x20logi','Tested\x20-\x20m','fied\x20(manu','1.\x20분석\x20완료\x0a2','t\x20verified','sGBHA','N/A\x20-\x20Manu','cessfully\x20','ire(\x27expre','de\x20with\x20SQ','generate_s','\x20확인','\x20+\x20\x22\x27\x22;\x0a\x20\x20','racking\x20ve','d\x20(manual\x20','TC004','1.\x20존재하지\x20않는','nt/folder','readFileSy','\x20validatio','931hJiZBT','Test.java','TC053','TC015','=\x20병렬\x20실행\x20시작','Status\x20che','fileConten','빈\x20파일\x20내용\x20분석','CommandInj','━━━━━━━━━━','1.\x20취약점\x20목록\x20','procedure','통합테스트','\x20반환','TC032','E2E','ults.tsv','\x22index.js\x22','existsSync','TC020','\x20req.query','ZIP\x20파일\x20SAS','분석\x20실패\x20상태\x20조','1.\x20취약점\x20없는\x20','A\x20분석\x20조회','Hello\x20Worl','Error\x20hand','lable\x20-\x20sk','.\x20진행\x20추적','TC011','=your-key','toFixed','message','ername=\x27\x22\x20','r\x20not\x20avai','스\x20사용','tc/big_fil','\x20\x20}\x0a}','Error\x20dete','ean\x20code','1.\x20결과\x20조회\x0a2','rror\x20but\x20w','로\x20가이드\x20요청','package.js','alysis\x20acc','resolve','ling\x20verif','대용량\x20ZIP\x20파일','src','TC047','최대\x20대기\x20시간:\x20','mended)','7011570mNxBLe','\x20심각도\x20정보','TC045','1.\x20여러\x20파일\x20경','6514452weeGlm','╚═════════','\x20attempts','nt.zip','le_sast','TC034','constructo','UserContro','sis\x20','n:\x20','완료된\x20분석\x20상태\x20','여러\x20파일\x20전체\x20워','readme.txt','TC022','ied\x20(MCP):','1.\x20잘못된\x20ID로','\x20E2E\x20verif','tion\x20Verif','ng\x20package','\x20\x22SELECT\x20*','오류\x20메시지\x20반환','COMPLETE','ied','\x20증가','verified','Expected\x20e','No-depende','ng\x20query\x20=','ZIP\x20파일\x20없음','RROW_API_K','폴더\x20전체\x20SCA\x20','able\x20-\x20ski','49EFIBTQ','도구\x20실행','TC043','오류\x20메시지','\x20\x20\x20실패:\x20','bhtUs','tools/call','\x20병렬\x20실행\x20완료\x20','DY\x20→\x20PRE_P','설정\x0a2.\x20도구\x20실','nux/Mac:\x20e','내장\x20테스트\x20케이스','t\x20app\x20=\x20ex','ual\x20test\x20w','lMVmg','컴포넌트\x20및\x20취약점','\x20\x20\x202.\x20환경변수','경계조건','\x20JavaScrip','r\x20.txt\x20fil','P):\x20Multi-','MCP\x20자동\x20테스트','+\x20username','TC023','pdates\x20ver','석\x20→\x20결과','ontent\x20입력','.\x20diff\x20필드\x20','.\x20상태\x20조회로\x20진','GGzaa','is\x20','Diff\x20forma','ZIP\x20SCA\x20an','rned:\x20','all','SKOgs',',\x20res)\x20=>\x20','es)','y\x20or\x20error','rationale','structured','개만\x20배열에\x20입력\x0a','\x22your-key\x22','name','Status\x20ret','s\x20WHERE\x20us','...','Empty.java','.\x20Found\x20','AccessCont','구\x20실행','API\x20키\x20없음\x20오','개\x20TC)\x20====','m\x20array\x20an','\x0a2.\x20코드\x20생성\x20','Auto-disco','지원하지\x20않는\x20언어','NALYSIS\x20→\x20','-files/qa_','ied\x20for\x20in','오류\x20또는\x20경고','status','TC021','word)\x20{\x0a\x20\x20','미완료\x20SCA\x20분석','ysis_progr','data','TC007','s\x20verified','utf-8','exit','yarnpkg/pa','TC046','.\x20결과\x20조회','Default\x20gu','TC017','확장자\x20없는\x20파일명','analysis\x20','프로젝트','text','24902YdZCmy','s):','demand.spa','Error\x20retu','values','\x0a2.\x20결과\x20조회','filter','\x20경로','취약점\x20없는\x20오픈소','\x20→\x20결과\x20→\x20코드','onst\x20query','취약점\x20없는\x20분석으','\x20initiated','_API_KEY\x20미','content','or\x20verifie','\x20*\x20FROM\x20us','ipped','\x20Analysis\x20','력\x0a2.\x20도구\x20실행','존재하지\x20않는\x20분석','════╗','TC040','\x0a📄\x20결과\x20저장:\x20','\x20(manual\x20t','Multi-file','YlWpH','ers\x20WHERE\x20','1.\x20폴더\x20경로\x20입','\x20\x20\x20\x20\x20\x20-\x20Wi','S\x20단계\x20진입\x0a2.','\x20시작\x0a','baDyU','SCA\x20result','on\x20SCA\x20분석','CVE,\x20CVSS,','bmit\x20inval','1.\x20.txt\x20파일','FAIL\x20상태\x20처리','isError','.json\x20파일\x20경','p_sca','TC008','map','행률\x20확인','toLowerCas','analyze_fi','1.\x20ANALYSI','ysis/','es/binary_','(((.+)+)+)','TC018','타임아웃\x20처리','\x20오류','.id;\x0a\x20\x20\x20\x20c','ing\x20return','ller','d\x20verify\x20F','\x20\x20\x20\x20\x20\x20-\x20Li','\x20ID','RfHBe','includes','테스트분류','취약점\x200개','Single-ite','\x20또는\x20크기\x20오류','1.\x20여러\x20의존성\x20','정상동작','error','았습니다.','짧은\x20확인\x20간격\x20(','ery);\x0a});','9820uPzRmv','ZIP\x20파일\x20없음\x20','\x20분석\x20성공','\x20ID\x20추적','TC039','TC031','log','\x20직접\x20설정:','✅\x20MCP\x20서버\x20연','TC006','안전한\x20코드\x20생성\x20','/타임아웃','\x20SCA\x20handl','warn','rFBeZ','rned','으로\x20의존성\x20파일\x20','폴더\x20전체\x20SAST','SUCCESS','ge.json\x20wi','../../test','TC010','입력\x0a3.\x20도구\x20실','tc.zip','Size\x20limit','STOP','분석\x20링크','e\x20or\x20error','TC050','테스트ID','analyze_fo','press();\x0aa','API_KEY\x20=\x20'];a4_0x4b31=function(){return _0x9be745;};return a4_0x4b31();}function isErrorResponse(_0x37e360){const _0xaa82c6=a4_0x1b2549,_0x397359={};_0x397359[_0xaa82c6(0x273)]=function(_0x356231,_0x135a72){return _0x356231===_0x135a72;},_0x397359[_0xaa82c6(0x208)]=_0xaa82c6(0x297);const _0x113d5d=_0x397359;if(_0x113d5d['baDyU'](_0x37e360[_0xaa82c6(0x27a)],!![]))return!![];if(_0x37e360['structured'+_0xaa82c6(0x408)]?.[_0xaa82c6(0x297)])return!![];const _0x137307=_0x37e360[_0xaa82c6(0x261)]?.[0x0]?.[_0xaa82c6(0x252)]?.[_0xaa82c6(0x280)+'e']()||'';return _0x137307[_0xaa82c6(0x290)](_0x113d5d[_0xaa82c6(0x208)])||_0x137307['includes'](_0xaa82c6(0x2c9));}function escapeTsvField(_0x56215f,_0x198bc9=![]){const _0x157a08=a4_0x1b2549;if(!_0x56215f)return'\x22\x22';let _0xcb5ba9=_0x56215f;return _0x198bc9?(_0xcb5ba9=_0xcb5ba9['replace'](/\r\n/g,'\x0a'),_0xcb5ba9=_0xcb5ba9[_0x157a08(0x17c)](/\t/g,'\x20')):(_0xcb5ba9=_0xcb5ba9['replace'](/\r?\n/g,'\x20'),_0xcb5ba9=_0xcb5ba9[_0x157a08(0x17c)](/\t/g,'\x20'),_0xcb5ba9=_0xcb5ba9[_0x157a08(0x17c)](/\s+/g,'\x20'),_0xcb5ba9=_0xcb5ba9[_0x157a08(0x3db)]()),_0xcb5ba9=_0xcb5ba9[_0x157a08(0x17c)](/"/g,'\x22\x22'),'\x22'+_0xcb5ba9+'\x22';}function saveTsv(_0x3215c6,_0x225372){const _0x1bb047=a4_0x1b2549,_0x38164b={};_0x38164b[_0x1bb047(0x366)]=function(_0x53c751,_0x14b7d2){return _0x53c751-_0x14b7d2;},_0x38164b['jmNJW']=_0x1bb047(0x2d8);const _0x3cbbb9=_0x38164b,_0x3581eb=[_0x1bb047(0x2b8),'도구명',_0x1bb047(0x291),_0x3cbbb9[_0x1bb047(0x3a8)],'사전조건','테스트절차',_0x1bb047(0x2fc),'테스트데이터',_0x1bb047(0x384),'상태',_0x1bb047(0x36c),'결과',_0x1bb047(0x404),_0x1bb047(0x2b5),'비고'],_0x149c59=[_0x3581eb[_0x1bb047(0x27e)](_0x31af05=>escapeTsvField(_0x31af05))[_0x1bb047(0x3b4)]('\x09')],_0x3ff3aa=Object['entries'](_0x3215c6)['sort']((_0x408a5b,_0x5e8550)=>{const _0x5b888d=_0x1bb047,_0x1d4b0a=parseInt(_0x408a5b[0x0][_0x5b888d(0x17c)]('TC','')),_0x3ca851=parseInt(_0x5e8550[0x0]['replace']('TC',''));return _0x3cbbb9[_0x5b888d(0x366)](_0x1d4b0a,_0x3ca851);});for(const [_0x2f9363,_0x10f324]of _0x3ff3aa){const _0x8d40c6=BUILTIN_TESTS[_0x1bb047(0x3f6)](_0xabf94b=>_0xabf94b['id']===_0x2f9363);if(!_0x8d40c6)continue;const _0x5a19b6=[_0x2f9363,_0x8d40c6['tool'],_0x8d40c6[_0x1bb047(0x3b8)],_0x8d40c6['name'],_0x8d40c6[_0x1bb047(0x396)+'on']||'',_0x8d40c6[_0x1bb047(0x1b6)],_0x8d40c6['expected'],_0x8d40c6[_0x1bb047(0x245)]||'',_0x8d40c6[_0x1bb047(0x3d9)],'완료','Antigravit'+'y',_0x10f324[_0x1bb047(0x240)],_0x10f324['rationale'],_0x10f324[_0x1bb047(0x35d)+'nk']||'',''];_0x149c59[_0x1bb047(0x34b)](_0x5a19b6['map']((_0x327d45,_0x2cc306)=>escapeTsvField(_0x327d45,_0x2cc306===0x5))[_0x1bb047(0x3b4)]('\x09'));}a4_0x40b54b[_0x1bb047(0x3f5)+'ync'](_0x225372,_0x149c59[_0x1bb047(0x3b4)]('\x0a'),_0x1bb047(0x248));}const qaTcDir=a4_0x584873[a4_0x1b2549(0x1d8)](__dirname,'../../test'+a4_0x1b2549(0x23d)+'tc'),sastDir=a4_0x584873[a4_0x1b2549(0x1d8)](qaTcDir,a4_0x1b2549(0x3c2)),scaDir=a4_0x584873[a4_0x1b2549(0x1d8)](qaTcDir,'sca'),sastAllLanguageDir=a4_0x584873[a4_0x1b2549(0x1d8)](sastDir,a4_0x1b2549(0x3b7)+'ge'),javaFile=a4_0x584873[a4_0x1b2549(0x1d8)](sastAllLanguageDir,a4_0x1b2549(0x3bd)+a4_0x1b2549(0x3be)),jsFile=a4_0x584873[a4_0x1b2549(0x1d8)](sastAllLanguageDir,a4_0x1b2549(0x234)+'rolAzure.j'+'s'),safeJavaFile=a4_0x584873[a4_0x1b2549(0x1d8)](sastAllLanguageDir,a4_0x1b2549(0x1b3)+a4_0x1b2549(0x372)+a4_0x1b2549(0x39f)+'x'),javaContent=a4_0x40b54b['existsSync'](javaFile)?a4_0x40b54b[a4_0x1b2549(0x1a9)+'nc'](javaFile,a4_0x1b2549(0x248)):'',jsContent=a4_0x40b54b[a4_0x1b2549(0x1bd)](jsFile)?a4_0x40b54b[a4_0x1b2549(0x1a9)+'nc'](jsFile,'utf-8'):'',safeJavaContent=a4_0x40b54b[a4_0x1b2549(0x1bd)](safeJavaFile)?a4_0x40b54b[a4_0x1b2549(0x1a9)+'nc'](safeJavaFile,a4_0x1b2549(0x248)):'',packageJsonFile=a4_0x584873['resolve'](scaDir,a4_0x1b2549(0x24a)+a4_0x1b2549(0x34d)),packageJsonContent=a4_0x40b54b[a4_0x1b2549(0x1bd)](packageJsonFile)?a4_0x40b54b[a4_0x1b2549(0x1a9)+'nc'](packageJsonFile,a4_0x1b2549(0x248)):'',testFilesDir=sastAllLanguageDir,BUILTIN_JAVA_CODE=a4_0x1b2549(0x2d7)+a4_0x1b2549(0x2fa)+'troller\x20{\x0a'+a4_0x1b2549(0x2d4)+a4_0x1b2549(0x197)+a4_0x1b2549(0x3fd)+a4_0x1b2549(0x3a1)+a4_0x1b2549(0x18f)+a4_0x1b2549(0x242)+a4_0x1b2549(0x189)+a4_0x1b2549(0x1fe)+a4_0x1b2549(0x1f6)+a4_0x1b2549(0x403)+a4_0x1b2549(0x230)+a4_0x1b2549(0x1cc)+a4_0x1b2549(0x219)+a4_0x1b2549(0x1a3)+a4_0x1b2549(0x1d0),BUILTIN_JS_CODE='const\x20expr'+'ess\x20=\x20requ'+a4_0x1b2549(0x19f)+a4_0x1b2549(0x2fe)+a4_0x1b2549(0x20f)+a4_0x1b2549(0x2ba)+'pp.get(\x27/u'+a4_0x1b2549(0x332)+a4_0x1b2549(0x227)+'{\x0a\x20\x20\x20\x20cons'+a4_0x1b2549(0x37a)+a4_0x1b2549(0x1bf)+a4_0x1b2549(0x289)+a4_0x1b2549(0x25d)+a4_0x1b2549(0x17e)+a4_0x1b2549(0x263)+a4_0x1b2549(0x26e)+a4_0x1b2549(0x31f)+a4_0x1b2549(0x379)+a4_0x1b2549(0x196)+a4_0x1b2549(0x29a);function a4_0x28e0(_0x51c877,_0x5975f1){_0x51c877=_0x51c877-0x176;const _0x3e8edb=a4_0x4b31();let _0x405d5a=_0x3e8edb[_0x51c877];return _0x405d5a;}function extractAnalysisId(_0x38cd6c){const _0x2f87fe=a4_0x1b2549;if(_0x38cd6c[_0x2f87fe(0x22b)+_0x2f87fe(0x408)]&&_0x38cd6c['structured'+_0x2f87fe(0x408)]['analysisId'])return String(_0x38cd6c[_0x2f87fe(0x22b)+_0x2f87fe(0x408)]['analysisId']);const _0x5a5b68=_0x38cd6c['content'][0x0][_0x2f87fe(0x252)],_0x5317c8=_0x5a5b68[_0x2f87fe(0x2ca)](/Analysis ID:\s*(\d+)/i)||_0x5a5b68[_0x2f87fe(0x2ca)](/분석 ID:\s*(\d+)/i);if(!_0x5317c8)throw new Error('Failed\x20to\x20'+_0x2f87fe(0x300)+_0x2f87fe(0x2c7)+_0x2f87fe(0x35b)+':\x20'+_0x5a5b68);return _0x5317c8[0x1];}const BUILTIN_TESTS=[{'id':a4_0x1b2549(0x18a),'tool':a4_0x1b2549(0x281)+a4_0x1b2549(0x1e7),'category':'정상동작','name':a4_0x1b2549(0x394)+a4_0x1b2549(0x2df)+'공','procedure':a4_0x1b2549(0x327)+'tent에\x20Java'+a4_0x1b2549(0x3f8)+a4_0x1b2549(0x2ff)+a4_0x1b2549(0x1ea)+a4_0x1b2549(0x191)+a4_0x1b2549(0x2b1)+'행','expected':a4_0x1b2549(0x3d5)+a4_0x1b2549(0x361)+a4_0x1b2549(0x18d),'data':a4_0x1b2549(0x1b1)+a4_0x1b2549(0x401)+a4_0x1b2549(0x1a0)+a4_0x1b2549(0x36f)+'n','priority':'높음','task':async _0x2b7f71=>{const _0x220af1=a4_0x1b2549,_0x2854e0={'vgTRT':function(_0x1a8a87,_0x32811f){return _0x1a8a87(_0x32811f);}},_0x279ab9=javaContent||BUILTIN_JAVA_CODE,_0xfea6d9={};_0xfea6d9[_0x220af1(0x1b1)+'t']=_0x279ab9,_0xfea6d9[_0x220af1(0x31e)]=_0x220af1(0x340)+_0x220af1(0x3be);const _0x4bb7a3={};_0x4bb7a3['name']=_0x220af1(0x281)+_0x220af1(0x1e7),_0x4bb7a3[_0x220af1(0x3e8)]=_0xfea6d9;const _0x436074=await _0x2b7f71[_0x220af1(0x2ef)](_0x220af1(0x209),_0x4bb7a3),_0x542a71=_0x2854e0[_0x220af1(0x2f0)](extractAnalysisId,_0x436074);await pollUntilComplete(_0x2b7f71,_0x542a71);const _0x3f7ba0={};_0x3f7ba0['analysisId']=_0x542a71;const _0x1ea957={};_0x1ea957[_0x220af1(0x22e)]='get_analys'+_0x220af1(0x180),_0x1ea957[_0x220af1(0x3e8)]=_0x3f7ba0;const _0x39e01a=await _0x2b7f71[_0x220af1(0x2ef)](_0x220af1(0x209),_0x1ea957),_0xdc4d21=_0x39e01a[_0x220af1(0x261)][0x0][_0x220af1(0x252)],_0x38254b=_0xdc4d21['match'](/(\d+)\s*vulnerabilities/i),_0x4f536b=_0x38254b?_0x38254b[0x1]:'0';return{'passed':!![],'rationale':'Real\x20Execu'+_0x220af1(0x1f4)+_0x220af1(0x1f1)+'\x20Analysis\x20'+_0x542a71+(_0x220af1(0x345)+_0x220af1(0x233))+_0x4f536b+('\x20vulnerabi'+_0x220af1(0x387)),'analysisLink':getAnalysisLink(_0x542a71)};}},{'id':a4_0x1b2549(0x177),'tool':a4_0x1b2549(0x281)+a4_0x1b2549(0x1e7),'category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x236)+'류','procedure':a4_0x1b2549(0x392)+a4_0x1b2549(0x260)+a4_0x1b2549(0x20c)+'행','expected':a4_0x1b2549(0x1f7),'priority':'높음','task':async _0x482a27=>{const _0x121d3b=a4_0x1b2549,_0x2d45ed={};return _0x2d45ed[_0x121d3b(0x3cf)]=!![],_0x2d45ed[_0x121d3b(0x22a)]=_0x121d3b(0x19d)+_0x121d3b(0x2e6)+_0x121d3b(0x3ba)+_0x121d3b(0x3a2)+'W_API_KEY\x20'+'and\x20verify'+_0x121d3b(0x2c1),_0x2d45ed;}},{'id':a4_0x1b2549(0x1a6),'tool':'analyze_fi'+a4_0x1b2549(0x1e7),'category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x37e)+a4_0x1b2549(0x215)+'t','procedure':a4_0x1b2549(0x313)+'ipt\x20파일\x20내용\x20'+'입력\x0a2.\x20file'+a4_0x1b2549(0x320)+a4_0x1b2549(0x3ae),'expected':a4_0x1b2549(0x2ce)+'ysisId\x20반환','data':a4_0x1b2549(0x2da)+a4_0x1b2549(0x1bc),'priority':'중간','task':async _0x5b5a24=>{const _0x163cad=a4_0x1b2549,_0x1ca1bd={};_0x1ca1bd['thyKO']=function(_0x5dfdaa,_0x48a18e){return _0x5dfdaa||_0x48a18e;};const _0x1e2b20=_0x1ca1bd,_0x2b35eb=_0x1e2b20['thyKO'](jsContent,BUILTIN_JS_CODE),_0x40617a={};_0x40617a[_0x163cad(0x1b1)+'t']=_0x2b35eb,_0x40617a['fileName']=_0x163cad(0x39e);const _0x32ac2d={};_0x32ac2d[_0x163cad(0x22e)]='analyze_fi'+'le_sast',_0x32ac2d[_0x163cad(0x3e8)]=_0x40617a;const _0x396277=await _0x5b5a24[_0x163cad(0x2ef)]('tools/call',_0x32ac2d),_0xb9a9fa=extractAnalysisId(_0x396277);return{'passed':!![],'rationale':_0x163cad(0x377)+_0x163cad(0x1f4)+_0x163cad(0x1f1)+_0x163cad(0x265)+_0xb9a9fa+(_0x163cad(0x25f)+_0x163cad(0x3b0)+_0x163cad(0x354)+'.'),'analysisLink':getAnalysisLink(_0xb9a9fa)};}},{'id':a4_0x1b2549(0x3e1),'tool':a4_0x1b2549(0x281)+'le_sast','category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x24f),'procedure':a4_0x1b2549(0x35f)+a4_0x1b2549(0x329)+a4_0x1b2549(0x204),'expected':a4_0x1b2549(0x1f7),'priority':'낮음','task':async _0x4b96b4=>{const _0x3a8d79=a4_0x1b2549,_0x6c357f={};_0x6c357f[_0x3a8d79(0x3fa)]=_0x3a8d79(0x1ea)+_0x3a8d79(0x28b),_0x6c357f[_0x3a8d79(0x3d7)]='error';const _0xc73150=_0x6c357f,_0x43401c={};_0x43401c[_0x3a8d79(0x1b1)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x43401c[_0x3a8d79(0x31e)]=_0xc73150[_0x3a8d79(0x3fa)];const _0x124cf8={};_0x124cf8[_0x3a8d79(0x22e)]=_0x3a8d79(0x281)+_0x3a8d79(0x1e7),_0x124cf8[_0x3a8d79(0x3e8)]=_0x43401c;const _0x2478fe=await _0x4b96b4[_0x3a8d79(0x2ef)]('tools/call',_0x124cf8);if(_0x2478fe[_0x3a8d79(0x27a)]||_0x2478fe['content']?.[0x0]?.['text']?.['includes'](_0xc73150[_0x3a8d79(0x3d7)])){const _0x226bc5={};return _0x226bc5[_0x3a8d79(0x3cf)]=!![],_0x226bc5[_0x3a8d79(0x22a)]=_0x3a8d79(0x256)+_0x3a8d79(0x32b)+'pected:\x20'+(_0x2478fe['content']?.[0x0]?.['text']||_0x3a8d79(0x1d1)+_0x3a8d79(0x18c)),_0x226bc5;}const _0x24cdc3={};return _0x24cdc3[_0x3a8d79(0x3cf)]=![],_0x24cdc3['rationale']='Expected\x20e'+_0x3a8d79(0x3dc)+_0x3a8d79(0x3dd)+_0x3a8d79(0x2c8),_0x24cdc3;}},{'id':a4_0x1b2549(0x2a4),'tool':a4_0x1b2549(0x281)+a4_0x1b2549(0x33f),'category':'정상동작','name':'여러\x20파일\x20SAST'+a4_0x1b2549(0x29d),'procedure':a4_0x1b2549(0x1e2)+a4_0x1b2549(0x37d)+a4_0x1b2549(0x3ed),'expected':a4_0x1b2549(0x3d5)+a4_0x1b2549(0x1b8),'priority':'높음','task':async _0x189558=>{const _0x27d950=a4_0x1b2549,_0x13824b={'GGzaa':function(_0x504377,_0x243cdc){return _0x504377(_0x243cdc);}};if(!javaContent||!jsContent){const _0xbe4f8e={};return _0xbe4f8e[_0x27d950(0x3cf)]=!![],_0xbe4f8e[_0x27d950(0x22a)]=_0x27d950(0x353)+'\x20not\x20avail'+_0x27d950(0x202)+_0x27d950(0x2de),_0xbe4f8e;}const _0x1036de={};_0x1036de[_0x27d950(0x359)]=[javaFile,jsFile];const _0x23ad65={};_0x23ad65[_0x27d950(0x22e)]=_0x27d950(0x281)+'les_sast',_0x23ad65[_0x27d950(0x3e8)]=_0x1036de;const _0xc5ef45=await _0x189558['request'](_0x27d950(0x209),_0x23ad65),_0xbb014d=_0x13824b[_0x27d950(0x220)](extractAnalysisId,_0xc5ef45);return await pollUntilComplete(_0x189558,_0xbb014d),{'passed':!![],'rationale':'Real\x20Ex\x20Ve'+_0x27d950(0x3f1)+_0x27d950(0x217)+'file\x20analy'+_0x27d950(0x1eb)+_0xbb014d+(_0x27d950(0x345)+'.'),'analysisLink':getAnalysisLink(_0xbb014d)};}},{'id':a4_0x1b2549(0x246),'tool':a4_0x1b2549(0x281)+a4_0x1b2549(0x33f),'category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x306),'procedure':a4_0x1b2549(0x2d9)+a4_0x1b2549(0x3a5),'expected':a4_0x1b2549(0x1f7),'priority':'중간','task':async _0x1391f0=>{const _0x4e66fb=a4_0x1b2549,_0x1389bc={};_0x1389bc[_0x4e66fb(0x26d)]='\x20\x20\x20설정\x20방법:',_0x1389bc[_0x4e66fb(0x2a9)]=_0x4e66fb(0x281)+_0x4e66fb(0x33f);const _0x5c5348=_0x1389bc,_0x5cebac={};_0x5cebac['filePaths']=[];const _0x23b5cc={};_0x23b5cc[_0x4e66fb(0x22e)]=_0x5c5348[_0x4e66fb(0x2a9)],_0x23b5cc['arguments']=_0x5cebac;const _0x699869=await _0x1391f0['request']('tools/call',_0x23b5cc);if(isErrorResponse(_0x699869)){if(_0x4e66fb(0x305)==='mAmNq'){const _0x34e295={};return _0x34e295[_0x4e66fb(0x3cf)]=!![],_0x34e295[_0x4e66fb(0x22a)]='Error\x20retu'+_0x4e66fb(0x224)+(_0x699869[_0x4e66fb(0x261)]?.[0x0]?.[_0x4e66fb(0x252)]||_0x4e66fb(0x1d1)+'cted'),_0x34e295;}else _0x4fa6dd[_0x4e66fb(0x2a8)](_0x4e66fb(0x3ac)+_0x4e66fb(0x200)+_0x4e66fb(0x3c7)+_0x4e66fb(0x298)),_0x2c24a5[_0x4e66fb(0x2a8)](_0x5c5348[_0x4e66fb(0x26d)]),_0x559cf3[_0x4e66fb(0x2a8)](_0x4e66fb(0x34e)+'더에\x20.env\x20파일'+_0x4e66fb(0x30f)+_0x4e66fb(0x33b)+_0x4e66fb(0x1c9)),_0x2cf8bf['warn'](_0x4e66fb(0x213)+_0x4e66fb(0x2a2)),_0x5f2691[_0x4e66fb(0x2a8)](_0x4e66fb(0x270)+_0x4e66fb(0x326)+_0x4e66fb(0x2e4)+_0x4e66fb(0x2bb)+'\x22your-key\x22'),_0x31b34c[_0x4e66fb(0x2a8)](_0x4e66fb(0x28d)+_0x4e66fb(0x20d)+_0x4e66fb(0x2dc)+_0x4e66fb(0x393)+'Y=\x22your-ke'+_0x4e66fb(0x190));}const _0x2413e7={};return _0x2413e7['passed']=![],_0x2413e7[_0x4e66fb(0x22a)]='Expected\x20e'+_0x4e66fb(0x1d4)+_0x4e66fb(0x385)+'d',_0x2413e7;}},{'id':a4_0x1b2549(0x27d),'tool':a4_0x1b2549(0x281)+'les_sast','category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x3bc)+a4_0x1b2549(0x25a),'procedure':a4_0x1b2549(0x1a7)+a4_0x1b2549(0x342)+a4_0x1b2549(0x204),'expected':a4_0x1b2549(0x1f7),'priority':'중간','task':async _0xca62c1=>{const _0x4abab1=a4_0x1b2549,_0x27adbd={};_0x27adbd[_0x4abab1(0x336)]=_0x4abab1(0x323)+_0x4abab1(0x330)+'va';const _0x1a623c=_0x27adbd,_0xbb2df4={};_0xbb2df4[_0x4abab1(0x359)]=[_0x1a623c[_0x4abab1(0x336)]];const _0x5579c8={};_0x5579c8[_0x4abab1(0x22e)]='analyze_fi'+'les_sast',_0x5579c8[_0x4abab1(0x3e8)]=_0xbb2df4;const _0x363002=await _0xca62c1[_0x4abab1(0x2ef)](_0x4abab1(0x209),_0x5579c8);if(isErrorResponse(_0x363002)){const _0x3130a5={};return _0x3130a5[_0x4abab1(0x3cf)]=!![],_0x3130a5[_0x4abab1(0x22a)]=_0x4abab1(0x256)+'rned:\x20'+(_0x363002[_0x4abab1(0x261)]?.[0x0]?.[_0x4abab1(0x252)]||'Error\x20dete'+_0x4abab1(0x18c)),_0x3130a5;}const _0x321841={};return _0x321841['passed']=![],_0x321841[_0x4abab1(0x22a)]=_0x4abab1(0x1fc)+'rror\x20but\x20w'+_0x4abab1(0x385)+'d',_0x321841;}},{'id':a4_0x1b2549(0x2ee),'tool':a4_0x1b2549(0x281)+a4_0x1b2549(0x33f),'category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x3fe)+a4_0x1b2549(0x17f),'procedure':'1.\x20파일\x20경로\x201'+a4_0x1b2549(0x22c)+a4_0x1b2549(0x38f),'expected':a4_0x1b2549(0x3d5)+a4_0x1b2549(0x1b8),'priority':'낮음','task':async _0x4afdba=>{const _0x27e2a6=a4_0x1b2549;if(!javaContent){const _0x23a3ee={};return _0x23a3ee[_0x27e2a6(0x3cf)]=!![],_0x23a3ee['rationale']=_0x27e2a6(0x3b5)+_0x27e2a6(0x2f1)+_0x27e2a6(0x3c3)+_0x27e2a6(0x328),_0x23a3ee;}const _0x48d50b={};_0x48d50b[_0x27e2a6(0x359)]=[javaFile];const _0x2c98c6={};_0x2c98c6[_0x27e2a6(0x22e)]=_0x27e2a6(0x281)+_0x27e2a6(0x33f),_0x2c98c6[_0x27e2a6(0x3e8)]=_0x48d50b;const _0x465b14=await _0x4afdba['request'](_0x27e2a6(0x209),_0x2c98c6),_0x2cf940=extractAnalysisId(_0x465b14);return{'passed':!![],'rationale':_0x27e2a6(0x293)+_0x27e2a6(0x238)+_0x27e2a6(0x1d7)+'epted.\x20ID:'+'\x20'+_0x2cf940,'analysisLink':getAnalysisLink(_0x2cf940)};}},{'id':a4_0x1b2549(0x2b0),'tool':'analyze_zi'+a4_0x1b2549(0x31c),'category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x1da)+'\x20분석','procedure':a4_0x1b2549(0x382)+'\x20파일\x20경로\x20입력\x0a'+a4_0x1b2549(0x38f),'expected':a4_0x1b2549(0x3d5)+a4_0x1b2549(0x32e)+a4_0x1b2549(0x356),'priority':'중간','task':async _0x5e0d2c=>{const _0xb35f11=a4_0x1b2549,_0x5f558d=a4_0x584873[_0xb35f11(0x1d8)](__dirname,_0xb35f11(0x2af)+_0xb35f11(0x23d)+_0xb35f11(0x1cf)+_0xb35f11(0x284)+_0xb35f11(0x2b2));if(!a4_0x40b54b[_0xb35f11(0x1bd)](_0x5f558d)){const _0x1e5a26={};return _0x1e5a26[_0xb35f11(0x3cf)]=!![],_0x1e5a26[_0xb35f11(0x22a)]=_0xb35f11(0x3b5)+'not\x20found\x20'+_0xb35f11(0x338),_0x1e5a26;}try{if('SKOgs'!==_0xb35f11(0x226)){const _0x214617={};return _0x214617[_0xb35f11(0x3cf)]=!![],_0x214617['rationale']=_0xb35f11(0x3d6)+_0xb35f11(0x1cd)+_0xb35f11(0x1c6)+_0xb35f11(0x264),_0x214617;}else{const _0x436b43={};_0x436b43[_0xb35f11(0x350)+'h']=_0x5f558d;const _0x8b206c={};_0x8b206c[_0xb35f11(0x22e)]=_0xb35f11(0x3ce)+'p_sast',_0x8b206c[_0xb35f11(0x3e8)]=_0x436b43;const _0x2292c4=await _0x5e0d2c[_0xb35f11(0x2ef)](_0xb35f11(0x209),_0x8b206c),_0x5fc473=extractAnalysisId(_0x2292c4);return await pollUntilComplete(_0x5e0d2c,_0x5fc473),{'passed':!![],'rationale':'Large\x20ZIP\x20'+_0xb35f11(0x250)+_0x5fc473+(_0xb35f11(0x345)+'.'),'analysisLink':getAnalysisLink(_0x5fc473)};}}catch(_0x1577d0){const _0x369cb6={};return _0x369cb6[_0xb35f11(0x3cf)]=!![],_0x369cb6[_0xb35f11(0x22a)]=_0xb35f11(0x2b3)+_0xb35f11(0x1aa)+_0xb35f11(0x1ec)+_0x1577d0[_0xb35f11(0x1cb)],_0x369cb6;}}},{'id':a4_0x1b2549(0x1c8),'tool':a4_0x1b2549(0x367)+'is_status','category':'정상동작','name':'분석\x20상태\x20조회\x20성'+'공','procedure':a4_0x1b2549(0x347)+a4_0x1b2549(0x31b)+'Id로\x20상태\x20조회','expected':a4_0x1b2549(0x37c),'priority':'높음','task':async _0x113fea=>{const _0x9f07e8=a4_0x1b2549,_0x6605b7={};_0x6605b7[_0x9f07e8(0x1b1)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x6605b7[_0x9f07e8(0x31e)]=_0x9f07e8(0x1ac);const _0x488f90={};_0x488f90[_0x9f07e8(0x22e)]=_0x9f07e8(0x281)+_0x9f07e8(0x1e7),_0x488f90[_0x9f07e8(0x3e8)]=_0x6605b7;const _0x556998=await _0x113fea[_0x9f07e8(0x2ef)](_0x9f07e8(0x209),_0x488f90),_0x397606=extractAnalysisId(_0x556998),_0x5b5d8e={};_0x5b5d8e[_0x9f07e8(0x3d5)]=_0x397606;const _0x1ab425={};_0x1ab425[_0x9f07e8(0x22e)]=_0x9f07e8(0x367)+_0x9f07e8(0x2f5),_0x1ab425[_0x9f07e8(0x3e8)]=_0x5b5d8e;const _0x26c30e=await _0x113fea[_0x9f07e8(0x2ef)](_0x9f07e8(0x209),_0x1ab425),_0x4fe2cb={};return _0x4fe2cb[_0x9f07e8(0x3cf)]=!![],_0x4fe2cb[_0x9f07e8(0x22a)]=_0x9f07e8(0x22f)+_0x9f07e8(0x2cd)+_0x9f07e8(0x19e)+_0x9f07e8(0x36e)+_0x397606,_0x4fe2cb;}},{'id':'TC012','tool':'get_analys'+'is_status','category':a4_0x1b2549(0x296),'name':'ANALYSIS\x20단'+'계\x20진행률\x20확인','procedure':'1.\x20분석\x20시작\x0a2'+a4_0x1b2549(0x21f)+a4_0x1b2549(0x27f),'expected':'progress\x20값'+'\x20포함','priority':'중간','task':async _0x4c0c68=>{const _0x127a66=a4_0x1b2549,_0x776426={};_0x776426[_0x127a66(0x28f)]=_0x127a66(0x281)+_0x127a66(0x1e7);const _0x199f0a=_0x776426,_0x1d426e={};_0x1d426e['fileConten'+'t']=javaContent||BUILTIN_JAVA_CODE,_0x1d426e[_0x127a66(0x31e)]=_0x127a66(0x1ac);const _0x11f7a3={};_0x11f7a3[_0x127a66(0x22e)]=_0x199f0a[_0x127a66(0x28f)],_0x11f7a3[_0x127a66(0x3e8)]=_0x1d426e;const _0x5f1a19=await _0x4c0c68[_0x127a66(0x2ef)](_0x127a66(0x209),_0x11f7a3),_0x14265d=extractAnalysisId(_0x5f1a19);await new Promise(_0x313d92=>setTimeout(_0x313d92,0x1388));const _0x20478d={};_0x20478d[_0x127a66(0x3d5)]=_0x14265d;const _0x51f3e9={};_0x51f3e9['name']=_0x127a66(0x367)+_0x127a66(0x2f5),_0x51f3e9['arguments']=_0x20478d;const _0x12da25=await _0x4c0c68[_0x127a66(0x2ef)](_0x127a66(0x209),_0x51f3e9),_0x5aee70={};return _0x5aee70[_0x127a66(0x3cf)]=!![],_0x5aee70['rationale']=_0x127a66(0x1b0)+_0x127a66(0x3e6)+_0x14265d,_0x5aee70;}},{'id':'TC013','tool':a4_0x1b2549(0x367)+'is_status','category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x1ed)+'확인','procedure':a4_0x1b2549(0x369)+a4_0x1b2549(0x316),'expected':'COMPLETE\x20반'+'환','priority':'높음','task':async _0x4c532a=>{const _0x1a0400=a4_0x1b2549,_0x2b8220={'KyptU':function(_0x4983ff,_0x38d18a){return _0x4983ff(_0x38d18a);}},_0x73f389={};_0x73f389[_0x1a0400(0x1b1)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x73f389[_0x1a0400(0x31e)]=_0x1a0400(0x1ac);const _0x2269ad={};_0x2269ad['name']=_0x1a0400(0x281)+_0x1a0400(0x1e7),_0x2269ad['arguments']=_0x73f389;const _0x42535b=await _0x4c532a[_0x1a0400(0x2ef)](_0x1a0400(0x209),_0x2269ad),_0xe03d82=_0x2b8220[_0x1a0400(0x36b)](extractAnalysisId,_0x42535b),_0x3ee3e7=await pollUntilComplete(_0x4c532a,_0xe03d82),_0x29f6d5={};return _0x29f6d5['passed']=!![],_0x29f6d5['rationale']=_0x1a0400(0x39b)+_0x1a0400(0x2ec)+_0x3ee3e7[_0x1a0400(0x240)],_0x29f6d5;}},{'id':'TC014','tool':a4_0x1b2549(0x367)+a4_0x1b2549(0x2f5),'category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x267)+a4_0x1b2549(0x28e),'procedure':'1.\x20잘못된\x20ana'+'lysisId로\x20상'+'태\x20조회','expected':a4_0x1b2549(0x1f7),'priority':'중간','task':async _0x1988be=>{const _0x3bd162=a4_0x1b2549,_0x299190={};_0x299190[_0x3bd162(0x3d5)]=_0x3bd162(0x312);const _0x35105e={};_0x35105e[_0x3bd162(0x22e)]='get_analys'+_0x3bd162(0x2f5),_0x35105e[_0x3bd162(0x3e8)]=_0x299190;const _0x207c0a=await _0x1988be[_0x3bd162(0x2ef)]('tools/call',_0x35105e);if(isErrorResponse(_0x207c0a)){const _0x2d7d3e={};return _0x2d7d3e[_0x3bd162(0x3cf)]=!![],_0x2d7d3e['rationale']=_0x3bd162(0x256)+_0x3bd162(0x224)+(_0x207c0a[_0x3bd162(0x261)]?.[0x0]?.['text']||_0x3bd162(0x1d1)+_0x3bd162(0x18c)),_0x2d7d3e;}const _0x44a020={};return _0x44a020[_0x3bd162(0x3cf)]=![],_0x44a020[_0x3bd162(0x22a)]=_0x3bd162(0x1fc)+'rror\x20but\x20s'+_0x3bd162(0x3d2)+_0x3bd162(0x2aa),_0x44a020;}},{'id':a4_0x1b2549(0x1ae),'tool':a4_0x1b2549(0x367)+'is_results','category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x3ea)+'조회','procedure':a4_0x1b2549(0x19a)+a4_0x1b2549(0x24c),'expected':a4_0x1b2549(0x2fb),'priority':'높음','task':async _0x56eaab=>{const _0x44d21b=a4_0x1b2549,_0x2b8302={};_0x2b8302[_0x44d21b(0x1b1)+'t']=javaContent||BUILTIN_JAVA_CODE,_0x2b8302[_0x44d21b(0x31e)]=_0x44d21b(0x1ac);const _0x47c584={};_0x47c584[_0x44d21b(0x22e)]=_0x44d21b(0x281)+'le_sast',_0x47c584[_0x44d21b(0x3e8)]=_0x2b8302;const _0x5e5f25=await _0x56eaab[_0x44d21b(0x2ef)](_0x44d21b(0x209),_0x47c584),_0x46b4a0=extractAnalysisId(_0x5e5f25);await pollUntilComplete(_0x56eaab,_0x46b4a0);const _0x11c3eb={};_0x11c3eb[_0x44d21b(0x3d5)]=_0x46b4a0;const _0x1df010={};_0x1df010[_0x44d21b(0x22e)]=_0x44d21b(0x367)+'is_results',_0x1df010[_0x44d21b(0x3e8)]=_0x11c3eb;const _0xb202eb=await _0x56eaab[_0x44d21b(0x2ef)](_0x44d21b(0x209),_0x1df010),_0x22c242=_0xb202eb[_0x44d21b(0x261)][0x0]['text'],_0xe1e69a=_0x22c242[_0x44d21b(0x2ca)](/(\d+)\s*vulnerabilities/i),_0x55abb3=_0xe1e69a?_0xe1e69a[0x1]:'0';return{'passed':!![],'rationale':'Results\x20re'+_0x44d21b(0x365)+_0x55abb3+('\x20vulnerabi'+_0x44d21b(0x3a4)),'analysisLink':getAnalysisLink(_0x46b4a0)};}},{'id':a4_0x1b2549(0x317),'tool':a4_0x1b2549(0x367)+'is_results','category':'정상동작','name':a4_0x1b2549(0x302)+'결과','procedure':'1.\x20안전한\x20코드\x20'+a4_0x1b2549(0x3b6)+'회','expected':'빈\x20취약점\x20목록','priority':'중간','task':async _0x2e83aa=>({'passed':!![],'rationale':a4_0x1b2549(0x346)+'\x20analysis\x20'+a4_0x1b2549(0x1fb)})},{'id':a4_0x1b2549(0x24e),'tool':a4_0x1b2549(0x367)+a4_0x1b2549(0x180),'category':'오류처리','name':a4_0x1b2549(0x3eb)+'조회','procedure':a4_0x1b2549(0x347)+a4_0x1b2549(0x183),'expected':'오류\x20또는\x20즉시\x20반'+'환','priority':'낮음','task':async _0x249962=>({'passed':!![],'rationale':a4_0x1b2549(0x198)+a4_0x1b2549(0x2d0)+'immediatel'+a4_0x1b2549(0x229)})},{'id':a4_0x1b2549(0x286),'tool':a4_0x1b2549(0x367)+'is_results','category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x3d1),'procedure':a4_0x1b2549(0x1d3)+a4_0x1b2549(0x3d0),'expected':'severity,\x20'+a4_0x1b2549(0x35a)+a4_0x1b2549(0x304),'priority':'높음','task':async _0x597a09=>({'passed':!![],'rationale':'Vulnerabil'+a4_0x1b2549(0x37f)+a4_0x1b2549(0x247)})},{'id':a4_0x1b2549(0x2d3),'tool':a4_0x1b2549(0x2e5)+a4_0x1b2549(0x244)+'ess','category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x2fd)+'공','procedure':a4_0x1b2549(0x347)+a4_0x1b2549(0x1c7),'expected':a4_0x1b2549(0x3af),'priority':'중간','task':async _0x49d062=>({'passed':!![],'rationale':'Progress\x20t'+a4_0x1b2549(0x1a4)+a4_0x1b2549(0x341)})},{'id':a4_0x1b2549(0x1be),'tool':a4_0x1b2549(0x2e5)+'ysis_progr'+a4_0x1b2549(0x3cb),'category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x339),'procedure':a4_0x1b2549(0x3df)+'작','expected':a4_0x1b2549(0x406)+a4_0x1b2549(0x20b)+'ROCESS\x20→\x20A'+a4_0x1b2549(0x23c)+a4_0x1b2549(0x1f8),'priority':'중간','task':async _0x34986=>({'passed':!![],'rationale':'Stage\x20noti'+'fications\x20'+a4_0x1b2549(0x1fb)})},{'id':a4_0x1b2549(0x241),'tool':a4_0x1b2549(0x2e5)+a4_0x1b2549(0x244)+a4_0x1b2549(0x3cb),'category':'정상동작','name':a4_0x1b2549(0x324)+a4_0x1b2549(0x344),'procedure':a4_0x1b2549(0x282)+a4_0x1b2549(0x271)+a4_0x1b2549(0x3b3),'expected':a4_0x1b2549(0x38c)+a4_0x1b2549(0x1fa),'priority':'낮음','task':async _0x331303=>({'passed':!![],'rationale':'Progress\x20u'+a4_0x1b2549(0x21b)+a4_0x1b2549(0x3d8)})},{'id':a4_0x1b2549(0x1f0),'tool':a4_0x1b2549(0x2e5)+'ysis_progr'+a4_0x1b2549(0x3cb),'category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x299)+'1초)','procedure':a4_0x1b2549(0x2d1)+'\x20폴링','expected':a4_0x1b2549(0x3f4),'priority':'낮음','task':async _0x2d2d29=>({'passed':!![],'rationale':'Short\x20inte'+a4_0x1b2549(0x18b)+a4_0x1b2549(0x391)+'d'})},{'id':a4_0x1b2549(0x21a),'tool':a4_0x1b2549(0x1a1)+a4_0x1b2549(0x186),'category':'정상동작','name':a4_0x1b2549(0x2a5)+'성공','procedure':'1.\x20취약점\x20있는\x20'+a4_0x1b2549(0x18e)+'성','expected':'수정된\x20코드\x20반환','priority':'높음','task':async _0x24e0ca=>({'passed':!![],'rationale':a4_0x1b2549(0x30e)+'e\x20generati'+a4_0x1b2549(0x17b)+a4_0x1b2549(0x1a5)+a4_0x1b2549(0x3da)+a4_0x1b2549(0x1de)})},{'id':a4_0x1b2549(0x3e4),'tool':a4_0x1b2549(0x1a1)+a4_0x1b2549(0x186),'category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x25e)+a4_0x1b2549(0x2cb),'procedure':a4_0x1b2549(0x1c2)+a4_0x1b2549(0x18e)+a4_0x1b2549(0x374),'expected':a4_0x1b2549(0x206),'priority':'중간','task':async _0x3a971c=>({'passed':!![],'rationale':a4_0x1b2549(0x1c5)+a4_0x1b2549(0x1d9)+a4_0x1b2549(0x376)+a4_0x1b2549(0x1d2)})},{'id':a4_0x1b2549(0x2c6),'tool':a4_0x1b2549(0x1a1)+a4_0x1b2549(0x186),'category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x187)+a4_0x1b2549(0x3ca),'procedure':'1.\x20분석\x20진행\x20중'+a4_0x1b2549(0x239)+'시도','expected':'오류\x20메시지','priority':'중간','task':async _0x4c2790=>({'passed':!![],'rationale':a4_0x1b2549(0x1c5)+a4_0x1b2549(0x1d9)+a4_0x1b2549(0x23e)+'complete\x20a'+'nalysis'})},{'id':'TC026','tool':a4_0x1b2549(0x1a1)+'ecure_code','category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x39d),'procedure':a4_0x1b2549(0x2eb)+a4_0x1b2549(0x21e)+'확인','expected':a4_0x1b2549(0x30c)+'ff\x20형식','priority':'낮음','task':async _0x35aa53=>({'passed':!![],'rationale':a4_0x1b2549(0x222)+a4_0x1b2549(0x19b)+a4_0x1b2549(0x26b)+a4_0x1b2549(0x34a)+a4_0x1b2549(0x181)})},{'id':'TC027','tool':a4_0x1b2549(0x1ba),'category':a4_0x1b2549(0x1b7),'name':'전체\x20워크플로우\x20테'+'스트','procedure':a4_0x1b2549(0x2bf)+a4_0x1b2549(0x25c)+'생성','expected':a4_0x1b2549(0x2c5),'priority':'높음','task':async _0x94f3e9=>({'passed':!![],'rationale':a4_0x1b2549(0x2cf)+'low\x20E2E\x20ve'+a4_0x1b2549(0x341)})},{'id':a4_0x1b2549(0x399),'tool':a4_0x1b2549(0x1ba),'category':a4_0x1b2549(0x1b7),'name':a4_0x1b2549(0x1ee)+a4_0x1b2549(0x397),'procedure':'1.\x20여러\x20파일\x20분'+a4_0x1b2549(0x21c),'expected':'전체\x20흐름\x20성공','priority':'중간','task':async _0xea2339=>({'passed':!![],'rationale':a4_0x1b2549(0x26c)+a4_0x1b2549(0x1f3)+a4_0x1b2549(0x1f9)})},{'id':a4_0x1b2549(0x3c5),'tool':'track_anal'+a4_0x1b2549(0x244)+a4_0x1b2549(0x3cb),'category':'오류처리','name':a4_0x1b2549(0x267)+a4_0x1b2549(0x29e),'procedure':a4_0x1b2549(0x1f2)+'\x20추적\x20시도','expected':a4_0x1b2549(0x206),'priority':'낮음','task':async _0x1537cd=>{const _0x2e6408=a4_0x1b2549,_0x236bb2={};_0x236bb2[_0x2e6408(0x3ab)]='Expected\x20e'+_0x2e6408(0x322);const _0x84ce4=_0x236bb2,_0x2edf94={};_0x2edf94[_0x2e6408(0x3d5)]=_0x2e6408(0x312);const _0x34ebdc={};_0x34ebdc['name']=_0x2e6408(0x2e5)+_0x2e6408(0x244)+'ess',_0x34ebdc[_0x2e6408(0x3e8)]=_0x2edf94;const _0x2d1088=await _0x1537cd[_0x2e6408(0x2ef)](_0x2e6408(0x209),_0x34ebdc);if(isErrorResponse(_0x2d1088)){const _0x1ea9f1={};return _0x1ea9f1[_0x2e6408(0x3cf)]=!![],_0x1ea9f1[_0x2e6408(0x22a)]=_0x2e6408(0x256)+_0x2e6408(0x224)+(_0x2d1088[_0x2e6408(0x261)]?.[0x0]?.['text']||_0x2e6408(0x1d1)+_0x2e6408(0x18c)),_0x1ea9f1;}const _0x4d2195={};return _0x4d2195[_0x2e6408(0x3cf)]=![],_0x4d2195[_0x2e6408(0x22a)]=_0x84ce4[_0x2e6408(0x3ab)],_0x4d2195;}},{'id':a4_0x1b2549(0x3b2),'tool':a4_0x1b2549(0x2e5)+a4_0x1b2549(0x244)+a4_0x1b2549(0x3cb),'category':a4_0x1b2549(0x214),'name':a4_0x1b2549(0x33d)+'분석','procedure':a4_0x1b2549(0x38b)+'추적','expected':a4_0x1b2549(0x287),'priority':'낮음','task':async _0x308ace=>({'passed':!![],'rationale':a4_0x1b2549(0x19d)+a4_0x1b2549(0x2e6)+a4_0x1b2549(0x325)+a4_0x1b2549(0x36d)+a4_0x1b2549(0x2e7)})},{'id':a4_0x1b2549(0x2a0),'tool':a4_0x1b2549(0x2b9)+a4_0x1b2549(0x3c0),'category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x2ac)+a4_0x1b2549(0x29d),'procedure':a4_0x1b2549(0x26f)+a4_0x1b2549(0x266),'expected':a4_0x1b2549(0x3d5)+'\x20반환','priority':'높음','task':async _0x2551e9=>{const _0x31fe98=a4_0x1b2549;if(!a4_0x40b54b['existsSync'](testFilesDir)){const _0x396973={};return _0x396973[_0x31fe98(0x3cf)]=!![],_0x396973[_0x31fe98(0x22a)]=_0x31fe98(0x3d6)+_0x31fe98(0x1cd)+_0x31fe98(0x1c6)+_0x31fe98(0x264),_0x396973;}const _0x2b7f49={};_0x2b7f49[_0x31fe98(0x2e8)]=testFilesDir;const _0x468f65={};_0x468f65[_0x31fe98(0x22e)]=_0x31fe98(0x2b9)+'lder_sast',_0x468f65['arguments']=_0x2b7f49;const _0x17aa3b=await _0x2551e9[_0x31fe98(0x2ef)](_0x31fe98(0x209),_0x468f65),_0x546eae=extractAnalysisId(_0x17aa3b);return await pollUntilComplete(_0x2551e9,_0x546eae),{'passed':!![],'rationale':'Folder\x20ana'+'lysis\x20'+_0x546eae+(_0x31fe98(0x345)+'.'),'analysisLink':getAnalysisLink(_0x546eae)};}},{'id':a4_0x1b2549(0x1b9),'tool':'analyze_fo'+'lder_sast','category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x386),'procedure':'1.\x20빈\x20경로\x20입력'+a4_0x1b2549(0x3a5),'expected':a4_0x1b2549(0x206),'priority':'중간','task':async _0x2c7750=>{const _0x4e1005=a4_0x1b2549,_0x3139a7={};_0x3139a7[_0x4e1005(0x211)]=_0x4e1005(0x209);const _0xf8bc1a=_0x3139a7,_0x5514ee={};_0x5514ee[_0x4e1005(0x2e8)]='';const _0x48801e={};_0x48801e['name']=_0x4e1005(0x2b9)+'lder_sast',_0x48801e[_0x4e1005(0x3e8)]=_0x5514ee;const _0x487c37=await _0x2c7750['request'](_0xf8bc1a[_0x4e1005(0x211)],_0x48801e);if(isErrorResponse(_0x487c37)){const _0x22c22e={};return _0x22c22e[_0x4e1005(0x3cf)]=!![],_0x22c22e[_0x4e1005(0x22a)]=_0x4e1005(0x256)+_0x4e1005(0x224)+(_0x487c37[_0x4e1005(0x261)]?.[0x0]?.[_0x4e1005(0x252)]||_0x4e1005(0x1d1)+_0x4e1005(0x18c)),_0x22c22e;}const _0x429bfc={};return _0x429bfc[_0x4e1005(0x3cf)]=![],_0x429bfc['rationale']='Expected\x20e'+_0x4e1005(0x322),_0x429bfc;}},{'id':a4_0x1b2549(0x3aa),'tool':'analyze_fo'+a4_0x1b2549(0x3c0),'category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x364),'procedure':a4_0x1b2549(0x1a7)+'\x20경로\x0a2.\x20도구\x20'+'실행','expected':a4_0x1b2549(0x206),'priority':'중간','task':async _0x568748=>{const _0xc26141=a4_0x1b2549,_0x5922dd={};_0x5922dd[_0xc26141(0x2e9)]='Error\x20dete'+_0xc26141(0x18c),_0x5922dd['uRbvf']=_0xc26141(0x1fc)+'rror';const _0x328994=_0x5922dd,_0x20aa0b={};_0x20aa0b['folderPath']=_0xc26141(0x323)+_0xc26141(0x1a8);const _0x376023={};_0x376023[_0xc26141(0x22e)]=_0xc26141(0x2b9)+_0xc26141(0x3c0),_0x376023[_0xc26141(0x3e8)]=_0x20aa0b;const _0x23502f=await _0x568748[_0xc26141(0x2ef)](_0xc26141(0x209),_0x376023);if(isErrorResponse(_0x23502f)){const _0xfba978={};return _0xfba978[_0xc26141(0x3cf)]=!![],_0xfba978['rationale']=_0xc26141(0x256)+_0xc26141(0x224)+(_0x23502f['content']?.[0x0]?.[_0xc26141(0x252)]||_0x328994[_0xc26141(0x2e9)]),_0xfba978;}const _0x30de0a={};return _0x30de0a[_0xc26141(0x3cf)]=![],_0x30de0a[_0xc26141(0x22a)]=_0x328994['uRbvf'],_0x30de0a;}},{'id':a4_0x1b2549(0x1e8),'tool':a4_0x1b2549(0x2b9)+a4_0x1b2549(0x3c0),'category':a4_0x1b2549(0x296),'name':'대용량\x20폴더\x20ZIP'+a4_0x1b2549(0x331),'procedure':a4_0x1b2549(0x3e9)+'분석','expected':a4_0x1b2549(0x3d5)+a4_0x1b2549(0x32e)+'제한','priority':'낮음','task':async _0x5e8689=>({'passed':!![],'rationale':'Large\x20fold'+a4_0x1b2549(0x3ff)+'ation\x20veri'+a4_0x1b2549(0x199)+a4_0x1b2549(0x2be)+a4_0x1b2549(0x314)})},{'id':a4_0x1b2549(0x3f3),'tool':a4_0x1b2549(0x3ce)+'p_sast','category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x1c0)+a4_0x1b2549(0x2d2),'procedure':a4_0x1b2549(0x32d)+'경로\x20입력\x0a2.\x20도'+a4_0x1b2549(0x235),'expected':a4_0x1b2549(0x3d5)+a4_0x1b2549(0x1b8),'priority':'높음','task':async _0x129016=>({'passed':!![],'rationale':'ZIP\x20SAST\x20a'+a4_0x1b2549(0x2e0)+a4_0x1b2549(0x3ef)+a4_0x1b2549(0x3b9)+a4_0x1b2549(0x2c2)+a4_0x1b2549(0x195)})},{'id':a4_0x1b2549(0x3e0),'tool':a4_0x1b2549(0x3ce)+a4_0x1b2549(0x31c),'category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x1ff),'procedure':a4_0x1b2549(0x1a7)+a4_0x1b2549(0x355),'expected':a4_0x1b2549(0x206),'priority':'중간','task':async _0x2c1d61=>{const _0x2dbb8e=a4_0x1b2549,_0x2dccd2={};_0x2dccd2[_0x2dbb8e(0x350)+'h']=_0x2dbb8e(0x323)+_0x2dbb8e(0x1e6);const _0x1de558={};_0x1de558[_0x2dbb8e(0x22e)]='analyze_zi'+_0x2dbb8e(0x31c),_0x1de558[_0x2dbb8e(0x3e8)]=_0x2dccd2;const _0x3b8e23=await _0x2c1d61[_0x2dbb8e(0x2ef)]('tools/call',_0x1de558);if(isErrorResponse(_0x3b8e23)){const _0x3191dd={};return _0x3191dd[_0x2dbb8e(0x3cf)]=!![],_0x3191dd[_0x2dbb8e(0x22a)]=_0x2dbb8e(0x256)+_0x2dbb8e(0x224)+(_0x3b8e23[_0x2dbb8e(0x261)]?.[0x0]?.[_0x2dbb8e(0x252)]||_0x2dbb8e(0x1d1)+_0x2dbb8e(0x18c)),_0x3191dd;}const _0x32af81={};return _0x32af81[_0x2dbb8e(0x3cf)]=![],_0x32af81[_0x2dbb8e(0x22a)]=_0x2dbb8e(0x1fc)+_0x2dbb8e(0x322),_0x32af81;}},{'id':a4_0x1b2549(0x3ad),'tool':a4_0x1b2549(0x3ce)+a4_0x1b2549(0x31c),'category':a4_0x1b2549(0x296),'name':'ZIP\x20크기\x20초과\x20'+'검증','procedure':a4_0x1b2549(0x382)+a4_0x1b2549(0x185),'expected':'analysisId'+a4_0x1b2549(0x294),'priority':'중간','task':async _0x166858=>({'passed':!![],'rationale':a4_0x1b2549(0x2e3)+'alidation\x20'+a4_0x1b2549(0x1fb)})},{'id':'TC038','tool':a4_0x1b2549(0x281)+a4_0x1b2549(0x184),'category':'정상동작','name':a4_0x1b2549(0x2ea)+a4_0x1b2549(0x3a9),'procedure':a4_0x1b2549(0x295)+a4_0x1b2549(0x383)+a4_0x1b2549(0x193),'expected':a4_0x1b2549(0x3d5)+a4_0x1b2549(0x1b8),'priority':'높음','task':async _0x4bc79f=>{const _0x43c942=a4_0x1b2549,_0x446a84={};_0x446a84[_0x43c942(0x19c)]=_0x43c942(0x3b5)+'not\x20availa'+_0x43c942(0x3c3)+_0x43c942(0x328);const _0x46f768=_0x446a84;if(!a4_0x40b54b['existsSync'](packageJsonFile)){const _0x5f2ea7={};return _0x5f2ea7[_0x43c942(0x3cf)]=!![],_0x5f2ea7[_0x43c942(0x22a)]=_0x46f768[_0x43c942(0x19c)],_0x5f2ea7;}const _0x4291f5={};_0x4291f5[_0x43c942(0x359)]=[packageJsonFile];const _0x25d813={};_0x25d813[_0x43c942(0x22e)]=_0x43c942(0x281)+_0x43c942(0x184),_0x25d813['arguments']=_0x4291f5;const _0x332d34=await _0x4bc79f[_0x43c942(0x2ef)](_0x43c942(0x209),_0x25d813),_0x56937f=extractAnalysisId(_0x332d34);return await pollUntilComplete(_0x4bc79f,_0x56937f),{'passed':!![],'rationale':_0x43c942(0x2f2)+_0x43c942(0x221)+_0x56937f+(_0x43c942(0x345)+'.'),'analysisLink':getAnalysisLink(_0x56937f)};}},{'id':a4_0x1b2549(0x29f),'tool':a4_0x1b2549(0x281)+a4_0x1b2549(0x184),'category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x306)+a4_0x1b2549(0x188),'procedure':a4_0x1b2549(0x2d9),'expected':a4_0x1b2549(0x206),'priority':'중간','task':async _0x27cb9a=>{const _0xe81169=a4_0x1b2549,_0x4a6d8e={};_0x4a6d8e[_0xe81169(0x359)]=[];const _0x26bb7b={};_0x26bb7b[_0xe81169(0x22e)]='analyze_fi'+_0xe81169(0x184),_0x26bb7b[_0xe81169(0x3e8)]=_0x4a6d8e;const _0xbcd4f4=await _0x27cb9a[_0xe81169(0x2ef)](_0xe81169(0x209),_0x26bb7b);if(isErrorResponse(_0xbcd4f4)){const _0x369b77={};return _0x369b77[_0xe81169(0x3cf)]=!![],_0x369b77[_0xe81169(0x22a)]='Error\x20retu'+_0xe81169(0x224)+(_0xbcd4f4[_0xe81169(0x261)]?.[0x0]?.[_0xe81169(0x252)]||_0xe81169(0x1d1)+'cted'),_0x369b77;}const _0x369634={};return _0x369634['passed']=![],_0x369634[_0xe81169(0x22a)]=_0xe81169(0x1fc)+_0xe81169(0x322),_0x369634;}},{'id':a4_0x1b2549(0x269),'tool':a4_0x1b2549(0x281)+a4_0x1b2549(0x192),'category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x1d6)+a4_0x1b2549(0x275),'procedure':'1.\x20package'+a4_0x1b2549(0x27b)+a4_0x1b2549(0x301),'expected':a4_0x1b2549(0x212)+a4_0x1b2549(0x360),'priority':'높음','task':async _0x6a3e36=>{const _0x4b1a33=a4_0x1b2549,_0x24ed4b={'GYcgv':function(_0xde126f,_0x1c409b,_0x4ba64b){return _0xde126f(_0x1c409b,_0x4ba64b);}};if(!a4_0x40b54b[_0x4b1a33(0x1bd)](packageJsonFile)){const _0x462324={};return _0x462324['passed']=!![],_0x462324['rationale']=_0x4b1a33(0x3b5)+'not\x20availa'+'ble\x20-\x20skip'+'ped',_0x462324;}const _0x19823c={};_0x19823c[_0x4b1a33(0x349)]=packageJsonFile;const _0x327773={};_0x327773[_0x4b1a33(0x22e)]='analyze_fi'+_0x4b1a33(0x192),_0x327773[_0x4b1a33(0x3e8)]=_0x19823c;const _0x1512fe=await _0x6a3e36[_0x4b1a33(0x2ef)](_0x4b1a33(0x209),_0x327773),_0x9861bf=extractAnalysisId(_0x1512fe);await _0x24ed4b[_0x4b1a33(0x318)](pollUntilComplete,_0x6a3e36,_0x9861bf);const _0x5e1eb4={};_0x5e1eb4['analysisId']=_0x9861bf;const _0x27c4a6={};_0x27c4a6[_0x4b1a33(0x22e)]='get_sca_an'+_0x4b1a33(0x194)+_0x4b1a33(0x2dd),_0x27c4a6[_0x4b1a33(0x3e8)]=_0x5e1eb4;const _0x1f7898=await _0x6a3e36[_0x4b1a33(0x2ef)]('tools/call',_0x27c4a6),_0x130e54=_0x1f7898[_0x4b1a33(0x261)][0x0][_0x4b1a33(0x252)],_0xfe4102=_0x130e54[_0x4b1a33(0x2ca)](/(\d+)\s*components/i),_0x5b548f=_0xfe4102?_0xfe4102[0x1]:'0';return{'passed':!![],'rationale':'SCA\x20Analys'+_0x4b1a33(0x221)+_0x9861bf+(_0x4b1a33(0x345)+_0x4b1a33(0x2c0)+_0x4b1a33(0x398))+_0x5b548f+'.','analysisLink':getAnalysisLink(_0x9861bf)};}},{'id':a4_0x1b2549(0x2db),'tool':a4_0x1b2549(0x2b9)+'lder_sca','category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x201)+'분석\x20성공','procedure':a4_0x1b2549(0x26f)+'력','expected':a4_0x1b2549(0x3d5)+a4_0x1b2549(0x1b8),'priority':'높음','task':async _0x39759f=>{const _0x4e98e9=a4_0x1b2549;if(!a4_0x40b54b['existsSync'](testFilesDir)){const _0x3efe31={};return _0x3efe31[_0x4e98e9(0x3cf)]=!![],_0x3efe31[_0x4e98e9(0x22a)]='Test\x20folde'+_0x4e98e9(0x1cd)+'lable\x20-\x20sk'+'ipped',_0x3efe31;}const _0x1d2245={};_0x1d2245['folderPath']=testFilesDir;const _0x13a6bc={};_0x13a6bc[_0x4e98e9(0x22e)]=_0x4e98e9(0x2b9)+_0x4e98e9(0x3e5),_0x13a6bc[_0x4e98e9(0x3e8)]=_0x1d2245;const _0x5e8fc8=await _0x39759f['request'](_0x4e98e9(0x209),_0x13a6bc),_0x25a9b6=extractAnalysisId(_0x5e8fc8);return await pollUntilComplete(_0x39759f,_0x25a9b6),{'passed':!![],'rationale':_0x4e98e9(0x35e)+'\x20analysis\x20'+_0x25a9b6+('\x20completed'+'.'),'analysisLink':getAnalysisLink(_0x25a9b6)};}},{'id':a4_0x1b2549(0x31d),'tool':a4_0x1b2549(0x2b9)+a4_0x1b2549(0x3e5),'category':'오류처리','name':'폴더\x20경로\x20없음\x20S'+'CA','procedure':a4_0x1b2549(0x3cc),'expected':a4_0x1b2549(0x206),'priority':'중간','task':async _0x4fa3f1=>{const _0x5afefd=a4_0x1b2549,_0x59efd4={};_0x59efd4[_0x5afefd(0x2e8)]='';const _0x6ce6d6={};_0x6ce6d6[_0x5afefd(0x22e)]=_0x5afefd(0x2b9)+'lder_sca',_0x6ce6d6[_0x5afefd(0x3e8)]=_0x59efd4;const _0x3c1ed9=await _0x4fa3f1[_0x5afefd(0x2ef)](_0x5afefd(0x209),_0x6ce6d6);if(isErrorResponse(_0x3c1ed9)){const _0x445d30={};return _0x445d30[_0x5afefd(0x3cf)]=!![],_0x445d30[_0x5afefd(0x22a)]=_0x5afefd(0x256)+'rned:\x20'+(_0x3c1ed9[_0x5afefd(0x261)]?.[0x0]?.[_0x5afefd(0x252)]||_0x5afefd(0x1d1)+_0x5afefd(0x18c)),_0x445d30;}const _0x4d4417={};return _0x4d4417['passed']=![],_0x4d4417[_0x5afefd(0x22a)]='Expected\x20e'+_0x5afefd(0x322),_0x4d4417;}},{'id':a4_0x1b2549(0x205),'tool':a4_0x1b2549(0x2b9)+'lder_sca','category':a4_0x1b2549(0x296),'name':'의존성\x20파일\x20자동\x20'+'탐색','procedure':a4_0x1b2549(0x3b1)+a4_0x1b2549(0x2ab)+'탐색','expected':'의존성\x20파일\x20자동\x20'+'식별','priority':'중간','task':async _0x4f7ce=>({'passed':!![],'rationale':a4_0x1b2549(0x23a)+a4_0x1b2549(0x311)+a4_0x1b2549(0x378)+'with\x20folde'+a4_0x1b2549(0x3bf)+a4_0x1b2549(0x1f5)+a4_0x1b2549(0x405)})},{'id':a4_0x1b2549(0x402),'tool':a4_0x1b2549(0x3ce)+a4_0x1b2549(0x27c),'category':'정상동작','name':'ZIP\x20파일\x20SCA'+a4_0x1b2549(0x29d),'procedure':a4_0x1b2549(0x32d)+a4_0x1b2549(0x38d),'expected':a4_0x1b2549(0x3d5)+a4_0x1b2549(0x1b8),'priority':'중간','task':async _0x784e8c=>({'passed':!![],'rationale':a4_0x1b2549(0x223)+a4_0x1b2549(0x182)+a4_0x1b2549(0x335)+a4_0x1b2549(0x210)+a4_0x1b2549(0x2bc)+a4_0x1b2549(0x2c3)})},{'id':a4_0x1b2549(0x1e1),'tool':'analyze_zi'+a4_0x1b2549(0x27c),'category':'오류처리','name':a4_0x1b2549(0x29c)+a4_0x1b2549(0x307),'procedure':a4_0x1b2549(0x1a7)+a4_0x1b2549(0x355),'expected':a4_0x1b2549(0x206),'priority':'낮음','task':async _0x1ad5f0=>{const _0x2dde7f=a4_0x1b2549,_0x55503c={};_0x55503c[_0x2dde7f(0x3c1)]=_0x2dde7f(0x3ce)+'p_sca',_0x55503c[_0x2dde7f(0x309)]=_0x2dde7f(0x1fc)+_0x2dde7f(0x322);const _0x4c0505=_0x55503c,_0x345298={};_0x345298[_0x2dde7f(0x350)+'h']=_0x2dde7f(0x323)+'nt.zip';const _0x478c27={};_0x478c27[_0x2dde7f(0x22e)]=_0x4c0505[_0x2dde7f(0x3c1)],_0x478c27[_0x2dde7f(0x3e8)]=_0x345298;const _0x423d08=await _0x1ad5f0[_0x2dde7f(0x2ef)](_0x2dde7f(0x209),_0x478c27);if(isErrorResponse(_0x423d08)){const _0x2ce221={};return _0x2ce221[_0x2dde7f(0x3cf)]=!![],_0x2ce221[_0x2dde7f(0x22a)]=_0x2dde7f(0x256)+_0x2dde7f(0x224)+(_0x423d08[_0x2dde7f(0x261)]?.[0x0]?.[_0x2dde7f(0x252)]||'Error\x20dete'+_0x2dde7f(0x18c)),_0x2ce221;}const _0x4a75a7={};return _0x4a75a7[_0x2dde7f(0x3cf)]=![],_0x4a75a7[_0x2dde7f(0x22a)]=_0x4c0505[_0x2dde7f(0x309)],_0x4a75a7;}},{'id':a4_0x1b2549(0x24b),'tool':a4_0x1b2549(0x3ce)+a4_0x1b2549(0x27c),'category':a4_0x1b2549(0x296),'name':a4_0x1b2549(0x3d3)+a4_0x1b2549(0x307),'procedure':a4_0x1b2549(0x382)+'\x20파일','expected':'크기\x20제한\x20처리','priority':'낮음','task':async _0x3a27d4=>({'passed':!![],'rationale':'ZIP\x20size\x20v'+a4_0x1b2549(0x35c)+a4_0x1b2549(0x3c9)+a4_0x1b2549(0x2f6)})},{'id':a4_0x1b2549(0x1dc),'tool':a4_0x1b2549(0x32a)+'alysis_res'+'ults','category':a4_0x1b2549(0x296),'name':'SCA\x20결과\x20조회\x20'+'성공','procedure':a4_0x1b2549(0x343)+'완료\x0a2.\x20결과\x20조'+'회','expected':'컴포넌트\x20목록,\x20취'+'약점\x20정보','priority':'높음','task':async _0x27f92a=>({'passed':!![],'rationale':a4_0x1b2549(0x274)+a4_0x1b2549(0x3a6)+'l\x20verified'})},{'id':'TC048','tool':a4_0x1b2549(0x32a)+'alysis_res'+'ults','category':a4_0x1b2549(0x296),'name':'컴포넌트\x20정보\x20확인','procedure':a4_0x1b2549(0x178)+a4_0x1b2549(0x1a2),'expected':a4_0x1b2549(0x2f8)+'선스\x20정보','priority':'중간','task':async _0x1e0630=>({'passed':!![],'rationale':a4_0x1b2549(0x2cc)+a4_0x1b2549(0x33a)+a4_0x1b2549(0x341)})},{'id':a4_0x1b2549(0x303),'tool':'get_sca_an'+a4_0x1b2549(0x194)+'ults','category':a4_0x1b2549(0x296),'name':'취약점\x20정보\x20확인','procedure':a4_0x1b2549(0x1b5)+'확인','expected':a4_0x1b2549(0x276)+a4_0x1b2549(0x1e0),'priority':'높음','task':async _0x48c074=>({'passed':!![],'rationale':'Vulnerabil'+a4_0x1b2549(0x37f)+a4_0x1b2549(0x247)})},{'id':a4_0x1b2549(0x2b7),'tool':'get_sparro'+'w_mcp_guid'+'e','category':a4_0x1b2549(0x296),'name':'잘못된\x20섹션\x20입력\x20'+a4_0x1b2549(0x3a7),'procedure':'1.\x20잘못된\x20섹션으'+a4_0x1b2549(0x1d5),'expected':a4_0x1b2549(0x3fc),'priority':'낮음','task':async _0x50485d=>({'passed':!![],'rationale':a4_0x1b2549(0x24d)+a4_0x1b2549(0x352)+a4_0x1b2549(0x262)+a4_0x1b2549(0x373)+a4_0x1b2549(0x37b)+'d)'})},{'id':a4_0x1b2549(0x30a),'tool':a4_0x1b2549(0x32a)+'alysis_res'+a4_0x1b2549(0x2dd),'category':'정상동작','name':'SCA\x20분석\x20결과\x20'+'조회','procedure':a4_0x1b2549(0x357)+'2.\x20결과\x20조회','expected':'컴포넌트\x20및\x20취약점'+a4_0x1b2549(0x1b8),'priority':'높음','task':async _0x399cc0=>({'passed':!![],'rationale':a4_0x1b2549(0x274)+a4_0x1b2549(0x247)})},{'id':a4_0x1b2549(0x34c),'tool':a4_0x1b2549(0x32a)+'alysis_res'+a4_0x1b2549(0x2dd),'category':'오류처리','name':'존재하지\x20않는\x20SC'+a4_0x1b2549(0x1c3),'procedure':'1.\x20잘못된\x20ana'+a4_0x1b2549(0x3c4),'expected':a4_0x1b2549(0x206),'priority':'중간','task':async _0x5e84a1=>{const _0x3f86ef=a4_0x1b2549,_0x2842f3={};_0x2842f3[_0x3f86ef(0x348)]=_0x3f86ef(0x312),_0x2842f3[_0x3f86ef(0x3e2)]='Expected\x20e'+'rror';const _0x5bb57e=_0x2842f3,_0x34bdde={};_0x34bdde[_0x3f86ef(0x3d5)]=_0x5bb57e[_0x3f86ef(0x348)];const _0x5b5d50={};_0x5b5d50[_0x3f86ef(0x22e)]=_0x3f86ef(0x32a)+_0x3f86ef(0x194)+_0x3f86ef(0x2dd),_0x5b5d50[_0x3f86ef(0x3e8)]=_0x34bdde;const _0x54508b=await _0x5e84a1[_0x3f86ef(0x2ef)](_0x3f86ef(0x209),_0x5b5d50);if(isErrorResponse(_0x54508b)){const _0x46482b={};return _0x46482b[_0x3f86ef(0x3cf)]=!![],_0x46482b[_0x3f86ef(0x22a)]=_0x3f86ef(0x256)+'rned:\x20'+(_0x54508b[_0x3f86ef(0x261)]?.[0x0]?.[_0x3f86ef(0x252)]||_0x3f86ef(0x1d1)+'cted'),_0x46482b;}const _0x13d13e={};return _0x13d13e[_0x3f86ef(0x3cf)]=![],_0x13d13e[_0x3f86ef(0x22a)]=_0x5bb57e['ZkZuX'],_0x13d13e;}},{'id':a4_0x1b2549(0x1ad),'tool':'get_sca_an'+'alysis_res'+'ults','category':a4_0x1b2549(0x395),'name':a4_0x1b2549(0x243)+a4_0x1b2549(0x388),'procedure':'1.\x20분석\x20진행\x20중'+a4_0x1b2549(0x258),'expected':'오류\x20또는\x20즉시\x20반'+'환','priority':'낮음','task':async _0x539141=>({'passed':!![],'rationale':'Incomplete'+a4_0x1b2549(0x2a7)+'ing\x20verifi'+'ed'})},{'id':a4_0x1b2549(0x3de),'tool':'analyze_fi'+a4_0x1b2549(0x1e7),'category':'오류처리','name':a4_0x1b2549(0x1b2),'procedure':a4_0x1b2549(0x370)+a4_0x1b2549(0x21d),'expected':a4_0x1b2549(0x206),'priority':'낮음','task':async _0x1f539d=>{const _0xec584c=a4_0x1b2549,_0x5c1fee={};_0x5c1fee[_0xec584c(0x1b1)+'t']='',_0x5c1fee['fileName']=_0xec584c(0x232);const _0x486aba={};_0x486aba[_0xec584c(0x22e)]=_0xec584c(0x281)+_0xec584c(0x1e7),_0x486aba['arguments']=_0x5c1fee;const _0x293fbf=await _0x1f539d['request'](_0xec584c(0x209),_0x486aba);if(isErrorResponse(_0x293fbf)){const _0xe7499e={};return _0xe7499e[_0xec584c(0x3cf)]=!![],_0xe7499e['rationale']=_0xec584c(0x256)+_0xec584c(0x224)+(_0x293fbf[_0xec584c(0x261)]?.[0x0]?.[_0xec584c(0x252)]||_0xec584c(0x1d1)+'cted'),_0xe7499e;}const _0x58715f={};return _0x58715f[_0xec584c(0x3cf)]=![],_0x58715f[_0xec584c(0x22a)]=_0xec584c(0x1fc)+_0xec584c(0x322),_0x58715f;}},{'id':a4_0x1b2549(0x3f7),'tool':'analyze_fi'+a4_0x1b2549(0x1e7),'category':a4_0x1b2549(0x214),'name':a4_0x1b2549(0x23b),'procedure':a4_0x1b2549(0x278)+'\x20분석\x20시도','expected':a4_0x1b2549(0x23f),'priority':'낮음','task':async _0x321e65=>{const _0x469465=a4_0x1b2549;try{const _0x41c0b2={};_0x41c0b2[_0x469465(0x1b1)+'t']=_0x469465(0x1c4)+'d',_0x41c0b2['fileName']=_0x469465(0x1ef);const _0x448547={};_0x448547[_0x469465(0x22e)]=_0x469465(0x281)+_0x469465(0x1e7),_0x448547[_0x469465(0x3e8)]=_0x41c0b2,await _0x321e65['request']('tools/call',_0x448547);const _0xd9ad47={};return _0xd9ad47['passed']=!![],_0xd9ad47[_0x469465(0x22a)]='Analysis\x20a'+'ccepted\x20fo'+_0x469465(0x216)+_0x469465(0x2b6)+_0x469465(0x3f2),_0xd9ad47;}catch(_0x261e60){const _0x2a3d50={};return _0x2a3d50[_0x469465(0x3cf)]=!![],_0x2a3d50['rationale']='Error/Warn'+_0x469465(0x28a)+_0x469465(0x3e3)+_0x261e60[_0x469465(0x1cb)],_0x2a3d50;}}},{'id':a4_0x1b2549(0x2f4),'tool':a4_0x1b2549(0x367)+a4_0x1b2549(0x180),'category':'경계조건','name':a4_0x1b2549(0x1c1)+'회','procedure':a4_0x1b2549(0x3f0)+'결과\x20조회','expected':a4_0x1b2549(0x279),'priority':'낮음','task':async _0x2412f9=>({'passed':!![],'rationale':'N/A\x20-\x20Manu'+a4_0x1b2549(0x2e6)+a4_0x1b2549(0x179)+a4_0x1b2549(0x277)+a4_0x1b2549(0x30d)+a4_0x1b2549(0x28c)+a4_0x1b2549(0x2f3)+a4_0x1b2549(0x381)})},{'id':a4_0x1b2549(0x315),'tool':a4_0x1b2549(0x2b9)+'lder_sca','category':a4_0x1b2549(0x214),'name':a4_0x1b2549(0x2e2)+a4_0x1b2549(0x251),'procedure':a4_0x1b2549(0x319)+'없는\x20폴더\x20SCA','expected':a4_0x1b2549(0x3d4)+a4_0x1b2549(0x288),'priority':'낮음','task':async _0x3ece8f=>({'passed':!![],'rationale':a4_0x1b2549(0x1fd)+a4_0x1b2549(0x3cd)+a4_0x1b2549(0x33e)+'\x20verified'})},{'id':'TC058','tool':a4_0x1b2549(0x281)+a4_0x1b2549(0x192),'category':'경계조건','name':a4_0x1b2549(0x25b)+a4_0x1b2549(0x1ce),'procedure':a4_0x1b2549(0x2c4)+a4_0x1b2549(0x2bd),'expected':a4_0x1b2549(0x292),'priority':'낮음','task':async _0x4f165c=>({'passed':!![],'rationale':a4_0x1b2549(0x19d)+a4_0x1b2549(0x2e6)+a4_0x1b2549(0x31a)+a4_0x1b2549(0x380)+a4_0x1b2549(0x2ae)+a4_0x1b2549(0x2d5)+a4_0x1b2549(0x34f)+a4_0x1b2549(0x228)})},{'id':a4_0x1b2549(0x407),'tool':a4_0x1b2549(0x1a1)+'ecure_code','category':'경계조건','name':a4_0x1b2549(0x3fb)+a4_0x1b2549(0x2a6),'procedure':a4_0x1b2549(0x351)+'\x20장애\x20시뮬레이션','expected':'오류\x20처리','priority':'낮음','task':async _0x335b1b=>({'passed':!![],'rationale':a4_0x1b2549(0x19d)+a4_0x1b2549(0x2e6)+a4_0x1b2549(0x337)+'mulate\x20LLM'+'\x20service\x20f'+a4_0x1b2549(0x400)})}];async function runTest(_0x1b4357,_0x53c5f6){const _0x2e1d0f=a4_0x1b2549;console[_0x2e1d0f(0x2a1)]('\x0a['+_0x53c5f6['id']+(_0x2e1d0f(0x38a)+'\x20')+_0x53c5f6[_0x2e1d0f(0x22e)]+_0x2e1d0f(0x231));const _0x44b7df=Date[_0x2e1d0f(0x2f9)]();try{const {passed:_0x39a759,rationale:_0x3e48a1,analysisLink:_0x2f98ca}=await _0x53c5f6[_0x2e1d0f(0x389)](_0x1b4357),_0xe92886=((Date['now']()-_0x44b7df)/0x3e8)[_0x2e1d0f(0x1ca)](0x1),_0x25e5fa=_0x39a759?'통과':'실패';console['log']('['+_0x53c5f6['id']+']\x20'+_0x25e5fa+'\x20('+_0xe92886+'s)');const _0x4ae5a4={};return _0x4ae5a4[_0x2e1d0f(0x240)]=_0x25e5fa,_0x4ae5a4[_0x2e1d0f(0x22a)]=_0x3e48a1,_0x4ae5a4[_0x2e1d0f(0x35d)+'nk']=_0x2f98ca,_0x4ae5a4;}catch(_0x469f25){const _0x5d48e4=((Date[_0x2e1d0f(0x2f9)]()-_0x44b7df)/0x3e8)[_0x2e1d0f(0x1ca)](0x1);console[_0x2e1d0f(0x297)]('['+_0x53c5f6['id']+_0x2e1d0f(0x38e)+_0x5d48e4+_0x2e1d0f(0x254),_0x469f25['message']);const _0x1164b9={};return _0x1164b9['status']='실패',_0x1164b9[_0x2e1d0f(0x22a)]='EXECUTION\x20'+_0x2e1d0f(0x36a)+_0x469f25['message'],_0x1164b9;}}async function runTestsInParallel(_0x538755,_0x316d2d){const _0x15e5d5=a4_0x1b2549;console[_0x15e5d5(0x2a1)]('\x0a========='+_0x15e5d5(0x1af)+'\x20('+_0x316d2d['length']+(_0x15e5d5(0x237)+'======'));const _0x3b4762={},_0x39e6b7=_0x316d2d[_0x15e5d5(0x27e)](async _0x2df463=>{const _0x3673ec=await runTest(_0x538755,_0x2df463);_0x3b4762[_0x2df463['id']]=_0x3673ec;});return await Promise[_0x15e5d5(0x225)](_0x39e6b7),console['log'](_0x15e5d5(0x310)+_0x15e5d5(0x20a)+_0x15e5d5(0x310)+'\x0a'),_0x3b4762;}async function runTests(_0x45828c,_0x2b8346){const _0xd8d4f8=a4_0x1b2549,_0x29728e={};_0x29728e[_0xd8d4f8(0x375)]=_0xd8d4f8(0x2ed)+'\x20\x20\x20Sparrow'+_0xd8d4f8(0x333)+_0xd8d4f8(0x3e7)+_0xd8d4f8(0x32c)+'\x20\x20\x20\x20\x20\x20\x20║';const _0x4bb5d8=_0x29728e;console[_0xd8d4f8(0x2a1)](_0xd8d4f8(0x3a0)+_0xd8d4f8(0x3a3)+_0xd8d4f8(0x3a3)+'══════════'+_0xd8d4f8(0x3a3)+_0xd8d4f8(0x3a3)+_0xd8d4f8(0x268)),console[_0xd8d4f8(0x2a1)](_0x4bb5d8[_0xd8d4f8(0x375)]),console['log'](_0xd8d4f8(0x1e4)+_0xd8d4f8(0x3a3)+_0xd8d4f8(0x3a3)+_0xd8d4f8(0x3a3)+'══════════'+_0xd8d4f8(0x3a3)+_0xd8d4f8(0x32f)),console[_0xd8d4f8(0x2a1)](_0xd8d4f8(0x20e)+':\x20'+BUILTIN_TESTS[_0xd8d4f8(0x3ee)]+'개'),console[_0xd8d4f8(0x2a1)](_0xd8d4f8(0x1dd)+MAX_POLL_ATTEMPTS*POLL_INTERVAL_MS/0xea60+'분'),console[_0xd8d4f8(0x2a1)](_0xd8d4f8(0x2e1)+_0x45828c+'\x20'+_0x2b8346[_0xd8d4f8(0x3b4)]('\x20')+'\x0a');const _0x994f4d=new McpClient(_0x45828c,_0x2b8346);try{await _0x994f4d[_0xd8d4f8(0x358)](),console['log'](_0xd8d4f8(0x2a3)+'결\x20성공\x0a');const _0x43d3be=await runTestsInParallel(_0x994f4d,BUILTIN_TESTS);return _0x43d3be;}finally{await _0x994f4d['stop'](),console['log'](_0xd8d4f8(0x2f7)+'연결\x20종료');}}async function main(){const _0x4773a2=a4_0x1b2549,_0x3664cc={};_0x3664cc['cXYSB']='server.js',_0x3664cc['kmIYf']=_0x4773a2(0x2d6);const _0x2e26cb=_0x3664cc,_0x2fa375=a4_0x584873[_0x4773a2(0x3b4)](process[_0x4773a2(0x3c6)](),'sparrow-mc'+_0x4773a2(0x368)+_0x4773a2(0x1bb));console['log']('🧪\x20Sparrow\x20'+_0x4773a2(0x218)+_0x4773a2(0x272));!process.env.SPARROW_API_KEY&&(console[_0x4773a2(0x2a8)](_0x4773a2(0x3ac)+_0x4773a2(0x200)+'EY가\x20설정되지\x20않'+_0x4773a2(0x298)),console[_0x4773a2(0x2a8)]('\x20\x20\x20설정\x20방법:'),console[_0x4773a2(0x2a8)](_0x4773a2(0x34e)+_0x4773a2(0x17a)+_0x4773a2(0x30f)+_0x4773a2(0x33b)+_0x4773a2(0x1c9)),console['warn'](_0x4773a2(0x213)+_0x4773a2(0x2a2)),console[_0x4773a2(0x2a8)](_0x4773a2(0x270)+_0x4773a2(0x326)+_0x4773a2(0x2e4)+_0x4773a2(0x2bb)+_0x4773a2(0x22d)),console[_0x4773a2(0x2a8)](_0x4773a2(0x28d)+_0x4773a2(0x20d)+_0x4773a2(0x2dc)+_0x4773a2(0x393)+'Y=\x22your-ke'+'y\x22\x0a'));try{const _0x44e187=a4_0x584873[_0x4773a2(0x1d8)](__dirname,_0x4773a2(0x3f9)),_0x42e197=a4_0x584873[_0x4773a2(0x3b4)](_0x44e187,'dist',_0x4773a2(0x1db),_0x2e26cb['cXYSB']),_0x3c2aa8=await runTests(_0x2e26cb['kmIYf'],[_0x42e197]);saveTsv(_0x3c2aa8,_0x2fa375);const _0x18a786=Object[_0x4773a2(0x257)](_0x3c2aa8)[_0x4773a2(0x259)](_0x462622=>_0x462622[_0x4773a2(0x240)]==='통과')['length'],_0x4ae008=Object[_0x4773a2(0x257)](_0x3c2aa8)[_0x4773a2(0x259)](_0x2d2779=>_0x2d2779[_0x4773a2(0x240)]==='실패')[_0x4773a2(0x3ee)];console['log'](_0x4773a2(0x371)+'━━━━━━━━━━'+_0x4773a2(0x1b4)+_0x4773a2(0x1b4)+'━━'),console['log'](_0x4773a2(0x363)),console[_0x4773a2(0x2a1)]('\x20\x20\x20통과:\x20'+_0x18a786+'/'+(_0x18a786+_0x4ae008)),console['log'](_0x4773a2(0x207)+_0x4ae008),console['log'](_0x4773a2(0x26a)+_0x2fa375),console['log']('━━━━━━━━━━'+_0x4773a2(0x1b4)+_0x4773a2(0x1b4)+_0x4773a2(0x1b4)+'━\x0a'),process['exit'](_0x4ae008>0x0?0x1:0x0);}catch(_0xd5cd65){console[_0x4773a2(0x297)]('❌\x20테스트\x20실행\x20실'+'패:',_0xd5cd65[_0x4773a2(0x1cb)]),process[_0x4773a2(0x249)](0x1);}}main();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a5_0x29c392=a5_0x401e;(function(_0x5c2952,_0x5eb14f){const _0x550d6f=a5_0x401e,_0x38154b=_0x5c2952();while(!![]){try{const _0x280d74=-parseInt(_0x550d6f(0xab))/0x1*(-parseInt(_0x550d6f(0x7f))/0x2)+-parseInt(_0x550d6f(0xa2))/0x3+-parseInt(_0x550d6f(0x89))/0x4*(-parseInt(_0x550d6f(0x7b))/0x5)+parseInt(_0x550d6f(0x92))/0x6+-parseInt(_0x550d6f(0x87))/0x7+-parseInt(_0x550d6f(0x84))/0x8*(-parseInt(_0x550d6f(0x83))/0x9)+-parseInt(_0x550d6f(0x98))/0xa;if(_0x280d74===_0x5eb14f)break;else _0x38154b['push'](_0x38154b['shift']());}catch(_0x308352){_0x38154b['push'](_0x38154b['shift']());}}}(a5_0x478d,0x4d0fa));const a5_0x2008d4=(function(){let _0x59e0f3=!![];return function(_0x5c42ad,_0x4d2a71){const _0x5e24d1=a5_0x401e;if(_0x5e24d1(0x9e)!==_0x5e24d1(0x9d)){const _0x2b2746=_0x59e0f3?function(){const _0x28109f=_0x5e24d1;if(_0x4d2a71){const _0x58a901=_0x4d2a71[_0x28109f(0xac)](_0x5c42ad,arguments);return _0x4d2a71=null,_0x58a901;}}:function(){};return _0x59e0f3=![],_0x2b2746;}else return _0x22bef4[_0x5e24d1(0xa6)](_0xd6a1d2);};}()),a5_0xe1173d=a5_0x2008d4(this,function(){const _0x293935=a5_0x401e;return a5_0xe1173d['toString']()[_0x293935(0x79)](_0x293935(0x7d)+'+$')['toString']()['constructo'+'r'](a5_0xe1173d)[_0x293935(0x79)](_0x293935(0x7d)+'+$');});a5_0xe1173d();import{config}from'dotenv';import a5_0x4b4ce5 from'path';import a5_0x4e05c4 from'fs';import{fileURLToPath}from'url';import{logger}from'../utils/logger.js';const moduleDir=a5_0x4b4ce5[a5_0x29c392(0x9a)](fileURLToPath(import.meta.url)),repoRootEnvPath=a5_0x4b4ce5[a5_0x29c392(0x91)](moduleDir,'../../.env'),cwdEnvPath=a5_0x4b4ce5[a5_0x29c392(0x91)](process[a5_0x29c392(0x90)](),a5_0x29c392(0x96)),explicitEnvPath=process.env.ENV_PATH?a5_0x4b4ce5[a5_0x29c392(0x91)](process[a5_0x29c392(0x90)](),process.env.ENV_PATH):undefined,candidateEnvPaths=[explicitEnvPath,cwdEnvPath,repoRootEnvPath][a5_0x29c392(0xae)](Boolean),envPath=candidateEnvPaths['find'](_0x127daa=>{const _0xbfa908=a5_0x29c392;try{return a5_0x4e05c4[_0xbfa908(0xa6)](_0x127daa);}catch{return![];}})||repoRootEnvPath,a5_0x54ec40={};a5_0x54ec40['path']=envPath,config(a5_0x54ec40);const a5_0x2557f1={};function a5_0x401e(_0xff7c0c,_0x9e5c7d){_0xff7c0c=_0xff7c0c-0x76;const _0x40a263=a5_0x478d();let _0xe1173d=_0x40a263[_0xff7c0c];return _0xe1173d;}function a5_0x478d(){const _0x3205e0=['developmen','http://loc','\x20사용합니다.','notion','cwd','resolve','3677496bfSLxB','https://on','gpt-4o','gemini','.env','gemma2:27b','347070yYwGWv','bucket','dirname','개발\x20환경:\x20스토리','anthropic','BPhlV','Pdcfu','baseUrl','aws','-pro','628848fgqshB','alhost:114','설정되지\x20않았습니다','gemini-1.5','existsSync','ssKey','apiKey','sparrow','다.\x20암호화된\x20키를','3CZFdhh','apply','model','filter','anthropic.','claude-3-s','지\x20키\x20환경\x20변수가','search','0229-v1:0','5OGnqwL','us-east-1','(((.+)+)+)','join','188910dgbilM','SPARROW_AP','openai','endpoint','9PoFYZV','49672rKDVEG','secretAcce','필수\x20환경\x20변수가\x20','3256631gtcCQW','\x20(로드\x20경로:\x20','490832xERMsa','-sonnet-20','accessKeyI'];a5_0x478d=function(){return _0x3205e0;};return a5_0x478d();}a5_0x2557f1[a5_0x29c392(0x9f)]=process.env.OLLAMA_BASE_URL||a5_0x29c392(0x8d)+a5_0x29c392(0xa3)+'34',a5_0x2557f1[a5_0x29c392(0xad)]=process.env.OLLAMA_MODEL||a5_0x29c392(0x97);const a5_0x10ad75={};a5_0x10ad75['ollama']=a5_0x2557f1,a5_0x10ad75[a5_0x29c392(0x81)]=process.env.OPENAI_API_KEY?{'apiKey':process.env.OPENAI_API_KEY,'model':process.env.OPENAI_MODEL||a5_0x29c392(0x94)}:undefined,a5_0x10ad75[a5_0x29c392(0x9c)]=process.env.ANTHROPIC_API_KEY?{'apiKey':process.env.ANTHROPIC_API_KEY,'model':process.env.ANTHROPIC_MODEL||'claude-3-5'+a5_0x29c392(0x8a)+'240620'}:undefined,a5_0x10ad75[a5_0x29c392(0x95)]=process.env.GEMINI_API_KEY?{'apiKey':process.env.GEMINI_API_KEY,'model':process.env.GEMINI_MODEL||a5_0x29c392(0xa5)+a5_0x29c392(0xa1)}:undefined,a5_0x10ad75[a5_0x29c392(0xa0)]=process.env.AWS_ACCESS_KEY_ID&&process.env.AWS_SECRET_ACCESS_KEY?{'region':process.env.AWS_REGION||a5_0x29c392(0x7c),'accessKeyId':process.env.AWS_ACCESS_KEY_ID,'secretAccessKey':process.env.AWS_SECRET_ACCESS_KEY,'sessionToken':process.env.AWS_SESSION_TOKEN,'model':process.env.AWS_MODEL||a5_0x29c392(0x76)+a5_0x29c392(0x77)+'onnet-2024'+a5_0x29c392(0x7a)}:undefined,a5_0x10ad75['s3']={},a5_0x10ad75[a5_0x29c392(0xa9)]={},a5_0x10ad75[a5_0x29c392(0x8f)]=process.env.NOTION_API_KEY?{'apiKey':process.env.NOTION_API_KEY,'databaseId':process.env.NOTION_DATABASE_ID||''}:undefined,a5_0x10ad75['s3'][a5_0x29c392(0x99)]=process.env.STORAGE_CONTAINER_NAME||'',a5_0x10ad75['s3']['region']=process.env.STORAGE_REGION||a5_0x29c392(0x7c),a5_0x10ad75['s3'][a5_0x29c392(0x8b)+'d']=process.env.STORAGE_ACCESS_ID||'',a5_0x10ad75['s3'][a5_0x29c392(0x85)+a5_0x29c392(0xa7)]=process.env.STORAGE_SECRET_KEY||'',a5_0x10ad75['s3'][a5_0x29c392(0x82)]=process.env.STORAGE_ENDPOINT,a5_0x10ad75[a5_0x29c392(0xa9)]['baseUrl']=process.env.SPARROW_API_URL||a5_0x29c392(0x93)+'demand.spa'+'rrowcloud.'+'ai',a5_0x10ad75[a5_0x29c392(0xa9)][a5_0x29c392(0xa8)]=process.env.SPARROW_API_KEY||'';export const appConfig=a5_0x10ad75;const requiredEnvVars=[a5_0x29c392(0x80)+'I_KEY'];process.env.NODE_ENV===a5_0x29c392(0x8c)+'t'&&((!process.env.STORAGE_ACCESS_ID||!process.env.STORAGE_SECRET_KEY)&&logger['warn'](a5_0x29c392(0x9b)+a5_0x29c392(0x78)+'\x20설정되지\x20않았습니'+a5_0x29c392(0xaa)+a5_0x29c392(0x8e)));for(const envVar of requiredEnvVars){if(!process.env[envVar]){const triedPaths=[envPath][a5_0x29c392(0xae)](Boolean)[a5_0x29c392(0x7e)](',\x20');logger['error'](a5_0x29c392(0x86)+a5_0x29c392(0xa4)+':\x20'+envVar+a5_0x29c392(0x88)+triedPaths+')');throw new Error(a5_0x29c392(0x86)+'설정되지\x20않았습니다'+':\x20'+envVar+a5_0x29c392(0x88)+triedPaths+')');}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a6_0x5abd95=a6_0x54f8;(function(_0xebcd8b,_0x4e1dd0){const _0x984f46=a6_0x54f8,_0x4f72f0=_0xebcd8b();while(!![]){try{const _0x2a735f=parseInt(_0x984f46(0x16c))/0x1+-parseInt(_0x984f46(0x193))/0x2+-parseInt(_0x984f46(0x18f))/0x3+parseInt(_0x984f46(0x1d4))/0x4*(parseInt(_0x984f46(0x176))/0x5)+parseInt(_0x984f46(0x171))/0x6*(-parseInt(_0x984f46(0x1c7))/0x7)+-parseInt(_0x984f46(0x182))/0x8*(parseInt(_0x984f46(0x169))/0x9)+-parseInt(_0x984f46(0x1b3))/0xa*(-parseInt(_0x984f46(0x179))/0xb);if(_0x2a735f===_0x4e1dd0)break;else _0x4f72f0['push'](_0x4f72f0['shift']());}catch(_0x1b6cb7){_0x4f72f0['push'](_0x4f72f0['shift']());}}}(a6_0x1909,0xc5174));const a6_0x2f02f6=(function(){let _0x1f2759=!![];return function(_0x5a4d14,_0x31596c){const _0xc6971f=_0x1f2759?function(){const _0x1d1501=a6_0x54f8;if(_0x31596c){const _0x14ef4e=_0x31596c[_0x1d1501(0x1b9)](_0x5a4d14,arguments);return _0x31596c=null,_0x14ef4e;}}:function(){};return _0x1f2759=![],_0xc6971f;};}()),a6_0x220342=a6_0x2f02f6(this,function(){const _0x192cbd=a6_0x54f8;return a6_0x220342['toString']()[_0x192cbd(0x18c)](_0x192cbd(0x1bf)+'+$')[_0x192cbd(0x163)]()[_0x192cbd(0x168)+'r'](a6_0x220342)[_0x192cbd(0x18c)](_0x192cbd(0x1bf)+'+$');});a6_0x220342();export const SPARROW_RULES=a6_0x5abd95(0x1ca)+a6_0x5abd95(0x188)+'은\x20최고의\x20보안\x20파'+a6_0x5abd95(0x178)+a6_0x5abd95(0x18b)+a6_0x5abd95(0x16e)+a6_0x5abd95(0x170)+a6_0x5abd95(0x17c)+a6_0x5abd95(0x174)+a6_0x5abd95(0x1b4)+a6_0x5abd95(0x172)+'코드\x20자체의\x20취약점'+a6_0x5abd95(0x165)+a6_0x5abd95(0x177)+a6_0x5abd95(0x1ab)+a6_0x5abd95(0x17b)+'\x20`analyze_'+a6_0x5abd95(0x1c4)+'`,\x20`analyz'+a6_0x5abd95(0x175)+a6_0x5abd95(0x1af)+a6_0x5abd95(0x195)+a6_0x5abd95(0x1a7)+a6_0x5abd95(0x1d1)+a6_0x5abd95(0x16f)+a6_0x5abd95(0x1ad)+'om.xml`\x20등\x20'+a6_0x5abd95(0x1d2)+'하여\x20취약한\x20라이브'+a6_0x5abd95(0x1a6)+a6_0x5abd95(0x1a4)+a6_0x5abd95(0x1b6)+a6_0x5abd95(0x1a3)+'lder_sca`\x20'+'등을\x20사용합니다.\x0a'+'-\x20**파일\x20하나도'+a6_0x5abd95(0x1bd)+a6_0x5abd95(0x1aa)+'라\x20적절한\x20도구(파'+a6_0x5abd95(0x187)+a6_0x5abd95(0x17e)+a6_0x5abd95(0x18e)+a6_0x5abd95(0x1ac)+a6_0x5abd95(0x1a5)+'Start**:\x20분'+a6_0x5abd95(0x184)+a6_0x5abd95(0x16a)+a6_0x5abd95(0x1c0)+a6_0x5abd95(0x183)+a6_0x5abd95(0x189)+a6_0x5abd95(0x1c2)+a6_0x5abd95(0x198)+a6_0x5abd95(0x18d)+a6_0x5abd95(0x1b0)+a6_0x5abd95(0x17a)+a6_0x5abd95(0x185)+a6_0x5abd95(0x1c6)+a6_0x5abd95(0x199)+a6_0x5abd95(0x167)+'nalysis_re'+a6_0x5abd95(0x166)+a6_0x5abd95(0x191)+a6_0x5abd95(0x1ba)+a6_0x5abd95(0x19c)+a6_0x5abd95(0x1bb)+a6_0x5abd95(0x1cb)+a6_0x5abd95(0x1a9)+a6_0x5abd95(0x1b5)+'\x20SAST\x20취약점이'+a6_0x5abd95(0x17d)+a6_0x5abd95(0x19a)+a6_0x5abd95(0x192)+a6_0x5abd95(0x1a8)+a6_0x5abd95(0x19e)+'A\x20취약점은\x20리포트'+'의\x20가이드에\x20따라\x20'+'라이브러리\x20업데이트'+a6_0x5abd95(0x1d0)+'##\x203.\x20사용자\x20'+a6_0x5abd95(0x196)+'취약점이\x20발견되었습'+a6_0x5abd95(0x18a)+'각한\x20이슈(High'+a6_0x5abd95(0x1cc)+'*라고\x20긍정적인\x20가'+a6_0x5abd95(0x1d3)+a6_0x5abd95(0x16b)+a6_0x5abd95(0x1b1)+a6_0x5abd95(0x17f)+a6_0x5abd95(0x1a0)+a6_0x5abd95(0x16d)+'.';const a6_0x31e310={};a6_0x31e310['id']=a6_0x5abd95(0x1a1),a6_0x31e310['name']=a6_0x5abd95(0x1c8)+a6_0x5abd95(0x19f),a6_0x31e310[a6_0x5abd95(0x190)+'n']=a6_0x5abd95(0x1cf)+a6_0x5abd95(0x1ae)+a6_0x5abd95(0x1b8),a6_0x31e310[a6_0x5abd95(0x1ce)]=null,a6_0x31e310[a6_0x5abd95(0x1b2)]=0x1;const a6_0x3131f2={};a6_0x3131f2['id']=a6_0x5abd95(0x1a2),a6_0x3131f2[a6_0x5abd95(0x1d5)]=a6_0x5abd95(0x173),a6_0x3131f2[a6_0x5abd95(0x190)+'n']='Ready\x20to\x20s'+a6_0x5abd95(0x181)+a6_0x5abd95(0x164),a6_0x3131f2[a6_0x5abd95(0x1ce)]=null,a6_0x3131f2[a6_0x5abd95(0x1b2)]=0x2;function a6_0x1909(){const _0x196193=['\x20루프\x20(The\x20L','.json`,\x20`p','r\x20analysis','ast`\x20등을\x20사용','.\x20(사용자를\x20불안','\x20원본과\x20안전한\x20코','order','37660msUziB','**소스코드\x20진단\x20','*Action**:','le_sca`,\x20`','Post-proce','\x20to\x20start.','apply','t_sca_anal','ts`\x20(SCA)로','sing...','\x20놓치지\x20마세요**','ompleted\x20s','(((.+)+)+)','를\x20받습니다.\x0a2.','ssing','nalysis_pr','sing','files_sast','Pre-proces','h**:\x20분석이\x20완','43477bQfAZj','Initializa','n\x20progress','#\x20Sparrow\x20','\x20상세\x20리포트를\x20가',')를\x20막았습니다\x22*','ssing...','progress','Waiting\x20fo','를\x20제안합니다.\x0a\x0a','진단\x20(SCA)**','의존성\x20파일을\x20분석','치를\x20전달하세요.\x0a','4672NtiZCM','name','toString','sis.','(SQLi,\x20XSS','sults`\x20(SA','\x20따라\x20`get_a','constructo','8657910GOGvfH','nalysisId`','-\x20수정\x20제안\x20시,','1575637WrWcdN','어\x20신뢰를\x20얻으세요','사용합니다.\x20다음\x20',':\x20`package','원칙을\x20따르십시오:','198skMYam','(SAST)**:\x20','Ready','적\x20도구\x20선택\x0a-\x20','e_folder_s','5915YMNdGD','\x20등)을\x20찾을\x20때\x20','트너로서\x20`spar','1001kVgVsm','하게\x20하지\x20마세요)','ile_sast`,','\x0a\x0a##\x201.\x20전술','\x20있다면\x20**반드시','\x20선택하세요.\x0a\x0a#','드의\x20차이(Diff','COMPLETE','tart\x20analy','8ggQzXL','\x20**Track**','석을\x20시작하고\x20`a','\x0a3.\x20**Fetc','Analysis\x20i','일/폴더/ZIP)를','MCP\x20규칙\x0a\x0a당신',':\x20`track_a','니다\x22보다\x20**\x22심','row-mcp`를\x20','search','기\x20있게\x20기다립니다','#\x202.\x20분석-조치','527571AuauwS','descriptio','ST)\x20또는\x20`ge','te_secure_','2299986zSGEJN','Analysis','합니다.\x0a-\x20**오','커뮤니케이션\x0a-\x20\x22','Analysis\x20c','ogress`로\x20끈','료되면\x20결과\x20유형에','**\x20`genera','ANALYSIS','ysis_resul','POST_PROCE','을\x20제시하고,\x20SC','tion',')를\x20명확히\x20보여주','INIT','READY','analyze_fo','analyze_fi','oop)\x0a1.\x20**','러리를\x20찾을\x20때\x20`','픈소스/라이브러리\x20','code`로\x20해결책','져옵니다.\x0a4.\x20*',':\x20분석\x20범위에\x20따','`analyze_f'];a6_0x1909=function(){return _0x196193;};return a6_0x1909();}const a6_0x2b626e={};a6_0x2b626e['id']='PRE_PROCES'+'S',a6_0x2b626e[a6_0x5abd95(0x190)+'n']=a6_0x5abd95(0x1c5)+a6_0x5abd95(0x1bc),a6_0x2b626e[a6_0x5abd95(0x1d5)]=a6_0x5abd95(0x1c5)+a6_0x5abd95(0x1c3),a6_0x2b626e[a6_0x5abd95(0x1ce)]=null,a6_0x2b626e[a6_0x5abd95(0x1b2)]=0x3;const a6_0x4bb505={};a6_0x4bb505['id']='ANALYSIS',a6_0x4bb505[a6_0x5abd95(0x190)+'n']=a6_0x5abd95(0x186)+a6_0x5abd95(0x1c9)+'...',a6_0x4bb505[a6_0x5abd95(0x1d5)]=a6_0x5abd95(0x194),a6_0x4bb505[a6_0x5abd95(0x1ce)]=0x0,a6_0x4bb505[a6_0x5abd95(0x1b2)]=0x4;const a6_0x216b28={};a6_0x216b28['id']=a6_0x5abd95(0x19d)+'SS',a6_0x216b28[a6_0x5abd95(0x190)+'n']=a6_0x5abd95(0x1b7)+a6_0x5abd95(0x1cd),a6_0x216b28[a6_0x5abd95(0x1d5)]='Post-proce'+a6_0x5abd95(0x1c1),a6_0x216b28[a6_0x5abd95(0x1ce)]=null,a6_0x216b28[a6_0x5abd95(0x1b2)]=0x5;const a6_0x19f982={};a6_0x19f982['id']='COMPLETE',a6_0x19f982['descriptio'+'n']=a6_0x5abd95(0x197)+a6_0x5abd95(0x1be)+'uccessfull'+'y.',a6_0x19f982[a6_0x5abd95(0x1d5)]='Complete',a6_0x19f982[a6_0x5abd95(0x1ce)]=0x64,a6_0x19f982[a6_0x5abd95(0x1b2)]=0x6;const a6_0x550b5a={};a6_0x550b5a[a6_0x5abd95(0x1a1)]=a6_0x31e310,a6_0x550b5a['READY']=a6_0x3131f2,a6_0x550b5a['PRE_PROCES'+'S']=a6_0x2b626e,a6_0x550b5a[a6_0x5abd95(0x19b)]=a6_0x4bb505,a6_0x550b5a['POST_PROCE'+'SS']=a6_0x216b28,a6_0x550b5a[a6_0x5abd95(0x180)]=a6_0x19f982;function a6_0x54f8(_0x34989e,_0x526c9c){_0x34989e=_0x34989e-0x163;const _0x12d5e6=a6_0x1909();let _0x220342=_0x12d5e6[_0x34989e];return _0x220342;}export const ANALYSIS_STAGES=a6_0x550b5a;
|