···141141 ++ py.pyjwt.optional-dependencies.crypto
142142 ++ py.uvicorn.optional-dependencies.standard;
143143144144+ # The CLI respawns itself as `sys.executable -m omnigent.host._daemon_entry`
145145+ # (cli.py:2945) for the host daemon, and the daemon spawns runners the same
146146+ # way. That is the *bare* interpreter, without the site-dirs that
147147+ # wrapPythonPrograms bakes into the console script, so those children die
148148+ # with ModuleNotFoundError: No module named 'omnigent' and every session hangs
149149+ # on "the connect daemon did not come online within 30s". Hand them the
150150+ # transitive dependency closure through PYTHONPATH, which omnigent's own
151151+ # daemon/runner env allowlist preserves (host/connect.py) while the agent
152152+ # spawn allowlist drops it (inner/agent_env.py), so it never reaches omp.
153153+ postFixup = ''
154154+ buildPythonPath "$out $pythonPath"
155155+ wrapProgram $out/bin/omnigent --prefix PYTHONPATH : "$program_PYTHONPATH"
156156+ '';
157157+144158 pythonImportsCheck = [
145159 "omnigent"
146160 "omnigent_client"