agdi 2.6.3 → 2.7.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/LICENSE +21 -0
- package/README.md +47 -27
- package/bin/agdi.js +0 -0
- package/dist/index.js +0 -61
- package/package.json +68 -69
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Agdi Systems
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -26,10 +26,30 @@
|
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## 🚀 What's New in v2.7.0
|
|
30
30
|
|
|
31
31
|
<div align="center">
|
|
32
|
-
<img src="https://img.shields.io/badge/NEW-
|
|
32
|
+
<img src="https://img.shields.io/badge/NEW-GitHub_Import-00d1b2?style=for-the-badge" alt="GitHub Import">
|
|
33
|
+
<img src="https://img.shields.io/badge/NEW-Voice_Commands-ff6b6b?style=for-the-badge" alt="Voice">
|
|
34
|
+
<img src="https://img.shields.io/badge/NEW-Self_Repair-8b5cf6?style=for-the-badge" alt="Self-Repair">
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
### ✨ New Features
|
|
38
|
+
|
|
39
|
+
| Feature | Description |
|
|
40
|
+
|---------|-------------|
|
|
41
|
+
| 🐙 **GitHub Import** | Import any public repo via URL. Fetches zipball, extracts with JSZip |
|
|
42
|
+
| 🎤 **Voice Commands** | Talk to Agdi! Uses Web Speech API for real-time transcription |
|
|
43
|
+
| 🩹 **Self-Repair** | Autonomous build error recovery. AI diagnoses and fixes errors |
|
|
44
|
+
| 🧠 **2026 Model Registry** | GPT-5.2 Codex, Claude 4.5 Sonnet, Gemini 3 Pro/Flash |
|
|
45
|
+
| 🎨 **Official Brand Logos** | SVG icons for all AI providers (no more emojis) |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🎬 Cinematic Dark Mode
|
|
50
|
+
|
|
51
|
+
<div align="center">
|
|
52
|
+
<img src="https://img.shields.io/badge/Premium_Terminal_UI-blueviolet?style=for-the-badge" alt="New">
|
|
33
53
|
</div>
|
|
34
54
|
|
|
35
55
|
### ✨ Visual Upgrade
|
|
@@ -53,7 +73,7 @@
|
|
|
53
73
|
│ / ___ / /_/ / /_/ // / │
|
|
54
74
|
│ /_/ |_\____/_____/___/ │
|
|
55
75
|
│ │
|
|
56
|
-
│ v2.
|
|
76
|
+
│ v2.7.0 [ARCHITECT ONLINE] │
|
|
57
77
|
│ │
|
|
58
78
|
├──────────────────────────────────────────────────────────────┤
|
|
59
79
|
│ ╭─ SESSION INFO ─────────────────────────────────────────╮ │
|
|
@@ -85,7 +105,7 @@ agdi
|
|
|
85
105
|
|
|
86
106
|
---
|
|
87
107
|
|
|
88
|
-
## 🎯
|
|
108
|
+
## 🎯 Highlights
|
|
89
109
|
|
|
90
110
|
<table>
|
|
91
111
|
<tr>
|
|
@@ -102,39 +122,35 @@ Your code is reviewed by AI before delivery.
|
|
|
102
122
|
</td>
|
|
103
123
|
<td width="50%">
|
|
104
124
|
|
|
105
|
-
###
|
|
125
|
+
### 🎤 Voice Input (NEW)
|
|
106
126
|
```bash
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
→ /search authentication
|
|
111
|
-
🔍 src/auth/login.ts:15 (0.87)
|
|
127
|
+
🎤 Hold Space to talk
|
|
128
|
+
🎤 "Build a todo app with dark mode"
|
|
129
|
+
→ Generating...
|
|
112
130
|
```
|
|
131
|
+
Talk to build apps!
|
|
113
132
|
|
|
114
133
|
</td>
|
|
115
134
|
</tr>
|
|
116
135
|
<tr>
|
|
117
136
|
<td width="50%">
|
|
118
137
|
|
|
119
|
-
###
|
|
138
|
+
### 🐙 GitHub Import (NEW)
|
|
120
139
|
```bash
|
|
121
|
-
→ /
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
list_dir [filesystem]
|
|
125
|
-
search_code [code]
|
|
140
|
+
→ Import from: https://github.com/user/repo
|
|
141
|
+
📦 Fetching zipball...
|
|
142
|
+
✓ Imported 47 files
|
|
126
143
|
```
|
|
127
144
|
|
|
128
145
|
</td>
|
|
129
146
|
<td width="50%">
|
|
130
147
|
|
|
131
|
-
###
|
|
148
|
+
### 🩹 Self-Repair (NEW)
|
|
132
149
|
```bash
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
Preferences: 5
|
|
150
|
+
❌ npm install failed
|
|
151
|
+
🩹 Diagnosing error...
|
|
152
|
+
🔧 Applying fix: removed conflicting dep
|
|
153
|
+
✅ Build succeeded!
|
|
138
154
|
```
|
|
139
155
|
|
|
140
156
|
</td>
|
|
@@ -224,22 +240,26 @@ Your code is reviewed by AI before delivery.
|
|
|
224
240
|
|
|
225
241
|
## 🌐 AI Providers
|
|
226
242
|
|
|
227
|
-
### Free Models
|
|
243
|
+
### Free Models via OpenRouter
|
|
244
|
+
|
|
245
|
+
> **Note:** These models are free but require an [OpenRouter API key](https://openrouter.ai/keys) (free to create).
|
|
228
246
|
|
|
229
247
|
| Model | ID | Best For |
|
|
230
248
|
|-------|-----|----------|
|
|
231
249
|
| GPT-OSS 120B | `openai/gpt-oss-120b:free` | General |
|
|
232
250
|
| Qwen3 Coder | `qwen/qwen3-coder:free` | Code |
|
|
233
251
|
| Kimi K2 | `moonshotai/kimi-k2:free` | General |
|
|
252
|
+
| Gemma 3n | `google/gemma-3n-e2b-it:free` | Lightweight |
|
|
253
|
+
| Devstral | `mistralai/devstral-2512:free` | Code |
|
|
234
254
|
|
|
235
255
|
### Bring Your Own Key
|
|
236
256
|
|
|
237
257
|
| Provider | Models | Get Key |
|
|
238
258
|
|----------|--------|---------|
|
|
239
|
-
| **Gemini** 🔥 |
|
|
240
|
-
| **OpenRouter** | Claude, GPT-
|
|
241
|
-
| **OpenAI** | GPT-5, o3 | [platform.openai.com](https://platform.openai.com/api-keys) |
|
|
242
|
-
| **Anthropic** | Claude 4.5 Sonnet | [console.anthropic.com](https://console.anthropic.com/) |
|
|
259
|
+
| **Gemini** 🔥 | Gemini 3 Pro/Flash, 2.5 Flash | [aistudio.google.com](https://aistudio.google.com/apikey) |
|
|
260
|
+
| **OpenRouter** | Claude, GPT-5, Llama | [openrouter.ai](https://openrouter.ai/keys) |
|
|
261
|
+
| **OpenAI** | GPT-5.2 Codex, o3 | [platform.openai.com](https://platform.openai.com/api-keys) |
|
|
262
|
+
| **Anthropic** | Claude 4.5 Sonnet/Opus | [console.anthropic.com](https://console.anthropic.com/) |
|
|
243
263
|
|
|
244
264
|
---
|
|
245
265
|
|
package/bin/agdi.js
CHANGED
|
File without changes
|
package/dist/index.js
CHANGED
|
@@ -1750,66 +1750,6 @@ function detectEnvironment(overrides) {
|
|
|
1750
1750
|
...overrides
|
|
1751
1751
|
};
|
|
1752
1752
|
}
|
|
1753
|
-
function formatBackend(backend) {
|
|
1754
|
-
switch (backend) {
|
|
1755
|
-
case "windows-host":
|
|
1756
|
-
return "Windows host";
|
|
1757
|
-
case "linux-host":
|
|
1758
|
-
return "Linux host";
|
|
1759
|
-
case "macos-host":
|
|
1760
|
-
return "macOS host";
|
|
1761
|
-
case "wsl":
|
|
1762
|
-
return "WSL (Windows Subsystem for Linux)";
|
|
1763
|
-
case "container":
|
|
1764
|
-
return "Container sandbox";
|
|
1765
|
-
}
|
|
1766
|
-
}
|
|
1767
|
-
function formatNetwork(policy, domains) {
|
|
1768
|
-
switch (policy) {
|
|
1769
|
-
case "off":
|
|
1770
|
-
return "off";
|
|
1771
|
-
case "allowlist":
|
|
1772
|
-
return `allowlist (${domains.slice(0, 2).join(", ")}${domains.length > 2 ? "..." : ""})`;
|
|
1773
|
-
case "on":
|
|
1774
|
-
return "unrestricted";
|
|
1775
|
-
}
|
|
1776
|
-
}
|
|
1777
|
-
function formatTrust(trust) {
|
|
1778
|
-
switch (trust) {
|
|
1779
|
-
case "untrusted":
|
|
1780
|
-
return chalk9.red("untrusted (read-only mode)");
|
|
1781
|
-
case "session":
|
|
1782
|
-
return chalk9.yellow("session trusted");
|
|
1783
|
-
case "persistent":
|
|
1784
|
-
return chalk9.green("trusted");
|
|
1785
|
-
}
|
|
1786
|
-
}
|
|
1787
|
-
function displaySessionHeader(env) {
|
|
1788
|
-
const boxWidth = 54;
|
|
1789
|
-
const topBorder = "\u256D\u2500 Agdi Terminal Session " + "\u2500".repeat(boxWidth - 25) + "\u256E";
|
|
1790
|
-
const bottomBorder = "\u2570" + "\u2500".repeat(boxWidth) + "\u256F";
|
|
1791
|
-
const lines = [
|
|
1792
|
-
`Exec env: ${formatBackend(env.backend)}`,
|
|
1793
|
-
`Workspace: ${truncatePath(env.workspaceRoot, 40)}`,
|
|
1794
|
-
`cwd: ${truncatePath(env.cwd, 40)}`,
|
|
1795
|
-
`Network: ${formatNetwork(env.networkPolicy, env.allowedDomains)}`,
|
|
1796
|
-
`Trust: ${formatTrust(env.trustLevel)}`
|
|
1797
|
-
];
|
|
1798
|
-
console.log(chalk9.cyan(topBorder));
|
|
1799
|
-
for (const line of lines) {
|
|
1800
|
-
const padding = " ".repeat(Math.max(0, boxWidth - stripAnsi(line).length - 2));
|
|
1801
|
-
console.log(chalk9.cyan("\u2502 ") + line + padding + chalk9.cyan(" \u2502"));
|
|
1802
|
-
}
|
|
1803
|
-
console.log(chalk9.cyan(bottomBorder));
|
|
1804
|
-
console.log("");
|
|
1805
|
-
}
|
|
1806
|
-
function truncatePath(path4, maxLen) {
|
|
1807
|
-
if (path4.length <= maxLen) return path4;
|
|
1808
|
-
return "..." + path4.slice(-(maxLen - 3));
|
|
1809
|
-
}
|
|
1810
|
-
function stripAnsi(str) {
|
|
1811
|
-
return str.replace(/\u001b\[[0-9;]*m/g, "");
|
|
1812
|
-
}
|
|
1813
1753
|
var currentEnvironment = null;
|
|
1814
1754
|
function initSession(overrides) {
|
|
1815
1755
|
currentEnvironment = detectEnvironment(overrides);
|
|
@@ -4249,7 +4189,6 @@ async function startCodingMode() {
|
|
|
4249
4189
|
const { provider, apiKey, model } = activeConfig;
|
|
4250
4190
|
const config = loadConfig();
|
|
4251
4191
|
const env = initSession();
|
|
4252
|
-
displaySessionHeader(env);
|
|
4253
4192
|
const isTrusted = await ensureTrusted(env.workspaceRoot);
|
|
4254
4193
|
if (!isTrusted) {
|
|
4255
4194
|
process.exit(0);
|
package/package.json
CHANGED
|
@@ -1,70 +1,69 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "agdi",
|
|
3
|
+
"version": "2.7.0",
|
|
4
|
+
"description": "AI-powered app generator - build full-stack apps from natural language in your terminal",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"agdi": "./bin/agdi.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"files": [
|
|
11
|
+
"bin",
|
|
12
|
+
"dist",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"cli",
|
|
17
|
+
"ai",
|
|
18
|
+
"code-generation",
|
|
19
|
+
"app-generator",
|
|
20
|
+
"llm",
|
|
21
|
+
"gpt",
|
|
22
|
+
"claude",
|
|
23
|
+
"gemini",
|
|
24
|
+
"react",
|
|
25
|
+
"vite",
|
|
26
|
+
"full-stack"
|
|
27
|
+
],
|
|
28
|
+
"author": "Agdi Systems Inc.",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "git+https://github.com/anassagd432/Agdi-dev.git"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://agdi-dev.vercel.app",
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/anassagd432/Agdi-dev/issues"
|
|
37
|
+
},
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18.0.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/fs-extra": "^11.0.0",
|
|
43
|
+
"@types/node": "^20.0.0",
|
|
44
|
+
"tsup": "^8.0.0",
|
|
45
|
+
"tsx": "^4.7.0",
|
|
46
|
+
"typescript": "^5.4.0",
|
|
47
|
+
"vitest": "^3.0.0"
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"@google/genai": "^1.0.0",
|
|
51
|
+
"@inquirer/prompts": "^5.0.0",
|
|
52
|
+
"@types/figlet": "^1.7.0",
|
|
53
|
+
"@types/gradient-string": "^1.1.6",
|
|
54
|
+
"boxen": "^8.0.1",
|
|
55
|
+
"chalk": "^5.3.0",
|
|
56
|
+
"commander": "^12.0.0",
|
|
57
|
+
"figlet": "^1.9.4",
|
|
58
|
+
"fs-extra": "^11.2.0",
|
|
59
|
+
"gradient-string": "^3.0.0",
|
|
60
|
+
"jszip": "^3.10.0",
|
|
61
|
+
"ora": "^8.0.0"
|
|
62
|
+
},
|
|
63
|
+
"scripts": {
|
|
64
|
+
"build": "tsup src/index.ts --format esm --clean",
|
|
65
|
+
"dev": "tsx src/index.ts",
|
|
66
|
+
"start": "node bin/agdi.js",
|
|
67
|
+
"test": "vitest run"
|
|
68
|
+
}
|
|
70
69
|
}
|