57 lines
8.1 KiB
HTML
57 lines
8.1 KiB
HTML
<!doctype html><html lang="tr"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
|
||
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; connect-src 'self' https://turkservis.online wss://generativelanguage.googleapis.com; media-src 'self' blob:; object-src 'none'; base-uri 'none'; frame-src 'none'">
|
||
<meta name="theme-color" content="#101719"><title>AITURK Mobil</title><link rel="stylesheet" href="style.css"></head><body><main>
|
||
<p class="eyebrow">AITURK · ANDROID GELİŞTİRME SÜRÜMÜ</p><h1>Fikrini konuş.<br>Birlikte geliştir.</h1>
|
||
<p id="status" class="status" role="status" aria-live="polite">Bilgisayarına bağlanarak başla.</p>
|
||
<section id="setup"><h2>1. Aynı AITURK hesabı</h2>
|
||
<p>Tarayıcıda AITURK hesabınıza giriş yapın ve burada gösterilen kısa kodu onaylayın. Google ses anahtarı ayrı kalır.</p>
|
||
<button id="login-start">AITURK hesabımla giriş yap</button><pre id="login-code" aria-live="polite"></pre>
|
||
<a id="login-link" hidden target="_blank" rel="noreferrer">Giriş sayfasını aç</a>
|
||
<button id="login-check" class="secondary">Girişi kontrol et</button>
|
||
<button id="logout" class="secondary">Bu uygulamadaki hesaptan çık</button>
|
||
<details><summary>Gelişmiş: mevcut hesap API anahtarını kullan</summary>
|
||
<label>AITURK hesap API anahtarı<input id="account-token" type="password" autocomplete="off" autocapitalize="none" spellcheck="false"></label>
|
||
</details>
|
||
<label>Telefon adı<input id="device-name" maxlength="80" value="Android telefonum"></label><button id="pair">Eşleştirme kodu oluştur</button>
|
||
<p>Bilgisayarda “Telefon için QR oluştur” seçin. Giriş yaptıktan sonra buradan tarayın. Görüntü sunucuya yüklenmez.</p>
|
||
<button id="scan-invite">Bilgisayarın QR kodunu tara</button><button id="stop-scan" class="secondary">Kamerayı kapat</button>
|
||
<video id="qr-video" hidden muted playsinline aria-label="QR kamera önizlemesi"></video>
|
||
<label>Alternatif: QR resmi seç<input id="qr-file" type="file" accept="image/*"></label>
|
||
<pre id="pair-code" aria-live="polite"></pre><p>Kodu bilgisayardaki AITURK Mobil bağlantı penceresinde onaylayın. Eşleştirme kimliğini kopyalayabilirsiniz.</p>
|
||
<label>Bu telefonun kimlik belgesi<textarea id="phone-identity" readonly aria-describedby="phone-identity-help"></textarea></label>
|
||
<canvas id="phone-identity-qr" hidden aria-label="Telefonun sertifika kimliği QR kodu"></canvas>
|
||
<p>Kimlik QR kodunun ekran görüntüsünü kendi bilgisayarınıza aktarabilir ve bilgisayarda “Telefon kimliği QR resmi” alanından açabilirsiniz. Onayı ayrıca bilgisayarda verin.</p>
|
||
<p id="phone-identity-help">Bu belgenin tamamını kendi bilgisayarınızdaki “Telefondan alınan kimlik belgesi” alanına aktarın. Bu, özel anahtar değil; onaylayacağınız telefonun sertifika kimliğidir. Başkasının gönderdiği belgeyi onaylamayın.</p>
|
||
<button id="devices" class="secondary">Onaydan sonra bilgisayarları bul</button>
|
||
<label>Bilgisayar<select id="desktop"><option value="">Önce cihazları bulun</option></select></label><button id="connect">Bilgisayara bağlan</button>
|
||
</section><section id="work" hidden><h2>2. IDE konuşması</h2><button id="sessions" class="secondary">Konuşmaları yenile</button>
|
||
<label>Görevin gideceği konuşma<select id="session"><option value="">Konuşma seçin</option></select></label><button id="select-session">Bu konuşmayı seç</button>
|
||
<p id="target" class="status">Konuşma seçilmedi.</p><p id="work-status" role="status" aria-live="polite">Görev gönderilmedi.</p>
|
||
<div id="approval" hidden><h2>IDE işlem onayı</h2><p>Bu istek IDE'nin mevcut izin kontrolünden geldi. Asistan yanıt veremez.</p><pre id="approval-detail"></pre><div class="row"><button id="allow">Bir kez onayla</button><button id="deny" class="danger">Reddet</button></div></div>
|
||
<h2>3. Google ses asistanı</h2><p>Sesiniz ve asistan görüşmeniz Google'a gönderilir. Ücretsiz katmanda içerik ürün geliştirme amacıyla kullanılabilir. Ücretli Google projesinin API çağrıları ücretlidir. Ücretsiz dakika veya kesin harcama üst sınırı garantisi yoktur.</p>
|
||
<p><a href="https://aistudio.google.com/apikey" target="_blank" rel="noreferrer">Kendi Google AI Studio anahtarınızı oluşturun</a> · <a href="https://ai.google.dev/gemini-api/docs/pricing" target="_blank" rel="noreferrer">Güncel fiyat ve veri koşulları</a></p>
|
||
<label>Google AI Studio API anahtarı<input id="google-key" type="password" autocomplete="off" autocapitalize="none" spellcheck="false"></label><button id="save-google">Bilgisayarın güvenli kasasına kaydet</button><button id="delete-google" class="secondary">Google anahtarını sil</button>
|
||
<label><input id="consent" type="checkbox">Google'a veri aktarımını ve projemde ücret oluşabileceğini anladım.</label>
|
||
<fieldset><legend>Her yeni ses / yazışma oturumu için durdurma sınırı</legend>
|
||
<label>En fazla dakika (1–10)<input id="voice-minutes" type="number" min="1" max="10" step="1" value="10" inputmode="numeric"></label>
|
||
<label>Tahmini maliyet sınırı (USD)<input id="voice-budget" type="number" min="0.01" max="10" step="0.01" value="0.25" inputmode="decimal"></label>
|
||
<p>Sınırlar bir sonraki bağlantıda uygulanır; her yeni bağlantıda sayaç sıfırlanır. Tahmin ücretli tarifeyi kullanır; ücretsiz kotanız ölçülmez. Görüşme geçmişi ve metin tokenları da ücret oluşturabilir. Bildirim gecikirse veya tarife değişirse gerçek ücret sınırı aşabilir. İki dakika kullanım bildirimi gelmezse bağlantı kapanır. Otomatik yeniden bağlanılmaz; IDE işi durdurulmaz.</p>
|
||
</fieldset>
|
||
<div class="row"><button id="voice-start">Sesle konuş</button><button id="voice-text" class="secondary">Asistanla yazış</button></div>
|
||
<div class="row"><button id="voice-stop" class="secondary">Ses görüşmesini kapat</button><button id="silence" class="secondary">Asistanın sesini kes</button></div>
|
||
<p id="voice-status" role="status">Mikrofon kapalı.</p><small id="usage">Henüz kullanım yok. Google kalan kotası ve faturası ölçülmüyor.</small>
|
||
<p><small>Tahmin tarifesi: Gemini 3.1 Flash Live Preview · 8 Eylül 2026. Vergi, indirim ve bildirilmemiş kullanım dahil değildir.</small></p>
|
||
<div id="discussion" class="history" aria-label="Google asistanı görüşmesi"></div>
|
||
<label>Asistanla fikrini geliştir<textarea id="idea" placeholder="Bu uygulamayı nasıl geliştirebiliriz?"></textarea></label><button id="discuss">Asistana yaz</button>
|
||
<h2>IDE'ye gönderilecek görev</h2><p>Fikir konuşması kendi başına iş başlatmaz. Aşağıdaki metnin tamamı seçili IDE konuşmasına gönderilir. Araştırma seçeneği değişiklik izni vermez.</p>
|
||
<label>İstek türü<select id="intent"><option value="research">Araştır / incele</option><option value="execute">Kararlaştırılan işi uygula</option></select></label>
|
||
<label>Görünür görev metni<textarea id="task" rows="9"></textarea></label><pre id="preview"></pre>
|
||
<button id="submit">Bu görevi IDE'ye gönder</button><button id="retry" class="secondary" hidden>Aynı gönderimin durumunu kontrol et</button><button id="cancel-draft" class="secondary">Taslağı iptal et</button>
|
||
<button id="interrupt" class="danger">Seçili IDE işini durdur</button>
|
||
<h2>Gerçek IDE geçmişi ve sonucu</h2><button id="history" class="secondary">IDE geçmişini getir</button><div id="result" class="history" aria-label="IDE konuşma geçmişi"></div>
|
||
<button id="clear-history" class="secondary">Telefondaki görüşme metnini temizle</button><button id="disconnect" class="secondary">Telefon bağlantısını kapat</button>
|
||
<button id="revoke" class="danger">Bu telefonun erişimini iptal et</button>
|
||
</section><hr><p>Ses kaydı saklanmaz. Google görüşme metni yalnız bu ekranın belleğinde kalır. IDE'ye gönderilen görev IDE geçmişinde saklanır. Ekrandan çıkmak mikrofonu kapatır; IDE işini durdurmaz.</p>
|
||
<p><a href="privacy.html">Veri akışı ve geliştirme sürümünün sınırları</a></p>
|
||
</main><script src="capacitor.js"></script><script src="vendor/jsQR.js"></script><script type="module" src="app.mjs"></script></body></html>
|