yncli 1.2.1__tar.gz → 1.2.3__tar.gz
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.
- {yncli-1.2.1 → yncli-1.2.3}/PKG-INFO +1 -1
- {yncli-1.2.1 → yncli-1.2.3}/pyproject.toml +1 -1
- {yncli-1.2.1 → yncli-1.2.3}/setup.py +1 -1
- {yncli-1.2.1 → yncli-1.2.3}/yncli/tui.py +33 -1
- yncli-1.2.3/yncli/version.py +1 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli.egg-info/PKG-INFO +1 -1
- yncli-1.2.1/yncli/version.py +0 -1
- {yncli-1.2.1 → yncli-1.2.3}/README.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/setup.cfg +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/__init__.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/agent.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/architect.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/code_review.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/debug_oracle.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/debugger.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/polyglot.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/refactor_master.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/security_auditor.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/system_architect.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/test_runner.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/built_in_skills/ultrabrain.md +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/clean_text.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/client.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/config.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/language_detector.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/main.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/mention_resolver.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/skills_manager.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/system_prompt.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/tools/__init__.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/tools/file_tools.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/tools/polyglot_tools.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/tools/search_tools.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/tools/system_tools.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/update_checker.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/workspace_memory.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli/workspace_scanner.py +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli.egg-info/SOURCES.txt +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli.egg-info/dependency_links.txt +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli.egg-info/entry_points.txt +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli.egg-info/requires.txt +0 -0
- {yncli-1.2.1 → yncli-1.2.3}/yncli.egg-info/top_level.txt +0 -0
|
@@ -6,7 +6,7 @@ long_description = (this_directory / "README.md").read_text(encoding="utf-8") if
|
|
|
6
6
|
|
|
7
7
|
setup(
|
|
8
8
|
name="yncli",
|
|
9
|
-
version="1.2.
|
|
9
|
+
version="1.2.3",
|
|
10
10
|
description="Autonomous Polyglot AI Coding Agent & TUI",
|
|
11
11
|
long_description=long_description,
|
|
12
12
|
long_description_content_type="text/markdown",
|
|
@@ -179,7 +179,8 @@ class TerminalUI:
|
|
|
179
179
|
table.add_column("Keterangan", style="white")
|
|
180
180
|
|
|
181
181
|
table.add_row("/model, /models", "Buka popup interaktif untuk memilih model AI (klik mouse / panah)")
|
|
182
|
-
table.add_row("/
|
|
182
|
+
table.add_row("/default, /reset", "Kembalikan provider & model ke bawaan (Model ag/*, cx/*)")
|
|
183
|
+
table.add_row("/google <api_key>", "Hubungkan langsung ke Google AI Studio Gemini API Key Anda")
|
|
183
184
|
table.add_row("/key <api_key>", "Ganti API Key kustom Anda")
|
|
184
185
|
table.add_row("/endpoint <url>", "Ganti Endpoint API kustom (OpenAI, Ollama, OpenRouter, Groq, dll)")
|
|
185
186
|
table.add_row("/plan", "Masuk ke Plan Mode (Riset & susun PRD plan.md otomatis)")
|
|
@@ -236,6 +237,10 @@ class TerminalUI:
|
|
|
236
237
|
badge = " ⭐ (Ultra Fast & Stable)"
|
|
237
238
|
elif mid.startswith("cx/"):
|
|
238
239
|
badge = " ⚡ (Active)"
|
|
240
|
+
elif mid in ("gemini-3.6-flash", "gemini-3.5-flash", "gemini-3.5-flash-lite", "gemini-3-flash-preview"):
|
|
241
|
+
badge = " ⭐ (Google Official - Ultra Fast & Active)"
|
|
242
|
+
elif "pro" in mid:
|
|
243
|
+
badge = " ⚠️ (Tier Pro - Butuh Saldo/Billing)"
|
|
239
244
|
|
|
240
245
|
label = f"{mid}{badge}"
|
|
241
246
|
values.append((mid, label))
|
|
@@ -325,6 +330,33 @@ class TerminalUI:
|
|
|
325
330
|
self.console.print(f"[green]Endpoint API berhasil diganti ke: [cyan]{new_url}[/cyan][/green]")
|
|
326
331
|
return True
|
|
327
332
|
|
|
333
|
+
elif cmd in ("/default", "/reset", "/reset-api"):
|
|
334
|
+
from yncli.config import DEFAULT_BASE_URL, DEFAULT_API_KEY, DEFAULT_MODEL
|
|
335
|
+
self.agent.client.base_url = DEFAULT_BASE_URL
|
|
336
|
+
self.agent.client.api_key = DEFAULT_API_KEY
|
|
337
|
+
self.agent.set_model(DEFAULT_MODEL)
|
|
338
|
+
save_config({
|
|
339
|
+
"base_url": DEFAULT_BASE_URL,
|
|
340
|
+
"api_key": DEFAULT_API_KEY,
|
|
341
|
+
"model": DEFAULT_MODEL
|
|
342
|
+
})
|
|
343
|
+
self.console.print("[bold green]Berhasil reset ke konfigurasi bawaan (Default Provider)![/bold green]")
|
|
344
|
+
self.console.print(f"Endpoint: [cyan]{DEFAULT_BASE_URL}[/cyan]")
|
|
345
|
+
self.console.print(f"Model aktif: [cyan]{DEFAULT_MODEL}[/cyan] (Daftar model ag/*, cx/* kembali tersedia via [yellow]/model[/yellow])")
|
|
346
|
+
return True
|
|
347
|
+
|
|
348
|
+
elif cmd in ("/key", "/apikey"):
|
|
349
|
+
if not args:
|
|
350
|
+
masked = self.agent.client.api_key[:6] + "..." + self.agent.client.api_key[-4:] if len(self.agent.client.api_key) > 10 else "***"
|
|
351
|
+
self.console.print(f"API Key saat ini: [cyan]{masked}[/cyan]")
|
|
352
|
+
self.console.print("Gunakan: [yellow]/key <api_key_anda>[/yellow]")
|
|
353
|
+
return True
|
|
354
|
+
new_key = args[0].strip()
|
|
355
|
+
self.agent.client.api_key = new_key
|
|
356
|
+
save_config({"api_key": new_key})
|
|
357
|
+
self.console.print("[green]API Key berhasil disimpan dan diperbarui.[/green]")
|
|
358
|
+
return True
|
|
359
|
+
|
|
328
360
|
elif cmd in ("/google", "/gemini"):
|
|
329
361
|
if not args:
|
|
330
362
|
self.console.print("Gunakan: [yellow]/google <google_api_key>[/yellow]")
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.2.3"
|
yncli-1.2.1/yncli/version.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.2.1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|