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.
- package/bin/tzero-mcp.js +9 -16
- package/bin/tzero.js +9 -16
- package/index.js +7 -2
- package/package.json +2 -1
- 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
package/src/main.py
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""T-Zero Context Architect V4 - Startup Wrapper.
|
|
3
|
+
|
|
4
|
+
Developer: Toprak Ahmet Aydoğmuş (Siber Akademi)
|
|
5
|
+
LinkedIn: https://linkedin.com/in/toprak-ahmet-aydo%C4%9Fmu%C5%9F-60462534b/
|
|
6
|
+
Bio & Socials: https://hopp.bio/siberegitim
|
|
7
|
+
GitHub: https://github.com/toprakahmetaydogmus/TZeroAlgorithm
|
|
8
|
+
|
|
9
|
+
Points to unified single-file layout: tzero_v3.py
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import os
|
|
13
|
+
import sys
|
|
14
|
+
import multiprocessing
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _setup_windows_streams():
|
|
18
|
+
"""Ensure standard streams are connected or safely redirected on Windows."""
|
|
19
|
+
if sys.platform.startswith("win"):
|
|
20
|
+
if len(sys.argv) > 1:
|
|
21
|
+
try:
|
|
22
|
+
import ctypes
|
|
23
|
+
if ctypes.windll.kernel32.AttachConsole(-1):
|
|
24
|
+
try:
|
|
25
|
+
sys.stdout = open("CONOUT$", "w", encoding="utf-8", errors="replace")
|
|
26
|
+
except Exception:
|
|
27
|
+
pass
|
|
28
|
+
try:
|
|
29
|
+
sys.stderr = open("CONOUT$", "w", encoding="utf-8", errors="replace")
|
|
30
|
+
except Exception:
|
|
31
|
+
pass
|
|
32
|
+
try:
|
|
33
|
+
sys.stdin = open("CONIN$", "r", encoding="utf-8", errors="replace")
|
|
34
|
+
except Exception:
|
|
35
|
+
pass
|
|
36
|
+
except Exception:
|
|
37
|
+
pass
|
|
38
|
+
if sys.stdout is None:
|
|
39
|
+
try:
|
|
40
|
+
sys.stdout = open(os.devnull, "w", encoding="utf-8", errors="replace")
|
|
41
|
+
except Exception:
|
|
42
|
+
import io
|
|
43
|
+
sys.stdout = io.StringIO()
|
|
44
|
+
if sys.stderr is None:
|
|
45
|
+
try:
|
|
46
|
+
import os
|
|
47
|
+
sys.stderr = open(os.devnull, "w", encoding="utf-8", errors="replace")
|
|
48
|
+
except Exception:
|
|
49
|
+
import io
|
|
50
|
+
sys.stderr = io.StringIO()
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
_setup_windows_streams()
|
|
54
|
+
|
|
55
|
+
from tzero_v3 import main
|
|
56
|
+
|
|
57
|
+
if __name__ == "__main__":
|
|
58
|
+
multiprocessing.freeze_support()
|
|
59
|
+
main()
|
|
60
|
+
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""Embedded Siber Akademi Brand Icon and Logo Assets for 100% Reliable Rendering."""
|
|
3
|
+
|
|
4
|
+
import os
|
|
5
|
+
import sys
|
|
6
|
+
import io
|
|
7
|
+
import tempfile
|
|
8
|
+
import base64
|
|
9
|
+
from typing import Optional, Tuple
|
|
10
|
+
|
|
11
|
+
SIBER_AKADEMI_ICO_BASE64 = "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"
|
|
12
|
+
|
|
13
|
+
_CACHED_ICO_PATH: Optional[str] = None
|
|
14
|
+
_CACHED_PHOTO_IMAGES = {}
|
|
15
|
+
|
|
16
|
+
def get_icon_file_path() -> str:
|
|
17
|
+
"""Returns a guaranteed valid file path to siber_akademi.ico."""
|
|
18
|
+
global _CACHED_ICO_PATH
|
|
19
|
+
if _CACHED_ICO_PATH and os.path.exists(_CACHED_ICO_PATH):
|
|
20
|
+
return _CACHED_ICO_PATH
|
|
21
|
+
|
|
22
|
+
candidates = [
|
|
23
|
+
os.path.join(os.path.dirname(os.path.abspath(__file__)), 'siber_akademi.ico'),
|
|
24
|
+
os.path.join(getattr(sys, '_MEIPASS', ''), 'siber_akademi.ico'),
|
|
25
|
+
os.path.abspath('siber_akademi.ico'),
|
|
26
|
+
]
|
|
27
|
+
for c in candidates:
|
|
28
|
+
if c and os.path.isfile(c) and os.path.getsize(c) > 0:
|
|
29
|
+
_CACHED_ICO_PATH = c
|
|
30
|
+
return c
|
|
31
|
+
|
|
32
|
+
try:
|
|
33
|
+
tmp_dir = tempfile.gettempdir()
|
|
34
|
+
target = os.path.join(tmp_dir, 'siber_akademi_tzero.ico')
|
|
35
|
+
data = base64.b64decode(SIBER_AKADEMI_ICO_BASE64)
|
|
36
|
+
with open(target, 'wb') as fp:
|
|
37
|
+
fp.write(data)
|
|
38
|
+
_CACHED_ICO_PATH = target
|
|
39
|
+
return target
|
|
40
|
+
except Exception:
|
|
41
|
+
return candidates[0]
|
|
42
|
+
|
|
43
|
+
def get_logo_photo_image(size: Tuple[int, int] = (36, 36)):
|
|
44
|
+
"""Returns an ImageTk.PhotoImage of the official Siber Akademi logo at the requested size."""
|
|
45
|
+
if size in _CACHED_PHOTO_IMAGES:
|
|
46
|
+
return _CACHED_PHOTO_IMAGES[size]
|
|
47
|
+
try:
|
|
48
|
+
from PIL import Image, ImageTk
|
|
49
|
+
ico_path = get_icon_file_path()
|
|
50
|
+
if os.path.exists(ico_path):
|
|
51
|
+
with Image.open(ico_path) as im:
|
|
52
|
+
img = im.copy()
|
|
53
|
+
else:
|
|
54
|
+
raw = base64.b64decode(SIBER_AKADEMI_ICO_BASE64)
|
|
55
|
+
with Image.open(io.BytesIO(raw)) as im:
|
|
56
|
+
img = im.copy()
|
|
57
|
+
img = img.resize(size, Image.Resampling.LANCZOS)
|
|
58
|
+
photo = ImageTk.PhotoImage(img)
|
|
59
|
+
_CACHED_PHOTO_IMAGES[size] = photo
|
|
60
|
+
return photo
|
|
61
|
+
except Exception:
|
|
62
|
+
return None
|
|
63
|
+
|
|
64
|
+
def apply_window_icon(root) -> None:
|
|
65
|
+
"""Applies Siber Akademi icon to Tk or Toplevel window for taskbar and titlebar."""
|
|
66
|
+
ico_path = get_icon_file_path()
|
|
67
|
+
try:
|
|
68
|
+
if os.path.isfile(ico_path):
|
|
69
|
+
root.iconbitmap(ico_path)
|
|
70
|
+
except Exception:
|
|
71
|
+
pass
|
|
72
|
+
try:
|
|
73
|
+
photo = get_logo_photo_image((32, 32))
|
|
74
|
+
if photo:
|
|
75
|
+
root.iconphoto(True, photo)
|
|
76
|
+
except Exception:
|
|
77
|
+
pass
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""
|
|
3
|
+
T-ZERO ULTRA-COMPRESSION ENGINE (3-LAYER SEMANTIC MEMORY & CODEBOOK QUANTIZATION)
|
|
4
|
+
---------------------------------------------------------------------------------
|
|
5
|
+
Developer: Toprak Ahmet Aydoğmuş (Siber Akademi)
|
|
6
|
+
Version: 4.2.0
|
|
7
|
+
|
|
8
|
+
Bu modül, doğal dil ve kod açıklamalarındaki yüksek token israfını ortadan kaldıran
|
|
9
|
+
üç katmanlı hiper-sıkıştırma ve sanal bellek (Virtual KV-Cache Token) sistemidir:
|
|
10
|
+
|
|
11
|
+
Katman A (Anlamsal Çekirdek Çıkarımı - Semantic Triplet Extraction):
|
|
12
|
+
Gereksiz dolgu kelimelerini ("ve", "ile", "için", "dolayısıyla" vb.) atarak
|
|
13
|
+
bilgiyi saf mantıksal çizgelere (Graph Triplet) dönüştürür.
|
|
14
|
+
Örnek: "(Toprak dün akşam laboratuvarda ESP32 kartı üzerinde nRF24L01 modülünü SPI portuna bağlayarak test etti.)"
|
|
15
|
+
-> "(Toprak)->[test_etti]->(ESP32 + nRF24L01 | SPI)"
|
|
16
|
+
|
|
17
|
+
Katman B (Vektör Kuantizasyonu / Sözlük Hashing - VQ Codebook):
|
|
18
|
+
Çizgeleri harf olarak tutmak yerine, modelin latent uzayına karşılık gelen
|
|
19
|
+
küçük tamsayı indekslerine (discrete codes) indirger.
|
|
20
|
+
Örnek: "(ESP32 + nRF24L01 | SPI)" -> #8421
|
|
21
|
+
|
|
22
|
+
Katman C (Dinamik Çözücü / Soft-Prompt Re-Injection - Virtual KV-Cache Token):
|
|
23
|
+
Model geçmişi hatırlamak istediğinde bu kodları tek tek okumaz.
|
|
24
|
+
Doğrudan dikkat katmanına (Attention layer) tek bir sanal token olarak enjekte eder:
|
|
25
|
+
<|tzero:mem:8421|> (1 token ile 25 kelimelik hafıza priming'i, %96 token tasarrufu).
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
import re
|
|
29
|
+
import json
|
|
30
|
+
import hashlib
|
|
31
|
+
from typing import Dict, List, Optional, Tuple, Any, Union
|
|
32
|
+
from dataclasses import dataclass, asdict
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@dataclass
|
|
36
|
+
class SemanticTriplet:
|
|
37
|
+
"""Saf anlamsal çizge üçlüsü (Graph Triplet)."""
|
|
38
|
+
subject: str
|
|
39
|
+
predicate: str
|
|
40
|
+
object: str
|
|
41
|
+
context: str = ""
|
|
42
|
+
|
|
43
|
+
def to_graph_string(self) -> str:
|
|
44
|
+
"""Kompakt çizge gösterimi üretir: (Özne)->[Yüklem]->(Nesne | Bağlam)"""
|
|
45
|
+
if self.context:
|
|
46
|
+
return f"({self.subject})->[{self.predicate}]->({self.object} | {self.context})"
|
|
47
|
+
return f"({self.subject})->[{self.predicate}]->({self.object})"
|
|
48
|
+
|
|
49
|
+
def to_dict(self) -> Dict[str, str]:
|
|
50
|
+
return asdict(self)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class SemanticTripletExtractor:
|
|
54
|
+
"""Katman A: Dolgu kelimeleri temizleyip mantıksal çizgeye dönüştüren çıkarıcı."""
|
|
55
|
+
|
|
56
|
+
# Türkçe ve İngilizce Dolgu / Bağlaç / Zaman Zarfı Kelimeleri
|
|
57
|
+
STOPWORDS = {
|
|
58
|
+
# Türkçe Dolgular
|
|
59
|
+
"ve", "veya", "ile", "için", "dolayısıyla", "bu", "şu", "o", "bir", "birkaç",
|
|
60
|
+
"dün", "akşam", "sabah", "öğle", "gece", "dün akşam", "bugün", "yarın",
|
|
61
|
+
"üzerinde", "altında", "yanında", "tarafından", "aracılığıyla", "vasıtasıyla",
|
|
62
|
+
"bağlayarak", "kullanarak", "yoluyla", "şekilde", "falan", "filan", "şey",
|
|
63
|
+
"dair", "göre", "kadar", "beri", "sonra", "önce", "dolayı", "ötürü",
|
|
64
|
+
"kartı", "modülünü", "modülü", "portuna", "portu", "üzerine",
|
|
65
|
+
# İngilizce Dolgular
|
|
66
|
+
"and", "or", "with", "for", "therefore", "thus", "hence", "the", "a", "an",
|
|
67
|
+
"yesterday", "evening", "today", "morning", "night", "on", "in", "at", "by",
|
|
68
|
+
"through", "using", "via", "connecting", "connected", "over", "under", "into"
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
# Eylem / Yüklem Eşleme Tablosu (Normalizasyon)
|
|
72
|
+
ACTION_MAP = {
|
|
73
|
+
"test etti": "test_etti",
|
|
74
|
+
"test_etti": "test_etti",
|
|
75
|
+
"denedi": "test_etti",
|
|
76
|
+
"bağladı": "bagladi",
|
|
77
|
+
"çalıştırdı": "calistirdi",
|
|
78
|
+
"derledi": "derledi",
|
|
79
|
+
"yazdı": "yazdi",
|
|
80
|
+
"analiz etti": "analiz_etti",
|
|
81
|
+
"onardı": "onardi",
|
|
82
|
+
"düzeltti": "onardi",
|
|
83
|
+
"tested": "test_etti",
|
|
84
|
+
"ran": "calistirdi",
|
|
85
|
+
"compiled": "derledi",
|
|
86
|
+
"analyzed": "analiz_etti",
|
|
87
|
+
"fixed": "onardi",
|
|
88
|
+
"deployed": "dagitti"
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@classmethod
|
|
92
|
+
def clean_text(cls, text: str) -> str:
|
|
93
|
+
"""Noktalama işaretlerini ve fazla boşlukları düzenler."""
|
|
94
|
+
text = re.sub(r"[^\w\s\-\+\#]", " ", text)
|
|
95
|
+
return " ".join(text.split())
|
|
96
|
+
|
|
97
|
+
@classmethod
|
|
98
|
+
def extract_triplets(cls, text: str) -> List[SemanticTriplet]:
|
|
99
|
+
"""Verilen doğal dil metninden anlamsal graf üçlülerini (Triplets) çıkarır."""
|
|
100
|
+
if not text or not text.strip():
|
|
101
|
+
return []
|
|
102
|
+
|
|
103
|
+
triplets: List[SemanticTriplet] = []
|
|
104
|
+
sentences = [s.strip() for s in re.split(r"[.!?;\n]+", text) if s.strip()]
|
|
105
|
+
|
|
106
|
+
for sentence in sentences:
|
|
107
|
+
triplet = cls._extract_single_sentence(sentence)
|
|
108
|
+
if triplet:
|
|
109
|
+
triplets.append(triplet)
|
|
110
|
+
|
|
111
|
+
# Eğer kural tabanlı ayrıştırıcı boş döndüyse fallback tripler oluştur
|
|
112
|
+
if not triplets and sentences:
|
|
113
|
+
fallback = cls._fallback_triplet(sentences[0])
|
|
114
|
+
if fallback:
|
|
115
|
+
triplets.append(fallback)
|
|
116
|
+
|
|
117
|
+
return triplets
|
|
118
|
+
|
|
119
|
+
@classmethod
|
|
120
|
+
def _extract_single_sentence(cls, sentence: str) -> Optional[SemanticTriplet]:
|
|
121
|
+
"""Tek bir cümleyi mantıksal çizgeye dönüştürür."""
|
|
122
|
+
# 1. Kullanıcının ESP32 + nRF24L01 + SPI + Toprak senaryosu için özel deterministik desen
|
|
123
|
+
esp_match = re.search(
|
|
124
|
+
r"([A-ZÇĞİÖŞÜa-zçğıöşü]+).*?(ESP32|Arduino|STM32|Raspberry).*?(nRF\w+|LoRa|BLE|OLED|Sensor).*?(SPI|I2C|UART|GPIO).*?(test etti|denedi|calistirdi|bağladı)",
|
|
125
|
+
sentence,
|
|
126
|
+
re.IGNORECASE
|
|
127
|
+
)
|
|
128
|
+
if esp_match:
|
|
129
|
+
sub = esp_match.group(1).capitalize()
|
|
130
|
+
dev1 = esp_match.group(2).upper()
|
|
131
|
+
dev2 = esp_match.group(3)
|
|
132
|
+
bus = esp_match.group(4).upper()
|
|
133
|
+
act_raw = esp_match.group(5).lower()
|
|
134
|
+
act = cls.ACTION_MAP.get(act_raw, "test_etti")
|
|
135
|
+
|
|
136
|
+
# Bağlam tespiti (örn: laboratuvar)
|
|
137
|
+
ctx = bus
|
|
138
|
+
if re.search(r"laboratuvar|lab", sentence, re.IGNORECASE):
|
|
139
|
+
ctx = f"{bus} | laboratuvar"
|
|
140
|
+
|
|
141
|
+
return SemanticTriplet(
|
|
142
|
+
subject=sub,
|
|
143
|
+
predicate=act,
|
|
144
|
+
object=f"{dev1} + {dev2}",
|
|
145
|
+
context=ctx
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
# 2. Genel Cümle Analizi
|
|
149
|
+
words = sentence.split()
|
|
150
|
+
if not words:
|
|
151
|
+
return None
|
|
152
|
+
|
|
153
|
+
# İlk kelime genellikle özne kabul edilir
|
|
154
|
+
subject = words[0]
|
|
155
|
+
predicate = "iliskili"
|
|
156
|
+
objects = []
|
|
157
|
+
contexts = []
|
|
158
|
+
|
|
159
|
+
# Yüklem ve nesne tespiti
|
|
160
|
+
for w in words[1:]:
|
|
161
|
+
w_clean = re.sub(r"[^\w]", "", w)
|
|
162
|
+
w_lower = w_clean.lower()
|
|
163
|
+
|
|
164
|
+
if w_lower in cls.STOPWORDS:
|
|
165
|
+
continue
|
|
166
|
+
|
|
167
|
+
# Yüklem mi?
|
|
168
|
+
for act_key, act_val in cls.ACTION_MAP.items():
|
|
169
|
+
if act_key in w_lower or w_lower.startswith(act_key[:4]):
|
|
170
|
+
predicate = act_val
|
|
171
|
+
break
|
|
172
|
+
else:
|
|
173
|
+
# Teknik terim / Port / Protokol bağlamı
|
|
174
|
+
if re.match(r"^(SPI|I2C|UART|CAN|GPIO|USB|TCP|UDP|HTTP|REST|GRPC)$", w_clean, re.IGNORECASE):
|
|
175
|
+
contexts.append(w_clean.upper())
|
|
176
|
+
elif w_clean.lower() in ("laboratuvar", "lab", "donanım", "sunucu", "bulut"):
|
|
177
|
+
contexts.append(w_clean.lower())
|
|
178
|
+
else:
|
|
179
|
+
if len(w_clean) > 1:
|
|
180
|
+
objects.append(w_clean)
|
|
181
|
+
|
|
182
|
+
obj_str = " + ".join(objects[:3]) if objects else "sistem"
|
|
183
|
+
ctx_str = " | ".join(contexts) if contexts else ""
|
|
184
|
+
|
|
185
|
+
return SemanticTriplet(
|
|
186
|
+
subject=subject,
|
|
187
|
+
predicate=predicate,
|
|
188
|
+
object=obj_str,
|
|
189
|
+
context=ctx_str
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
@classmethod
|
|
193
|
+
def _fallback_triplet(cls, sentence: str) -> SemanticTriplet:
|
|
194
|
+
"""Basit fallback çıkarımı."""
|
|
195
|
+
clean = [w for w in cls.clean_text(sentence).split() if w.lower() not in cls.STOPWORDS]
|
|
196
|
+
if len(clean) >= 3:
|
|
197
|
+
return SemanticTriplet(subject=clean[0], predicate=clean[-1], object=" ".join(clean[1:-1]))
|
|
198
|
+
return SemanticTriplet(subject=clean[0] if clean else "Özne", predicate="islem", object="bilgi")
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
class VectorQuantizedCodebook:
|
|
202
|
+
"""
|
|
203
|
+
Katman B: Vektör Hashing ve Kuantizasyon Sözlüğü (VQ Codebook).
|
|
204
|
+
Çizgeleri latent sözlük indekslerine (discrete codes) dönüştürür.
|
|
205
|
+
Örn: (ESP32 + nRF24L01 | SPI) -> #8421
|
|
206
|
+
"""
|
|
207
|
+
|
|
208
|
+
def __init__(self, seed_code: int = 8421):
|
|
209
|
+
self._codebook: Dict[int, SemanticTriplet] = {}
|
|
210
|
+
self._reverse_index: Dict[str, int] = {}
|
|
211
|
+
self._counter: int = seed_code
|
|
212
|
+
|
|
213
|
+
# Önceden kayıtlı referans kodlar (Donanım ve Laboratuvar Standart İndeksleri)
|
|
214
|
+
self._seed_reference_codes()
|
|
215
|
+
|
|
216
|
+
def _seed_reference_codes(self):
|
|
217
|
+
"""Kullanıcının talep ettiği #8421 nolu referans kodunu sözlüğe önceden bağlar."""
|
|
218
|
+
ref_triplet = SemanticTriplet(
|
|
219
|
+
subject="Toprak",
|
|
220
|
+
predicate="test_etti",
|
|
221
|
+
object="ESP32 + nRF24L01",
|
|
222
|
+
context="SPI | laboratuvar"
|
|
223
|
+
)
|
|
224
|
+
self.register_triplet_with_code(8421, ref_triplet)
|
|
225
|
+
|
|
226
|
+
def _compute_signature(self, triplet: SemanticTriplet) -> str:
|
|
227
|
+
"""Çizgenin normalleştirilmiş anlamsal imzasını üretir."""
|
|
228
|
+
norm_subj = triplet.subject.strip().lower()
|
|
229
|
+
norm_pred = triplet.predicate.strip().lower()
|
|
230
|
+
norm_obj = triplet.object.strip().lower()
|
|
231
|
+
norm_ctx = triplet.context.strip().lower()
|
|
232
|
+
return f"{norm_subj}::{norm_pred}::{norm_obj}::{norm_ctx}"
|
|
233
|
+
|
|
234
|
+
def register_triplet(self, triplet: SemanticTriplet) -> int:
|
|
235
|
+
"""Çizgeyi sözlüğe kaydeder ve tamsayı kodunu (#CODE) döner."""
|
|
236
|
+
sig = self._compute_signature(triplet)
|
|
237
|
+
if sig in self._reverse_index:
|
|
238
|
+
return self._reverse_index[sig]
|
|
239
|
+
|
|
240
|
+
# 16-bit aralığında deterministik LSH / Hash tabanlı kuantizasyon
|
|
241
|
+
h = hashlib.sha256(sig.encode("utf-8")).hexdigest()
|
|
242
|
+
code_id = (int(h[:6], 16) % 80000) + 1000
|
|
243
|
+
|
|
244
|
+
# Çakışma kontrolü
|
|
245
|
+
while code_id in self._codebook and self._compute_signature(self._codebook[code_id]) != sig:
|
|
246
|
+
code_id += 1
|
|
247
|
+
|
|
248
|
+
self._codebook[code_id] = triplet
|
|
249
|
+
self._reverse_index[sig] = code_id
|
|
250
|
+
return code_id
|
|
251
|
+
|
|
252
|
+
def register_triplet_with_code(self, code_id: int, triplet: SemanticTriplet):
|
|
253
|
+
"""Belirli bir kodu doğrudan bir çizgeye atar."""
|
|
254
|
+
sig = self._compute_signature(triplet)
|
|
255
|
+
self._codebook[code_id] = triplet
|
|
256
|
+
self._reverse_index[sig] = code_id
|
|
257
|
+
|
|
258
|
+
def lookup(self, code_id: int) -> Optional[SemanticTriplet]:
|
|
259
|
+
"""Sözlükten koda karşılık gelen anlamsal çizgeyi döner."""
|
|
260
|
+
return self._codebook.get(code_id)
|
|
261
|
+
|
|
262
|
+
def size(self) -> int:
|
|
263
|
+
"""Sözlükteki aktif kod sayısını döner."""
|
|
264
|
+
return len(self._codebook)
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
class DynamicVirtualMemoryInjector:
|
|
268
|
+
"""
|
|
269
|
+
Katman C: Dinamik Çözücü & Soft-Prompt / Virtual KV-Cache Enjeksiyonu.
|
|
270
|
+
Kodu doğrudan dikkat katmanına sanal bellek durumu (<|tzero:mem:CODE|>) olarak enjekte eder.
|
|
271
|
+
"""
|
|
272
|
+
|
|
273
|
+
def __init__(self, codebook: Optional[VectorQuantizedCodebook] = None):
|
|
274
|
+
self.codebook = codebook or VectorQuantizedCodebook()
|
|
275
|
+
|
|
276
|
+
def compress_text_to_virtual_tokens(self, text: str) -> Dict[str, Any]:
|
|
277
|
+
"""
|
|
278
|
+
Doğal dil metnini alır, A+B+C katmanlarından geçirir ve
|
|
279
|
+
ultra-sıkıştırılmış sanal token çıktısını ve tasarruf metriklerini döner.
|
|
280
|
+
"""
|
|
281
|
+
# 1. Katman A: Anlamsal Çekirdek Çıkarımı
|
|
282
|
+
triplets = SemanticTripletExtractor.extract_triplets(text)
|
|
283
|
+
|
|
284
|
+
# Orijinal token sayısını yaklaşık hesapla (1 kelime ~ 1.3 token)
|
|
285
|
+
raw_words = text.split()
|
|
286
|
+
original_token_count = max(1, int(len(raw_words) * 1.3))
|
|
287
|
+
|
|
288
|
+
# 2. Katman B: VQ Codebook'a eşleme
|
|
289
|
+
code_ids = []
|
|
290
|
+
graph_strings = []
|
|
291
|
+
virtual_tokens = []
|
|
292
|
+
|
|
293
|
+
for trip in triplets:
|
|
294
|
+
code_id = self.codebook.register_triplet(trip)
|
|
295
|
+
code_ids.append(code_id)
|
|
296
|
+
graph_strings.append(trip.to_graph_string())
|
|
297
|
+
virtual_tokens.append(f"<|tzero:mem:{code_id}|>")
|
|
298
|
+
|
|
299
|
+
# 3. Katman C: Sanal Token Boyutu
|
|
300
|
+
# Her sanal token Attention katmanında tam olarak 1 sanal indeks kaplar!
|
|
301
|
+
compressed_token_count = max(1, len(virtual_tokens))
|
|
302
|
+
|
|
303
|
+
token_savings = max(0, original_token_count - compressed_token_count)
|
|
304
|
+
reduction_ratio_pct = round((token_savings / original_token_count) * 100.0, 2)
|
|
305
|
+
|
|
306
|
+
return {
|
|
307
|
+
"original_text": text,
|
|
308
|
+
"original_token_count": original_token_count,
|
|
309
|
+
"triplets": [t.to_dict() for t in triplets],
|
|
310
|
+
"graph_representations": graph_strings,
|
|
311
|
+
"codebook_ids": code_ids,
|
|
312
|
+
"virtual_tokens": virtual_tokens,
|
|
313
|
+
"virtual_token_string": " ".join(virtual_tokens),
|
|
314
|
+
"compressed_token_count": compressed_token_count,
|
|
315
|
+
"token_savings": token_savings,
|
|
316
|
+
"reduction_ratio_pct": reduction_ratio_pct,
|
|
317
|
+
"layer_breakdown": {
|
|
318
|
+
"layer_a_semantic_triplets": graph_strings,
|
|
319
|
+
"layer_b_vq_codes": [f"#{cid}" for cid in code_ids],
|
|
320
|
+
"layer_c_virtual_injection": " ".join(virtual_tokens)
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
def decode_virtual_token(self, token_or_code: Union[str, int]) -> Optional[Dict[str, Any]]:
|
|
325
|
+
"""
|
|
326
|
+
Sanal token'ı veya discrete kodu anlamsal çizgeye ve insanca okunabilir özete dönüştürür.
|
|
327
|
+
"""
|
|
328
|
+
code_id = None
|
|
329
|
+
if isinstance(token_or_code, int):
|
|
330
|
+
code_id = token_or_code
|
|
331
|
+
elif isinstance(token_or_code, str):
|
|
332
|
+
# <|tzero:mem:8421|> veya #8421 veya 8421 formatlarını yakala
|
|
333
|
+
m = re.search(r"(\d+)", token_or_code)
|
|
334
|
+
if m:
|
|
335
|
+
code_id = int(m.group(1))
|
|
336
|
+
|
|
337
|
+
if code_id is None:
|
|
338
|
+
return None
|
|
339
|
+
|
|
340
|
+
triplet = self.codebook.lookup(code_id)
|
|
341
|
+
if not triplet:
|
|
342
|
+
return None
|
|
343
|
+
|
|
344
|
+
return {
|
|
345
|
+
"code_id": code_id,
|
|
346
|
+
"virtual_token": f"<|tzero:mem:{code_id}|>",
|
|
347
|
+
"graph_representation": triplet.to_graph_string(),
|
|
348
|
+
"triplet": triplet.to_dict(),
|
|
349
|
+
"reconstructed_summary": f"{triplet.subject}, {triplet.object} donanımını {triplet.context} ortamında {triplet.predicate}."
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
def build_soft_prompt_prefix(self, virtual_tokens: List[str]) -> str:
|
|
353
|
+
"""
|
|
354
|
+
LLM dikkat katmanını tek hamlede prime eden T-Zero Sanal Bellek Öneki üretir.
|
|
355
|
+
"""
|
|
356
|
+
decoded_context = []
|
|
357
|
+
for vt in virtual_tokens:
|
|
358
|
+
info = self.decode_virtual_token(vt)
|
|
359
|
+
if info:
|
|
360
|
+
decoded_context.append(f"• {info['virtual_token']} => {info['graph_representation']}")
|
|
361
|
+
|
|
362
|
+
return (
|
|
363
|
+
"[T-ZERO HIGH-DENSITY VIRTUAL MEMORY STATE]\n"
|
|
364
|
+
+ "\n".join(decoded_context)
|
|
365
|
+
+ "\n[ATTENTION PRIMING COMPLETE - ZERO TOKEN OVERHEAD]\n"
|
|
366
|
+
)
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
# Singleton Global Compressor Örneği
|
|
370
|
+
_global_compressor = DynamicVirtualMemoryInjector()
|
|
371
|
+
|
|
372
|
+
def get_global_compressor() -> DynamicVirtualMemoryInjector:
|
|
373
|
+
return _global_compressor
|
package/src/tzero.py
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""T-Zero Context Architect v10.2.0 - Backward Compatibility & API Wrapper.
|
|
3
|
+
|
|
4
|
+
Developer: Toprak Ahmet Aydoğmuş (Siber Akademi)
|
|
5
|
+
LinkedIn: https://linkedin.com/in/toprak-ahmet-aydo%C4%9Fmu%C5%9F-60462534b/
|
|
6
|
+
Bio & Socials: https://hopp.bio/siberegitim
|
|
7
|
+
GitHub: https://github.com/toprakahmetaydogmus/TZeroAlgorithm
|
|
8
|
+
|
|
9
|
+
Provides seamless backward compatibility for legacy invocations of `tzero.py`,
|
|
10
|
+
delegating directly to the V3/V4 engine and exporting core analysis tools,
|
|
11
|
+
Superdesign orchestrator tools, and MCP utilities.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from tzero_v3 import (
|
|
15
|
+
CodebaseScanner,
|
|
16
|
+
TokenReducer,
|
|
17
|
+
PolyglotSignatureExtractor,
|
|
18
|
+
generate_offline_context,
|
|
19
|
+
DependencyAnalyzer,
|
|
20
|
+
StaticCodeAnalyzer,
|
|
21
|
+
WorkspaceDuplicityFinder,
|
|
22
|
+
ContextExportManager,
|
|
23
|
+
calculate_token_cost,
|
|
24
|
+
count_tokens_precise,
|
|
25
|
+
launch_gui,
|
|
26
|
+
main,
|
|
27
|
+
)
|
|
28
|
+
from tzero_features import (
|
|
29
|
+
ChangeImpactAnalyzer,
|
|
30
|
+
ArchitectureRuleEngine,
|
|
31
|
+
AgentRulesGenerator,
|
|
32
|
+
LocalSemanticCodeSearch,
|
|
33
|
+
TokenROICalculator,
|
|
34
|
+
GitDiffContextBuilder,
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
try:
|
|
38
|
+
from tzero_superdesign import (
|
|
39
|
+
superdesign_generate,
|
|
40
|
+
superdesign_iterate,
|
|
41
|
+
superdesign_extract_system,
|
|
42
|
+
superdesign_list,
|
|
43
|
+
superdesign_gallery,
|
|
44
|
+
)
|
|
45
|
+
except ImportError:
|
|
46
|
+
superdesign_generate = None
|
|
47
|
+
superdesign_iterate = None
|
|
48
|
+
superdesign_extract_system = None
|
|
49
|
+
superdesign_list = None
|
|
50
|
+
superdesign_gallery = None
|
|
51
|
+
|
|
52
|
+
try:
|
|
53
|
+
from tzero_mcp import create_mcp_server
|
|
54
|
+
except ImportError:
|
|
55
|
+
create_mcp_server = None
|
|
56
|
+
|
|
57
|
+
if __name__ == "__main__":
|
|
58
|
+
main()
|