CHATGPT ASSISTED ONE — WINDOWS PORTABLE

TUJUAN
- Satu akun ChatGPT milik lo per sekali jalan.
- Chrome dibuka lewat RUN_ONE_ASSISTED.bat.
- Lo login sendiri dan menyelesaikan OTP, CAPTCHA, atau verifikasi nomor bila muncul.
- Setelah dashboard terdeteksi, tool membaca halaman pricing, mengambil screenshot, lalu memberi label offer.
- Tool membuka Settings > Keamanan dan masuk > Authenticator app, menyimpan MFA TOTP lokal hanya setelah status aktif terverifikasi.
- Tidak membuat akun otomatis, tidak membaca OTP email, tidak melewati CAPTCHA, tidak menekan bayar/upgrade/claim offer.

PRASYARAT
- Windows 10/11 64-bit.
- Google Chrome terpasang.
- ZIP diekstrak penuh; jangan dijalankan dari dalam ZIP.
- Gunakan hanya akun ChatGPT milik lo.

PAKAI
1. Extract `ChatGPT-Assisted-One-Windows.zip`.
2. Double-click `SETUP.bat` sekali. Tidak perlu admin/Python/pip.
3. Double-click `RUN_ONE_ASSISTED.bat`.
4. Isi email akun dan password saat diminta.
5. Login sendiri di Chrome. Selesaikan OTP/CAPTCHA/nomor bila diminta.
6. Jangan tutup Chrome sampai terminal menulis `SELESAI`.

HASIL
Folder baru:
  runs\assisted-TANGGAL-JAM\

File utama:
  accounts.txt

Format tepat:
  email|pass|MFA_LOCAL|free offer
  email|pass|MFA_LOCAL|upgrade

Arti label:
- `free offer`: halaman pricing menampilkan bukti eksplisit trial/gratis, misalnya `free trial` atau `1 month free`.
- `upgrade`: tidak ada bukti trial eksplisit. Paket Free `$0` juga tetap `upgrade`; itu bukan trial.
- `MFA_LOCAL`: seed MFA tersimpan terenkripsi DPAPI di Windows lokal. Kode login berikutnya lewat `MFA_CODE.bat` dengan email akun yang sama.

Tool TIDAK menulis `accounts.txt` bila login, cek offer, atau aktivasi MFA belum terverifikasi.

MFA LOKAL
- Vault: `%LOCALAPPDATA%\ChatGPTLocalMFA\vault-<hash>.dpapi`
- Enkripsi: Windows DPAPI, hanya user Windows yang sama.
- Setup key/seed tidak masuk ZIP, event log, screenshot, atau accounts.txt.
- Kode TOTP berubah tiap 30 detik. Buka `MFA_CODE.bat`, isi email akun, lalu pakai kode 6 digit terbaru.
- Jika MFA akun sudah aktif tetapi vault lokal belum ada, tool berhenti. Jangan overwrite MFA aktif; gunakan recovery/resmi atau setup ulang manual di ChatGPT.

FILE BUKTI
- `screenshots\offer.png`: halaman pricing yang dibaca.
- `events.jsonl`: status aman; tidak berisi password, seed, OTP, token, atau kode MFA.
- `accounts.txt`: BERISI password karena format yang lo minta. Simpan folder run privat atau hapus setelah dipindahkan ke password manager.

BATAS
- Tidak membuat akun baru.
- Tidak mengotomatisasi OTP, CAPTCHA, telepon, atau pembayaran.
- Tidak menekan tombol upgrade, claim offer, subscribe, atau checkout.
- Harga/trial bisa berubah per akun/negara. Screenshot adalah bukti hasil saat itu.

STOP
- Tekan Ctrl+C pada terminal atau tutup Chrome.
- Kalau berhenti sebelum `SELESAI`, tidak ada accounts.txt final.

SELF-CHECK
Dari Command Prompt di folder tool:
  runtime\python.exe assisted_one.py --self-check
  runtime\python.exe mfa_local.py --self-check
  runtime\python.exe -m unittest discover -s tests -v

JANGAN HAPUS
Folder `runtime` atau `packages`; keduanya diperlukan agar jalan tanpa instal Python/admin.

PONTAIL: UI ChatGPT dapat berubah. Jika gagal setelah login, simpan screenshot dan `events.jsonl` dari run terbaru. Jangan kirim setup key, vault DPAPI, password, OTP, atau recovery code.

========================================================
UPDATE: Session JSON + Window Persist
========================================================
1) Session JSON tiap akun disimpan di folder runs/sessions/
   dan dikirim ke Telegram sebagai file .json (siap import ke 9router).

2) PERSIST_BROWSER=1 (default di RUN_AUTO.bat):
   - Camoufox TIDAK ditutup antar akun.
   - Tiap akun membuka WINDOW BARU di browser yang sama.
   - Window lama dibiarkan terbuka sampai batch selesai.
   Set PERSIST_BROWSER=0 kalau mau perilaku lama (close tiap akun).


========================================================
UPDATE: Sumber Email dari FILE
========================================================
Bot sekarang BUKAN ambil alias dari stok HME, tapi baca
dari file emails.txt di folder ini.

Format emails.txt:
  - Satu email per baris
  - Baris diawali # = komentar (diabaikan)
  - Baris kosong diabaikan
  - Boleh juga "email|apapun" (bagian setelah | diabaikan)

Contoh:
  67.apron_dread@icloud.com
  swill-semis-8g@icloud.com

Cara kerja:
  1. Bot baca emails.txt -> email pertama, kedua, dst
  2. OTP diambil otomatis dari HME bridge (gak perlu setup)
  3. Password di-generate otomatis
  4. Session JSON dikirim ke Telegram

Jumlah akun:
  - Tanpa --count  -> semua email di file diproses
  - Dengan --count N -> hanya N email pertama
