SIGN IN SIGN UP

fix: cost pricing order, antigravity guard, and source symlink escape

- deepseek-reasoner/-r1 pricing was dead code: the bare 'deepseek' branch
  matched first and billed reasoner runs at chat rates. Reorder the
  specific branch ahead of it in all four cost tables (cost.py, agent.py,
  codex.py, summary.ts).
- antigravity ListDir extraction indexed parts[-3] behind a len>=2 guard,
  raising IndexError for 2-element field paths; require len>=3.
- source /api/source/file only string-checked the path; add a realpath
  containment check so a symlink inside the project can't read files
  outside the project root.
A
Axel Delaval committed
b7a2ce97aa8bc9a1b104f5d8b0ee243ed2e18cf1
Parent: 7bcc133