Files
aiturk-hermes-ide/apps/mobile/src/index.html
T

57 lines
8.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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>