agdi 2.8.9 → 2.9.0

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/bin/agdi.js CHANGED
@@ -1,2 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import '../dist/index.js';
2
+
3
+ // ES module dynamic import for bin executable
4
+ import('../dist/index.js').catch(err => {
5
+ console.error('Failed to load agdi:', err);
6
+ process.exit(1);
7
+ });
package/dist/index.js CHANGED
@@ -989,7 +989,8 @@ async function login() {
989
989
  { name: "OpenAI (GPT-4, GPT-5)", value: "openai" },
990
990
  { name: "Anthropic (Claude)", value: "anthropic" },
991
991
  { name: "DeepSeek", value: "deepseek" },
992
- { name: "Local LLM (Ollama)", value: "ollama" }
992
+ { name: "Local LLM (Ollama)", value: "ollama" },
993
+ { name: "Search API (Brave/Perplexity - for DeepSearch)", value: "search" }
993
994
  ]
994
995
  });
995
996
  if (provider === "ollama") {
@@ -1025,6 +1026,25 @@ async function login() {
1025
1026
  case "openrouter":
1026
1027
  config.openrouterApiKey = apiKey;
1027
1028
  break;
1029
+ case "search": {
1030
+ const searchProvider = await select({
1031
+ message: "Select search provider:",
1032
+ choices: [
1033
+ { name: "Brave Search (Recommended - Free 2k/month)", value: "brave" },
1034
+ { name: "Perplexity API", value: "perplexity" },
1035
+ { name: "Tavily", value: "tavily" }
1036
+ ]
1037
+ });
1038
+ config.searchProvider = searchProvider;
1039
+ config.searchApiKey = apiKey;
1040
+ config.searchEnabled = true;
1041
+ config.searchAutoTrigger = true;
1042
+ console.log(chalk5.green(`
1043
+ \u2705 ${searchProvider} API key saved for DeepSearch`));
1044
+ console.log(chalk5.gray("DeepSearch enabled - will automatically search for latest docs\n"));
1045
+ saveConfig(config);
1046
+ return;
1047
+ }
1028
1048
  }
1029
1049
  config.defaultProvider = provider;
1030
1050
  saveConfig(config);
@@ -4914,7 +4934,7 @@ ${chalk15.cyan(`/_/ |_|\\_, /\\__,_//_/ `)}
4914
4934
  ${chalk15.cyan(` /____/ `)}
4915
4935
  `;
4916
4936
  var program = new Command();
4917
- program.name("agdi").description(chalk15.cyan("\u{1F680} AI-powered coding assistant")).version("2.8.9").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");
4937
+ program.name("agdi").description(chalk15.cyan("\u{1F680} AI-powered coding assistant")).version("2.9.0").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");
4918
4938
  program.hook("preAction", (thisCommand) => {
4919
4939
  const opts = thisCommand.opts();
4920
4940
  if (opts.yes) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agdi",
3
- "version": "2.8.9",
3
+ "version": "2.9.0",
4
4
  "description": "AI-powered app generator - build full-stack apps from natural language in your terminal",
5
5
  "type": "module",
6
6
  "bin": {
@@ -46,6 +46,7 @@
46
46
  "node": ">=18.0.0"
47
47
  },
48
48
  "devDependencies": {
49
+ "@types/file-saver": "^2.0.7",
49
50
  "@types/fs-extra": "^11.0.0",
50
51
  "@types/node": "^20.0.0",
51
52
  "tsup": "^8.0.0",
@@ -54,10 +55,15 @@
54
55
  "vitest": "^3.0.0"
55
56
  },
56
57
  "dependencies": {
58
+ "@babel/core": "^7.28.6",
59
+ "@babel/parser": "^7.28.6",
60
+ "@babel/traverse": "^7.28.6",
61
+ "@babel/types": "^7.28.6",
57
62
  "@google/genai": "^1.0.0",
58
63
  "@inquirer/prompts": "^5.0.0",
59
64
  "@types/figlet": "^1.7.0",
60
65
  "@types/gradient-string": "^1.1.6",
66
+ "better-sqlite3": "^12.6.2",
61
67
  "boxen": "^8.0.1",
62
68
  "chalk": "^5.3.0",
63
69
  "commander": "^12.0.0",