Skip to content

Commit 24a724f

Browse files
committed
refactor: restructure into domain-based sub-packages
Reorganize 16 flat root files into 4 logical sub-packages: ## New Structure ``` src/qoder_autopilot/ ├── cli.py, register.py, errors.py ← root (orchestration + core) ├── auth/ ← Authentication & Identity │ ├── oauth.py (OAuth device flow) │ ├── identity.py (Faker identity gen) │ ├── credentials.py (Creds storage) │ └── otp.py (OTP extraction) ├── infra/ ← Infrastructure & Integration │ ├── config.py (Settings) │ ├── user_config.py (Config CRUD) │ ├── ninerouter.py (9Router SQLite) │ ├── temp_mail.py (Mail providers) │ └── relay.py (Relay FastAPI server) ├── setup/ ← Setup & Diagnostics │ ├── first_run.py (Welcome wizard) │ ├── deploy.py (Worker deployment) │ └── doctor.py (Health check) ├── utils/ ← Shared Utilities │ └── logger.py (Logging + verbosity) ├── browser/ ← (unchanged) ├── captcha/ ← (unchanged) └── worker_template/ ← (unchanged) ``` ## Changes - 11 files moved to sub-packages - All relative imports updated across 27 source + 7 test files - Test mock.patch paths updated (relay monkeypatch) - Pre-existing test lint issues fixed (unused imports, sort) - No behavior changes, no public API changes - No version bump (pure internal refactor)
1 parent 8bc4f36 commit 24a724f

34 files changed

Lines changed: 102 additions & 98 deletions

src/qoder_autopilot/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
__version__ = "0.6.0"
1616

17+
from .auth.oauth import initiate_device_flow, poll_device_token
1718
from .captcha import CaptchaSolver
1819
from .cli import run_one
1920
from .errors import (
@@ -30,9 +31,8 @@
3031
RegistrationError,
3132
TempMailError,
3233
)
33-
from .oauth import initiate_device_flow, poll_device_token
34+
from .infra.temp_mail import TempMail
3435
from .register import register_and_verify
35-
from .temp_mail import TempMail
3636

3737
__all__ = [
3838
# Core functions

src/qoder_autopilot/auth/__init__.py

Whitespace-only changes.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
from pathlib import Path
1717
from typing import Any
1818

19-
from . import config
20-
from .logger import log
19+
from ..infra import config
20+
from ..utils.logger import log
2121

2222

2323
def save_creds(data: dict[str, Any], path: Path | None = None) -> None:
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222

2323
import requests
2424

25-
from . import config
26-
from .logger import log, log_err, log_ok
25+
from ..infra import config
26+
from ..utils.logger import log, log_err, log_ok
2727

2828

2929
def base64url_encode(data: bytes) -> str:

src/qoder_autopilot/browser/camoufox.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from collections.abc import AsyncIterator
1010
from contextlib import asynccontextmanager
1111

12-
from ..logger import log
12+
from ..utils.logger import log
1313

1414

1515
@asynccontextmanager

src/qoder_autopilot/browser/window_tiler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import platform
1818
import subprocess
1919

20-
from ..logger import log
20+
from ..utils.logger import log
2121

2222
_screen_size_cache: tuple[int, int] | None = None
2323

src/qoder_autopilot/captcha/ai_vision.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import re
1919
import time
2020

21-
from .. import config
22-
from ..logger import log
21+
from ..infra import config
22+
from ..utils.logger import log
2323

2424

2525
async def gemini_detect_gap(page) -> float | None:

src/qoder_autopilot/captcha/manual.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import asyncio
99
import time
1010

11-
from .. import config
12-
from ..logger import log, log_err, log_ok
11+
from ..infra import config
12+
from ..utils.logger import log, log_err, log_ok
1313

1414

1515
async def handle_captcha_manual(page) -> bool:

0 commit comments

Comments
 (0)