@kahinmcp/kahin 0.3.4 → 0.3.6

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 CHANGED
@@ -1,5 +1,46 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.6] — 2026-08-06
4
+
5
+ ### Düzeltilen
6
+ - `Page.getLayoutMetrics` ve `Page.stopLoading` CDP çağrıları Mirage içinde
7
+ gerçek sayfa ölçümü/evaluate ile karşılanıyor; Juggler'ın olmayan methodları
8
+ artık yanıltıcı typo yerine `unsupported_on_engine` olarak raporlanıyor.
9
+ - Shadow -> Mirage handoff event/network buffer'larını silmiyor; görsel
10
+ capability'ye geçmeden önce toplanan gerçek teşhis verisi korunuyor.
11
+ - npm release script'i sürüm registry'de zaten varsa CI auth olmadan idempotent
12
+ şekilde başarılı tamamlanıyor.
13
+
14
+ ### Testler
15
+ - Gerçek Camoufox'ta CDP layout metrics, Shadow'dan mobile viewport ve
16
+ screenshot handoff doğrulandı.
17
+
18
+ ## [0.3.5] — 2026-08-06
19
+
20
+ ### Düzeltilen
21
+ - `kahin_browser_start()` artık varsayılan olarak gerçek Camoufox/Mirage
22
+ başlatıyor; screenshot, mobile viewport, screencast, upload ve accessibility
23
+ çağrıları Shadow seçilmiş olsa bile Kahin içinde görsel backend'e yükseltiliyor.
24
+ - Yeni capability sözleşmesi `kahin_engine_health` yanıtında motorun gerçek
25
+ görsel/mobile/DOM-stream/a11y/screencast sınırlarını raporluyor; generic
26
+ `kahin_screenshot` ve `Page.captureScreenshot` yolu dış otomasyon fallback'i
27
+ kullanmadan Camoufox'a geçiyor.
28
+ - Shadow/Obscura artık bağımsız MCP/OpenCode süreçleri arasında sabit `9241`
29
+ portunu paylaşmıyor; varsayılan başlatma her child için geçici loopback portu
30
+ kullanıyor ve gerçek portu raporluyor.
31
+ - Port çakışmasında ikinci child'ın yabancı browser WebSocket'ine bağlanıp
32
+ yanlışlıkla `started` dönmesi engellendi; child kararlılığı doğrulanmadan
33
+ engine state'e yayınlanmıyor ve başarısız child temizleniyor.
34
+ - Mirage/Zig sidecar shutdown cancellation path'i child ve IPC kaynaklarını
35
+ güvenle temizliyor.
36
+
37
+ ### Testler
38
+ - İki bağımsız Shadow instance'ı ve explicit port çakışması gerçek Obscura
39
+ binary'siyle regresyon testine alındı.
40
+ - Shadow -> Camoufox screenshot handoff ve varsayılan motor gerçek browser ile
41
+ doğrulandı.
42
+ - Python runtime suite: 115 passed; Zig sidecar tests/build: passed.
43
+
3
44
  ## [0.3.4] — 2026-08-05
4
45
 
5
46
  ### Eklenen
