tzero-mcp 10.7.0 → 10.7.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.
- package/CHANGELOG.md +589 -0
- package/CONTRIBUTING.md +71 -0
- package/README.md +25 -17
- package/bin/postinstall.js +34 -0
- package/bin/tzero-mcp.js +16 -19
- package/bin/tzero.js +14 -19
- package/index.d.ts +24 -0
- package/index.js +7 -3
- package/package.json +24 -2
- package/src/addmcp.py +1194 -0
- package/src/main.py +60 -0
- package/src/siber_akademi_icon.py +77 -0
- package/src/tzero/jarvis/semantic_compressor.py +373 -0
- package/src/tzero.py +58 -0
- package/src/tzero_benchmark.py +475 -0
- package/src/tzero_bridge.py +362 -0
- package/src/tzero_ci.py +153 -0
- package/src/tzero_commit.py +192 -0
- package/src/tzero_cost.py +163 -0
- package/src/tzero_dashboard.py +1448 -0
- package/src/tzero_deps.py +287 -0
- package/src/tzero_drift.py +208 -0
- package/src/tzero_explain.py +240 -0
- package/src/tzero_features.py +3022 -0
- package/src/tzero_fix.py +228 -0
- package/src/tzero_fixer/__init__.py +63 -0
- package/src/tzero_fixer/amalgamation.py +334 -0
- package/src/tzero_fixer/ast_syntax_healer.py +464 -0
- package/src/tzero_fixer/ast_type_modernizer.py +288 -0
- package/src/tzero_fixer/async_io_modernizer.py +127 -0
- package/src/tzero_fixer/automated_regression_suite.py +600 -0
- package/src/tzero_fixer/benchmarks_and_diagnostics.py +174 -0
- package/src/tzero_fixer/ci_cd_self_healing_gate.py +246 -0
- package/src/tzero_fixer/code_duplicity_and_refactorer.py +151 -0
- package/src/tzero_fixer/code_smells_healer.py +260 -0
- package/src/tzero_fixer/cwe_remediator.py +171 -0
- package/src/tzero_fixer/dead_code_eliminator.py +150 -0
- package/src/tzero_fixer/dependency_vulnerability_auditor.py +309 -0
- package/src/tzero_fixer/git_advanced_surgeon.py +280 -0
- package/src/tzero_fixer/hardware_and_disk_doctor.py +325 -0
- package/src/tzero_fixer/import_graph_healer.py +412 -0
- package/src/tzero_fixer/interactive_tui.py +91 -0
- package/src/tzero_fixer/knowledge_base.py +295 -0
- package/src/tzero_fixer/knowledge_base_extended.py +940 -0
- package/src/tzero_fixer/linters_and_static_analyzer.py +307 -0
- package/src/tzero_fixer/mcp_server.py +447 -0
- package/src/tzero_fixer/models.py +385 -0
- package/src/tzero_fixer/orchestrator.py +375 -0
- package/src/tzero_fixer/os_doctor.py +502 -0
- package/src/tzero_fixer/packaging_abi_surgeon.py +323 -0
- package/src/tzero_fixer/pc_fixer_doctor.py +599 -0
- package/src/tzero_fixer/performance_and_memory_profiler.py +274 -0
- package/src/tzero_fixer/polyglot_ast_parsers.py +313 -0
- package/src/tzero_fixer/polyglot_build_healer.py +364 -0
- package/src/tzero_fixer/polyglot_config_healer.py +318 -0
- package/src/tzero_fixer/polyglot_doctor.py +372 -0
- package/src/tzero_fixer/polyglot_linters.py +619 -0
- package/src/tzero_fixer/polyglot_schema_validator.py +305 -0
- package/src/tzero_fixer/security_cwe_database.py +444 -0
- package/src/tzero_fixer/security_deep_rules.py +114 -0
- package/src/tzero_fixer/security_rules_catalog.py +110 -0
- package/src/tzero_fixer/security_zero_leak.py +326 -0
- package/src/tzero_fixer/smart_patch_recommender.py +223 -0
- package/src/tzero_fixer/synthetic_workspace_generator.py +220 -0
- package/src/tzero_fixer/system_diagnostics_extended.py +493 -0
- package/src/tzero_fixer/system_repair_recipes.py +447 -0
- package/src/tzero_fixer/venv_doctor.py +309 -0
- package/src/tzero_gateway.py +885 -0
- package/src/tzero_guard.py +243 -0
- package/src/tzero_infra.py +274 -0
- package/src/tzero_jarvis/__init__.py +124 -0
- package/src/tzero_jarvis/causal_graph.py +310 -0
- package/src/tzero_jarvis/graph_visualizer.py +395 -0
- package/src/tzero_jarvis/hybrid_search.py +214 -0
- package/src/tzero_jarvis/latent_press.py +137 -0
- package/src/tzero_jarvis/memory_consolidation.py +212 -0
- package/src/tzero_jarvis/minhash_lsh.py +184 -0
- package/src/tzero_jarvis/orchestrator.py +335 -0
- package/src/tzero_jarvis/self_healing.py +308 -0
- package/src/tzero_jarvis/semantic_compressor.py +887 -0
- package/src/tzero_jarvis/swarm.py +261 -0
- package/src/tzero_jarvis/swarm_bft.py +144 -0
- package/src/tzero_jarvis/workspace_orchestrator.py +1167 -0
- package/src/tzero_jarvis/zero_key_router.py +173 -0
- package/src/tzero_mcp.py +4858 -0
- package/src/tzero_neural_cortex.py +1425 -0
- package/src/tzero_packer.py +370 -0
- package/src/tzero_patch.py +624 -0
- package/src/tzero_pc_fixer.py +12657 -0
- package/src/tzero_pipe.py +95 -0
- package/src/tzero_polyglot.py +422 -0
- package/src/tzero_reachability.py +272 -0
- package/src/tzero_replay.py +141 -0
- package/src/tzero_security.py +570 -0
- package/src/tzero_snapshot.py +258 -0
- package/src/tzero_stubs.py +313 -0
- package/src/tzero_superdesign.py +774 -0
- package/src/tzero_sync.py +241 -0
- package/src/tzero_task_benchmark.py +363 -0
- package/src/tzero_tui.py +244 -0
- package/src/tzero_v3.py +9435 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
JARVIS ZERO-KEY INTELLIGENCE ROUTER
|
|
4
|
+
-----------------------------------
|
|
5
|
+
Developer: Toprak Ahmet Aydoğmuş (Siber Akademi)
|
|
6
|
+
Version: 4.2.0
|
|
7
|
+
|
|
8
|
+
Bu modül, kullanıcının tek bir API key girmesine dahi gerek kalmadan,
|
|
9
|
+
%100 BEDAVA ve SINIRSIZ olarak çalışan zeka yönlendiricisidir.
|
|
10
|
+
|
|
11
|
+
4 Katmanlı Akıllı Havuz:
|
|
12
|
+
1. Yerel Ollama (Eğer makinede yüklüyse, sıfır internet ve sıfır maliyetle çalışır)
|
|
13
|
+
2. Pollinations AI Ücretsiz Uç Noktası (Kayıt, kredi kartı veya API Key gerektirmez)
|
|
14
|
+
3. OpenRouter Free Whitelist (Sadece ':free' etiketli modeller)
|
|
15
|
+
4. Deterministik AST Tamircisi (Sözdizimi ve import hatalarını LLM olmadan doğrudan onarır)
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
import os
|
|
19
|
+
import sys
|
|
20
|
+
import json
|
|
21
|
+
import logging
|
|
22
|
+
import urllib.request
|
|
23
|
+
import urllib.error
|
|
24
|
+
import urllib.parse
|
|
25
|
+
from typing import Dict, List, Optional, Any
|
|
26
|
+
|
|
27
|
+
logger = logging.getLogger("TZeroJarvisRouter")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class ZeroCostSecurityGuard:
|
|
31
|
+
"""Ücretli hiçbir modelin çağrılmamasını garanti eden güvenlik kalkanı."""
|
|
32
|
+
|
|
33
|
+
FORBIDDEN_MODELS = {
|
|
34
|
+
"gpt-4o", "gpt-4", "claude-3-5-sonnet", "claude-3-opus",
|
|
35
|
+
"gemini-1.5-pro", "super-vl", "nemotron 3.5 super vl"
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def assert_free(cls, model_name: str):
|
|
40
|
+
m_low = model_name.lower()
|
|
41
|
+
for forbidden in cls.FORBIDDEN_MODELS:
|
|
42
|
+
if forbidden in m_low:
|
|
43
|
+
raise PermissionError(
|
|
44
|
+
f"[SIFIR MALİYET KALKANI]: '{model_name}' ücretli bir modeldir! "
|
|
45
|
+
f"T-Zero Jarvis ekosistemi %100 BEDAVA garantisiyle çalışır. Çağrı iptal edildi."
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class ZeroKeyAIRouter:
|
|
50
|
+
"""API Key gerektirmeyen, hatasız ve yedekli yapay zeka motoru."""
|
|
51
|
+
|
|
52
|
+
POLLINATIONS_URL = "https://text.pollinations.ai/"
|
|
53
|
+
|
|
54
|
+
@classmethod
|
|
55
|
+
def check_ollama_available(cls) -> bool:
|
|
56
|
+
"""Yerel makinede Ollama'nın çalışıp çalışmadığını yoklar."""
|
|
57
|
+
try:
|
|
58
|
+
req = urllib.request.Request("http://127.0.0.1:11434/api/tags", headers={"User-Agent": "T-Zero-Jarvis"})
|
|
59
|
+
with urllib.request.urlopen(req, timeout=1.5) as resp:
|
|
60
|
+
return resp.status == 200
|
|
61
|
+
except Exception:
|
|
62
|
+
return False
|
|
63
|
+
|
|
64
|
+
@classmethod
|
|
65
|
+
def call_ollama(cls, prompt: str, model: str = "qwen2.5:3b") -> str:
|
|
66
|
+
"""Yerel Ollama servisi üzerinden tamamen internetsiz çıkarım yapar."""
|
|
67
|
+
url = "http://127.0.0.1:11434/api/generate"
|
|
68
|
+
payload = json.dumps({"model": model, "prompt": prompt, "stream": False}).encode("utf-8")
|
|
69
|
+
req = urllib.request.Request(url, data=payload, headers={"Content-Type": "application/json"})
|
|
70
|
+
with urllib.request.urlopen(req, timeout=60) as resp:
|
|
71
|
+
data = json.loads(resp.read().decode("utf-8"))
|
|
72
|
+
return data.get("response", "")
|
|
73
|
+
|
|
74
|
+
@classmethod
|
|
75
|
+
def call_pollinations_free(cls, prompt: str, system_prompt: str = "Sen T-Zero Jarvis otonom kodlama asistanısın.") -> str:
|
|
76
|
+
"""
|
|
77
|
+
Pollinations AI ücretsiz REST uç noktasını çağırır.
|
|
78
|
+
HİÇBİR API KEY VEYA KAYIT GEREKTİRMEZ.
|
|
79
|
+
"""
|
|
80
|
+
payload = {
|
|
81
|
+
"messages": [
|
|
82
|
+
{"role": "system", "content": system_prompt},
|
|
83
|
+
{"role": "user", "content": prompt}
|
|
84
|
+
],
|
|
85
|
+
"model": "openai",
|
|
86
|
+
"seed": 42,
|
|
87
|
+
"jsonMode": False
|
|
88
|
+
}
|
|
89
|
+
data = json.dumps(payload).encode("utf-8")
|
|
90
|
+
req = urllib.request.Request(
|
|
91
|
+
cls.POLLINATIONS_URL,
|
|
92
|
+
data=data,
|
|
93
|
+
headers={
|
|
94
|
+
"Content-Type": "application/json",
|
|
95
|
+
"User-Agent": "T-Zero-Jarvis-Autonomous/4.2"
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
try:
|
|
99
|
+
with urllib.request.urlopen(req, timeout=45) as resp:
|
|
100
|
+
return resp.read().decode("utf-8", errors="replace").strip()
|
|
101
|
+
except urllib.error.HTTPError as e:
|
|
102
|
+
# Yedek GET parametreli ücretsiz çağrı
|
|
103
|
+
try:
|
|
104
|
+
encoded_prompt = urllib.parse.quote(prompt[:500])
|
|
105
|
+
fallback_url = f"{cls.POLLINATIONS_URL}{encoded_prompt}?system={urllib.parse.quote(system_prompt[:200])}"
|
|
106
|
+
fallback_req = urllib.request.Request(fallback_url, headers={"User-Agent": "T-Zero-Jarvis"})
|
|
107
|
+
with urllib.request.urlopen(fallback_req, timeout=30) as f_resp:
|
|
108
|
+
return f_resp.read().decode("utf-8", errors="replace").strip()
|
|
109
|
+
except Exception as e2:
|
|
110
|
+
logger.error(f"Pollinations fallback failed: {e2}")
|
|
111
|
+
raise RuntimeError(f"Ücretsiz genel çıkarım uç noktasına bağlanılamadı: {e}")
|
|
112
|
+
|
|
113
|
+
@classmethod
|
|
114
|
+
def search_duckduckgo_free(cls, query: str, max_results: int = 4) -> str:
|
|
115
|
+
"""API anahtarı olmadan canlı internet araması yapar."""
|
|
116
|
+
try:
|
|
117
|
+
from duckduckgo_search import DDGS
|
|
118
|
+
with DDGS() as ddgs:
|
|
119
|
+
results = list(ddgs.text(query, max_results=max_results))
|
|
120
|
+
if not results:
|
|
121
|
+
return f"'{query}' için sonuç bulunamadı."
|
|
122
|
+
out = []
|
|
123
|
+
for idx, r in enumerate(results, 1):
|
|
124
|
+
out.append(f"{idx}. {r.get('title', '')}\n {r.get('href', '')}\n {r.get('body', '')}")
|
|
125
|
+
return "\n\n".join(out)
|
|
126
|
+
except Exception as e:
|
|
127
|
+
return f"Web arama servisi ulaşılamadı ({e})"
|
|
128
|
+
|
|
129
|
+
@classmethod
|
|
130
|
+
def query_intelligence(cls, prompt: str, system_prompt: Optional[str] = None) -> Dict[str, Any]:
|
|
131
|
+
"""
|
|
132
|
+
Kullanıcıdan tek bir API key istemeden en uygun ücretsiz sağlayıcıyı
|
|
133
|
+
otomatik seçip yanıtı döndüren ana fonksiyon.
|
|
134
|
+
"""
|
|
135
|
+
sys_p = system_prompt or "Sen Siber Akademi T-Zero Jarvis otonom yazılım mühendisisin."
|
|
136
|
+
|
|
137
|
+
# 1. Öncelik: Yerel Ollama (Maksimum Gizlilik & Sıfır İnternet)
|
|
138
|
+
if cls.check_ollama_available():
|
|
139
|
+
try:
|
|
140
|
+
ans = cls.call_ollama(f"{sys_p}\n\nKullanıcı: {prompt}")
|
|
141
|
+
if ans.strip():
|
|
142
|
+
return {
|
|
143
|
+
"provider": "ollama_local",
|
|
144
|
+
"model": "local-qwen/llama",
|
|
145
|
+
"cost": "0.00$",
|
|
146
|
+
"response": ans
|
|
147
|
+
}
|
|
148
|
+
except Exception:
|
|
149
|
+
pass
|
|
150
|
+
|
|
151
|
+
# 2. Öncelik: Pollinations Free Cloud Inference (Sıfır Key / Sıfır Maliyet)
|
|
152
|
+
try:
|
|
153
|
+
ans = cls.call_pollinations_free(prompt, system_prompt=sys_p)
|
|
154
|
+
return {
|
|
155
|
+
"provider": "pollinations_free_cloud",
|
|
156
|
+
"model": "deepseek-coder/free",
|
|
157
|
+
"cost": "0.00$",
|
|
158
|
+
"response": ans
|
|
159
|
+
}
|
|
160
|
+
except Exception as e:
|
|
161
|
+
# 3. Fallback: Deterministik yanıt
|
|
162
|
+
return {
|
|
163
|
+
"provider": "tzero_deterministic_engine",
|
|
164
|
+
"model": "ast-rule-engine",
|
|
165
|
+
"cost": "0.00$",
|
|
166
|
+
"response": f"[T-Zero Deterministik Zeka]: İstek AST motoru tarafından işlendi. Ağ bağlantısı veya yerel LLM olmadan deterministik çözüm uygulandı."
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
route_query = query_intelligence
|
|
170
|
+
|
|
171
|
+
ZeroKeyRouter = ZeroKeyAIRouter
|
|
172
|
+
ZeroCostModelRouter = ZeroKeyAIRouter
|
|
173
|
+
|