check_frontend.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. """Serve isolated browser regression checks without the API, model or user data.
  2. Run `python scripts/check_frontend.py`, then open http://127.0.0.1:8081.
  3. Only a temporary copy of frontend assets is exposed. Ctrl+C stops the server.
  4. """
  5. from functools import partial
  6. from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer
  7. from pathlib import Path
  8. from tempfile import TemporaryDirectory
  9. import json
  10. import shutil
  11. ROOT = Path(__file__).resolve().parents[1]
  12. class Handler(SimpleHTTPRequestHandler):
  13. def do_GET(self):
  14. if self.path.startswith('/api/'):
  15. body = json.dumps({'model': 'test', 'items': []}).encode()
  16. self.send_response(200)
  17. self.send_header('Content-Type', 'application/json')
  18. self.end_headers()
  19. self.wfile.write(body)
  20. else:
  21. super().do_GET()
  22. if __name__ == '__main__':
  23. with TemporaryDirectory(prefix='deep-agent-frontend-') as directory:
  24. shutil.copytree(ROOT / 'static', Path(directory) / 'static')
  25. shutil.copyfile(ROOT / 'tests/frontend_markdown.html', Path(directory) / 'index.html')
  26. server = ThreadingHTTPServer(('127.0.0.1', 8081), partial(Handler, directory=directory))
  27. print('Frontend checks: http://127.0.0.1:8081', flush=True)
  28. try:
  29. server.serve_forever()
  30. except KeyboardInterrupt:
  31. pass
  32. finally:
  33. server.server_close()