krasavacode 0.3.1 → 0.3.2

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.
@@ -8,7 +8,7 @@ import { runDoctor } from '../src/doctor.js';
8
8
  import { runSetupGemini } from '../src/setup-gemini.js';
9
9
 
10
10
  // Hardcoded so it works inside Bun --compile (no FS access to package.json)
11
- const VERSION = '0.3.1';
11
+ const VERSION = '0.3.2';
12
12
 
13
13
  const cmd = process.argv[2];
14
14
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "krasavacode",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "KRASAVACODE — однокнопочный бесплатный вайбкодинг для учеников. Claude Code на бесплатных провайдерах через локальный gateway. Сам ставит Node при необходимости.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/launch.js CHANGED
@@ -6,32 +6,50 @@ const PLACEHOLDER_TOKEN = 'sk-krasavacode-local';
6
6
  export async function launchClaude(paths, hub /*, detection */) {
7
7
  const geminiOn = await isGeminiConfigured();
8
8
 
9
+ // Drop any pre-existing ANTHROPIC_API_KEY (from the user's shell or a real
10
+ // Anthropic login) so it doesn't conflict with our auth-token, and so that
11
+ // Claude Code's welcome screen doesn't show the user's real Anthropic org.
12
+ const cleanEnv = { ...process.env };
13
+ delete cleanEnv.ANTHROPIC_API_KEY;
14
+ delete cleanEnv.ANTHROPIC_VERTEX_PROJECT_ID;
15
+ delete cleanEnv.ANTHROPIC_BEDROCK_BASE_URL;
16
+
9
17
  const env = {
10
- ...process.env,
18
+ ...cleanEnv,
11
19
  ANTHROPIC_BASE_URL: hub.baseUrl,
12
20
  ANTHROPIC_AUTH_TOKEN: PLACEHOLDER_TOKEN,
13
- ANTHROPIC_API_KEY: PLACEHOLDER_TOKEN,
14
21
  DISABLE_AUTOUPDATER: '1',
15
22
  DISABLE_TELEMETRY: '1',
16
23
  DISABLE_ERROR_REPORTING: '1',
17
24
  // Tell Claude Code which model to ask for. CCR will route any of these
18
- // to Pollinations via Router.default.
25
+ // to Pollinations / Gemini via Router.default.
19
26
  ANTHROPIC_MODEL: process.env.ANTHROPIC_MODEL || 'claude-sonnet-4-5',
20
27
  };
21
28
 
22
29
  const passthroughArgs = process.argv.slice(2).filter(a => !['doctor', 'upgrade'].includes(a));
23
30
 
31
+ const W = 64;
32
+ const line = (txt) => {
33
+ const pad = Math.max(0, W - 2 - [...txt].length);
34
+ return '┃ ' + txt + ' '.repeat(pad) + '┃';
35
+ };
24
36
  console.log('');
25
- console.log('━'.repeat(58));
26
- console.log(' KRASAVACODE вайбкодинг через локальный hub');
37
+ console.log('┏' + '━'.repeat(W - 1) + '┓');
38
+ console.log(line(' K R A S A V A C O D E'));
39
+ console.log(line(' Бесплатный вайбкодинг через локальный hub'));
40
+ console.log('┣' + '━'.repeat(W - 1) + '┫');
27
41
  if (geminiOn) {
28
- console.log(' Модель: Google Gemini 2.5 Flash (1500 запросов в день)');
42
+ console.log(line(' Модель: Google Gemini 2.5 Flash'));
43
+ console.log(line(' (1500 запросов в день, бесплатно)'));
29
44
  } else {
30
- console.log(' Модель: gpt-oss-20b через Pollinations (бесплатно, без логина)');
31
- console.log(' 💡 Хочешь модель посильнее бесплатно? → krasavacode setup-gemini');
45
+ console.log(line(' · Модель: gpt-oss-20b через Pollinations'));
46
+ console.log(line(' (бесплатно, без логина)'));
47
+ console.log(line(' 💡 Лучше модель: krasavacode setup-gemini'));
32
48
  }
33
- console.log(' Пиши задачу обычным языком, ИИ сделает.');
34
- console.log(''.repeat(58));
49
+ console.log('┗' + '━'.repeat(W - 1) + '┛');
50
+ console.log('');
51
+ console.log(' Дальше открывается Claude Code от Anthropic — это');
52
+ console.log(' его экран приветствия, не наш. Просто пиши задачу.');
35
53
  console.log('');
36
54
 
37
55
  // Merge env from runtime (PATH with bundled Node when applicable) with our overrides