tzero-mcp 10.7.0 → 10.7.1

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 (96) hide show
  1. package/bin/tzero-mcp.js +9 -16
  2. package/bin/tzero.js +9 -16
  3. package/index.js +7 -2
  4. package/package.json +2 -1
  5. package/src/addmcp.py +1194 -0
  6. package/src/main.py +60 -0
  7. package/src/siber_akademi_icon.py +77 -0
  8. package/src/tzero/jarvis/semantic_compressor.py +373 -0
  9. package/src/tzero.py +58 -0
  10. package/src/tzero_benchmark.py +475 -0
  11. package/src/tzero_bridge.py +362 -0
  12. package/src/tzero_ci.py +153 -0
  13. package/src/tzero_commit.py +192 -0
  14. package/src/tzero_cost.py +163 -0
  15. package/src/tzero_dashboard.py +1448 -0
  16. package/src/tzero_deps.py +287 -0
  17. package/src/tzero_drift.py +208 -0
  18. package/src/tzero_explain.py +240 -0
  19. package/src/tzero_features.py +3022 -0
  20. package/src/tzero_fix.py +228 -0
  21. package/src/tzero_fixer/__init__.py +63 -0
  22. package/src/tzero_fixer/amalgamation.py +334 -0
  23. package/src/tzero_fixer/ast_syntax_healer.py +464 -0
  24. package/src/tzero_fixer/ast_type_modernizer.py +288 -0
  25. package/src/tzero_fixer/async_io_modernizer.py +127 -0
  26. package/src/tzero_fixer/automated_regression_suite.py +600 -0
  27. package/src/tzero_fixer/benchmarks_and_diagnostics.py +174 -0
  28. package/src/tzero_fixer/ci_cd_self_healing_gate.py +246 -0
  29. package/src/tzero_fixer/code_duplicity_and_refactorer.py +151 -0
  30. package/src/tzero_fixer/code_smells_healer.py +260 -0
  31. package/src/tzero_fixer/cwe_remediator.py +171 -0
  32. package/src/tzero_fixer/dead_code_eliminator.py +150 -0
  33. package/src/tzero_fixer/dependency_vulnerability_auditor.py +309 -0
  34. package/src/tzero_fixer/git_advanced_surgeon.py +280 -0
  35. package/src/tzero_fixer/hardware_and_disk_doctor.py +325 -0
  36. package/src/tzero_fixer/import_graph_healer.py +412 -0
  37. package/src/tzero_fixer/interactive_tui.py +91 -0
  38. package/src/tzero_fixer/knowledge_base.py +295 -0
  39. package/src/tzero_fixer/knowledge_base_extended.py +940 -0
  40. package/src/tzero_fixer/linters_and_static_analyzer.py +307 -0
  41. package/src/tzero_fixer/mcp_server.py +447 -0
  42. package/src/tzero_fixer/models.py +385 -0
  43. package/src/tzero_fixer/orchestrator.py +375 -0
  44. package/src/tzero_fixer/os_doctor.py +502 -0
  45. package/src/tzero_fixer/packaging_abi_surgeon.py +323 -0
  46. package/src/tzero_fixer/pc_fixer_doctor.py +599 -0
  47. package/src/tzero_fixer/performance_and_memory_profiler.py +274 -0
  48. package/src/tzero_fixer/polyglot_ast_parsers.py +313 -0
  49. package/src/tzero_fixer/polyglot_build_healer.py +364 -0
  50. package/src/tzero_fixer/polyglot_config_healer.py +318 -0
  51. package/src/tzero_fixer/polyglot_doctor.py +372 -0
  52. package/src/tzero_fixer/polyglot_linters.py +619 -0
  53. package/src/tzero_fixer/polyglot_schema_validator.py +305 -0
  54. package/src/tzero_fixer/security_cwe_database.py +444 -0
  55. package/src/tzero_fixer/security_deep_rules.py +114 -0
  56. package/src/tzero_fixer/security_rules_catalog.py +110 -0
  57. package/src/tzero_fixer/security_zero_leak.py +326 -0
  58. package/src/tzero_fixer/smart_patch_recommender.py +223 -0
  59. package/src/tzero_fixer/synthetic_workspace_generator.py +220 -0
  60. package/src/tzero_fixer/system_diagnostics_extended.py +493 -0
  61. package/src/tzero_fixer/system_repair_recipes.py +447 -0
  62. package/src/tzero_fixer/venv_doctor.py +309 -0
  63. package/src/tzero_gateway.py +885 -0
  64. package/src/tzero_guard.py +243 -0
  65. package/src/tzero_infra.py +274 -0
  66. package/src/tzero_jarvis/__init__.py +124 -0
  67. package/src/tzero_jarvis/causal_graph.py +310 -0
  68. package/src/tzero_jarvis/graph_visualizer.py +395 -0
  69. package/src/tzero_jarvis/hybrid_search.py +214 -0
  70. package/src/tzero_jarvis/latent_press.py +137 -0
  71. package/src/tzero_jarvis/memory_consolidation.py +212 -0
  72. package/src/tzero_jarvis/minhash_lsh.py +184 -0
  73. package/src/tzero_jarvis/orchestrator.py +335 -0
  74. package/src/tzero_jarvis/self_healing.py +308 -0
  75. package/src/tzero_jarvis/semantic_compressor.py +887 -0
  76. package/src/tzero_jarvis/swarm.py +261 -0
  77. package/src/tzero_jarvis/swarm_bft.py +144 -0
  78. package/src/tzero_jarvis/workspace_orchestrator.py +1167 -0
  79. package/src/tzero_jarvis/zero_key_router.py +173 -0
  80. package/src/tzero_mcp.py +4858 -0
  81. package/src/tzero_neural_cortex.py +1425 -0
  82. package/src/tzero_packer.py +370 -0
  83. package/src/tzero_patch.py +624 -0
  84. package/src/tzero_pc_fixer.py +12657 -0
  85. package/src/tzero_pipe.py +95 -0
  86. package/src/tzero_polyglot.py +422 -0
  87. package/src/tzero_reachability.py +272 -0
  88. package/src/tzero_replay.py +141 -0
  89. package/src/tzero_security.py +570 -0
  90. package/src/tzero_snapshot.py +258 -0
  91. package/src/tzero_stubs.py +313 -0
  92. package/src/tzero_superdesign.py +774 -0
  93. package/src/tzero_sync.py +241 -0
  94. package/src/tzero_task_benchmark.py +363 -0
  95. package/src/tzero_tui.py +244 -0
  96. 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
+