in src/nova_act/nova_act.py [0:0]
def start(self) -> None:
"""Start the client."""
if self.started:
_LOGGER.warning("Attention: Client is already started; to start over, run stop().")
return
try:
session_id = str(uuid.uuid4())
set_logging_session(session_id)
if self._logs_directory:
session_logs_directory = os.path.join(self._logs_directory, session_id)
else:
session_logs_directory = ""
if session_logs_directory:
try:
os.mkdir(session_logs_directory)
except Exception as e:
_LOGGER.error(
f"Failed to create directory: {session_logs_directory} with Error: {e} "
f"of type {type(e).__name__}"
)
self._playwright.start(session_logs_directory)
if self._dispatcher is None:
self._dispatcher = ExtensionDispatcher(
backend_info=self._backend_info,
nova_act_api_key=self._nova_act_api_key,
tty=self._tty,
session_id=session_id,
playwright_manager=self._playwright,
extension_version=self._extension_version,
session_logs_directory=session_logs_directory,
)
set_logging_session(session_id)
self._dispatcher.wait_for_page_to_settle(go_to_url_timeout=self.go_to_url_timeout)
session_logs_str = f" logs dir {session_logs_directory}" if session_logs_directory else ""
_TRACE_LOGGER.info(f"\nstart session {session_id} on {self._starting_page}{session_logs_str}\n")
except Exception as e:
self._stop()
raise StartFailed from e