icoa-cli 2.15.12 → 2.15.14

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.
@@ -62,7 +62,8 @@ function printHowToPlay() {
62
62
  console.log(chalk.yellow(' more help') + chalk.gray(' +3 bonus helps'));
63
63
  console.log(chalk.yellow(' back') + chalk.gray(' pause and return to menu'));
64
64
  console.log(chalk.yellow(' lang es') + chalk.gray(' switch language (15 available)'));
65
- console.log(chalk.gray(' es · ko · fr · ar · zh · ja ...'));
65
+ console.log(chalk.gray(' es · zh · ja · ko · ar · fr · pt'));
66
+ console.log(chalk.gray(' ru · hi · de · id · th · vi · tr'));
66
67
  console.log(chalk.gray(' ─────────────────────────────────────────'));
67
68
  }
68
69
  // Australian easter eggs every 5 questions
@@ -97,8 +98,6 @@ function printQuestion(q, answer) {
97
98
  const answered = Object.keys(state?.answers || {}).length;
98
99
  const help = getHelpState(state);
99
100
  const eliminated = help.eliminated[q.number] || [];
100
- // Top hint
101
- console.log(chalk.gray(' Type "back" to pause · Don\'t type "exit" (it quits CLI)'));
102
101
  // Progress bar
103
102
  printQuestionProgress(q.number, total, answered);
104
103
  // Easter egg
@@ -124,16 +123,16 @@ function printQuestion(q, answer) {
124
123
  }
125
124
  }
126
125
  console.log();
127
- // Bottom: compact nav + help status
126
+ // Full menu on every question
128
127
  const remaining = help.max - help.used;
129
- const helpStatus = remaining > 0
130
- ? chalk.yellow(`help ${remaining}/${help.max}`)
131
- : (help.max < 8 ? chalk.gray('help 0/5 — ') + chalk.yellow('more help') : chalk.gray('help 0/8'));
132
- console.log(chalk.gray(' ') + chalk.white('A/B/C/D') +
133
- chalk.gray(' · ') + helpStatus +
134
- (q.number > 1 ? chalk.gray(' · ') + chalk.white('prev') : '') +
135
- (q.number < total ? chalk.gray(' · ') + chalk.white('next') : '') +
136
- chalk.gray(' · ') + chalk.white('back'));
128
+ const helpLabel = remaining > 0 ? `remove a wrong option (${remaining}/${help.max})` : (help.max < 8 ? 'used up — type more help for +3' : `used up (${help.used}/${help.max})`);
129
+ console.log(chalk.gray(' ─────────────────────────────────────────'));
130
+ console.log(chalk.yellow(' A/B/C/D') + chalk.gray(' answer this question'));
131
+ console.log(chalk.yellow(' help') + chalk.gray(` ${helpLabel}`));
132
+ console.log(chalk.yellow(' next') + chalk.gray(' / ') + chalk.yellow('prev') + chalk.gray(' move between questions'));
133
+ console.log(chalk.yellow(' back') + chalk.gray(' pause and return to menu'));
134
+ console.log(chalk.yellow(' lang es') + chalk.gray(' switch language'));
135
+ console.log(chalk.gray(' ─────────────────────────────────────────'));
137
136
  }
138
137
  export function registerExamCommand(program) {
139
138
  const exam = program.command('exam').description('National selection exam');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "icoa-cli",
3
- "version": "2.15.12",
3
+ "version": "2.15.14",
4
4
  "description": "ICOA CLI — The world's first CLI-native CTF competition terminal",
5
5
  "type": "module",
6
6
  "bin": {