def start()

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