icoa-cli 2.19.99 → 2.19.101
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/commands/ai4ctf.js +1 -700
- package/dist/commands/connect.js +1 -66
- package/dist/commands/ctf.js +1 -620
- package/dist/commands/ctf4ai-demo.js +1 -525
- package/dist/commands/env.js +1 -737
- package/dist/commands/exam.js +1 -2353
- package/dist/commands/files.js +1 -52
- package/dist/commands/hint.js +1 -119
- package/dist/commands/lang.js +1 -155
- package/dist/commands/log.js +1 -163
- package/dist/commands/note.js +1 -32
- package/dist/commands/ref.js +1 -63
- package/dist/commands/setup.js +1 -103
- package/dist/commands/shell.js +1 -55
- package/dist/commands/theme.js +1 -50
- package/dist/index.js +1 -225
- package/dist/lib/access.js +1 -246
- package/dist/lib/budget.js +1 -42
- package/dist/lib/colors.js +1 -21
- package/dist/lib/config.js +1 -60
- package/dist/lib/ctfd-client.js +1 -274
- package/dist/lib/demo-exam.js +1 -249
- package/dist/lib/demo-flags.js +1 -27
- package/dist/lib/demo-stats.js +1 -65
- package/dist/lib/exam-client.js +1 -57
- package/dist/lib/exam-setup.js +1 -23
- package/dist/lib/exam-state.js +1 -112
- package/dist/lib/gemini.js +1 -235
- package/dist/lib/i18n.js +1 -273
- package/dist/lib/log-sync.js +1 -110
- package/dist/lib/logger.js +1 -59
- package/dist/lib/paper-upgrade.js +1 -117
- package/dist/lib/platform.js +1 -86
- package/dist/lib/sandbox.js +1 -93
- package/dist/lib/terminal.js +1 -49
- package/dist/lib/theme.js +1 -108
- package/dist/lib/translation.js +1 -66
- package/dist/lib/ui.js +1 -80
- package/dist/lib/update-check.js +1 -102
- package/dist/postinstall.js +1 -48
- package/dist/repl.js +1 -1259
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +1 -38
- package/package.json +6 -2
- package/translations/sw/i18n-snippet.ts +1 -0
package/dist/types/index.d.ts
CHANGED
|
@@ -132,7 +132,7 @@ export interface ChallengeContext {
|
|
|
132
132
|
}
|
|
133
133
|
export declare const DEFAULT_BUDGET: HintBudget;
|
|
134
134
|
export declare const DEFAULT_CONFIG: IcoaConfig;
|
|
135
|
-
export declare const SUPPORTED_LANGUAGES: readonly ["en", "zh", "ja", "ko", "es", "ar", "fr", "pt", "ru", "hi", "de", "id", "th", "vi", "tr", "uk", "ht"];
|
|
135
|
+
export declare const SUPPORTED_LANGUAGES: readonly ["en", "zh", "ja", "ko", "es", "ar", "fr", "pt", "ru", "hi", "de", "id", "th", "vi", "tr", "uk", "ht", "sw"];
|
|
136
136
|
export type SupportedLanguage = typeof SUPPORTED_LANGUAGES[number];
|
|
137
137
|
export interface ExamListItem {
|
|
138
138
|
id: string;
|
package/dist/types/index.js
CHANGED
|
@@ -1,38 +1 @@
|
|
|
1
|
-
|
|
2
|
-
// CTFd API Response Types
|
|
3
|
-
// ========================
|
|
4
|
-
export const DEFAULT_BUDGET = {
|
|
5
|
-
a: 50,
|
|
6
|
-
b: 10,
|
|
7
|
-
c: 2,
|
|
8
|
-
tokensUsed: 0,
|
|
9
|
-
tokenCap: 50000,
|
|
10
|
-
};
|
|
11
|
-
export const DEFAULT_CONFIG = {
|
|
12
|
-
ctfdUrl: '',
|
|
13
|
-
token: '',
|
|
14
|
-
language: 'en',
|
|
15
|
-
sessionId: '',
|
|
16
|
-
competitionCode: '',
|
|
17
|
-
teamId: null,
|
|
18
|
-
userId: null,
|
|
19
|
-
userName: '',
|
|
20
|
-
teamName: '',
|
|
21
|
-
currentChallengeId: null,
|
|
22
|
-
currentChallengeName: '',
|
|
23
|
-
currentChallengeCategory: '',
|
|
24
|
-
competitionState: 'unknown',
|
|
25
|
-
competitionStartsAt: '',
|
|
26
|
-
competitionEndsAt: '',
|
|
27
|
-
geminiApiKey: '',
|
|
28
|
-
geminiModel: 'gemini-2.5-flash',
|
|
29
|
-
accessToken: '',
|
|
30
|
-
deviceFingerprint: '',
|
|
31
|
-
lastVersion: '',
|
|
32
|
-
sessionCookie: '',
|
|
33
|
-
country: '',
|
|
34
|
-
mode: '',
|
|
35
|
-
demoIntroSeen: false,
|
|
36
|
-
themeVariant: 'dark',
|
|
37
|
-
};
|
|
38
|
-
export const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko', 'es', 'ar', 'fr', 'pt', 'ru', 'hi', 'de', 'id', 'th', 'vi', 'tr', 'uk', 'ht'];
|
|
1
|
+
export const DEFAULT_BUDGET={a:50,b:10,c:2,tokensUsed:0,tokenCap:5e4};export const DEFAULT_CONFIG={ctfdUrl:"",token:"",language:"en",sessionId:"",competitionCode:"",teamId:null,userId:null,userName:"",teamName:"",currentChallengeId:null,currentChallengeName:"",currentChallengeCategory:"",competitionState:"unknown",competitionStartsAt:"",competitionEndsAt:"",geminiApiKey:"",geminiModel:"gemini-2.5-flash",accessToken:"",deviceFingerprint:"",lastVersion:"",sessionCookie:"",country:"",mode:"",demoIntroSeen:!1,themeVariant:"dark"};export const SUPPORTED_LANGUAGES=["en","zh","ja","ko","es","ar","fr","pt","ru","hi","de","id","th","vi","tr","uk","ht","sw"];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "icoa-cli",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.101",
|
|
4
4
|
"description": "ICOA CLI — The world's first CLI-native CTF competition terminal",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,10 +13,12 @@
|
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "tsc",
|
|
16
|
+
"build:release": "bash scripts/build-release.sh",
|
|
16
17
|
"dev": "tsc --watch",
|
|
17
18
|
"start": "node dist/index.js",
|
|
18
19
|
"test": "tsc && node --test test/*.test.js",
|
|
19
|
-
"postinstall": "node -e \"try{require('./dist/postinstall.js')}catch(e){}\""
|
|
20
|
+
"postinstall": "node -e \"try{require('./dist/postinstall.js')}catch(e){}\"",
|
|
21
|
+
"prepublishOnly": "npm run build:release"
|
|
20
22
|
},
|
|
21
23
|
"keywords": [
|
|
22
24
|
"ctf",
|
|
@@ -39,6 +41,8 @@
|
|
|
39
41
|
},
|
|
40
42
|
"devDependencies": {
|
|
41
43
|
"@types/node": "^22.15.3",
|
|
44
|
+
"javascript-obfuscator": "^5.4.1",
|
|
45
|
+
"terser": "^5.46.1",
|
|
42
46
|
"typescript": "^5.8.3"
|
|
43
47
|
},
|
|
44
48
|
"engines": {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const SW: Strings = {"howToPlay":"Jinsi ya kucheza:","htpAnswer":"jibu swali","htpHelp":"ondoa chaguo lisilo sahihi","htpNav":"nenda kati ya maswali","htpMoreHelp":"+3 misaada ya ziada","htpBack":"sitisha na urudi kwenye menyu","htpLang":"tazama lugha zote / lang es kubadili","egg3":"Sydney Opera House — Mwanzo mzuri!","egg5":"koala anasema g'day — 1/3 imekamilika!","egg7":"Sydney Harbour Bridge — Endelea!","egg9":"Kangaroo anaruka — umepita nusu!","egg11":"Bondi Beach — umekaribia!","egg13":"Great Barrier Reef — bado 2!","egg15":"G'day mate! Umemaliza! 🇦🇺","answerThis":"jibu swali hili","helpRemove":"ondoa chaguo lisilo sahihi","helpUsedUp":"imetumika yote — andika more help kwa +3","helpAllUsed":"imetumika yote","wrong":"kosa","qTutorial":"👉 Jaribu kuandika \"help\" kuona kitakachotokea!","qTutorialBlock":"Jaribu kuandika help kwanza kuona inafanya nini!","qTutorialRequired":"Swali hili linahitaji utumie help kabla ya kujibu.","allAnswered":"🎉 Maswali yote yamejibiwa!","typeSubmit":"Andika exam submit kuona matokeo yako!","autoSubmitting":"Inafanya submit ya demo yako moja kwa moja...","grading":"Inasahihisha...","complete":"Imekamilika!","passed":"✓ UMEFAULU","notPassed":"✗ HUJAFAULU","score":"Alama","incorrectIntro":"kosa — haya hapa ni masahihisho:","yourAnswer":"Jibu lako","correct":"Sahihi","perfectScore":"Alama kamili! Majibu yote ni sahihi! 🎉","theoryDone":"Haya yalikuwa maswali ya nadharia. Katika ICOA halisi","theoryDone2":"shindano, kila kitu hufanyika kwenye hii terminal.","didYouKnow":"Je, wajua?","ctfHistory1":"CTF (Capture The Flag) ilianza kwenye DEF CON 4 mwaka 1996,","ctfHistory2":"Las Vegas. Ilianzishwa na Jeff Moss (Dark Tangent).","ctfHistory3":"2026 inatimiza miaka 30 ya CTF duniani kote.","ctfFlags1":"Kwenye CTF, unatatua changamoto kutafuta","ctfFlags2":"\"flags\" — kodi za siri kama:","ctfFlags3":"Itafute, fanya submit, pata alama!","timeline1":"1996 CTF ya kwanza @ DEF CON, Las Vegas","timeline2":"2016 DARPA Cyber Grand Challenge — AI inaingia kwenye CTF","timeline3":"2026 ICOA — AI Security Olympiad ya kwanza, Sydney","twoTracks":"ICOA inatumia njia MBILI za shindano:","ai4ctfDesc":"Tumia AI kukusaidia kutatua changamoto za CTF","ai4ctfSub":"AI ni mchezaji mwenzako. Ongea, omba hint, fanyeni kazi pamoja.","ctf4aiDesc":"Hadaa AI (Prompt Injection)","ctf4aiSub":"Unaweza kufanya AI ivunje sheria zake za usalama?","wantToContinue":"Unataka kujaribu zote mbili? Andika","orBack":"Au andika \"back\" kurudi kwenye menyu kuu.","ai4ctfTitle":"Demo ya AI4CTF — AI kama Mchezaji Mwenzako","ai4ctfSample":"Hapa kuna mfano wa changamoto ya CTF:","ai4ctfChallenge":"Changamoto: Ujumbe Uliofichwa [Cryptography]","ai4ctfIntercepted":"Umenasa maandishi haya yaliyofichwa:","ai4ctfDecode":"Unaweza kufumbua kodi ili kupata flag?","ai4ctfLevels":"Kwenye shindano, unapata msaada wa AI kwa viwango 3:","ai4ctfHintA":"Mwongozo wa jumla — \"Hii ni aina gani ya encoding?\"","ai4ctfHintAUses":"Matumizi 50 kwa shindano. Salama kutumia kwa uhuru.","ai4ctfHintB":"Uchambuzi wa kina — \"Jinsi gani nafumbua Base64?\"","ai4ctfHintBUses":"Matumizi 10. Tumia unapokwama.","ai4ctfHintC":"Msaada muhimu — Inakupa jibu karibia lote","ai4ctfHintCUses":"Matumizi 2 tu. Kimbilio la mwisho!","ai4ctfTryNow":"Jaribu sasa: uliza AI chochote kuhusu changamoto hapo juu.","ai4ctfExample":"Mfano: \"Hii ni encoding gani aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==?\"","ai4ctfFreeChat":"Au ongea kwa uhuru tu! Unaweza pia kujaribu hint a, hint b, hint c.","ai4ctfExit":"Andika \"exit\" ukimaliza.","ai4ctfReport":"Ripoti ya Kikao cha AI4CTF","ai4ctfTokens":"Token zilizotumika","ai4ctfModel":"Model ya AI","ai4ctfNext":"Inayofuata: jaribu ctf4ai — hadaa AI iseme \"koala\"","tokenLimit":"Kikomo cha token kimefikiwa!","ctf4aiTitle":"Demo ya CTF4AI — Changamoto kwa AI","ctf4aiChallenge":"Changamoto: Fanya AI Iseme Neno Lililokatazwa","ctf4aiIntro1":"Katika ulimwengu halisi, mifumo ya AI ina sheria za usalama.","ctf4aiIntro2":"Kazi yako: tafuta njia ya kuhadaa AI ivunje sheria hizo!","ctf4aiRule":"AI isiwahi kusema neno \"koala\" KABISA.","ctf4aiMission":"Dhamira yako: ifanye iseme \"koala\" vyovyote vile!","ctf4aiIdeas":"Mawazo ya kujaribu:","ctf4aiIdea1":"Uliza kuhusu wanyama wa Australia","ctf4aiIdea2":"Iombe iandike hadithi au shairi","ctf4aiIdea3":"Iombe itafsiri au itaje herufi za kitu","ctf4aiIdea4":"Kuwa mbunifu — hakuna njia isiyo sahihi!","ctf4aiBudget":"Bajeti ya mazungumzo","ctf4aiQuit":"Andika \"exit\" kutoka wakati wowote.","ctf4aiSuccess":"🎉 MAFANIKIO! AI imesema \"koala\"!","ctf4aiDefense":"Umevunja ngome ya ulinzi ya AI!","ctf4aiInjection":"Hii ni prompt injection — udhaifu halisi wa AI.","ctf4aiHeld":"AI imesimama imara safari hii. 💪","reportTitle":"Demo ya ICOA — Ripoti Kamili","reportStage1":"Hatua 1: exam ya Nadharia (maswali 15)","reportCompleted":"✓ Imekamilika","reportStage2":"Hatua 2: AI4CTF — AI kama Mchezaji Mwenzako","reportExperienced":"✓ Imefanyika","reportStage2Sub":"Umetumia AI kuchambua changamoto ya CTF.","reportStage2Hints":"Kwenye shindano: hint a (50x) · hint b (10x) · hint c (2x)","reportStage3":"Hatua 3: CTF4AI — Hadaa AI","reportSolved":"✓ Imetatuliwa! Umefanya AI iseme \"koala\"","reportNotSolved":"✗ AI imesimama imara","reportRecommend":"Mapendekezo:","reportRec1":"Jifunze cryptography, usalama wa mtandao, na networking","reportRec2":"Fanya mazoezi kwenye majukwaa ya CTF kama picoCTF","reportRec3":"Jifunze kuhusu prompt injection na usalama wa AI","reportRec4":"Chunguza miongozo 38 ya rejea: andika \"ref\"","reportReady":"Uko tayari kwa shindano halisi?","reportNations":"Tazama nchi zinazoshiriki","reportAbout":"Jifunze zaidi kuhusu ICOA 2026","reportDemo":"Jaribu tena","continueTitle":"AI4CTF — AI kama Mchezaji Mwenzako","continueLevels":"Kwenye AI4CTF, unatatua changamoto za usalama mtandao\nukiwa na AI kando yako.","continueHints":"Kwenye shindano, unapata msaada wa AI kwa viwango 3:","continueHintA":"Mwongozo wa jumla (matumizi 50)","continueHintB":"Uchambuzi wa kina (matumizi 10)","continueHintC":"Msaada muhimu (matumizi 2)","continueTry":"Jaribu sasa! Andika:","continueChat":"Ongea kwa uhuru na mchezaji mwenzako AI. Andika \"exit\" ukimaliza.","continueAfter":"Baada ya ai4ctf, jaribu: ctf4ai — hadaa AI iseme \"koala\"","ai4ctfCommands":"Amri:","ai4ctfSubmitCmd":"Fanya submit ya jibu lako (k.m. submit icoa{...})","ai4ctfShellCmd":"Endesha amri ya shell (k.m. !echo aWNv... | base64 -d)","ai4ctfEndSession":"Maliza kikao","ai4ctfCorrectFlag":"🎉 Sahihi! flag imekubaliwa!","ai4ctfDecoded":"Umefumbua Base64 na kupata flag.","ai4ctfWouldEarn":"Kwenye shindano halisi, hii ingekupa alama!","ai4ctfWrongFlag":"✗ flag sio sahihi. Jaribu tena!","ai4ctfFlagHint":"Hint: fumbua kodi ya Base64. Muundo wa flag: icoa{...}","ai4ctfFoundFlag":"Umepata flag? Andika: submit <flag>","ai4ctfThinking":"Inafikiri...","ctf4aiRelaxed":"Baada ya 50%, miundo iliyotajwa herufi (K-O-A-L-A) pia inahesabika!","ctf4aiEnded":"Changamoto ya CTF4AI imekwisha.","ctf4aiAlready":"Tayari uko kwenye changamoto ya CTF4AI. Andika ujumbe wako au \"exit\".","ctf4aiPrompt":"Jaribu kuifanya AI iseme \"koala\"...","ctf4aiThinking":"Inafikiri...","readyToTry":"Uko tayari kujaribu? Andika amri:","forNational":"Kwa exam za mchujo za kitaifa:","viewRegions":"Tazama maeneo yote yanayoshiriki","enterExam":"Ingia kwenye exam ya mchujo ya nchi yako","htpJump":"ruka hadi kwenye swali maalum","htpReview":"angalia maendeleo","htpSubmit":"fanya submit ya majibu yako ili yasahihishwe","htpMark":"wekea flag swali hili ili kulipitia baadaye","nextLabel":"Inayofuata:","reportRetryCta":"Unataka kupatia yale uliyokosa? Andika:","reportRetryWrongN":"jaribu tena swali {n} lililokosewa","reportRetryWrongNPlural":"jaribu tena maswali {n} yaliyokosewa","reportBackHint":"rudi kwenye menyu kuu","reportAboutHint":"Jifunze zaidi kuhusu ICOA 2026","reportExamSetupHint":"hatua inayofuata: andaa zana kwa ajili ya mchujo wa kitaifa","ai4ctfExitNextTitle":"Inayofuata:","ai4ctfExitNextSub":"Hadaa AI (Prompt Injection)","ai4ctfExitNextBody":"Unaweza kuifanya AI ivunje sheria zake za usalama?","ai4ctfExitCmdNext":"anza changamoto inayofuata","ai4ctfExitCmdBack":"rudi kwenye menyu kuu","ai4ctfWelcomeCta":"👉 Mgeni hapa? Anza na hint kwa mpangilio:","ai4ctfHintNudge":"dokezo","ai4ctfHintTechnique":"mbinu","ai4ctfHintPrinciple":"kanuni + kikumbusho cha shell","ai4ctfWelcomeNoReveal":"(hint zinakuongoza — hazitoi jibu moja kwa moja)","ai4ctfOrChat":"Au ongea kwa uhuru na mchezaji mwenzako AI — uliza chochote","ai4ctfOrChatExample":"kuhusu changamoto. Mfano:","ai4ctfCmdHintLine":"hint zilizoandikwa tayari (salama kutumia)","ai4ctfCmdShellLine":"endesha amri ya shell","ai4ctfHintABody":"Mlolongo unaishia na \"==\" na unatumia tu herufi, namba, \"+\", \"/\", na \"=\".\nMpito huu ni kama alama ya vidole — umeshawahi kuuona hapo awali.\nJe, \"=\" kawaida hutumika wapi kama padding?","ai4ctfHintBBody":"Hii imefichwa kwa Base64. Fumbua kodi kutafuta flag.","ai4ctfHintCBody":"hint hazitakupa jibu moja kwa moja — zinakuelekeza tu njia sahihi.\nKwa changamoto rahisi kama hii, hint c haiongezi chochote:\nhint b tayari imekuambia kila kitu unachohitaji.\n\nNjia mbili za kusonga mbele kuanzia hapa:\n\n 1. Ongea na mchezaji mwenzako AI kwa lugha ya asili. Mifano:\n ni ipi amri ya base64?\n jinsi gani nafumbua Base64 kwenye macOS?\n Andika tu swali lako — chochote kisicho na \"!\" kinaenda kwa AI.\n\n 2. Endesha amri ya shell moja kwa moja. Amri za shell ndani ya ai4ctf\n lazima zianze na \"!\", vinginevyo maandishi yako yataenda kwa AI. Mfano:\n\n !echo aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ== | base64 -d","ai4ctfHintNextA":"Umekwama? Jaribu:","ai4ctfHintNextB":"Umekwama kwelikweli? Jaribu:","ai4ctfWrapTitle":"✨ Ulichojifunza sasa hivi","ai4ctfWrapLine1Head":"Unahitaji amri?","ai4ctfWrapLine1Body":"Muulize tu mchezaji mwenzako AI katika lugha\nya asili — \"jinsi gani nafumbua Base64 kwenye command line?\"\nHuhitaji kukariri kila zana. Enzi ya AI inahusu\n{thinking}, sio kukariri kimtambo.","ai4ctfWrapLine2Head":"Unahitaji kuendesha kitu?","ai4ctfWrapLine2Body":"Anza amri za shell na \"!\":","ai4ctfWrapQuotasTitle":"🎯 Viwango vya hint katika shindano halisi","ai4ctfWrapQuotaA":"Matumizi 50 kwa shindano","ai4ctfWrapQuotaAHint":"(tumia kwa uhuru)","ai4ctfWrapQuotaB":"Matumizi 10","ai4ctfWrapQuotaBHint":"(unapokwama)","ai4ctfWrapQuotaC":" Matumizi 2","ai4ctfWrapQuotaCHint":"(kimbilio la mwisho)","ai4ctfWrapQuotaFooter":"Pendelea hint a → b → c. Na unapotaka kutafuta tu\nkitu, ongea na AI kwanza — haigharimu chochote\nkwenye kiwango chako cha hint.","ai4ctfWrapNextTitle":"🔜 Inayofuata:","ai4ctfWrapNextSub":"hadaa AI iseme \"koala\"","ai4ctfWrapNextBody":"Demo inayofuata {noProg} — ni wewe tu na\nubunifu wako. Unaweza kuifanya AI \"salama\" ivunje\nsheria zake yenyewe?","ai4ctfWrapNoProg":"haihitaji programming","ai4ctfWrapTypeCtf4ai":"Andika:","ai4ctfRevealTitle":"💡 Token za AI zimekwisha — hili hapa jibu","ai4ctfRevealBody":"Inaonekana bado hujapata flag.\nUsiwe na wasiwasi — kwa ajili ya demo tutakuambia tu.\n\nEndesha amri hii ili kufumbua kodi ya Base64:","ai4ctfRevealSeeFlag":"Utaiona flag:","ai4ctfRevealThenSubmit":"Kisha fanya submit:","ai4ctfRevealLockNote":"(Mazungumzo ya AI yamefungwa — ni amri za shell na submit tu ndizo zinafanya kazi sasa.)","ai4ctfLockedTitle":"Mazungumzo ya AI yamefungwa — token zimekwisha.","ai4ctfLockedUse":"Tumia:","ai4ctfLockedThen":"Kisha:"};
|