@@ -123,8 +164,10 @@ Tüm önemli değişiklikler bu dosyada tutulur. Format: [Keep a Changelog](http
123
164
  - CDP ansiklopedisi: 56 domain, 667 komut, 237 event, 609 type (Chrome 148)
124
165
 
125
166
  [0.3.4]: https://gitlab.com/void0x14/kahin-mcp/-/compare/v0.3.3...v0.3.4
167
+ [0.3.5]: https://gitlab.com/void0x14/kahin-mcp/-/compare/v0.3.4...v0.3.5
126
168
  [0.3.3]: https://gitlab.com/void0x14/kahin-mcp/-/compare/v0.3.2...v0.3.3
127
169
  [0.3.2]: https://gitlab.com/void0x14/kahin-mcp/-/compare/v0.3.1...v0.3.2
128
170
  [0.2.0]: https://gitlab.com/void0x14/kahin-mcp/-/compare/v0.1.8...v0.2.0
129
171
  [0.1.8]: https://gitlab.com/void0x14/kahin-mcp/-/compare/v0.1.7...v0.1.8
130
172
  [0.1.7]: https://gitlab.com/void0x14/kahin-mcp/-/compare/v0.1.6...v0.1.7
173
+ [0.3.6]: https://gitlab.com/void0x14/kahin-mcp/-/compare/v0.3.5...v0.3.6
package/README.md CHANGED
@@ -87,7 +87,13 @@ Gerisini AI halleder. Ama dilersen tool'ları direkt de çağırabilirsin:
87
87
  → kahin_error_decode(error_code=-32601) → hatayı çözümler
88
88
  ```
89
89
 
90
- Camoufox (Juggler native) ile, engine `mirage` seçilince:
90
+ `kahin_browser_start` varsayılan olarak Camoufox/Mirage başlatır. Shadow
91
+ yalnızca hızlı, görsel olmayan CDP işleri için açıkça seçilir; screenshot,
92
+ mobile viewport, screencast, upload veya accessibility isteyen bir tool,
93
+ Shadow'ı Kahin içinde Camoufox'a yükseltir. Ajanın başka bir otomasyon
94
+ kütüphanesine geçmesi gerekmez.
95
+
96
+ Camoufox (Juggler native) ile:
91
97
 
92
98
  ```
93
99
  → kahin_browser_start(engine="mirage")
@@ -130,8 +136,13 @@ mcp · orjson · Levenshtein · websockets · httpx · camoufox · Pillow · pyd
130
136
  |------|-------|----------|
131
137
  | 9222 | Chrome DevTools | RESERVED |
132
138
  | 9240 | Kusatma Engine | RESERVED |
133
- | 9241 | Obscura (varsayılan) | Kahin kullanır |
134
- | 9242 | Mirage (varsayılan) | Kahin kullanır |
139
+ | 9241 | Eski Shadow/Obscura sabit portu | Varsayılan olarak kullanılmaz |
140
+ | | Mirage/Camoufox | TCP portu yok; Juggler stdio pipe kullanır |
141
+
142
+ Shadow/Obscura için `kahin_browser_start` port verilmeden çağrıldığında Kahin,
143
+ her child için loopback üzerinde kernel'den geçici bir port alır. Böylece aynı
144
+ makinedeki bağımsız MCP/OpenCode süreçleri birbirlerinin WebSocket'ine bağlanmaz.
145
+ Sabit port yalnızca özellikle `port=...` verildiğinde kullanılır.
135
146
 
136
147
  ## Kendi Kendini Onarma
137
148
 
@@ -146,7 +157,8 @@ Kahin'de hata loglama ve kendini onarma sistemi gömülüdür:
146
157
  ```
147
158
  oracle.py → MCP server (bootstrap: mcp instance + engine lifecycle + main)
148
159
  tools/ → 109 tool, engine-ayrımlı kategori dosyaları
149
- _common.py → _safe_cdp, _require_engine, _auto_learn
160
+ _common.py → capability routing, _safe_cdp, _require_engine, _auto_learn
161
+ the_twins/capabilities → motor-yetenek sözleşmesi ve Mirage yükseltme matrisi
150
162
  grimoire/seraph/prophecy/healer → CDP bilgi + doğrulama + pattern (paylaşılan)
151
163
  pilot/trainman/dejavu → browser/session/debug (paylaşılan)
152
164
  pilot_mirage/trainman_mirage/dejavu_mirage → Camoufox DOM+Input+PageEx / Tab / Network+Console
@@ -167,7 +179,7 @@ camoufox-harness/ → Zig sidecar (Juggler protocol, vendor binary gömül
167
179
  ## 🗺️ Yol Haritası
168
180
 
169
181
  - [x] **Juggler protokolü** için AI-native uçtan uca dokümantasyon, kullanım ve pratik örnekleri
170
- - [x] **Camoufox entegrasyonu tamamlandı** — gerçek Camoufox (Zig sidecar + Juggler pipe) ile native çalışıyor; engine seçimi ajan tarafından `shadow`/`mirage` parametresiyle yapılıyor
182
+ - [x] **Camoufox entegrasyonu tamamlandı** — gerçek Camoufox (Zig sidecar + Juggler pipe) varsayılandır; görsel capability isteyen Shadow çağrıları Kahin içinde Mirage'a yükseltilir
171
183
  - [x] **Obscura entegrasyonu tamamlandı** — gerçek Obscura binary'si (WebSocket CDP) ile çalışıyor, startup problemleri giderildi
172
184
  - [ ] **SKILLS** destekleri ve konfigre edilebilir kişsiel hazır skills oluşturma özelliği
173
185
  - [x] **Tek tık kurulum** — `pnpm add -g @kahinmcp/kahin`, sonra `kahin` (ilk çalıştırmada Python ortamını otomatik kurar)
package/bin/setup.mjs CHANGED
@@ -324,7 +324,7 @@ export function setup() {
324
324
  const KAHIN_HOME = process.env.KAHIN_HOME || join(homedir(), ".local", "share", "kahin");
325
325
  const KAHIN_VENV = join(KAHIN_HOME, "venv");
326
326
  const KAHIN_PY = process.platform === "win32" ? join(KAHIN_VENV, "Scripts", "python.exe") : join(KAHIN_VENV, "bin", "python");
327
- const KAHIN_WHEEL = join(dirname(fileURLToPath(import.meta.url)), "..", "lib", "kahin-0.3.4-py3-none-any.whl");
327
+ const KAHIN_WHEEL = join(dirname(fileURLToPath(import.meta.url)), "..", "lib", "kahin-0.3.6-py3-none-any.whl");
328
328
 
329
329
  // Gömülü wheel'i venv'e kurar. Postinstall'da ve `kahin setup`'ta çalışır.
330
330
  // PyPI'a bağımlı DEĞİL — wheel paketle birlikte gelir.
@@ -14,7 +14,13 @@ MCP tool
14
14
  -> Camoufox Page/Browser
15
15
  ```
16
16
 
17
- - `engine="mirage"` bir Camoufox süreci ve tek bir sidecar başlatır.
17
+ - `kahin_browser_start` varsayılan olarak bir Camoufox süreci ve tek bir
18
+ sidecar başlatır. `engine="shadow"` yalnızca hızlı, görsel olmayan CDP
19
+ işleri için açıkça seçilir.
20
+ - Shadow aktifken screenshot, mobile emulation, accessibility, upload veya
21
+ screencast isteyen bir tool çağrısı, aktif URL'i koruyarak Kahin içinde
22
+ Shadow -> Mirage yükseltmesi yapar. Ajanın Playwright ya da başka bir
23
+ otomasyon kütüphanesine geçmesi sözleşme dışıdır.
18
24
  - İlk sayfa ilk sayfa tool'u çağrıldığında tembel olarak oluşturulur.
19
25
  - Aynı browser'ı ve aktif sekmeyi yeniden kullan. Başka sayfa gerektiğinde
20
26
  yeni browser açmak yerine `kahin_mirage_tab_new` ve
@@ -22,8 +28,9 @@ MCP tool
22
28
  - Juggler'da `Browser.*` browser köküne, `Page.*` ise aktif target/session'a
23
29
  aittir. MCP araçları session routing'i ajandan saklar.
24
30
  - `kahin_execute_cdp`, Mirage aktifken desteklenen CDP çağrılarını Juggler
25
- eşdeğerine yönlendirir; Juggler'da bulunmayan her CDP domain'i varmış gibi
26
- tahmin etme.
31
+ eşdeğerine yönlendirir; görsel capability isteyen bilinen çağrılar Shadow
32
+ aktifse önce Mirage'a yükseltilir. Juggler'da bulunmayan her CDP domain'i
33
+ varmış gibi tahmin etme.
27
34
 
28
35
  ## 2. Ajanın temel protokolü
29
36
 
@@ -346,6 +353,12 @@ tool'ları `engine="mirage"` aktifken kullanılır.
346
353
  - `kahin_mirage_screencast_start`, `kahin_mirage_screencast_frame`
347
354
  - `kahin_mirage_screencast_stop`, `kahin_mirage_screencast_pending`
348
355
 
356
+ `kahin_mirage_screencast_frame(fresh=true)`, önceki çağrıların ACK edilmiş
357
+ ama henüz kuyrukta kalan frame'lerini temizler ve çağrıdan sonra gelen ilk
358
+ frame'i bekler. Sayfa mutation'ı veya viewport değişiminden sonra görsel
359
+ doğrulama için bu yol kullanılmalıdır; varsayılan `fresh=false` ise kuyruktaki
360
+ en eski frame FIFO olarak döner.
361
+
349
362
  ### Accessibility ve health (2)
350
363
 
351
364
  - `kahin_mirage_accessibility_tree`
@@ -391,7 +404,7 @@ dom_events(after_seq=C, stream_id=S, frame_id=F, wait_ms=5000)
391
404
 
392
405
  | Hata/sinyal | Sebep | Kurtarma |
393
406
  |---|---|---|
394
- | `Browser engine is not running` | Start yok | `kahin_browser_start(engine="mirage")` |
407
+ | `Browser engine is not running` | Start yok | `kahin_browser_start()` |
395
408
  | `Browser engine is dead` | Sidecar/Camoufox öldü | `kahin_browser_stop`, sonra yeni `start` |
396
409
  | `stale_node` | Node silindi veya document değişti | Snapshot + yeni nodeId |
397
410
  | `reset`/`dropped` | Stream değişti veya ring overflow | Snapshot; eski cursor'u bırak |
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kahinmcp/kahin",
3
- "version": "0.3.4",
4
- "description": "Kahin CDP ansiklopedisi + anti-detect browser otomasyon MCP sunucusu. Kurulumda 22 AI CLI aracını otomatik tespit edip kendini kaydeder. Obscura ve Camoufox motorlarını kullanır, motor seçimini ajana bırakır.",
3
+ "version": "0.3.6",
4
+ "description": "Kahin \u2014 CDP ansiklopedisi + anti-detect browser otomasyon MCP sunucusu. Kurulumda 22 AI CLI arac\u0131n\u0131 otomatik tespit edip kendini kaydeder. Camoufox g\u00f6rsel varsay\u0131land\u0131r; Obscura h\u0131zl\u0131 CDP i\u015fleri i\u00e7in opt-in'dir.",
5
5
  "bin": {
6
6
  "kahin": "bin/kahin.mjs"
7
7
  },
Binary file