Metadata-Version: 2.4
Name: old-website-finder
Version: 1.1.0
Summary: Hermes-style CLI agent that finds outdated Uzbekistan websites and runs deep upgrade analysis (Grok/GPT/Claude/Gemini)
Author: Old Website Finder
License: MIT
Project-URL: Homepage, https://github.com/FarrukhDevloper/owf/OldWebsiteFinder
Project-URL: Repository, https://github.com/FarrukhDevloper/owf/OldWebsiteFinder
Project-URL: Issues, https://github.com/FarrukhDevloper/owf/issues
Project-URL: Documentation, https://github.com/FarrukhDevloper/owf#readme
Keywords: cli,agent,uzbekistan,website,modernization,audit,grok,openai,claude,gemini
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Quality Assurance
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openai>=1.60.0
Requires-Dist: httpx>=0.27.0
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: lxml>=5.0.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: pydantic>=2.5.0
Requires-Dist: pydantic-settings>=2.1.0
Requires-Dist: rich>=13.7.0
Requires-Dist: typer>=0.12.0
Requires-Dist: tenacity>=8.2.0
Requires-Dist: apscheduler>=3.10.0
Requires-Dist: PyYAML>=6.0.0
Provides-Extra: dev
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: twine>=5.0.0; extra == "dev"
Dynamic: license-file

# Old Website Finder Agent (`owf`)

Hermes-uslubidagi **professional CLI agent** — O‘zbekiston ichidagi eskirgan veb-saytlarni topadi, deep analysis qiladi, multi-provider LLM orqali tashxis qo‘yadi.

## Install (public)

```bash
# PyPI (nom publish qilingandan keyin)
pip install old-website-finder

# yoki pipx (tavsiya — global CLI)
pipx install old-website-finder

# yoki to‘g‘ridan-to‘g‘ri GitHubdan
pip install git+https://github.com/FarrukhDevloper/owf/OldWebsiteFinder.git
```

```bash
owf --version
owf setup
owf daily
```

Batafsil: [PUBLISH.md](./PUBLISH.md)

```
owf                 # banner + status
owf setup           # interaktiv sozlash
owf auth add grok   # API key yoki OAuth
owf daily           # kunlik skan + analysis
```

## Imkoniyatlar

| Modul | Buyruqlar |
|-------|-----------|
| **Setup** | `owf setup`, `owf doctor`, `owf status` |
| **Auth pool** | `owf auth add/list/remove/status/logout` |
| **Model** | `owf model`, `owf providers`, `owf config` |
| **Agent** | `owf daily`, `owf analyze`, `owf schedule` |
| **Tarix** | `owf history`, `owf show`, `owf runs` |

### Multi-provider LLM

| Provider | ID | Auth |
|----------|-----|------|
| xAI / Grok | `grok` | API key + OAuth token |
| OpenAI / GPT | `openai` | API key + OAuth token |
| Anthropic / Claude | `claude` | API key + OAuth token |
| Google / Gemini | `gemini` | API key + OAuth token |
| Custom OpenAI-compat | `custom` | API key + base URL |

Credentiallar: `~/.owf/auth.json` (Hermes-style pool)  
Config: `~/.owf/config.yaml`

> **OAuth haqida:** CLI brauzerni ochadi va **access token / API key** ni xavfsiz saqlaydi.  
> ChatGPT Pro yoki Claude.ai consumer session OAuth rasmiy third-party client talab qiladi — shuning uchun bu yerda **API key + Bearer OAuth token** modeli ishlatiladi (Hermes `auth add` UX).

## O‘rnatish

```powershell
cd "C:\New projects\Agents\OldWebsiteFinder"
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install -e .
```

## Tezkor start (Hermes kabi)

```powershell
owf setup
# yoki
owf auth add grok
owf auth add openai --api-key sk-...
owf auth add claude --type oauth
owf auth add gemini

owf model
owf status
owf doctor

owf daily -n 3
owf analyze https://example.uz --provider claude
```

### Auth misollar

```powershell
# Interaktiv (brauzer ochiladi)
owf auth add grok
owf auth add openai
owf auth add claude
owf auth add gemini

# Non-interactive
owf auth add grok --api-key xai-...
owf auth add openai --api-key sk-...
owf auth add claude --api-key sk-ant-...
owf auth add gemini --api-key AIza...
owf auth add claude --access-token eyJ... --type oauth

owf auth list
owf auth remove grok 1
owf auth logout openai
```

### Model / config

```powershell
owf model -p grok -m grok-4.5
owf model -p claude -m claude-sonnet-4-20250514
owf config show
owf config set agent.daily_analysis_limit 10
owf config set fallback.providers "openai,claude"
```

Env orqali ham ishlaydi (pool bo‘sh bo‘lsa):

```
XAI_API_KEY=
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
GEMINI_API_KEY=
```

## Agent pipeline

1. **Discovery** — `.uz` seed + `data/seed_sites.txt`
2. **Tech scan** — HTTPS, eski PHP/jQuery, table layout, CMS, security headers
3. **Priority score** — upgrade ehtiyoj × auditoriya proxy
4. **Deep analysis** — tanlangan LLM (Grok/GPT/Claude/Gemini)
5. **Persist** — SQLite + `reports/YYYY-MM-DD/*.md|json`

## CLI reference

```
owf                         banner + status dashboard
owf setup                   setup wizard
owf doctor                  health check
owf status                  component status
owf providers               LLM provider ro‘yxati
owf auth add <provider>     credential qo‘shish
owf auth list               pool
owf auth remove <p> <ref>   o‘chirish
owf auth logout [provider]  tozalash
owf model                   provider/model picker
owf config show|set|edit|path
owf daily [-n N] [-p provider] [-m model]
owf analyze URL
owf history [--date YYYY-MM-DD]
owf show <analysis_id>
owf runs
owf schedule --hour 9
```

## Fayl tuzilmasi

```
~/.owf/
  auth.json          # credential pool
  config.yaml        # model, limits, fallback
  .env               # optional secrets
  reports/           # optional home reports
  logs/

src/old_website_finder/
  cli.py             # Hermes-style commands
  ui.py              # banner / panels
  home.py            # ~/.owf
  auth/              # providers, store, login
  llm/               # multi-provider router
  discovery/         # scan + score
  analysis/          # deep analysis
  pipeline/          # daily orchestrator
```

## Eslatma

- Agent **read-only** — saytlarni o‘zgartirmaydi.
- Auditoriya bahosi proxy (analytics emas).
- Productionda `data/seed_sites.txt` ni kengaytiring.
