agdi 2.10.4 → 2.10.6

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.
Files changed (2) hide show
  1. package/dist/index.js +46 -37
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -379,6 +379,16 @@ function createSpinner(text) {
379
379
  function printIter() {
380
380
  console.log(chalk.hex(THEME.dim)("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));
381
381
  }
382
+ function showCommunityInvite(context = "exit") {
383
+ const showChance = context === "exit" ? 0.3 : 0.2;
384
+ if (Math.random() > showChance) return;
385
+ console.log("");
386
+ console.log(chalk.hex(THEME.dim)("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));
387
+ console.log("");
388
+ console.log(chalk.hex(THEME.gray)(" \u{1F4AC} Questions? Bugs? Feature ideas?"));
389
+ console.log(chalk.cyan(" Join the community \u2192 ") + chalk.white.underline("discord.gg/agdi"));
390
+ console.log("");
391
+ }
382
392
  var activeReadlineInterface = null;
383
393
  function registerActivePrompt(rl) {
384
394
  activeReadlineInterface = rl;
@@ -443,6 +453,7 @@ var ui = {
443
453
  printAIMessage,
444
454
  createSpinner,
445
455
  printIter,
456
+ showCommunityInvite,
446
457
  brandGradient,
447
458
  THEME,
448
459
  // Safety & Automation
@@ -1458,63 +1469,59 @@ import { select as select2, password as password2 } from "@inquirer/prompts";
1458
1469
  import chalk8 from "chalk";
1459
1470
  var PROVIDER_MODELS = {
1460
1471
  gemini: [
1461
- { name: "Gemini 3 Pro (Most Intelligent)", value: "gemini-3-pro-preview" },
1472
+ { name: "Gemini 3 Pro (Flagship)", value: "gemini-3-pro-preview" },
1462
1473
  { name: "Gemini 3 Flash (Fast)", value: "gemini-3-flash-preview" },
1463
1474
  { name: "Gemini 3 Deep Think (Reasoning)", value: "gemini-3-deep-think" },
1464
- { name: "Gemini 2.5 Pro", value: "gemini-2.5-pro" },
1475
+ { name: "Gemini 2.5 Pro (1M Context)", value: "gemini-2.5-pro" },
1465
1476
  { name: "Gemini 2.5 Flash", value: "gemini-2.5-flash" },
1466
- { name: "Gemini 2.0 Flash", value: "gemini-2.0-flash" }
1477
+ { name: "Gemini 2.5 Flash-Lite (Efficient)", value: "gemini-2.5-flash-lite" },
1478
+ { name: "Gemini 2.0 Flash (Legacy)", value: "gemini-2.0-flash" }
1467
1479
  ],
1468
1480
  openrouter: [
1469
1481
  // FREE MODELS (no API credits needed)
1470
- { name: "GPT-OSS 120B (Free)", value: "openai/gpt-oss-120b:free" },
1471
- { name: "GPT-OSS 20B (Free)", value: "openai/gpt-oss-20b:free" },
1482
+ { name: "GPT-OSS 120B (Free, Apache 2.0)", value: "openai/gpt-oss-120b:free" },
1483
+ { name: "GPT-OSS 20B (Free, Apache 2.0)", value: "openai/gpt-oss-20b:free" },
1472
1484
  { name: "Qwen3 Coder (Free)", value: "qwen/qwen3-coder:free" },
1473
- { name: "Qwen3 Next 80B (Free)", value: "qwen/qwen3-next-80b-a3b-instruct:free" },
1474
1485
  { name: "Kimi K2 (Free)", value: "moonshotai/kimi-k2:free" },
1475
1486
  { name: "Gemma 3N E2B (Free)", value: "google/gemma-3n-e2b-it:free" },
1476
- { name: "Qwen 2.5 VL 7B (Free)", value: "qwen/qwen-2.5-vl-7b-instruct:free" },
1477
1487
  { name: "LFM Thinking 1.2B (Free, Agentic)", value: "liquid/lfm-2.5-1.2b-thinking:free" },
1478
- { name: "Devstral (Free, ends Jan 27)", value: "mistralai/devstral-2512:free" },
1479
1488
  // PAID MODELS
1480
- { name: "Claude 3.5 Sonnet", value: "anthropic/claude-3.5-sonnet" },
1481
- { name: "GPT-4o", value: "openai/gpt-4o" },
1482
- { name: "GPT-4o Mini", value: "openai/gpt-4o-mini" },
1483
- { name: "Gemini 2.5 Flash", value: "google/gemini-2.5-flash-preview" },
1489
+ { name: "Claude Opus 4.5", value: "anthropic/claude-opus-4.5" },
1490
+ { name: "Claude Sonnet 4.5", value: "anthropic/claude-sonnet-4.5" },
1491
+ { name: "GPT-5.2", value: "openai/gpt-5.2" },
1492
+ { name: "GPT-4.1", value: "openai/gpt-4.1" },
1493
+ { name: "Gemini 2.5 Flash", value: "google/gemini-2.5-flash" },
1484
1494
  { name: "Llama 3.3 70B", value: "meta-llama/llama-3.3-70b-instruct" },
1485
- { name: "DeepSeek R1", value: "deepseek/deepseek-r1" },
1486
- { name: "Mistral Large", value: "mistral/mistral-large-latest" }
1495
+ { name: "DeepSeek V3.2", value: "deepseek/deepseek-chat" },
1496
+ { name: "Grok 4", value: "xai/grok-4" }
1487
1497
  ],
1488
1498
  openai: [
1489
- { name: "GPT-5.2 (Flagship)", value: "gpt-5.2" },
1490
- { name: "GPT-5.2 Instant", value: "gpt-5.2-instant" },
1491
- { name: "GPT-5.2 Thinking (Reasoning)", value: "gpt-5.2-thinking" },
1492
- { name: "GPT-5.2 Codex (Coding)", value: "gpt-5.2-codex" },
1493
- { name: "GPT-5.1", value: "gpt-5.1" },
1494
- { name: "GPT-5.1 Instant", value: "gpt-5.1-instant" },
1495
- { name: "GPT-5.1 Codex Max", value: "gpt-5.1-codex-max" },
1496
- { name: "GPT-4o", value: "gpt-4o" },
1497
- { name: "GPT-4o Mini", value: "gpt-4o-mini" },
1498
- { name: "o1", value: "o1" },
1499
- { name: "o1-mini", value: "o1-mini" }
1499
+ { name: "GPT-5.2 (Flagship Reasoning)", value: "gpt-5.2" },
1500
+ { name: "GPT-5.2 Pro (Research)", value: "gpt-5.2-pro" },
1501
+ { name: "GPT-5 Mini (Fast Reasoning)", value: "gpt-5-mini" },
1502
+ { name: "GPT-5 Nano (Affordable)", value: "gpt-5-nano" },
1503
+ { name: "GPT-4.1 (General Purpose)", value: "gpt-4.1" },
1504
+ { name: "GPT-4.1 Mini", value: "gpt-4.1-mini" },
1505
+ { name: "GPT-4.1 Nano", value: "gpt-4.1-nano" },
1506
+ { name: "GPT-4o (Multimodal)", value: "gpt-4o" },
1507
+ { name: "GPT-4o Mini", value: "gpt-4o-mini" }
1500
1508
  ],
1501
1509
  anthropic: [
1502
- { name: "Claude Opus 4.5 (Most Intelligent)", value: "claude-opus-4.5-20251124" },
1503
- { name: "Claude Sonnet 4.5", value: "claude-sonnet-4.5-20250929" },
1510
+ { name: "Claude Opus 4.5 (Flagship)", value: "claude-opus-4.5-20251124" },
1511
+ { name: "Claude Sonnet 4.5 (Recommended)", value: "claude-sonnet-4.5-20250929" },
1504
1512
  { name: "Claude Haiku 4.5 (Fast)", value: "claude-haiku-4.5-20251015" },
1505
- { name: "Claude Sonnet 3.5", value: "claude-3-5-sonnet-20241022" },
1506
- { name: "Claude Haiku 3.5", value: "claude-3-5-haiku-20241022" }
1513
+ { name: "Claude Sonnet 3.5 (Legacy)", value: "claude-3-5-sonnet-20241022" }
1507
1514
  ],
1508
1515
  deepseek: [
1509
- { name: "DeepSeek V3", value: "deepseek-chat" },
1510
- { name: "DeepSeek R1 (Reasoning)", value: "deepseek-reasoner" },
1511
- { name: "DeepSeek Coder V3", value: "deepseek-coder" },
1512
- { name: "DeepSeek Coder V2.5", value: "deepseek-coder-v2.5" }
1516
+ { name: "DeepSeek V3.2 (Chat)", value: "deepseek-chat" },
1517
+ { name: "DeepSeek V3.2 Reasoner", value: "deepseek-reasoner" },
1518
+ { name: "DeepSeek V3.2 Speciale (Advanced Reasoning)", value: "deepseek-speciale" },
1519
+ { name: "DeepSeek Coder V3", value: "deepseek-coder" }
1513
1520
  ],
1514
1521
  xai: [
1515
- { name: "Grok 3 (Latest)", value: "grok-3" },
1516
- { name: "Grok 2", value: "grok-2" },
1517
- { name: "Grok 2 Mini", value: "grok-2-mini" }
1522
+ { name: "Grok 4.1 Fast (2M Context)", value: "grok-4.1-fast" },
1523
+ { name: "Grok 4 (Flagship)", value: "grok-4" },
1524
+ { name: "Grok Code Fast (Agentic Coding)", value: "grok-code-fast-1" }
1518
1525
  ]
1519
1526
  };
1520
1527
  function needsOnboarding() {
@@ -6327,7 +6334,7 @@ ${chalk18.cyan(`/_/ |_|\\_, /\\__,_//_/ `)}
6327
6334
  ${chalk18.cyan(` /____/ `)}
6328
6335
  `;
6329
6336
  var program = new Command();
6330
- program.name("agdi").description(chalk18.cyan("\u{1F680} AI-powered coding assistant")).version("2.10.4").option("-y, --yes", "Auto-approve all prompts (headless/CI mode)").option("-m, --minimal", "Generate only the requested file(s), not a full app").option("-d, --dry-run", "Show what would be created without writing files");
6337
+ program.name("agdi").description(chalk18.cyan("\u{1F680} AI-powered coding assistant")).version("2.10.5").option("-y, --yes", "Auto-approve all prompts (headless/CI mode)").option("-m, --minimal", "Generate only the requested file(s), not a full app").option("-d, --dry-run", "Show what would be created without writing files");
6331
6338
  program.hook("preAction", (thisCommand) => {
6332
6339
  const opts = thisCommand.opts();
6333
6340
  if (opts.yes) {
@@ -6352,6 +6359,7 @@ program.action(async () => {
6352
6359
  await startCodingMode();
6353
6360
  } catch (error) {
6354
6361
  if (error.name === "ExitPromptError") {
6362
+ ui.showCommunityInvite("exit");
6355
6363
  console.log(chalk18.gray("\n\n\u{1F44B} Goodbye!\n"));
6356
6364
  try {
6357
6365
  ui.safeExit(0);
@@ -6484,6 +6492,7 @@ program.command("build <prompt>").alias("b").description("Generate an app from a
6484
6492
  console.log(chalk18.gray(`
6485
6493
  \u{1F4C1} Created ${files.length} files in ${chalk18.cyan(options.output)}`));
6486
6494
  console.log(chalk18.gray("\nNext: cd " + options.output + " && npm install && npm run dev\n"));
6495
+ ui.showCommunityInvite("build");
6487
6496
  } catch (error) {
6488
6497
  spinner.fail("Generation failed");
6489
6498
  const msg = error instanceof Error ? error.message : String(error);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdi",
3
- "version": "2.10.4",
3
+ "version": "2.10.6",
4
4
  "description": "AI-powered app generator - build full-stack apps from natural language in your terminal",
5
5
  "type": "module",
6
6
  "bin": {
@@ -75,4 +75,4 @@
75
75
  "ora": "^8.0.0",
76
76
  "uuid": "^13.0.0"
77
77
  }
78
- }
78
+ }